Антон
Ферапонтов

DevOps-инженер в финансовом секторе
© ComNews
25.07.2024

Автоматизация — способ оптимизировать затраты и избавить сотрудников от рутины. Но работать она будет только в случае грамотного внедрения, с чем помогает культура 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-культура — это не мастхэв, а скорее почва, которая поможет взрастить качественные процессы автоматизации.