Джейн Гролл, соучредитель и генеральный директор DevOps Institute, рассказывает на портале Enterprisers Project о наиболее важных навыках для разработчиков нативных облачных (cloud-native) решений.

Развитие cloud-native открывает перед предприятием множество возможностей, но в то же время создает новые проблемы. Разработчики, только начинающие работать в этой области, должны ориентироваться в вопросах перехода от традиционной онпремисной инфраструктуры к облачной. Разработка cloud-native требует современного подхода к созданию ПО, включая умение разрабатывать микросервисы и использовать бессерверные функции.

Если в чем и могут быть уверены разработчики, так это в том, что изменения будут происходить всегда, — а с новыми изменениями приходят и новые требования к квалификации. И чтобы справляться с этими изменениями, необходимо заниматься повышением квалификации.

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

1. Владение основными компетенциями разработчика

По словам Марка Питерса, менеджера по продуктам BrainGu, главный навык, необходимый для успешной нативно-облачной разработки, такой же, как и для любого разработчика: вы должны быть инновационным, коммуникабельным и технически компетентным. Ключевыми принципами нативной облачной архитектуры являются IaaS, контейнеры, автоматизация и оркестровка, построенные вокруг микросервисов. «Это означает, что вы должны разбираться в облачных технологиях ведущих облачных провайдеров, понимать контейнеры и их оркестровку с помощью Helm, Kubernetes и стремиться к автоматизации решений», — говорит Питерс.

Он отмечает, что работа с микросервисами требует способности постоянно сокращать код до минимально возможных функций. Элементы микросервисов должны быть заменяемы другими элементами, с которыми они контактируют, без потери функций. «Понимание этих областей поможет вам начать, но, как и в любой другой работе или задаче, самая важное — это опыт. Выходите и практикуйтесь, не только в своей повседневной работе, но и на открытом коде и собственных проектах», — советует Питерс.

2. Сильные знания DevOps и автоматизации

Ключевыми навыками, необходимыми для успешной работы разработчика нативных облачных решений, являются DevOps и автоматизация, считает Парвин Арора, основатель и директор VVnT SeQuor. Когда они освоены, необходимо развивать компетенции в следующих областях:

  • использование открытого исходного кода, Git и Linux;
  • специфика DevOps и инженерии надежности систем (SRE);
  • Kubernetes для контейнеризации, хостинга и развертывания приложений;
  • GitOps.

«Вся идея заключается в том, чтобы использовать инструменты автоматизации для сокращения времени выхода на рынок, уменьшения трения и снижения затрат на разработку и обслуживание», — говорит Арора.

3. Умение быстро развиваться

«Для этого требуются как ваши собственные навыки, так и навыки других людей вокруг вас. Чтобы эволюционировать, надо как минимум просто иначе посмотреть на приложение и архитектурный дизайн — контейнеры, бессерверные решения, более мелкие строительные блоки и т. д. Рассмотрите не только возможность создания приложения, но и приобретения его в качестве услуги у облачного провайдера. На этом этапе вам может понадобиться помощь руководства и коллег», — советует Райан Шелдрейк, технический директор Lacework в регионе EMEA.

По его словам, компенсацией дополнительных расходов на покупку сервиса у облачного провайдера станет то, что у вас появится больше времени на разработку действительно уникальных бизнес-функций и продуктов. «Используйте подход „как сервис“ и предварительно построенные/предопределенные контейнеры (убедившись, что они безопасны и надежны), чтобы еще меньше тратить драгоценное время и добавить истинную ценность бизнесу», — говорит Шелдрейк.

4. Понимание разработки API

«Это ключевой навык, необходимый для нативной облачной архитектуры. Создание программных приложений, разложенных на более мелкие функции, значительно отличается от создания традиционных монолитных систем, — отмечает Трейси Раган, генеральный директор и соучредитель DeployHub. — Микросервисы — это, по сути, API. Для перехода к декомпозированной микросервисной архитектуре разработчикам ПО необходимо принять новую парадигму. Разработчики API уже знают, как писать код для обслуживания множества потребителей на основе небольшого кейса или домена».

По его словам, с нативной облачной архитектурой мы переходим к практике «функциональных» команд. Каждая такая команда создает небольшие функции для своей конкретной области (домена). Коллекция ориентированных на домен микросервисов формирует наши новые программные системы. «Если вы писали монолитные приложения и хотите перейти к нативно-облачной разработке, у вас уже есть необходимые навыки кодирования. Вам остается изучить разработку API и доменно-ориентированное проектирование», — говорит Раган.