Cloud Foundry
Cloud Foundry — это открытая платформа как услуга (PaaS) с открытым исходным кодом, предназначенная для развёртывания, масштабирования и управления приложениями в различных облачных средах. Cloud Foundry автоматизирует процессы сборки, тестирования, доставки и эксплуатации программного обеспечения (CI/CD), абстрагируя разработчиков от инфраструктурных деталей, таких как операционные системы, сети и хранилища. Проект изначально был разработан компанией VMware и передан под управление фонда Cloud Foundry Foundation, входящего в структуру Linux Foundation.
История
Предпосылки возникновения
До появления Cloud Foundry развёртывание приложений требовало от разработчиков ручной настройки серверов, баз данных и балансировщиков нагрузки. Каждое приложение привязывалось к конкретной инфраструктуре, что затрудняло перенос между дата-центрами. PaaS-решения, такие как Google App Engine (2008 год) и Heroku (2007 год), предложили альтернативу, но были проприетарными и привязывали пользователя к одному поставщику. Возникла потребность в открытой платформе, поддерживающей множество языков программирования и облачных провайдеров.
Разработка и запуск
В апреле 2011 года компания VMware (США) анонсировала Cloud Foundry как первую открытую PaaS-платформу. Исходный код был опубликован под лицензией Apache 2.0, что позволило сообществу и компаниям создавать собственные дистрибутивы и расширения.
Переход к фонду
В 2014 году, после покупки VMware компанией EMC, управление проектом было передано независимому Cloud Foundry Foundation. Это решение было принято для обеспечения нейтральности и привлечения большего числа участников. В 2015 году фонд вошёл в структуру Linux Foundation. Под эгидой фонда были разработаны стандарты сертификации для совместимых реализаций и добавлена поддержка контейнеров Docker.
Актуальное состояние
На 2024—2025 годы Cloud Foundry остаётся одной из наиболее зрелых PaaS-платформ с открытым исходным кодом. Разработку продолжает международное сообщество, а основные коммерческие дистрибутивы выпускаются компаниями VMware (теперь часть Broadcom Inc. (США)), SAP (Германия), IBM (США) и другими. Проект активно развивает поддержку Kubernetes через проект CF-for-K8s.
Архитектура
Cloud Foundry построена на модульной микросервисной архитектуре, в которой каждый компонент выполняет строго определённую функцию и может быть заменён или масштабирован независимо. Основная программная часть написана на языках Go и Ruby.
Диспетчер облака
Диспетчер облака является центральным API-сервером, обрабатывающим все запросы от интерфейса командной строки, веб-консоли и средств автоматизации. Он управляет жизненным циклом приложений, осуществляет аутентификацию пользователей и координирует работу остальных компонентов.
Diego
Diego — это подсистема планирования и выполнения задач, реализованная на Go. Она заменила старую систему Droplet Execution Agent (DEA) в 2016 году. Diego запускает приложения как изолированные контейнеры на основе Garden (собственный контейнеризатор Cloud Foundry) или, опционально, на основе Docker. Diego обеспечивает:
- автоматическое масштабирование вверх и вниз по числу экземпляров;
- перезапуск упавших экземпляров;
- размещение приложений на узлах с наименьшей нагрузкой.
Маршрутизатор
Маршрутизатор (Gorouter) — это высокопроизводительный обратный прокси-сервер на Go, который принимает входящие HTTP и TCP-запросы и направляет их к необходимым экземплярам приложений. Он поддерживает балансировку нагрузки, проверку состояния приложений (health checks) и WebSocket-соединения.
Службы
Cloud Foundry предоставляет механизм привязки управляемых служб к приложениям. Любые внешние ресурсы — базы данных (PostgreSQL, MySQL), очереди сообщений (RabbitMQ), кэши (Redis) или мониторинг — регистрируются в платформе как сервисы. Разработчик привязывает службу к приложению одной командой, после чего переменные окружения приложения автоматически заполняются данными для подключения.
Классификация и виды
По типу развёртывания
- Публичное облако (PaaS) — пользователи арендуют готовую платформу у провайдера (например, IBM Cloud Foundry, SAP Cloud Platform). Часто входит в состав более крупного облачного предложения как сервис (IaaS).
- Частное облако (on-premises) — организация развёртывает Cloud Foundry на собственном оборудовании или в виртуальной инфраструктуре (например, с помощью BOSH).
- Гибридное развёртывание — комбинация локальных и облачных кластеров Cloud Foundry, объединённых единым управлением.
По дистрибутиву
- Исходный проект CF Community — базовая версия, поддерживаемая сообществом, без коммерческой поддержки.
- VMware Tanzu Application Platform — коммерческий дистрибутив от Broadcom (ранее VMware), включающий расширенные средства безопасности, мониторинга и интеграции с экосистемой VMware.
- SAP BTP (Business Technology Platform) — адаптированная версия Cloud Foundry для корпоративных приложений SAP, с поддержкой языков ABAP и Java.
- IBM Cloud Code Engine — серверный вариант Cloud Foundry, минимизирующий настройки для быстрого запуска приложений.
Применение
Разработка и развёртывание приложений
Cloud Foundry применяется в организациях, где требуется быстрая доставка изменений и частые релизы (непрерывная интеграция и доставка). Разработчики загружают код с помощью интерфейса командной строки cf push; платформа автоматически определяет язык программирования (через билдпаки), компилирует (если требуется) и запускает приложение.
Многоязычная поддержка
Платформа поддерживает билдпаки для Java, Python, Ruby, Node.js, PHP, Go, .NET Core, а также для статического контента и заказных сценариев. В качестве альтернативы можно использовать образы Docker.
Масштабирование и отказоустойчивость
Благодаря механизму Diego и автоматическому перезапуску, Cloud Foundry используется для критически важных приложений, требующих высокой доступности (SLA 99,99 % и выше). Масштабирование выполняется горизонтально путём добавления новых экземпляров командами cf scale или автоматически на основе нагрузки.
Интеграция с инструментами CI/CD
Cloud Foundry интегрируется с системами сборки (Jenkins, GitLab CI, Concourse), которые после прохождения тестов автоматически запускают cf push. Это позволяет организовать непрерывный пайплайн: от коммита в репозиторий до запущенного приложения в продакшене.
Преимущества и критика
Преимущества
- Открытый код и отсутствие блокировки разработчика — при необходимости можно перейти на другой дистрибутив или развернуть собственную инстанцию.
- Единый API для всех сред — конфигурации приложений переносятся между локальными и облачными установками без изменений.
- Автоматизация инфраструктуры — разработчику не нужно знать, как настраивать серверы, базы данных или обратные прокси.
- Безопасность — платформа автоматически обновляет билдпаки и базовые образы, закрывая известные уязвимости.
Критика
- Сложность администрирования — развёртывание и поддержка крупного кластера Cloud Foundry требуют высокой квалификации DevOps-инженеров и знания системы BOSH для оркестрации.
- Ограниченная гибкость — разработчики не могут полностью контролировать окружение выполнения (например, версии библиотек ОС) по сравнению с контейнерными решениями на основе Docker и Kubernetes.
- Эффективность ресурсов — из-за фиксированного числа экземпляров и использования виртуальных машин может наблюдаться избыточное потребление памяти по сравнению с mikro-сервисами на Kubernetes.
- Снижение популярности относительно Kubernetes — после 2018 года многие организации перешли на Kubernetes как более гибкую платформу для управления контейнерами, что привело к сокращению активных коммерческих развёртываний Cloud Foundry. Вместе с тем, проект сохраняет нишу для готовых PaaS-решений.
Интересные факты
- Название Cloud Foundry происходит от английского «foundry» (литейный цех), символизируя «отливку» и «формовку» приложений в облачной среде.
- BOSH — инструмент для развёртывания и обновления Cloud Foundry — изначально был самостоятельным проектом, предназначенным для управления большими распределёнными системами.
- В 2017 году Cloud Foundry Foundation сертифицировала более 10 облачных провайдеров, включая российских (например, платформа «СберКлауд» от Сбербанка (Россия)), но к 2025 году многие из них прекратили поддержку или перешли на собственные PaaS-решения.
Источники
- Cloud Foundry Foundation. Cloud Foundry Documentation (официальное руководство).
- Bernstein, D. «Cloud Foundry: An Open Source Platform as a Service». IEEE Cloud Computing, 2014.
- Сухомлин, В. А. «Облачные технологии: платформы и модели». МГУ, 2019.
- Материалы конференции Cloud Foundry Summit (2015—2023).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →