Рубрика

Информационные технологии

Ключевые слова

время кодирования
динамическое распределение
платформы
Elastic Beanstalk
Heroku
Bluemix
OpenShift
Google App Engine

Аннотация статьи

PaaS – это облачная платформа приложений, которая работает поверх IaaS и размещает программное обеспечение как приложение-службу. PaaS состоит из операционных систем, промежуточного программного обеспечения, серверов, хранилища, среды выполнения, виртуализации и другого программного обеспечения, которое позволяет приложениям работать в облаке, абстрагируясь от многих аспектов системного администрирования. Это позволяет организациям сосредоточиться на двух важных вещах: своих клиентах и своем коде. PaaS заботится обо всех деталях системного администрирования, таких как настройка серверов и виртуальных машин, установка сред выполнения, библиотек, промежуточного программного обеспечения, настройка инструментов сборки и тестирования.

В статье рассмотрены принципы работы и преимущества PaaS, а также проведено сравнение пяти основных поставщиков PaaS-сервисов: Elastic Beanstalk от AWS, Heroku, Bluemix от IBM, OpenShift от RedHat и Google App Engine.

Текст статьи

PaaS включает инфраструктуру (серверы, хранилище и сетевое оборудование), а также ПО промежуточного слоя, средства разработки, бизнес-аналитику (BI), службы системы управления базами данных и прочее. PaaS предназначена для поддержки полного жизненного цикла веб-приложения: разработки, тестирования, развертывания, управления и обновления.

PaaS также позволяет избежать затрат и трудностей, связанных с приобретением лицензий на программное обеспечение, базовой инфраструктуры приложений, ПО промежуточного уровня, оркестраторов контейнеров, например Kubernetes, или средств разработки и других ресурсов, а также управлением ими. Вы управляете приложениями и службами, которые разрабатываете, а поставщик облачных служб обычно управляет всем остальным.

Рабочий процесс в PaaS так же прост, как кодирование в IDE, а затем отправка кода с помощью таких инструментов, как Git, и немедленное наблюдение за изменениями. Предоставляя инфраструктуру как услугу, PaaS также предлагает те же преимущества, что и IaaS, но с дополнительными функциями инструментов разработки.

  • Лучшее время кодирования: поскольку PaaS предоставляет инструменты разработки с предварительно закодированными компонентами приложения, время на кодирование нового приложения сокращается.
  • Динамическое распределение: в современном конкурентном мире большинству ИТ-команд нужна гибкость для развертывания новой функции или новой услуги приложения для быстрого тестирования или для тестирования их на небольшом участке клиентов, прежде чем сделать их доступными для всего мира. С PaaS такие задачи теперь стали возможными.
  • Простая разработка кроссплатформенных приложений: поставщики услуг PaaS предоставляют нам различные варианты разработки для разных платформ, таких как компьютеры, мобильные устройства и планшеты, что упрощает и ускоряет разработку кроссплатформенных приложений.
  • Поддержка по географическому признаку: это полезно в ситуациях, когда несколько разработчиков работают над одним проектом, но не находятся поблизости.
  • Использование полезных инструментов по доступной цене: метод оплаты по мере использования позволяет вам платить за то, что вы используете. Таким образом, вы можете использовать необходимое программное обеспечение или аналитические инструменты в соответствии со своими требованиями. Он обеспечивает поддержку полного жизненного цикла веб-приложения: создание, тестирование, развертывание, управление и обновление.

Iaas предлагает ресурсы хранения и инфраструктуры, необходимые для доставки в облачные сервисы, тогда как организациям, использующим PaaS, не нужно беспокоиться об инфраструктуре или таких сервисах, как обновления программного обеспечения, хранение, операционные системы, балансировка нагрузки и т. д.

PaaS для Java хорошо подходит, поскольку JVM, сервер приложений и архивы развертывания, т. е. WAR или EAR, обеспечивают естественную изоляцию для приложений Java, позволяя многим разработчикам развертывать приложения в одной и той же инфраструктуре.

Вместе с тем мы должны учитывать следующие моменты, прежде чем выбирать PaaS-сервис:

  • гибкость выбора сервера приложений, например JBoss, Tomcat и т. д.;
  • возможность управления настройкой JVM, например, настройкой GC;
  • возможность подключения, выбранного вами стека, например MongoDB, MySQL, Redis и т. д.;
  • надлежащее ведение журнала.

1. Elastic Beanstalk от Amazon

Elastic Beanstalk позволяет пользователям создавать, отправлять и управлять веб-приложениями в консоли Amazon Web Services (AWS). С Elastic Beanstalk просто загрузите свой код, и он автоматически выполнит развертывание, подготовку балансировщика нагрузки и развертывание вашего файла WAR на одном или нескольких экземплярах EC2, работающих на сервере приложений Apache Tomcat. Кроме того, вы по-прежнему будете иметь полный контроль над ресурсами AWS, на которых работает ваше приложение.

За Elastic Beanstalk не взимается дополнительная плата. Он следует модели оплаты по мере использования для ресурсов AWS, необходимых для хранения и запуска ваших приложений. Пользователи, имеющие право на уровень бесплатного использования AWS, могут использовать его бесплатно.

Здесь вы можете начать работу с приложением Java на AWS. После того как вы упакуете свой код в стандартный архив веб-приложений Java (файл WAR), вы можете загрузить его в Elastic Beanstalk с помощью консоли управления AWS, набора инструментов AWS для Eclipse или любых других инструментов командной строки. Этот набор инструментов представляет собой подключаемый модуль с открытым исходным кодом и предлагает вам управлять ресурсами AWS с помощью ваших приложений и сред из Eclipse. Он имеет встроенные метрики мониторинга CloudWatch, такие, как средняя загрузка ЦП, количество запросов и другие.

2. Heroku

Heroku – это еще один сервис PaaS для простого развертывания и масштабирования вашего кода. Это один из старейших сервисов PaaS, но его можно сравнить с Amazon, Google или Microsoft. Heroku позволяет вам создавать приложения по-своему, предоставляя необходимые инструменты.

Допустим, вы хотите использовать стандартные библиотеки с серверами приложений, такими как Tomcat, Jetty и т. д. Вы можете легко выполнить такую настройку с помощью Heroku. По умолчанию Heroku поддерживает Ruby, Node, Python, Java, Clojure, Go, Groovy, Scala и PHP, но он расширяем, т. е. может работать с другим языком, используя пользовательский пакет сборки.

Heroku использует Git для управления развертываниями приложений. Вам просто нужно отправить свой репозиторий Git на их серверы для развертывания вашего приложения.

Heroku предоставляет некоторые специальные службы безопасности, такие как возможность управлять конфигурациями, специфичными для среды (например, учетными данными для банковских услуг). Он гарантирует, что ваш исходный код отделен от этих конфигураций для большей безопасности и переносимости. Для Java Heroku обеспечивает автоматическое совместное использование сеансов между экземплярами сервера, поскольку каждый из его экземпляров сервера обернут вокруг пользовательского экземпляра Jetty. Его ориентированность на разработчиков и приверженность позволяют вам изучить приложение Heroku в кратчайшие сроки.

3. OpenShift от RedHat

Red Hat OpenShift основан на приложениях с открытым исходным кодом с широким спектром языков, баз данных и компонентов. Они поддерживают широкий спектр языков, таких как Java, Ruby, Node, Python, PHP, Perl и другие.

Используя OpenShift, можно быстро создавать, развертывать и управлять образами Docker на надежной масштабируемой платформе. OpenShift также дает вам полный контроль над экземпляром частной базы данных. Можно выбирать из различных баз данных, таких как MySQL, PostgreSQL, MongoDB и SQLite. Они имеют предварительно закодированные репозитории для быстрого запуска. Простая команда «git push» развертывает ваш код в приложении.

OpenShift делает больше, чем просто развертывание, и предоставляет сложные инструменты для управления всем жизненным циклом вашего программного обеспечения. Он также предоставляет вам такие инструменты, как снимки приложений для резервного копирования и восстановления приложений. Снимки хранятся в файлах tar, которые содержат приложение, локальные файлы и файлы журналов. Благодаря встроенной интеграции платформы OpenShift с Eclipse, JBoss Developer Studio, многие разработчики могут разрабатывать полностью в удобной для них среде IDE.

Его цены структурированы в виде планов, таких как бесплатный, бронзовый или серебряный. Бесплатный план размещает до 3 веб-приложений в облаке. Бронзовый план бесплатный с возможностью оплаты по факту использования дополнительных ресурсов, а серебряный план – это оплата по мере использования с системой поддержки.

С OpenShift вы можете быстро развертывать и запускать приложения Java, используя ваши любимые серверы приложений и фреймворки.

4. Bluemix от IBM

Bluemix – это реализация архитектуры IBM Open Cloud. Она основана на CloudFoundry, что позволяет разработчикам создавать, развертывать и управлять своими приложениями через свою панель управления. Bluemix поддерживает различные языки программирования, такие как Java, Node.js, PHP и Python, и расширяется для поддержки других языков.

Его платформа также включает в себя службы промежуточного программного обеспечения и автоматически предоставляет новые экземпляры этих служб. Разработчики также могут масштабировать свои приложения по мере изменения требований рабочей нагрузки, использовать каталог Bluemix для доступа к службам. Bluemix также имеет невероятный выбор компонуемых служб среды выполнения, которые работают со средами выполнения, которые вы хотите использовать. Они уже установлены и лицензированы на платформе, что упрощает вам создание экземпляров и настройку, а также они имеют цены на основе использования.

Bluemix – это как корпоративная производственная платформа, так и песочница для разработчиков. Она имеет развертывания виртуальных машин через OpenStack, так что вы можете контролировать весь стек программного обеспечения. Пример приложения научит вас запускать, изменять, тестировать и развертывать веб-приложение в облаке с помощью инструментов Java и Eclipse. Их документация хороша (хотя и не идеальна), но их демонстрационные приложения немного сбивают с толку.

5. Google App Engine

Google App Engine (GAE) – это предложение PaaS, которое позволяет вам создавать и запускать приложения в инфраструктуре Google. Его приложения легко создавать, поддерживать и масштабировать для ваших данных трафика и хранилища.

Поскольку нет серверов, которые нужно обслуживать, вы можете просто загрузить свое приложение, и оно готово к работе. Приложения работают в безопасной изолированной среде, что позволяет GAE распределять запросы по нескольким серверам и масштабировать для удовлетворения потребностей в трафике. Вы можете легко создавать, разрабатывать, тестировать и размещать различные версии своего приложения в промежуточных и производственных средах. App Engine динамически позволяет вам выделять системные ресурсы, когда есть реальный спрос на приложение. Google Stackdriver – это отладчик, который помогает вам диагностировать и контролировать производительность вашего приложения. Он использует контейнер Jetty Servlet для размещения приложений и поддерживает API Java Servlet. К сожалению, версия 3.0 с поддержкой неблокируемого ввода-вывода все еще недоступна, и это единственный недостаток, который я могу вспомнить сейчас.

Вы можете начать работу с GAE для Java, выбрав предпочтительную среду: гибкую и стандартную. Приложения GAE запускаются как экземпляры в этих средах, поэтому цены указаны за час за экземпляр. Подробные цены описаны здесь.

Несколько клиентов рассказывают о своем замечательном опыте работы с Google App Engine, например, Floreysoft, которая объединяет компании, коллег и клиентов с помощью Google App Engine, или о том, как Best Buy сокращает время и ресурсы разработки приложений с помощью Google App Engine.

Заключение

PaaS прошел долгий путь за последние годы. Его предложения по-прежнему быстро развиваются и используются все больше и больше. Надеюсь, благодаря этим знаниям вы сможете решить, какое предложение PaaS использовать.

При выборе решения PaaS для приложений Java следует учитывать несколько ключевых особенностей.

Во-первых, платформа должна поддерживать язык Java и предлагать надежную среду выполнения. Она также должна обеспечивать масштабируемость для обработки различных рабочих нагрузок и возможность интеграции с другими сервисами и API. Безопасность – еще один важный аспект, включая шифрование данных, аутентификацию пользователей и защиту от угроз. Наконец, рассмотрите модель ценообразования платформы, поддержку клиентов и ресурсы сообщества.

Также PaaS предлагает несколько преимуществ для разработки приложений Java. Он предоставляет готовую к использованию платформу для создания, тестирования и развертывания приложений, устраняя необходимость в управлении базовой инфраструктурой. Это ускоряет процесс разработки и снижает затраты. PaaS также обеспечивает масштабируемость, позволяя приложениям справляться с возросшими нагрузками. Кроме того, он поддерживает сотрудничество между группами разработчиков, которые могут быть географически рассредоточены.

Хотя PaaS предлагает множество преимуществ, он также создает некоторые проблемы. К ним относятся потенциальная привязка к поставщику, поскольку некоторые функции и услуги могут быть уникальными для конкретного поставщика PaaS. Также могут быть ограничения с точки зрения настройки и контроля над средой. Кроме того, хотя поставщики PaaS обычно предлагают надежные меры безопасности, общая природа платформы может представлять потенциальные риски безопасности.

Список литературы

  1. Что такое PaaS? Электронный ресурс: https://azure.microsoft.com/ru-ru/resources/cloud-computing-dictionary/what-is-paas.
  2. Что такое PaaS – платформа как услуга. Электронный ресурс: https://itglobal.com/ru-ru/company/blog/paas-chto-eto-kakie-est-plyusy-i-minusy-dlya-resheniya-kakih-zadach-biznesa-podhodit/.
  3. Осадчий В.В. Многофакторная модель в коммерческой финансовой системе [Текст] / В.В.Осадчий // Журнал прикладных исследований. – 2021. – Т. 3. – № 3. – С. 12-16.
  4. Осадчий В.В. Сложный процент в инвестировании, как восьмое чудо света [Текст] // Актуальные вопросы современной экономики. –2021. – № 3. – С. 100-105.

Поделиться

123

Стариков С. В. Сервисы PaaS // Актуальные исследования. 2025. №9 (244). Ч.I. С. 54-57. URL: https://apni.ru/article/11444-servisy-paas

Обнаружили грубую ошибку (плагиат, фальсифицированные данные или иные нарушения научно-издательской этики)? Напишите письмо в редакцию журнала: info@apni.ru

Похожие статьи

Актуальные исследования

#10 (245)

Прием материалов

8 марта - 14 марта

Остался последний день

Размещение PDF-версии журнала

19 марта

Размещение электронной версии статьи

сразу после оплаты

Рассылка печатных экземпляров

2 апреля