Рынок облачных сервисов продолжает стремительный рост. Согласно Gartner, в 2019 г. сегмент SaaS составил почти $100 млрд., IaaS $40,3 млрд, и PaaS - $32,2 млрд. По данным IDC, в 2019 году компании ежегодно расходовали более $3,5 млн на поддержку и развитие облачных инфраструктур. По прогнозам аналитиков, в дальнейшем эта цифра будет только расти.
Компании используют облака по-разному – одним достаточно облачных версий программного обеспечения, другие – арендуют инфраструктуру в облаке. Если же организация занимается разработкой, то имеет смысл задуматься об использовании платформы как сервиса. В этой статье рассмотрим разницу между PaaS и IaaS для разработчиков.
Cloud-Native и Cloud-Ready приложения
Приложение является cloud-ready, если его можно развернуть как в публичном, так и в частном облаке. То есть, приложение должно быть разработано таким образом, чтобы оно могло «воспользоваться» возможностями, предоставляемыми уровнем Platform-as-a-Service (PaaS), на котором оно работает.
Что такое Cloud-Native приложения?
Приложение, разработанное специально для облачной архитектуры. Здесь имеется в виду, что приложения используют все преимущества облачной платформы, от разработки до развертывания. Cloud-Native приложения построены как набор не связанных между собой микросервисов, управляемых облачной платформой.
Infrastructure-as-a-Service – IaaS
Принцип инфраструктуры как услуги (IaaS) заключается в том, что клиент получает доступ к виртуальным ИТ-ресурсам – вычислительным мощностям, хранилищу, каналам связи.
Облачный провайдер предоставляет такие услуги как мониторинг, ведение логов, кластеризация, автомасштабирование, резервное копирование, восстановление, репликации и другие. Эти услуги в большей степени определяются политиками, что позволяет пользователям IaaS реализовывать высокий уровень автоматизации для важных инфраструктурных задач. Например, пользователь может внедрить политики балансировки нагрузки для поддержания доступности и производительности приложений.
Плюсы и минусы IaaS
Плюсы
-
Проще, быстрее и экономичнее управлять рабочей нагрузкой без необходимости покупать, управлять и поддерживать базовую инфраструктуру.
-
С помощью IaaS компания может просто арендовать инфраструктуру, например, для временных рабочих нагрузок, экспериментальных проектов.
-
Оплата только за использованные ресурсы по модели Pay-as-you-go.
Минусы
-
Обеспечение отказоустойчивости облачного сервера полностью зависит от провайдера.
-
Отсутствие полной гарантии безопасности.
Платформа как услуга – PaaS
Platform-as-a-Service предоставляет пользователям платформу и среду для разработки, управления и запуска приложений через Интернет. Сервис облегчает разработчикам задачи, связанные с созданием и обслуживанием инфраструктуры, необходимой для разработки и запуска приложений. Проще говоря, PaaS включает платформу и операционные системы, управляемые провайдером. Это своего рода промежуточный вариант между IaaS и SaaS, заточенный специально под разработку ПО.
Роль контейнеризации в PaaS
Контейнеризация приложений представляет собой метод виртуализации на уровне ОС, используемый для развертывания и исполнения распределенных приложений без запуска целой виртуальной машины (ВМ) для каждого приложения. Контейнеризация наиболее применима в архитектуре микросервисов, что вызвало рост Docker и Kubernetes.
Каждый сервис в микросервисном приложении должен быть автономным. Сервисам необходимо собственное распределение ресурсов для вычислений, памяти и работы в сети. Однако, как с точки зрения стоимости, так и с точки зрения управления, при переходе в облако размножить количество виртуальных машин для размещения каждой службы приложения, невозможно. Именно здесь приходят на помощь контейнеры. Они чрезвычайно легковесны и обеспечивают необходимую степень изоляции, что делает их отличной альтернативой виртуальным машинам для упаковки микросервисов.
Плюсы и минусы PaaS
Плюсы
-
Возможность программировать на высоком уровне, упрощая управление и обслуживание приложением.
-
Возможность автомасштабирования, что в целом делает разработку более эффективной.
Минусы
-
Общая стоимость приложения возрастает, так как оно может быть в значительной степени масштабировано.
-
Привязка к определенной программной среде, языку или интерфейсу.
IaaS или PaaS — что выбрать?
Platform-as-a-Service или Infrastructure-as-a-Service – каждый из этих облачных сервисов имеет свои особенности и функциональность, а делать выбор нужно исходя из конкретных требований бизнеса.
Если важен контроль над облаком, лучше выбрать IaaS. В этом случае компания полностью контролирует виртуальные вычислительные ресурсы. Однако это требует определенных знаний и навыков для управления инфраструктурой.
PaaS менее гибок, но больше ориентирован на разработчиков. Сервис позволяет автоматизировать рабочие процессы, делает разработку, тестирование и развертывание приложений быстрым, простым и экономичным; предоставляет разработчикам ПО портал самообслуживания для управления вычислительной инфраструктурой из централизованных платформ, установленных поверх аппаратного обеспечения.