Системы PaaS имеют следующие основные отличительные особенности:
- поддержка пользовательских приложений: поддержка разработки, развертывания и эксплуатации пользовательских приложений. Системы PaaS обычно поддерживают облачные приложения, которые могут в полной мере использовать преимущества масштабируемых, адаптивных и распределенных функциональных возможностей облачной инфраструктуры. При этом для их использования разработчикам приложений даже не нужно создавать специальный программный код;
- предоставление сред выполнения: системы PaaS обычно предлагают среды выполнения для приложений, где каждая среда выполнения поддерживает либо один, либо небольшой набор языков программирования и фреймворков, например среды выполнения Node.js, Ruby и РНР. Отличительной особенностью многих систем PaaS является поддержка широкого ряда сред выполнения. Это позволяет разработчикам выбирать наиболее подходящую технологию для решения поставленной задачи. Такие среды иногда называют многоязычными.
Среды выполнения могут использовать контейнеры (см. раздел 7) и бессерверные вычисления (см. раздел 8);
- механизмы быстрого развертывания: многие системы PaaS предоставляют разработчикам и операционному персоналу автоматизированный механизм push and run для развертывания и работы приложений. Он обеспечивает динамическое выделение ресурсов, когда код приложения передается облачному сервису PaaS через API. По умолчанию требования к конфигурации являются минимальными. При этом предусмотрена возможность для контроля конфигурации, если это необходимо; например, возможность контроля количества параллельно работающих экземпляров приложения, чтобы справиться с рабочей нагрузкой или обеспечить отказоустойчивость;
- поддержка ряда функциональных возможностей промежуточного ПО: приложения предъявляют разнообразные требования, для удовлетворения которых предоставляется широкий спектр инфраструктуры приложений (промежуточное ПО) с поддержкой ряда функциональных возможностей. Одним из примеров является управление базами данных. Для этих целей предоставляются технологии баз данных как SQL, так и NoSQL. Другие функциональные возможности включают в себя сервисы интеграции, управление бизнес-процессами, сервисы бизнес-аналитики, обработчики правил, сервисы обработки событий и мобильные backend-сервисы;
- предоставление сервисов: системы PaaS зачастую предоставляют некоторые функциональные возможности в виде ряда отдельных сервисов, которые обычно вызываются через API того или иного типа. Сервисы устанавливаются и запускаются поставщиком услуг, поэтому потребители сервисов облачных вычислений этим не занимаются. Например, если используются сервисы базы данных, поставщик услуг обеспечивает доступность и надежность, наличие реплик и резервных копий данных базы данных, защиту данных и т. п. Услуги, предоставляемые поставщиком, позволяют уменьшить объем работы и сложность при создании программных систем. Вместо того чтобы устанавливать потенциально сложный набор ПО и управлять им, клиенты могут получить готовые функциональные возможности от поставщика;
- предварительно сконфигурированные функциональные возможности: многие системы PaaS поддерживают функциональные возможности, которые предварительно настраиваются поставщиком, при этом разработчикам и операционному персоналу заказчика доступен минимум настроек. В результате процесс упрощается, повышается продуктивность работы и уменьшается вероятность возникновения непредвиденных проблем. При этом такие функциональные возможности проще в управлении и в отладке. Некоторые системы могут автоматически настраивать конфигурацию на основе моделей использования и рабочих нагрузок. Это дополнительно сокращает количество специалистов и времени, необходимых для обеспечения максимально эффективной работы приложений;
- функции управления API: бизнес-приложения часто реализуют отдельные функциональные возможности через API. Это может быть связано с характером пользовательского интерфейса приложения. Мобильным приложениям обычно требуется API, чтобы, работая независимо от бизнес-приложения, они могли получать доступ к данным и транзакциям по мере необходимости. В других случаях предприятие может испытывать необходимость предоставления другим сторонам (партнерам, клиентам, поставщикам) возможностей для интеграции своих собственных приложений с приложениями компании. Такая интеграция осуществляется через API. Предоставление API требует определенного уровня контроля, чтобы только авторизованные пользователи могли получить доступ к API и каждый пользователь мог получить доступ только к индивидуально разрешенным функциональным возможностям. Для этого необходимо наличие определенных функций управления API, которые предлагаются многими системами PaaS;
- функции обеспечения безопасности: безопасность — один из самых важных аспектов любого решения. Системы PaaS обычно оснащены предварительно интегрированными средствами обеспечения безопасности, что позволяет снизить нагрузку на разработчиков и операционный персонал. Функциональные возможности включают в себя межсетевой экран, управление конечными точками, защищенную обработку протоколов, доступ и авторизацию, шифрование данных при перемещении и хранении, проверку целостности, а также механизмы обеспечения отказоустойчивости, такие как резервные копии данных и автоматическое резервное копирование. Системы PaaS могут предложить эти функциональные возможности, оказывая минимальное или нулевое влияние на код приложения, упрощая задачи разработчика. Кроме того, поскольку базовая среда выполнения является частью платформы, поставщик облачной службы осуществляет установку исправлений системы безопасности ОС, обнаружение и удаление вредоносных программ и другие важные задачи по поддержанию безопасности. Таким образом, пользователям не нужно заниматься поиском уязвимостей системы безопасности в собственном коде;
- инструменты разработчика: многие системы PaaS стремятся унифицировать и упростить процессы разработки и эксплуатации, т. е. поддерживают концепцию DevOps, объединяя задачи разработки и эксплуатации. Предоставляемые инструменты разработки включают в себя редакторы кода, репозитории кода, инструменты сборки, инструменты развертывания, инструменты и сервисы тестирования, и инструменты обеспечения безопасности. Часто предлагаются сервисы мониторинга и анализа приложений, которые поддерживают такие функциональные возможности, как протоколирование, анализ журналов, анализ использования приложений и информационные панели;
- операционные функциональные возможности: системы PaaS помогают операционному персоналу, предлагая операционные функциональные возможности как для развернутых приложений, так и для самой системы PaaS. Они реализуются через информационные панели, а также с помощью API и позволяют клиентам подключать собственные операционные инструменты. Например, часто предлагаются функциональные возможности увеличения или уменьшения количества запущенных экземпляров приложения (для решения проблемы меняющейся нагрузки на приложение). В некоторых случаях такие задачи решаются с помощью автоматизированных сервисов, которые меняют количество экземпляров на основе набора правил, установленного эксплуатационным персоналом потребителя облачной службы;
- поддержка переноса существующих приложений: у многих потребителей облачных служб имеются приложения, которые могут быть перенесены в среду PaaS. Некоторые PaaS-системы предлагают прикладные среды, цель которых — соответствовать средам, доступным в существующих необлачных стеках промежуточного ПО, а также соответствующие инструменты, которые помогают в процессе переноса;
- поддержка приложений, использующих архитектуру микросервисов: системы PaaS, как правило, предлагают поддержку приложений, построенных с использованием архитектуры микросервисов (см. раздел 9). Сюда входит поддержка сред выполнения, используемых для самих микросервисов, поддержка базовых сервисов, используемых микросервисами, и поддержка сервисной сетки, которая объединяет все компоненты;
- сетевые функциональные возможности: поскольку поставщик облачной службы полностью контролирует используемые стеки сетевых протоколов, системы PaaS могут быть более глубоко интегрированы с сетевыми функциональными возможностями хоста поставщика облачной службы. Это позволяет относительно легко (как для поставщика облачной службы, так и для разработчика потребителя облачной службы) интегрировать PaaS с технологиями виртуализации сети, балансировки нагрузки сети, технологиями обеспечения отказоустойчивости, оптимизации сети, кеширования, передачи сообщений и работы с очередями и другими сетевыми технологиями.
[из 11.2 Отличительные особенности систем PaaS ГОСТ Р 70860—2023]