DevOps вам в помощь: ускоряем релизы качественно | Umbrella IT

DevOps вам в помощь: ускоряем релизы качественно

В 2018 году DevOps-инженеры и эксперты по аналитическим данным (Data Scientist) заняли две верхние строчки в перечне 50 наиболее оплачиваемых профессий в США по версии Glassdoor.

Высокая востребованность DevOps как концепции объясняется тем, что в условиях глобальной диджитализации и быстрых изменений рынка бизнес ждет от IT таких решений, которые помогут быстрее выпустить продукт. И не просто продукт, а в соответствии с высокими стандартами пользовательского опыта, которые задают сейчас лидеры.

Банки понимают, что если не предложить клиенту удобные и простые приложения для дистанционного обслуживания, он просто начнет пользоваться услугами тех компаний, которые окажутся в прямом смысле слова “ближе”, а точнее в мобильном клиента.

Медиаресурсы непрерывно ищут новые способы изучить своего читателя и найти к нему персональный подход. Ритейлеры оптимизируют каналы общения с покупателем, избавляя его от размышлений о том, как купить, чтобы привлечь его внимание к тому, что купить.

Как не отстать в гонке сильных соперников? Для этого бизнесу нужно внедрять новые IT-решения так, чтобы они начинали давать результаты “еще вчера”. И DevOps-практики в этом смысле работают именно в этом направлении.

 

Что такое DevOps?

DevOps — это философия, подход к работе, который сформировался в ответ на изменения рынка, технологий и экосистемы в целом. DevOps-практики охватывают автоматизацию и виртуализацию процессов разработки и направлены на то, чтобы регулировать поток информации между участниками проекта. Их реализацию могут брать на себя участники IT-подразделения, но мы на собственном опыте убедились, что присутствие в команде  специально выделенных DevOps’ов дает массу преимуществ.

В еще не забытые времена раннего DevOps’а разработчики нашей команды самостоятельно справлялись с процедурами разработки и развертывания, и это не вызывало проблем. Каждый программист знал всю процедуру от начала до конца и мог ее выполнить. Но компания расширялась, росли объемы работ, приходили новые сотрудники, которым нужно было время, чтобы освоить процессы. Мы нашли идею выделить для этих целей отдельного специалиста разумной и перспективной.

Ожидания и прогнозы оправдались. DevOps-инженер занял свое место в команде Umbrella IT: релизы не проходят, а пролетают, участники команды не отвлекаются от своих основных задач, автоматизация позволяет сэкономить время, каждый участник проекта получает точную информацию о текущем состоянии дел, а заказчики возвращаются к нам с новыми идеями и проектами.

 

Никакой магии, или DevOps-практики, как часть командной работы

Как показывает опыт, наиболее эффективные преобразования и улучшения становятся результатом того, что вся команда работает на достижение общей цели.

Отдельные Василий и Иннокентий могут быть супергениями в своем деле, однако успех проекта базируется не только на индивидуальных талантах, но и на правильно настроенных процессах и четко организованной коммуникации.

Касается это и DevOps-ов: их вклад в общую работу начинается с конфигурации сред для разработчиков и QA и всех необходимых настроек в самом начале проекта.

Начало проекта

DevOps создает условия для того, чтобы разработчики и QA-специалисты могли не отвлекаясь выполнять и тестировать проектные задачи. Для этого производится настройка инструмента для совместной работы с кодом, сред development (где трудится разработчик в процессе написания кода), staging (где происходит предварительное тестирование приложения) и production (где запускается работающее приложение) и автотестов.

Когда окружение создано, начинается настройка процессов:

  • Continuous Integration: слияние рабочих веток в основную, в рамках одного репозитория, в результате чего все изменения регулярно переносятся из рабочих в основную ветку и на каждое изменение производится сборка приложения и прогон автотестов;
  • Continuous Delivery: непрерывная поставка обновлений работающего продукта, в процессе которой проверка тестировщиками не влияет на уже существующие функции;
  • Continuous Deployment: непрерывное автоматическое развертывание новых функций и изменений в приложении.

Для командной работы правильно настроенное и поддерживаемое рабочее окружение означает сразу несколько преимуществ:

1. Автоматизация и стандартизация процессов сокращает общее время разработки продукта. Исполнение процессов остается неизменным, не зависит от исполнителя, а такая повторяемость обеспечивает стабильное качество продукта на выходе.

2. Работа в режиме коротких итераций гарантирует то, что любые ошибки и баги будут обнаружены на самом раннем этапе, а не когда продукт будет уже наполовину готов. Что в итоге? Экономится время и повышается качество готового продукта.

3. Внутренние ресурсы команды используются более эффективно, а сэкономленное время распределяется на решение внеочередных задач. Возникновение таких задач в работе практически неизбежно, но уменьшить их влияние на основные процессы вполне реально.

4. Следующий фактор, который несомненно нужно записать в плюс — коммуникация. Оповещение о событиях (ошибки, сбои, успешное прохождение тестов) настраивается так, что все заинтересованные лица получают своевременную и унифицированную информацию.

5. Корректно организованную и настроенную систему можно легко масштабировать. То есть если когда вы решите расширяться, не нужно будет начинать распутывать сеть взаимосвязей с самого начала, а достаточно будет взять за основу слаженно работающую исходную структуру.   

На этом работа DevOps-инженера не останавливается: на всех последующих этапах он продолжает заниматься корректировками и дополнительными настройками в зависимости от того, что именно происходит на проекте.

2

Релиз

Наступает время релиза, и у DevOps-инженера начинается жаркая пора контроля, подведения итогов и окончательного приведения продукта в надлежащий вид.

В сферу ответственности DevOps’а на этом этапе входит:

  • выбор и настройка систем для мониторинга и оповещения: сервер (Zabbix, Grafana, Prometheus) и приложения (New Relic)
  • выбор и настройка системы логирования (ELK)
  • безопасность: оценка уязвимости, Qualys, статический анализ кода
  • деплои/CI: Bamboo, Jenkins, GitLab, travis ci, teamcity
  • Резервное копирование и восстановление: AWS (встроенный механизм), Acronis, Bacula
  • своевременное обновление программного обеспечения: обновление зависимостей приложения, еженедельная проверка и обновление пакета системных программ, автоматические обновления для системы безопасности

Как вы понимаете, DevOps проживает с приложением всю историю его создания и последующей работы. Следит за обновлениями, мониторит изменения, сопровождает расширение. Приложение не может не развиваться, чтобы оставаться в топе, а DevOps-инженер — это один из тех, кто будет его поддерживать и предотвращать потенциальные проблемы.

 

Преимущества интеграции DevOps-практик

Реальных примеров того, как бизнес успешно использует DevOps-концепции и усиливает IT-процессы, существует много. На них можно учиться, но их нельзя просто скопировать и примерить на себя. Суть в том, что они должны органично вплетаться в культуру и организационную структуру IT-команды, а иначе — отторжение, непонимание и прочие неприятные последствия. Непросто? Да. Но игра стоит свеч. Мы проверили это на практике, и вот наши результаты:

  • автоматизация процессов разработки: увеличение скорости разработки и повышение качества готового продукта;
  • оптимизация использования серверных ресурсов: экономия средств за счет того, что оплачиваются только фактически используемые ресурсы;
  • усиление безопасности: оптимальная защита, мониторинг уязвимостей и спокойный сон по ночам;
  • контроль стабильности систем: бесперебойная работа в режиме 24/7;
  • готовность систем к росту нагрузок: отсутствие ограничений для дальнейшего расширения.

 

Фото: Shutterstock.com


Ещё

  • Umbrella IT вошла в топ-1000 провайдеров B2B-услуг в мире
    Umbrella IT вошла в топ-1000 провайдеров B2B-услуг в мире
    Не так давно наша команда рассказывала о том, что Umbrella IT была включена в список лучших российских мобильных и веб-разработчиков по версии рейтингового агентства Clutch. Мы рады сообщить, что с тех пор наша позиция усилилась: теперь Umbrella IT входит в топ-1000 лучших B2B-провайдеров IT-услуг в мире. Мы благодарны клиентам за комментарии, в которых они рассказали об …
  • Как выжить после GDPR: самый прикладной чек-лист на соответствие регламенту
    Как выжить после GDPR: самый прикладной чек-лист на соответствие регламенту
    В нашей предыдущей статье, посвященной GDPR, мы сделали лирическое отступление о том, кого затронет новый регламент и во сколько обойдется его нарушение. Мы обещали рассказать, как продолжить гнуть свою линию и не попасть под санкции. И мы всегда держим слово. Наши специалисты подготовили самый прикладной чек-лист на соответствие GDPR. Для удобства он разбит на 5 …
  • Как выжить после GDPR: что делать и кто виноват
    Как выжить после GDPR: что делать и кто виноват
    После 4 лет ожесточенных дебатов европейский парламент принял регламент по защите персональных данных — GDPR. Документ экстерриториален. Это значит, что где бы физически ни находилась ваша компания, если вы сотрудничаете с резидентами ЕС — вам придется уважать европейский закон. Мы запускаем серию статей, посвященных GDPR. В первой части мы пробежимся по основным положениям регламента, выясним, …