Top.Mail.Ru
КОНФИГУРАТОР Серверы
Сетевое оборудование
СХД IP-телефоны IP-камеры Источники бесперебойного питания (ИБП) Комплектующие Готовые решения -40 % Серверы под задачу
О компании Купить в лизинг Блог Отзывы Доставка Гарантия Контакты Работа у нас Реквизиты Спецпредложения Игровые ПК на ISKRAPC
Эксперты в подборе IT-оборудования

DevOps в сфере IT: что это такое и для чего необходимо

1 апреля 2021

Development Operations (сокращенно DevOps) - это процесс оптимизации и систематизации процесса разработки программного обеспечения. Данное движение возникло приблизительно в 2005-2008 годах, когда стремительно начал возрастать объем IT-рынка, но при этом количество разработчиков и ИТ-менеджеров было недостаточным. Крупные компании сразу заметили, что процесс разработки и управления ПО сталкивается с трудностями из-за плохой организации работы. Для этого были сформированы принципы DevOps engineering.

История появления и развития DevOps

Принципы построения и технологию DevOps более подробно описали авторы Патрик Дюбуа, Джин Ким и Джез Хамбл в своей книге «Руководство по DevOps. Как добиться гибкости, надежности и безопасности мирового уровня в технологических компаниях». При желании более углубленного изучить DevOps инжениринг из первоисточников можно прочитать эту книгу, написанную на английском языке в 2016 году.

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

На основе этих проблем в сфере информационных технологий и был создан DevOps инжиниринг. Его нормы базируются на правилах Agile. На этом стоит отдельно остановиться, чтобы понимать ответственность DevOps и ее суть. Agile software development зародился в начале 2000-х годов. Это набор методик и инструментов для разработки ПО и решения других бизнес-задач (например, при работе над маркетинговыми стратегиями). Суть методик заключается в обеспечении гибкой работы команды разработчиков и прочих исполнителей. 

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

Процессы и объекты 

Практики DevOps объединяют три основных процесса в работе ИТ-специалистов:

  1. Разработка;
  2. Тестирование;
  3. Эксплуатация.

Обязанности DevOps инженера заключаются в том, чтобы все процессы осуществлялись непрерывно. 

Речь идет о таких этапах работы, как:

  • Написание кода и его проверка;
  • Создание и внедрение различных сборок;
  • Непрерывное тестирование и поиск возможных ошибок;
  • Выпуск обновление и их предварительная разработка;
  • Развертывания конфигурация программного обеспечения;
  • Мониторинг производительности приложения и исправление возможных ошибок, найденных при тестировании.

В большинстве случаев devops-разработчик должен обеспечивать непрерывность всех процессов и их взаимосвязь. Это и объясняет главные цели внедрения такого решения. 

Цели внедрения инфраструктуры DevOps

Devops-инфраструктура создается для того, чтобы разработка программного обеспечения велась слаженно между разными командами исполнителей. То есть у всех отделов есть доступ к конкретному плану, целям, утвержденному техническому заданию и метрикам оценки эффективности (они стандартизированы для всех исполнителей). На выходе получается ситуация, при которой исполнители даже в удаленном режиме работы слаженно выполняют утвержденные ранее задачи. Контроль процесса обеспечивают devops-инженеры, которые и способы внедрить DevOps в компании любого масштаба. 

Помимо этого, услуги DevOps необходимы для того, чтобы сократить время разработки ИТ-продукта. Это может быть приложение, веб-сервис или программа. Независимо от типа проекта, DevOps сервис способен на треть или даже четверть снизить количество издержек, уменьшить до минимума количество отказов и сбоев на начальной стадии тестирования и сократить время исправления обнаруженных ошибок. В конечном результате это может быть очень важным для нужного финансового и репутационного результата.

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

Как работает DevOps

Разобравшись с основой Development Operations, необходимо детальнее описать инструментарий этой системы. Выше были описаны цели, но что касается способов их достижения? 

Существует несколько потоковых задач, которые внедряются, исполняются и контролируются DevOps engineer непрерывно при работе с тем или иным проектом:

  • Разработка концепции и технического задания на создание ПО с заказчиком и передача ТЗ всем группам исполнителей;
  • Автоматизация процессов написания кода, тестирования, верстки, создания пользовательского интерфейса;
  • Управление разработкой с единого центра;
  • Управление изменениями.

Реализация этих задач кроется в расширенном применении Agile-подхода. Речь идет о так называемом методе CALMS, который включает в себя 5 элементов:

  1. Культура (Culture);
  2. Автоматизация (Automatization);
  3. Бережливость (Lean);
  4. Измерения (Measurement);
  5. Обмен (Sharing).

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

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

  • Для распределения контроля версий программного обеспечения используются такие решения, как Git, Mercurial, Subversion, CVS;
  • Для контейнеризации чаще всего применяют Docker, Rocket или Kubernetes;
  • Для сборки и тестирования готовой версии программного обеспечения лучше подойдут Jenkins, TeamCity или Bamboo;
  • Для управления IT-инфраструктурой как кодом рационально применять Puppet, Chef, Ansible;
  • Для виртуализации лучше всего подойдет Vagrant;
  • В балансировке облачным ресурсов незаменимыми будут решения VMware DRS.

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

Формально, инженер Development Operations объединяет в себе сразу несколько профессий: менеджер в IT, разработчик, тестировщик, администратор и другие. Для работы в этой сфере нужны знания в области сетевой и облачной инфраструктуры, а также кодинга. 

Доступность DevOps для компаний разного уровня

При изучении этой темы важно понимать, что цена на DevOps имеет широкий диапазон и зависит от спектра задач, штата специалистов и масштаба проектов. Крупные компании в большинстве случаев имеют в штате несколько десятков инженеров Development Operations в разных уголках планеты. Гиганты (Netflix, Walmart, Etsy, Facebook, Google, Amazon и другие тратят на это миллионы долларов в год, так как их многомиллиардная выручка зависит от стабильности, качества и скорости выхода новых продуктов, а также функциональности существуют проектов. 

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

Критика DevOps

Далеко не все представители IT-индустрии и предприниматели положительно относятся к подобной организации работы в целом. Это связано с некоторыми недостатками. В современных реалиях очень трудно найти действительно профессионального инженера, который способен с нуля наладить всю систему. Такой исполнитель должен быть программистом, тестировщиком, дизайнером и менеджером в одном лице с опытом работы в DevOps от 5 лет. Обычно наем таких специалистов возможен только для крупных компаний, а малый бизнес довольствуется лишь исполнителями с поверхностными знаниями.

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

Несмотря на это, сложные IT-проекты не могут обойтись без грамотного управления и оптимизации процесса разработки. Поэтому спрос на DevOps активно возрастает на российском и зарубежных рынках. 

 
Поделитесь статьей в соцсетях   
 
Вам также может быть интересно

Товар добавлен в список сравнения
Перейти в сравнение
Продолжить просмотр
Подбираете сервер для 1С?
Подпишитесь на специальную серию писем про выбор и настройку сервера под 1С
Подписаться
Боитесь неправильно выбрать сервер?
Оставьте свой email, и мы пришлем чек-лист с 5 самыми распространенными ошибками
Получить чек-лист
Нажимая кнопку "Получить чек-лист", вы даёте согласие на обработку персональных данных
Заказать консультацию
IT-архитектор подберет сервер под вашу задачу
Заказать сервер
Мы свяжемся с вами в течение 15 мин
Заявка на лизинг