Close

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

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

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

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


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

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

Логотип Jira Product Discovery.

Try Compass for free

Improve your developer experience, catalog all services, and increase software health.

Что такое 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