Компания Pivotal — обособленное подразделение EMC, кoторое разрабатывает продукты для виртуализации и облачных вычислений. Наиболее известным из них можно назвать Pivotal Cloud Foundry, который предназначен для упрощения жизни разработчикам ПО. Pivotal предлагает некую абстракцию для всем привычной IaaS-виртуализации, когда ПО выпускается в виде своеобразного «строительного кубика» без привязки к платформе виртуализации. Напоминает контейнеры, правда? По сути идея очень близка, но имеет свои особенности.
Теперь любой разработчик может запустить свое приложение в среде Cloud Foundry, выбрав конкретное облако по желанию: vSphere, AWS или OpenStack. Подход сулит серьезную экономию времени и сил на предоставлении доступа заказчикам к новым разработкам. А возможность работы с облаками нескольких типов еще больше повышают гибкость и решения.
Платформенное облако
Pivotal CF — платформа для облачных систем, которая выступает в качестве некоего слоя абстракции для виртуальной среды (как виртуализация для виртуализации). Суть в том, чтобы создать унифицированную площадку, на которой можно запускать любые приложения без привязки к конкретному облаку или гипервизору. То есть строительным блоком служит не виртуальная машина, а контейнер приложения. На контейнерах подробнее остановимся чуть позже, а пока разберемся, чем CF лучше привычного облака PaaS.
Platform as a Service (PaaS) — модель предоставления облачных вычислений, при которой потребитель получает доступ к использованию информационно-технологических платформ: операционных систем, систем управления базами данных, связующему программному обеспечению, средствам разработки и тестирования, размещённым у облачного провайдера.
Фактически Pivotal предлагает прийти к любому облачному провайдеру с собственным облаком-платформой, которое ставится поверх всех популярных IaaS. Зачем нужно так усложнять и почему бы просто не создать десяток VM на той же vSphere? Все очень просто: а вдруг вы хотите работать с Amazon, а не VMware? Или нужно распределенное по миру решение, а услуги облачных провайдеров в разных странах отличаются по платформе или цене за нее. В конце концов, можно построить огромное распределенное облако сразу из нескольких типов IaaS и вообще ничем себя не стеснять.
Контейнеры приложений
Так как основной целью Pivotal было создание платформы ни от чего не зависящих приложений, за основу была взята идея контейнеров (App Container). Контейнерная виртуализация не просто один из трендов нашего века, но и довольно удобный инструмент распространения ПО.
Контейнеры по перспективности сравнимы с облачными технологиями, и лидеры индустрии вкладывают значительные силы, чтобы приблизить идею к рынку. Контейнерной виртуализацией приложений активно занимаются Docker, Google, Pivotal и VMware, что позволяет рассчитывать на адекватный результат. В конечном счете предприятия смогут запускать запакованные в контейнеры приложения на привычной для них инфраструктуре VMware и гибридных сервисах vCloud® Air. Это позволит серьезно упростить внедрение приложений, ведь отпадет необходимость в постройке сопутствующей инфраструктуры.
Основным элементом контейнера является Application Instance — само приложение или его часть, основной строительный кубик при масштабировании. Каждый контейнер может состоять из одного и более Application Instance (AI), которые все вместе образуют конечное приложение. Запросы ко всем AI распределяются внутри контейнера.
Сами контейнеры — просто средство логической изоляции приложений друг от друга с мощными возможностями абстракции от среды исполнения. В контейнере виртуализируется операционная система и все необходимые ресурсы. Таким образом, каждая программа считает, что работает на собственном сервере с эксклюзивно выделенными мощностями. А с учетом запуска множества Application Instance в одном контейнере плотность и гибкость при масштабировании становятся впечатляющими.
Использование контейнерной модели с множеством Application Instance дает предприятиям следующие преимущества:
- Возможность абстрагироваться от отличий различных серверных систем облака. Вместо измерения числа процессоров и объема памяти можно оценивать TCO стандартными Application Instance.
- AI становится унифицированным элементом масштабирования любых приложений, что снижает накладные расходы и не ограничивает рост бизнеса.
- Повышается утилизация оборудования за счет большей плотности контейнерных приложений.
Архитектура Pivotal CF
Pivotal относится к платформенным облакам, которые базируются на виртуальных машинах. Вы загружаете .OVA-файл и разворачиваете из него VM для той же vSphere. При этом в пакете уже содержатся все необходимые для Cloud Foundry сервисы.
Архитектура решения изображена на рисунке ниже.
Архитектурно Pivotal CF строится из так называемых «микросервисов», каждый из которых выполняет ограниченную роль:
- базы данных;
- big data;
- система обмена сообщениями;
- мобильные сервисы;
- прочее, что может потребоваться конкретному приложению; добавляется модульно.
Сами программы размещаются в изолированных контейнерах со всем необходимым для работы. Формат контейнера предоставляет широчайшие возможности распространения. Пользователю не придется разбираться с установкой, добавлением необходимых компонентов и драйверов. Вместо этого он импортирует новый контейнер в облако и получит готовое решение.
Вся инфраструктура Pivotal управляется централизованно, включая приложения и микросервисы. Микросервисы — это такой подход к построению архитектуры, при котором каждое распределенное приложение строится из множества более мелких «кубиков», отвечающих за свой узкий круг задач. Например:
- система сбора логов и журналов производительности;
- инструмент масштабирования;
- сервисные утилиты для работы с облаком;
- система мониторинга и проактивного оповещения о проблемах.
Коммуникации между микросервисами и приложениями происходят с помощью максимально простых протоколов вроде http API. Так как каждый микросервис может разрабатываться и обновляться отдельно, упрощается добавление бизнес-функций приложения. Кроме простоты разработки, микросервисная архитектура заметно упрощает масштабирование. Вместо установки и настройки новых серверов и ОС нужно просто добавить «кубики» и подключить их к одному логическому приложению внутри контейнера.
Небольшая часть доступных для использования микросервисов
Сервисные компоненты доступны в виде единой веб-консоли, что вполне в духе времени и актуальных тенденций. CF сейчас работает с тремя основными облачными системами: VMware, OpenStack и AWS. Такая гибкость позволяет внедрить платформу в широком круге компаний — как раз тот вариант, когда ставка на лидеров рынка облаков и виртуализации оправдывает себя в долгосрочной перспективе.
С точки зрения поддержки слоя виртуализации Pivotal CF довольно гибок, но все же лучше свериться с требованиями и подобрать подходящие версии компонентов vSphere (если облако строится на решении VMware).
Приведем здесь основные требования к инфраструктуре vSphere:
- vSphere ESXi 0, 5.1, 5.5;
- vCD 1, 5.2, 5.6;
- редакция не ниже Standard;
- если включен vSphere DRS, то Automation level нужно выставить на Partially automated или Fully automated;
- Pivotal CF Ops Manager требует RW-доступа ко всей иерархии vCenter на уровне дата-центра.
Если вы решите собрать собственное облако Pivotal CF, чтобы как следует разобраться в возможностях, рекомендую начать с официальной документации по развертыванию. Например, с Getting Started.
Применимость и перспективы
Ключевое преимущество PaaS от Pivotal в том, что решение включает в себя все привычные сервисы мониторинга, конфигурации, application-серверы и прочее. Только в случае с облаком все это поставляется под ключ и не требует отдельных усилий по настройке и поддержке. Таким образом, любое приложение в формате Application Instance сразу получает такие возможности и преимущества:
- Мониторинг состояния и работоспособности приложения.
- Балансировка нагрузки.
- Управление производительностью приложения.
- Централизованный сбор логов и аудит.
- Управление сетевыми политиками доступа и упрощенный доступ к базам данных (формат микросервисов).
Разработчики обязательно оценят возможность запуска на одной платформе любого сочетания приложений на Java, Spring, Ruby Node.js, PHP, Python, Go. Единожды настроенное платформенное облако позволяет запускать и распространять ПО без привязки к компилятору и среде исполнения. Pivotal CF избавляет разработчика от головной боли с организацией стендов и пересборкой приложения под различные платформы.
Помимо усилий и времени, продукт позволяет экономить и на оборудовании с программным обеспечением (ОС, сопутствующие приложения). Это возможно за счет унификации платформы и высокой плотности приложений в виртуальной среде. Проще всего оценить возможности Pivotal на простом примере.
Пример использования Pivotal CF
Представим, что есть некая компания-разработчик с собственным приложением для совместной работы пользователей (некий менеджер To Do для небольших компаний). С выпуском обновленных версий каждый раз встает задача тестирования, включающая несколько этапов:
- Настройка отдельного стенда для тестирования сборки.
- Установка и настройка независимого окружения (базы данных, вспомогательные сервисы, виртуальные сети и т. п.).
- Установка испытуемого приложения и подключение к временной базе данных.
- Настройка прав доступа для группы тестировщиков, организация автоматического сбора логов приложения.
Если речь идет о паре релизов в год для нескольких приложений, то все это прекрасно делается руками без дополнительной автоматизации. Но если мы говорим о компании, чей основной бизнес — разработка ПО, то количество версий и приложений возрастает по экспоненте.
Основной болью для разработчика становится следующее:
- Необходимость настройки инфраструктуры под приложение.
- Оперативное выделение более мощного оборудования для нагрузочного тестирования, решение вопросов масштабирования сервиса.
- Сложность перехода на другую среду исполнения или фреймворк, так как есть привязка к ОС и компонентам стенда (а впоследствии — инфраструктуре заказчика).
В случае с написанием приложения под Cloud Foundry оно может быть сразу развернуто в окружении для команды тестировщиков. Пользователям будут автоматически назначены необходимые права, к приложению сразу подключены вспомогательные сервисы вроде MySQL. Более того, если нагрузка на программу потребует больших мощностей, то управляющий инструмент OpsManager применит политики приложения и распределит нагрузку по нескольким серверам и Application Items. Система управления может динамически разворачивать новые контейнеры для приложения на выделенных для этого VM и «подчищать» их, когда надобность отпадет.
Вместо заключения
PaaS-облако может быть полезно не только самим разработчикам ПО. Если распространять приложения в удобном кросс-платформенном формате контейнера, то установка новых версий или вариаций пользователями также сводится к простому импорту в собственное частное облако. А экономить усилия и повышать эффективность любят все компании, не только производители программного обеспечения.
С учетом постоянно растущих требований организаций к производительности сервисов и их экономической эффективности, идея распространения ПО по схеме контейнеров будет пользоваться все большей популярностью. Cloud Foundry — открытый проект, поддерживаемый лидерами индустрии. Вы всегда можете примерить идею контейнеров в собственном облаке, а мы же предлагаем познакомиться с проектом поближе.