Одним из самых современных способов запуска приложений в облачном окружении считается Serverless. В переводе с английского языка эту модель облачных вычислений можно назвать «бессерверной».
Принцип Serveless
Serverless – это модель облачных вычислений, в которой поставщик хостинговых услуг выступает в качестве сервера, отвечающего за динамическое управление распределением ресурсов машины. Благодаря такому подходу, стоимость услуг Serverless зависит не от предварительно приобретенных единиц мощности, а от реально используемого объема ресурсов.
В соответствии с вышеуказанным определением Serverless, эта модель работает на четырех принципах:
Абстрактность этой модели заключается в том, что пользователь не управляет сервером, который используется для запуска программы. Более того, он вообще ничего не знает об особенностях используемой ОС, обновлениях, сетевых настройках и т.д. Благодаря такому подходу, пользователь может сконцентрировать свои силы исключительно на разработке полезных функций. Ему не придется тратить время на выполнение обязанностей администратора.
Что касается эластичности, что хостинг-провайдеры готовы предоставить именно то количество вычислительных ресурсов, которое реально необходимо для полноценной работы приложения. Экономичность Serverless обусловлена тем, что в случае простоя приложения, клиенту не нужно ничего платить. Это обусловлено тем, что в данный момент времени он не использует вычислительных ресурсов. Serverless предполагает оплату услуг только в том случае, если приложение реально функционирует.
Наконец ограничений цикл жизни означает, что приложение через некоторое время после запуска автоматически останавливается. Стоит заметить, что после этого оно снова может быть вызвано.
Применение Serverless-технологии
Serverless чаще всего используется для решения фоновых или отложенных задач. Эта технология актуальна для создания дополнительных копий изображений после их загрузки на сайт или автоматического бэкапа. Она также используется с целью асинхронной отправки push-, sms- или email-уведомлений. Serverless дополнительно используется для проведения различных операций по импорту и экспорту данных.
Все перечисленные задачи обычно выполняются по определенному расписанию или вообще не предусматривают моментального ответа пользователю. Актуальность Serverless в указанных ситуациях обусловлена тем, что эта технология не работает на регулярной основе. Она запускается и отключается по мере необходимости.
Учитывая данную особенность этой технологии, ее нельзя использовать в частях приложения, которые предусматривают наличие постоянного взаимодействия с пользователем. Именно поэтому Serverless принято использовать для:
Преимущества технологии
Подводя итоги, стоит сказать об основных преимуществах этой технологии. Во-первых, она отличается быстротой масштабирования. Во-вторых, Serverless-технология характеризуется полной абстракцией от ОС и софта. В-третьих, эта технология позволяет быстрее построить слабосвязанную архитектуру, которая предотвращает возможность ухудшения работоспособности приложения в результате допуска какой-либо ошибки.
Также необходимо добавить, что новому разработчику гораздо проще войти в команду, которая использует Serverless-технологии.