В новом отчете Gartner «CTO’s Guide to Containers and Kubernetes — Answering the Top 10 FAQs» рассказывается, что предприятия должны знать о контейнерах и Kubernetes, основных сценариях их использования и о том, как они помогают реализовать архитектуру нативных облачных решений, сообщает портал The New Stack.

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

В новом отчете Gartner говорится, что контейнеры и Kubernetes превратились в выдающуюся платформенную технологию для создания нативных облачных приложений и модернизации унаследованных рабочих нагрузок. К 2027 г. более 90% глобальных организаций будут использовать контейнерные приложения в производстве, что значительно больше, чем 40% в 2021-м.

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

Что такое контейнеры, Kubernetes и сценарии их использования?

Контейнеры — это пакеты кода приложений, собранные вместе. Kubernetes — это платформа, которая помогает управлять контейнерами.

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

Gartner выделяет следующие особенности контейнеров и Kubernetes, определяющие сценарии их применения:

  • низкая степень зависимости от внешних приложений;
  • образы контейнеров для поддерживающей приложение инфраструктуры и платформенных технологий;
  • удовлетворение потребностей в высокой эластичности и частых изменениях кода;
  • поддерживаемый поставщиком образ для развертывания любого коммерческого готового приложения (commercial off-the-shelf, COTS).

Насколько хорошо индустрия поддерживает эти возможности?

Образ контейнера — это статический файл, содержащий весь исполняемый код для создания контейнера в вычислительной системе. Большинство образов контейнеров основано на ПО с открытым исходным кодом.

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

«Хотя некоторые ISV (независимые поставщики ПО) COTS, например, IBM, стратегически обеспечивают мощную поддержку Kubernetes, многие пока этого не делают — особенно в приложениях на базе Windows или корпоративных бизнес-приложениях. Техническим директорам следует изучить стратегию поддержки контейнеров и дорожные карты своих стратегических COTS ISV», — пишут авторы отчета.

Тем не менее, Gartner отмечает, что все большее число вендоров развивают поддержку контейнеров и «все больше ISV обеспечивают более глубокую интеграцию с контейнерами/Kubernetes, а не просто предоставляют образы контейнеров».

В отчете отмечается, что в AWS Marketplace for Containers по состоянию на февраль 2022 г. насчитывалось 524 позиции, связанных с контейнерами, что на 64% больше, чем в феврале 2020-го (320 позиций).

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

Сочетание Open Source-приложений и COTS для Kubernetes и контейнеров предоставляет организациям несколько вариантов развертывания:

Какие преимущества у контейнеров и Kubernetes?

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

Поскольку Kubernetes работает поверх контейнерного ПО, она обеспечивает гибкость и возможность выбора. «Kubernetes поддерживается огромной экосистемой облачных провайдеров, ISV и IHV (независимые поставщики оборудования). API- и кросс-платформенная согласованность, Open Source-инновации и поддержка отрасли обеспечивают большую гибкость для технических директоров», — утверждают авторы Gartner.

Каковы технологические ограничения Kubernetes?

Сложность платформы — это определенно то, о чем должны знать технические директора и ИТ-менеджеры. А также то, что контейнеры и Kubernetes не являются оптимальными для всех возможных сценариев использования. Эти технологии лучше всего работают в динамичных, масштабируемых средах, и усложняют работу, если инженеры пытаются использовать их для управления статичными COTS-приложениями.

Какие навыки необходимы для успешного развертывания Kubernetes?

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

Gartner описывает роли и обязанности команд, управляющих средами Kubernetes:

  • В обязанности команды разработчиков должно входить кодирование, проектирование, внедрение и тестирование приложений, а также управление исходным кодом.
  • Команда платформенных инженеров контролирует выбор, установку, конфигурацию и администрирование платформы. Ее члены также должны уметь поддерживать базовые образы, интегрировать конвейер DevOps, предоставлять возможности самообслуживания для разработчиков, автоматизировать инициализацию контейнеров, обеспечивать планирование мощностей и изоляцию рабочих нагрузок.
  • Инженеры по надежности работают над аспектами безопасности, мониторинга и производительности. Они должны фокусироваться на отказоустойчивости приложений, уметь отлаживать и документировать производственные проблемы, а также отвечать за управление и реагирование на инциденты.
  • И, наконец, команда инженеров по сборке и выпуску выбирает конвейер развертывания CI/CD, разрабатывает шаблоны для новых сервисов, обучает команды разработчиков и создает информационные панели для измерения эффективности и производительности.

Как организации могут измерить рентабельность инвестиций в контейнеры?

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

Преимущества контейнеров, которые могут измерить организации, включают рост производительности разработчиков, гибкую среду CI/CD, повышение эффективности инфраструктуры и снижение операционных накладных расходов.

Потенциальные затраты, которые могут сократить выгоды, включают лицензионные платежи за контейнер как сервис/платформу как сервис (CaaS/PaaS); дополнительные лицензии на ПО обеспечения безопасности, автоматизации и мониторинга; инвестиции в инфраструктуру; наем новых сотрудников для управления развертываниями; а также услуги по профессиональному внедрению для обеспечения бесперебойной работы.

Какие шаги Gartner рекомендует техническим руководителям?

Эксперты Gartner предлагают:

  • Убедиться в наличии весомого бизнес-обоснования, определить подходящие сценарии использования и внедрить культуру DevOps, прежде чем брать на себя обязательства и масштабировать среду платформы Kubernetes.
  • Создать платформенную команду, которая будет курировать выбор платформы, обеспечивать стандартизацию и автоматизацию функций DevOps, а также сотрудничать с разработчиками для развития нативных облачных архитектур.
  • Выбирать для производственных развертываний пакетные дистрибутивы ПО или управляемые облаком сервисы, которые объединяют различные технологические компоненты, упрощают управление жизненным циклом этого стека и обеспечивают мультиоблачное управление, вместо того чтобы применять подход «сделай сам».
  • Точно измерять и доносить информацию о достигаемых преимуществах — как с точки зрения технических показателей, таких как скорость работы ПО, успешность релизов и повышение операционной эффективности, так и с точки зрения бизнес-показателей, таких как рост оборота и удовлетворенность клиентов.

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