Что такое культура DevOps и как она способна помочь бизнесу?
Ферапонтов
DevOps-инженер в финансовом секторе
Автоматизация - способ оптимизировать затраты и избавить сотрудников от рутины. Но работать она будет только в случае грамотного внедрения, с чем помогает культура DevOps. О ней расскажет Антон Ферапонтов - DevOps-инженер в финансовом секторе, который специализируется на автоматизации процессов и веб-разработке.
Автоматизация экономит время сотрудников, избавляет от рутины, помогает бизнесу сократить затраты. Согласно данным отечественных и зарубежных аналитических компаний, благодаря технологиям автоматизации можно сократить 80% трудоемких задач, что позволяет уменьшить расходы компании на 30%. При этом 70% российских компаний окупили затраты на нее менее чем за год.
Однако автоматизация будет работать только в случае, если внедрять ее грамотно. И в этом способна помочь культура DevOps в компании. Как именно, объясняет Антон Ферапонтов, DevOps-инженер, который работал в командах Росбанка и Хоум Банка.
Автоматизация работает… но не всегда
По информации Techwireasia, одна глобальная технологическая компания в области здравоохранения внедрила кросс-функциональную программу — она предназначалась для автоматизации 80 процессов в бухгалтерских операциях и экономии 30 тыс. часов работы. Результат превзошел ожидания: в течение года фирма смогла автоматизировать 140 процессов с помощью 200 ботов. При этом было сэкономлено 400 тыс. часов работы в бухгалтерских операциях и 23,5 тыс. часов в финансовом планировании и анализе данных. Кроме того, автоматизация повысила и качество данных.
А образовательно-технологическая компания Duolingo уволила 10% своих сотрудников после внедрения ИИ для выполнения определенных задач. Такая технология позволяет компании гораздо быстрее создавать новый контент, включая сценарии для языковых шоу, которые способствуют обучению языкам.
Однако есть и подводные камни: внедрение сработает эффективно только в случае, если в компании уже достаточно зрелые бизнес-процессы и есть конкретная цель внедрения. Если пытаться вводить новую систему и вместе с тем менять и бизнес-процессы — скорее всего, это закончится крахом, как и автоматизация ради "моды", без понимания, зачем все делается.
Вообще чтобы автоматизация помогала бизнесу, нужна особая культура работы с технологиями. Это и data driven, и разные подходы к организации работы команд — в том числе и методология DevOps.
В чем риски?
Перед внедрением автоматизации важно оценить возможные риски. На первом месте — высокие первоначальные затраты: такие инструменты требуют инвестиций, которые могут и не окупиться. Кроме того, необходимо обеспечить корректную настройку оборудования с самого начала, иначе возможны сбои.
Еще один значимый фактор — зависимость компании от технологий. Если с инструментом что-то пойдет не так, это может парализовать ключевые бизнес-процессы.
Такие причины довольно существенны, и поэтому некоторые компании на время отказываются от внедрения автоматизации из-за недостаточной подготовки — и это правильно. Однако существуют и некоторые предубеждения, которые можно решить погружением в проблематику: так, без знания DevOps-методологии компании могут не осознавать возможных преимуществ автоматизации для себя, а также концентрироваться на краткосрочных целях в ущерб долгосрочным.
Кроме того, внедрению инноваций могут сопротивляться текущие сотрудники, опасающиеся, что в новой системе для них не найдется места.
Как работает методология DevOps и что можно автоматизировать с ее помощью
DevOps — это методология, объединяющая разработку (Development) и эксплуатацию (Operations) для ускорения и повышения качества выпуска ПО. Цель — создать непрерывный цикл доставки ПО, который включает в себя планирование, разработку, тестирование, развертывание, эксплуатацию и мониторинг. Соответственно, DevOps-инженер — это специалист, обладающий навыками и компетенциями как в области разработки, так и эксплуатации. Он отвечает за внедрение и поддержку DevOps-практик.
Методология строится на принципах сотрудничества, автоматизации, непрерывной интеграции и развертывания (CI/CD), мониторинга и обратной связи. То есть в рамках DevOps важно, чтобы разработка и эксплуатация работали вместе как единая команда, обеспечивалась постоянная интеграция кода, тестирования и развертывания, а данные собирались и анализировались. Все это помогает качественно автоматизировать рутинные задачи и повысить эффективность.
Для реализации этой культуры важно организовать взаимопонимание между разработчиками и командой по эксплуатации, привить общую ответственность за ПО, которое они создают.
Первый шаг — развить компетенции между разработчиками и администраторами. Например, отправить сотрудников на курсы повышения квалификации по DevOps-культуре либо по тематике компетенций, которых не достает каждой команде. Важно, чтобы администраторы умели программировать, а разработчики — администрировать. Если разработчики будут понимать принципы работы инфраструктуры и процессов развертывания, это позволит им создавать более эффективный и надежный код. А администраторы, знакомые с основами программирования, смогут лучше понимать потребности разработчиков и оптимизировать процессы разработки и эксплуатации. DevOps — это прежде всего изменение мышления руководства и сотрудников, поэтому так важно внимание к культуре компании.
Результат — команды начнут "говорить на одном языке", улучшится взаимопонимание, ускорится решение задач. Кроме того, такой подход способствует росту некоторых специалистов в полноценных DevOps-инженеров.
Второй шаг — начать автоматизировать процессы, которые когда-то делались преимущественно вручную одним администратором, например, используя Jenkins (программная система с открытым исходным кодом на Java, предназначенная для обеспечения процесса непрерывной интеграции и развертывания (CI/CD) программного обеспечения).
Эти этапы — фундамент для начала развития DevOps-культуры в компании.
Выделю главные процессы, которые можно автоматизировать с помощью методологии DevOps:
Инфраструктура как код (IaC): Управление инфраструктурой с помощью кода, что позволяет автоматизировать ее развертывание и настройку, а также позволяет легко масштабировать и восстанавливать инфраструктуру в случае сбоев.
Сборка кода. Автоматизация сборки кода позволяет создавать исполняемые файлы, библиотеки и другие компоненты программного обеспечения из исходного кода.
Тестирование. В рамках DevOps можно автоматизировать различные виды тестирования, включая модульное, интеграционное, функциональное, нагрузочное и тестирование безопасности. Это помогает обеспечить высокое качество программного обеспечения и быструю обратную связь о его состоянии.
Развертывание. DevOps упрощает и автоматизирует процесс развертывания программного обеспечения на целевых серверах, что способствует быстрой и надежной поставке изменений.
Мониторинг и логирование. Автоматизированные инструменты мониторинга и логирования позволяют отслеживать производительность приложений и инфраструктуры, корректность работы, выявлять проблемы и реагировать на них до того, как это негативно повлияло на бизнес.
Важный аспект DevOps — обеспечение безопасности приложений и инфраструктуры. DevSecOps — это подход, который интегрирует безопасность во все этапы жизненного цикла разработки ПО.
Для внедрения культуры DevOps понадобится найти профильного специалиста, DevOps-инженера, а также взаимодействия с командой: важно подготовить сотрудников к новым опциям совместной работы.
Примеры успешного внедрения DevOps
Из-за NDA я не могу упоминать названия компании, однако поделюсь кейсами их опыта своего и коллег: расскажу, как успешно внедряли культуру DevOps в различных отраслях.
Сокращение времени вывода продукта на рынок
Компания, которая занимается разработкой мобильных приложений, внедрила DevOps и CI/CD. Это позволило автоматизировать процессы сборки, тестирования и развертывания. Результат — время вывода новых версий приложения на рынок сократилось с нескольких недель до нескольких дней.
Повышение качества ПО
Компания, разрабатывающая ПО для финансового сектора, внедрила DevOps и DevSecOps. Благодаря автоматизации тестирования и интеграции безопасности в процессы разработки значительно снизилось количество ошибок, повысился уровень безопасности ПО.
Улучшение удовлетворенности клиентов
Интернет-магазин внедрил DevOps, и это позволило быстрее реагировать на обратную связь от клиентов и внедрять новые функции. Повысилась удовлетворенность клиентов, а продажи увеличились.
Повышение эффективности работы команды
Компания, которая занимается разработкой корпоративного ПО, внедрила DevOps и автоматизировала множество рутинных задач. Это освободило время разработчиков и специалистов по эксплуатации, и они смогли сосредоточиться на более сложных и творческих задачах.
Снижение затрат
Компания, предоставляющая облачные сервисы, внедрила DevOps и IaC. Благодаря автоматизации управления инфраструктурой сократились затраты на ее обслуживание и повысилась эффективность использования ресурсов.
Так, для бизнеса DevOps означает:
-
Ускорение времени вывода новых продуктов и функций на рынок;
-
Увеличение качества и надежности ПО;
-
Сокращение затрат на разработку и эксплуатацию ПО;
-
Улучшение сотрудничества между командами и повышение эффективности работы;
-
Возможность быстрее реагировать на изменения на рынке и требования клиентов.
Тем не менее, помните, что DevOps-культура — это не мастхэв, а скорее почва, которая поможет взрастить качественные процессы автоматизации.