В новом отчете Gartner «CTO’s Guide to Containers and Kubernetes — Answering the Top 10 FAQs» рассказывается, что предприятия должны знать о контейнерах и Kubernetes, основных сценариях их использования и о том, как они помогают реализовать архитектуру нативных облачных решений, сообщает портал The New Stack.
Нативные облачные приложения и микросервисы необходимы для эффективного функционирования любого современного бизнеса. Но технические руководители не могут просто купить готовые решения или перенести без модификации и планирования унаследованную инфраструктуру в нативную облачную среду. Инженерам нужны правильные инструменты, команды и навыки, однако бывает трудно понять, какие инструменты следует приобрести и внедрить и как рассчитать возврат инвестиций (ROI).
В новом отчете Gartner говорится, что контейнеры и Kubernetes превратились в выдающуюся платформенную технологию для создания нативных облачных приложений и модернизации унаследованных рабочих нагрузок. К 2027 г. более 90% глобальных организаций будут использовать контейнерные приложения в производстве, что значительно больше, чем 40% в
Авторы исследования также пишут, что «предприятия сталкиваются с проблемами в точном измерении рентабельности инвестиций в нативные облачные технологии и в создании правильной организационной структуры для их процветания».
Что такое контейнеры, 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% больше, чем в феврале
Среди отраслевых тенденций, возникающих вокруг 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 век. Однако для успешного развертывания и окупаемости инвестиций организациям следует убедиться в наличии необходимых приложений и людей.