Что такое «контейнеры как услуга» (CaaS)?

По IBM Services

Контейнеры как услуга (CaaS) — это модель облачных услуг, которая позволяет пользователям передавать, систематизировать, запускать, останавливать, масштабировать контейнеры, приложения и кластеры или управлять ими иным образом. Для обеспечения этих процессов может применяться технология виртуализации на базе контейнеров, интерфейс прикладных программ (API) или интерфейс веб-портала. CaaS помогает пользователям создавать защищенные, масштабируемые приложения на основе контейнеров, используя локальные центры обработки данных или облачную среду. Согласно этой модели контейнеры и кластеры выполняют роль услуг и могут быть развернуты в облаке или локальном ЦОД.  

Почему CaaS играет важную роль?

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

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

Среди разнообразных услуг облачных вычислений модель CaaS находится между IaaS (инфраструктура как услуга) и PaaS (платформа как услуга). Базовым ресурсом CaaS являются контейнеры, в отличие от виртуальных машин и физических устройств, широко используемых для сред IaaS.

Неотъемлемая часть технологии CaaS — возможность координации, обеспечивающая автоматизацию ключевых ИТ-функций. В качестве примеров платформ координации CaaS можно провести Google Kubernetes и Docker Swarm. IBM, Amazon Web Services (AWS) и Google — примеры поставщиков услуг CaaS в общедоступном облаке.

Почему столь важны контейнеры?

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

К преимуществам использования контейнеров для клиентов, в частности, относятся:

  • Переносимость: Приложение, созданное в контейнере, имеет все необходимое для выполнения, включая зависимости и файлы конфигурации. Поддержка переносимости позволяет конечным пользователям уверенно запускать приложения в различных средах, включая общедоступные или частные облачные среды. Кроме того, это дает предприятиям огромную гибкость, ускоряя процесс разработки и упрощая замену поставщика услуг или облачной среды.
  • Высокая эффективность и снижение расходов: Поскольку контейнерам не требуется отдельная операционная система, они задействуют меньше ресурсов, чем виртуальная машина. Для работы контейнера обычно достаточно лишь несколько десятков мегабайт, что позволяет запускать несколько контейнеров на одном сервере без использования виртуальной машины. Таким образом, высокая эффективность контейнеров помогает снизить затраты в центре обработки данных. Кроме того, контейнеры позволяют сократить расходы на физическое оборудование, поскольку отличаются более высоким коэффициентом использования базового оборудования и предъявляют более низкие требования к аппаратным ресурсам.

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

  • Безопасность: Изолированность контейнеров усиливает безопасность, минимизируя риски. Негативные последствия, связанные со взломом одного приложения, не повлияют на работу других контейнеров.

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

  • Скорость: Запуск, создание, репликация или уничтожение контейнера занимает всего несколько секунд, без участия операционной системы. Это ускоряет процесс разработки, вывода на рынок и эксплуатации, а также существенно упрощает и облегчает выпуск новых версий или программного обеспечения. Высокая эффективность позволяет предприятиям и разработчикам оперативно реагировать на неисправности и добавлять новые функции по запросу клиентов.
  • Масштабирование: Контейнеры поддерживают возможность горизонтального масштабирования, что позволяет конечным пользователям использовать несколько идентичных контейнеров в пределах одного кластера. Интеллектуальные функции масштабирования и использование только необходимых контейнеров тогда, когда они нужны, позволяют существенно сократить расходы и повысить окупаемость инвестиций.  
  • Оптимизация процесса разработки: Эффективный и рациональный конвейер разработки относится к преимуществам инфраструктуры на базе контейнеров. Использование контейнеров исключает проблему несовместимости сред, поскольку приложения могут работать, как если бы они были созданы локально. Это позволяет оптимизировать процедуры тестирования и отладки, уменьшив их сложность и трудоемкость. При этом упрощается и процесс обновления приложений: разработчику достаточно изменить только файл конфигурации, сгенерировать новые контейнеры и удалить предыдущие; весь процесс займет совсем немного времени.  

Управляемые услуги на базе контейнеров и стеки облачных контейнеров

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

  1. Платформа CaaS и развертывание в общедоступном облаке или на базе локальной инфраструктуры

  2. Управляемая услуга на основе контейнеров, предоставляемая Google, Amazon или Microsoft Azure (самые популярные поставщики услуг в общедоступном облаке)

Ни первый, ни второй вариант не связан с дополнительными ограничениями для предприятия. С тех пор как организация Cloud Native Computing Foundation (CNCF) оформила партнерство с Google и Linux Foundation и запустила программу сертификации Kubernetes, все поставщики обязаны придерживаться стандарта переносимости контейнеров и согласованности между платформами.    

Выбирая между управляемой контейнерной платформой и локальным развертыванием, корпоративные клиенты должны сначала ответить на следующие вопросы:

  • Какой способ развертывания контейнера является предпочтительным: в локальной среде или в общедоступном облаке?
  • Обладают ли ваши ИТ-специалисты необходимыми навыками для проектирования, развертывания и администрирования среды Kubernetes? Что требуется для обучения сотрудников и поддержания их навыков?
  • На какой платформе общедоступного облака должны быть развернуты контейнеры? Примеры: Google, AWS и Azure.
  • Какие могут быть последствия использования мультиарендной или общей панели управления Kubernetes?

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

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

Эпоха Kubernetes

Борьба за господство в сфере координации контейнеров, предсказанная в 4 квартале 2017 года и завершившаяся ко 2 кварталу 2018 года, напомнила «войну форматов» между Betamax и VHS. Победителем стала платформа Google Kubernetes Engine (GKE), теперь именуемая просто Kubernetes. Как только лидер был определен, поставщики и разработчики с удвоенной силой сосредоточились на создании и совершенствовании своих решений для Kubernetes.

Выпуск управляемой услуги Kubernetes и гибридных стеков контейнеров упростил внедрение Kubernetes. Поскольку платформа GKE способствовала внедрению концепции управляемых контейнерных услуг, Kubernetes всегда пользовался большим спросом по сравнению с конкурирующими предложениями от AWS и Azure. Появление в середине 2018 года Amazon Elastic Container Service for Kubernetes (Amazon EKS) и Azure Kubernetes Service (AKS) еще больше укрепило господство GKE.

Посмотреть видео

Kubernetes и координация контейнеров

Kubernetes (K8s) — это система координации контейнеров для автоматизации процессов развертывания, управления и масштабирования. Платформа Kubernetes, изначально разработанная Google и ставшая открытой в 2014 году, находится в ведении CNCF. Веб-сайт Kubernetes описывает Kubernetes как «портативную, расширяемую платформу с открытым исходным кодом, предназначенную для управления контейнерными задачами и услугами с целью облегчения декларативной конфигурации и автоматизации».

К трем основным платформам, функции которых выполняет Kubernetes, относятся:

  • Контейнеры
  • Микросервисы
  • Портативное облако

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

Kubernetes, IBM и Red Hat: переход к открытым технологиям

IBM и Red Hat на протяжении двух десятилетий занимаются совместными исследованиями. Компания IBM, которая одной из первых поддержала Linux, в сотрудничестве с Red Hat способствовала разработке и поддержке решений Linux корпоративного класса. Тесное сотрудничество между компаниями в последние годы помогло сделать Kubernetes и гибридные облачные решения доступными широкому кругу потребителей. Кроме того, Kubernetes — основа комбинированной гибридной облачной стратегии IBM и Red Hat.

Все эти инновации легли в основу отдельного бизнес-направления IBM, связанного с технологией гибридного облака, доход от которого уже составил USD 19 млрд долларов США. После завершения приобретения, запланированного на конец 2019 года, Red Hat войдет в группу гибридных облачных решений IBM.  

Kubernetes, IBM и Hertz

В 2018 году компания Hertz Corporation, известная как просто Hertz, отпраздновала свой столетний юбилей. В борьбе с устаревшими технологиями компания нуждалась в помощи для оптимизации бизнес-архитектуры и технологии. Hertz вместе с IBM Cloud Garage™ разработали архитектуру Kubernetes, которая помогла предприятию создать и развернуть приложения на основе микросервисов в среде IBM Cloud™ Private и IBM Cloud Container Service.

В рамках сотрудничества с IBM компания Hertz модернизировала свои базовые системы по всем цифровым каналам, процессы резервирования, тарифы и прочие механизмы, используя гибкие архитектуры на основе контейнеров и микросервисов. Hertz как компания с глобальным охватом стремится обеспечить высокий уровень готовности приложений, масштабируемость в пределах предприятия, планируя повысить продуктивность до 1,5 млрд запросов и 30 млн обновлений ежедневно после запуска приложений.

Kubernetes и ПО с открытым исходным кодом

ПО с открытым исходным кодом продолжает завоевывать популярность, доказывая важность открытого исходного кода в мире ИТ. В публикации IBM Services™ отмечается, что «96% коммерческих приложений содержат компоненты открытого исходного кода в том или ином виде» (PDF, 3,9 МБ).1

Артуро Суарез — ярый сторонник ПО на основе открытого исходного кода. Он создал OpenStack — первый коммерческий дистрибутив бесплатной программной платформы на основе открытого исходного кода для облачных вычислений. В 2019 году в своем интервью сайту IT Biz Advisor Суарез так описал свой опыт работы с Kubernetes: «Kubernetes [является] победителем в гонке за доминирование в области координации контейнеров», «Kubernetes развивается даже быстрее, чем OpenStack, новая версия которого выходит каждые три месяца, предлагает более удобную модель управления и эффективное внедрение». 

IBM Cloud Kubernetes Service

В середине мая 2018 года, после стратегических инвестиций IBM в Kubernetes услуга IBM Cloud Container Service в результате ребрендинга была переименована в IBM Cloud Kubernetes Service (доступна с мая 2017 года).

IBM Cloud Kubernetes Service, управляемая услуга на базе контейнеров для быстрой доставки приложений, поддерживает интеграцию с IBM Watson®, блокчейном и другими инновационными услугами. Помимо прочего, IBM Cloud Kubernetes Service предоставляет следующие возможности:

  • Интеллектуальное планирование
  • Самовосстановление
  • Горизонтальное масштабирование
  • Обнаружение служб
  • Распределение нагрузки
  • Автоматическое развертывание и возврат
  • Управление ключами и конфигурациями

К расширенным возможностям IBM Cloud Kubernetes Service также относятся упрощенное управление кластером, проектирование собственного кластера, политики изоляции и защиты контейнеров, а также интегрированные инструменты обслуживания для согласованного развертывания.

В настоящее время IBM Cloud Kubernetes Service включает более 10 тысяч управляемых платных производственных кластеров. Среди клиентов, использующих данную услугу: Think Research, Eurobits Technologies и The Weather Company (компания, принадлежащая IBM). Предприятия используют IBM Cloud Kubernetes Service для выполнения следующих задач:

  • Создание кластеров.
  • Развертывание масштабируемого веб-приложения в Kubernetes.
  • Анализ журналов и мониторинг работоспособности приложений Kubernetes.
  • Обеспечение непрерывного развертывания в среде Kubernetes.

Для получения дополнительной информации о том, как услуги на базе контейнеров, облачные услуги и Kubernetes могут помочь вашему бизнесу, запланируйте бесплатную персональную консультацию с экспертом IBM. Кроме того, можно подписаться на IBM Cloud Kubernetes Service, чтобы получить бесплатный доступ к среде IBM Cloud для разработки и развертывания приложений. IBM поможет привести ваш бизнес к успеху

Дополнительная полезная информация о контейнерах и Kubernetes

Источники:

  1. IBM Services. «Решения по поддержке программных сред с открытым исходным кодом», IBM, 2019 г. https://www.ibm.com/downloads/cas/BWJWOJRD (PDF, 3,9 МБ)
  2. Камилла Шарп. «Ответы на вопросы: как технологии с открытым исходным кодом сотрясают основы ИТ», IBM, 16 мая 2019 г. https://itbizadvisor.com/2019/05/qa-how-open-source-technology-is-shaking-up-the-it-landscape