Close

Что такое контейнеры как услуга?

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

Фотография: Иэн Бьюкэнэн
Иэн Бьюкэнэн

Главный разработчик решений


Контейнеры как сервис (CaaS) — это облачный сервис, который позволяет разработчикам программного обеспечения и отделам ИТ загружать, упорядочивать, запускать и масштабировать контейнеры, а также управлять ими с помощью контейнерной виртуализации.

Контейнер — это пакет программного обеспечения, который содержит все зависимости (код, среду выполнения, конфигурацию и системные библиотеки) и может работать на любой хост-системе. С помощью CaaS команды разработчиков ПО могут быстро развертывать и масштабировать контейнерные приложения в облачных инфраструктурах высокой доступности. CaaS отличается от модели «платформа как сервис» (PaaS) тем, что опирается на использование контейнеров. PaaS работает с развертываниями конкретного «языкового стека», например Ruby on Rails или Node.js, тогда как CaaS может развертывать несколько стеков для одного контейнера.

Что такое CaaS?


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

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

Сравнение CaaS и PaaS


Значок: хранилище кода
Связанные материалы

Сравнение контейнеров и виртуальных машин

Значок: три кольца
СМ. РЕШЕНИЕ

Управление компонентами с помощью Compass

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

PaaS — это парадигма облачного хостинга, предусматривающая развертывание кода на уровне приложения. Поставщики PaaS предлагают автоматические среды выполнения, ориентированные на более высокий уровень зависимостей инфраструктуры приложений, такие как языковые среды выполнения и базы данных. Платформа в PaaS обычно связана с экосистемой языков программирования (стеком). Популярными стеками PaaS являются Ruby on Rails, Node.js, .NET и Java Spring MVC.

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

Другие облачные сервисы


Инфраструктура как услуга (IaaS)

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

SaaS

Термин «программное обеспечение как услуга»(SaaS) описывает класс бизнес-моделей для предложений облачных продуктов. SaaS-компании обычно предлагают доступ к облачному ПО с оплатой по подписке. Это отличается от традиционных бизнес-моделей поставки ПО с оплатой каждой единицы продукции. SaaS-компании строятся на основе других инфраструктурных инструментов «как услуга», таких как PaaS и IaaS.

Функции как услуга (FaaS)

Концепция «функция как услуга» (FaaS) (или бессерверные сервисы) — новое слово в сфере облачных вычислений. FaaS позволяет разработчикам напрямую загружать части кода и выполнять их, не занимаясь настройкой и контролем инфраструктуры и зависимостей базовой системы. Благодаря этому команды могут полностью сосредоточиться на важных проблемах своей предметной области, не отвлекаясь на управление инфраструктурой.

Преимущества CaaS


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

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

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

Подведем итог…


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

Ian Buchanan
Ian Buchanan

У Иэна большой опыт разработки на Java и .NET. Но гораздо больше он известен как специалист по применению agile-методик в крупных корпорациях. Сейчас он с головой погрузился в развивающуюся культуру DevOps и инструменты, улучшающие процессы непрерывной интеграции, непрерывной поставки и анализа данных. В течение своей карьеры он с успехом управлял корпоративными инструментами разработки ПО на всех этапах ее жизненного цикла. Он руководил на корпоративном уровне модернизацией процессов, которая приводила к улучшению производительности, качества и повышению удовлетворенности потребителей. Он создал международные команды, в которых ценятся саморегуляция и самоорганизация. Когда Иэн не выступает и не пишет код, он использует свои знания для создания парсеров, использования предметно-ориентированных языков и метапрограммирования. Подписывайтесь на Иэна: @devpartisan.


Поделиться статьей
Следующая тема

Рекомендуемые статьи

Добавьте эти ресурсы в закладки, чтобы изучить типы команд DevOps или получать регулярные обновления по DevOps в Atlassian.

Рисунок: DevOps

Сообщество Compass

рисунок: преодоление препятствий

Обучающее руководство: создание компонента

Рисунок: карта

Начните работу с Compass бесплатно

Подпишитесь на информационную рассылку по DevOps

Thank you for signing up