Пять трендов DevOps в 2023

DevOps – одна из самых востребованных и дорогих экспертиз в разработке программного обеспечения. К 2030 году глобальный рынок DevOps может, согласно отдельным прогнозам, достичь более 50 млрд. долларов. Не так давно появившаяся технология уже признана неотъемлемой частью эффективного процесса разработки ИТ продуктов, и в то же время методология продолжает непрерывно совершенствоваться. О том, какие тренды в DevOps могут быть наиболее актуальны в ближайшее время, рассказал тимлид Nerve.AI Максим Воронцов.

Пять трендов DevOps в 2023

DevSecOps

Это один из ключевых трендов, который существенно повлиял на на культуру работы с кодом. Больше внимания стало уделяться вопросам безопасности с внедрением необходимых процедур в пайплайн на всех этапах цикла разработки продукта. Начиная с момента сбора и анализа информации и планирования до внедрения и поддержки ПО, все этапы включают проверки и сканирование конфигураций на наличие угроз. Информационная безопасность внедряется во все процессы. Повышенный спрос на надежность и безопасность в работе систем привел к появлению новой должности: SRE – site reliability engineer. Он обеспечивает безопасность и отказоустойчивость систем. В небольших компаниях эти задачи выполняет DevOps-специалист.

Есть инфраструктурная безопасность – ответственность за нее делегируется на сторону облака, а вот безопасность и отказоустойчивость самого приложения – это забота команды. Например , приложение может быть не оптимизировано и в результате потребует много ресурсов. Задача SRE – предотвратить такую ситуацию. В небольших студиях эта ответственность ложится на DevOps-специалиста.

Serverless computing

Интерес к бессерверной архитектуре тоже вполне объясним: это удобно и выгодно. Собираем приложение в Docker-образ и отдаем облаку все заботы по оркестрации контейнеров. Покупая возможности писать и развёртывать код, не думая о производительности серверов, их конфигурации, ядрах, памяти, мы экономим ресурсы.

Делегируя заботу об инфраструктуре облаку, небольшие компании могут оптимизировать бюджет, т.к. не нужно платить за услуги системного администратора, за сервер и т.д.

Мультиоблачные стратегии

Покупая возможности сразу нескольких провайдеров, можно создавать такую архитектуру, которая обеспечит максимальную гибкость решения. Допустим, есть разные зоны доступности, и для отказоустойчивости и оптимизации, одно облако будет расположено в центральной Азии, а другое в Европе.

Микросервисная архитектура

Приложения уже давно собираются на микросервисах. По сути это уже не тренд, а отраслевой стандарт. В Nerve.AI мы используем именно такой подход: разбивка сложных проектов на компоненты позволяет ускорить процесс доставки приложений в разы.

Интеграция Kubernetes c DevOps

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

Если говорить о по-настоящему свежих веяниях в DevOps, то это ChatOps и GitOps.

ChatOps

Интеграция чатов с процессом разработки – это большой шаг в сторону повышения эффективности команд. Момент, когда работа с инфраструктурой переносится в Slack, Telegram и др. меняет жизнь в небольших компаниях на «до» и «после».

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

GitOps

Популярной становится практика использования Git в качестве места хранения «первоисточника» подлинного описания состояния системы. Любое взаимодействие с системой происходит исключительно через Git.

Кластер Kubernetes синхронизируется с нашим репозиторием ConfigRepo и в соответствии с описанием определяет, что и как деплоить.

Например, приложению нужно две реплики, т.к. одна не справляется. Если раньше изменения вносились вручную, то теперь можно редактировать код в репозитории, и автоматически будут реализованы изменения: Kubernetes «подстроится» к новым данным.

Преимущества GitOps:

Консистентность – если изменить ресурсы в Kubernetes, то они автоматически вернутся к исходному состоянию.

Наблюдаемость – возможность следить за статусом синхронизации.

Безопасность – контроль доступа к репозиторию: устанавливаем, кому можно вносить изменения, а кому нет.

Автоматизация – GitOps оператор следит за синхронизацией, поэтому никаких ручных настроек не требуется.

Недостатком GitOps можно назвать асинхронность. Если кто-то из разработчиков добавит обязательную переменную окружения, а в манифесте ее не будет, то все сломается. Это необходимо учитывать. Еще одним минусом становится повышенная сложность – появляется еще один репозиторий, за которым нужно следить.

Если говорить об опыте команды Nerve. AI, то именно GitOps и ChatOps – это те практики, которые позволили ощутимо улучшить процесс разработки. GitOps дает инструменты для контроля и управления состоянием системы через изменение данных для Kubernetes. Это позволяет эффективно использовать инфраструктуру и иметь данные для анализа эффективности работы приложения. А ChatOps перенес процесс разработки продукта в пространство, где легко взаимодействовать: согласовывать, подтверждать и, при необходимости, учиться. Такая безбарьерная коммуникация помогает уходить от непродуктивных затрат времени и усилий, позволяя команде реализовать задачи точно в срок.

А как вы оцениваете потенциал трендов, и какие технологии позволили вашей компании повысить эффективность?

55
Начать дискуссию