Краткая история концепции PaaS
Концепция Platform-as-a-Service (PaaS) произвела революцию в разработке программного обеспечения, предоставляя благоприятную среду командам разработки для творчества и инноваций без необходимости управлять инфраструктурой. История начинается в начале 2010-х годов с пионеров, таких как Heroku, Deis и Cloud Foundry. Эти платформы открыли разработчикам доступ к будущему, где они могли сосредоточиться исключительно на создании приложений, а платформа брала на себя заботу об инфраструктуре. Heroku стал первопроходцем в демократизации развертывания приложений. Cloud Foundry (поддерживаемая Pivotal) заняла лидерские позиции в ентерпрайз сегменте PaaS благодаря своей функциональности, открытости к сообществу и open source подходу.
Следуя за трендом, заданным первопроходцами, появились такие платформы, как Dokku. Вдохновленные Heroku они предложили свой вариант легковесных self-hosted решений. В то же время OpenShift, разработанный Red Hat, нашел свою нишу в корпоративной среде, предложив подход к развертыванию и управлению приложениями на основе контейнеров.
С развитием облачных технологий решения PaaS начали внедрять концепцию облачно-ориентированной разработки, предлагая большую масштабируемость, компактность и эффективность. Сегодня крупные облачные провайдеры, такие как AWS, Azure и Google Cloud Platform, предлагают мощные PaaS решения, которые органично интегрируются в их основные экосистемы.
Как появление Docker изменило ситуацию?
Появление Docker в начале 2010-х годов и презентация стандартизированных контейнеров для упаковки и развертывания приложений стало переломным моментом в развитии PaaS. До Docker предложения PaaS часто ограничивались поддержкой определенных языков или отдельных фреймворков, ограничивая гибкость разработчиков.
Docker открыл возможность для универсального деплоя, исключив зависимость от используемых языков разработки. Разработчики могут упаковывать свои приложения со всеми зависимостями в единый контейнер, обеспечивая компактность и единообразие в различных средах.
Исторически Docker появился как внутренний проект компании dotCloud — провайдера Platform-as-a-Service. Осознав огромный потенциал своей технологии контейнеризации, dotCloud в 2013 году сделала ее открытой, что привело к появлению Docker как open source продукта. Это событие радикально изменило индустрию, вызвав повсеместное применение контейнеров и новую эру облачной разработки.
Развитие контейнеризации позволило поставщикам PaaS предлагать более широкие возможности в гибкости и масштабируемости. Такие платформы, как Heroku и Cloud Foundry, интегрировались с Docker и предоставили возможность разработчикам развертывать и управлять контейнеризированными приложениями. Кроме того, Docker проложил путь к облачно-ориентированным архитектурам, где решения PaaS используют инструменты оркестрации контейнеров, такие как Kubernetes, для автоматизированного развертывания и управления сложными приложениями.
Таким образом, Docker стал трансформирующей технологией для PaaS. Он создал стандартизированный, портативный и масштабируемый подход к разработке и развертыванию приложений, укрепив роль PaaS как краеугольного камня современной разработки и доставки программного обеспечения.
Как open source повлиял на PaaS?
Open source повлиял на все сферы разработки ПО, включая и ландшафт PaaS. Появление open source инструментов для PaaS изменило ситуацию как в корпоративной, так и в инженерной среде, конкурируя с проприетарными (лицензионными) подходами. Open source устранил ограничения в распространении многих инструментов PaaS и способствовал их популяризации.
Open source PaaS-фреймворки предоставляют универсальную и прозрачную среду для совместной работы разработчиков, позволяя делиться идеями и улучшать функциональность. Это ускорило внедрение и обеспечило поддержку со стороны заинтересованных стейкхолдеров. Кроме того, такие решения стали экономичной альтернативой коммерческим платформам, делая удобные инструменты доступными для стартапов, небольших команд и организаций с ограниченным бюджетом.
Открытый характер таких инструментов также обеспечил совместимость с другими технологиями. Именно open source PaaS-инструменты первыми приняли и начали развивать Docker, а в последующем и Kubernetes.
Как развитие DevOps изменило концепцию PaaS?
До появления DevOps разработка программного обеспечения была разрозненной, что мешало гибкости и тормозило инновации. Принципы DevOps, такие как непрерывная интеграция и доставка кода, а также разделение ответственности, способствовали оптимизации и развитию процесса разработки. Это идеально совпало с принципами провайдеров PaaS, которые всегда стремились оптимизировать развертывание приложений и управление инфраструктурой.
Однако в процессе развития появились две области противоречий между PaaS и подходами DevOps. Во-первых, PaaS-инструменты, создавая абстракции, могли противоречить принципу открытости, важному для DevOps. Во-вторых, DevOps выступает за предоставление отдельным разработчикам комплексных прав по контролю безопасности. Например, отдельное направление DevSecOps продвигает подход, в котором разработчики полностью контролируют безопасность своих приложений. В рамках PaaS платформ невозможно добиться такой степени свободы и прозрачности.
Современное состояние PaaS
Современные инструменты PaaS играют ключевую роль в унификации опыта разработчиков. Распространение контейнеризации и, в наши дни, Kubernetes создали предпосылки к развитию, унификации и стандартизации процесса разработки и подтолкнуло дальнейшее развитие инструментов PaaS.
Одним из интересных кейсов является использование PaaS платформ для упрощения навигации в экосистеме CNCF (Cloud Native Computing Foundation), насчитывающей более 180 проектов, развивающих различные решения и инструменты для создания, развертывания и управления современными облачными приложениями.
PaaS помогает разработчикам справляться с этим многообразием, выбирая оптимальные методы для конфигурации и развертывания. Например, использование PaaS может избавить команду от необходимости решения задач по выбору простейшего способа настройки балансировщика нагрузки или оптимального способа настройки ingress и т.д.
Появление платформенной инженерии заполнило пробел между сложными техническими аспектами и потребностями бизнеса. Это упрощает использование облачных технологий и стимулирует разработку инновационных решений.
Фокус на опыте разработчиков
В последние годы в ИТ индустрии наблюдается усиление фокуса на улучшение опыта разработчиков (Developer Experience, DevEx). Это связано не только с желанием повысить уровень удовлетворенности сотрудников. Исследования показывают, что улучшение DevEx повышает продуктивность и, в конечном итоге, прибыльность компаний.
Понятие DevEx возникло, когда организации начали искать способы создания модульных платформ, которые включают инфраструктуру, сервисы, инструменты, базы знаний и вспомогательные ресурсы. В этот процесс органично вписывается тренд на Internal Developer Portals (IDP) — внутренние порталы для разработчиков, которые объединяют ресурсы, упрощают работу и способствуют сотрудничеству, повышая производительность. Примером может служить платформа Backstage.
В текущей экономической ситуации компании стремятся максимально эффективно использовать свои ресурсы. DevEx стал популярной темой. Cloud Foundry заложил основы улучшения опыта разработчиков, предоставив удобный функционал, где для развертывания критически важных приложений требовалась всего одна команда — практически магическая cf push.
Для улучшения DevEx технические руководители сосредотачиваются на трех ключевых метриках:
-
Цикл обратной связи: время, которое разработчикам приходится ожидать выполнения своей работы.
-
Когнитивная нагрузка: сколько ментальных усилий разработчики тратят на выполнение своей работы.
-
Пребывание в потоке: это состояние, которое дает возможность разработчикам работать "на полной концентрации" для достижения максимальной эффективности.
Этот тренд усилил потребность в совершенствовании разработческих инструментов, и платформы PaaS оказались в центре этих процессов.
Будущее PaaS
Основные проблемы, для решения которых изначально был заточен PaaS, остаются по прежнему актуальными, несмотря на появление новых подходов, сменяющих старые.
В экосистеме Kubernetes и CNCF будущее PaaS будет основано на взаимной адаптации и эволюции. Эти платформы будут сосуществовать и адаптироваться к постоянно меняющимся потребностям разработчиков. Эту тенденцию можно выделить в два ключевых направления: интеграция с Kubernetes и специализация для определенных случаев использования.
Интеграция с Kubernetes приведет к тому, что крупные облачные провайдеры, такие как AWS, Azure и Google Cloud Platform (GCP), будут глубже внедрять управляемые сервисы Kubernetes в свои предложения PaaS. Это позволит разработчикам работать в привычной среде PaaS, одновременно используя мощные возможности Kubernetes для оркестрации контейнеров. Кроме того, open source решения PaaS, такие как Cloud Foundry и OpenShift, будут продолжать использовать Kubernetes в качестве ядра для управления контейнерами, стирая границы между PaaS и Kubernetes.
Специализация в платформах PaaS даст возможность сфокусироваться на потребностях определенных сообществ разработчиков и отраслей. Это позволит более точно решать уникальные задачи и удовлетворять требования разных команд.



