Что такое Serverless. Часть 1: предыстория



По статистике 2021 года около 10% проектов уже используют архитектуру Serverless.



Новые технологии — это классно, но важно понять, в чём вообще проблема и как она УЖЕ решается текущими средствами. И зачем решать её по-новому. Нужен чёткий ответ:



— Зачем переходить с микросервисов на Serverless? Что мы от этого получим?



Для ответа немного углубимся в историю инфраструктуры.



1️⃣ Всё своё



До 2006 года в каждой IT компании была особая комната — серверная. Системные администраторы настраивали сервера, следили за обновлениями, безопасностью, блоками питания и решали тысячу других вопросов.



Много расходов на оборудование и персонал

Железки надо закупать, подключать и нельзя сдать обратно. Сложно наращивать мощности или оптимизировать нагрузку



2️⃣ IasS — Infrastructure as a Service



В 2006 появился Amazon EC2 и начался тренд на IaaS: код запускается не на собственных серверах, а на арендованных.



Это самый простой вариант облачной инфраструктуры. Сейчас подобную услугу предлагают AWS, Google, DigitalOcean, Microsoft, IBM, SAP, для патриотов есть Яндекс и Сбер.



Легко добавлять и сокращать ресурсы

Меньше расходы на персонал

Не надо беспокоиться об отключении электроэнергии и потопах



Инфраструктура всё ещё требует внимания — на арендованной виртуалке надо установить ОС, JVM, все службы и обновления, настроить компоненты и развернуть сервисы.



Большая часть этих операций почти у всех одинакова. Так что дальше расходимся на две ветки:



🅰️ PaaS — Platform as a Service



PaaS = IaaS + ОС + базовый мониторинг + легко подключаемые компоненты



Облачные провайдеры берут на себя больше рутинных операций. Выглядит как будто работаешь с удалённой машиной. Можно довольно легко добавить БД, мониторинг, кэши, очереди и связать их между собой в настройках.



Примеры PaaS: Heroku, AWS Elastic Beanstalk и тд



Много готовых компонентов — можно быстро настроить работающую систему

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

Сильная привязка к вендору. Выбрал PaaS от амазона — скорее всего файловое хранилище, очереди и БД тоже будут амазон.



🅱️ Докер



Популярная альтернатива PaaS — докер-контейнеры в предоставленных виртуалках. В каждом контейнере свой runtime и все нужные для сервиса файлы.



Для управления контейнерами есть куча инструментов — Kubernetes, Mesos, Google Container Engine. Amazon ECR и Google CR помогают с хранением докер-образов, AWS Fargate — с масштабированием.



Супер гибкость. Можно собрать любые компоненты с любыми настройками и связать их как угодно

Cложно выбирать и долго настраивать



Заметили, что не было ни единого слова про архитектуру? PaaS и Docker только упрощают сборку инфраструктуры. Пока что нет разницы, что запускать внутри — гигантский монолит или сервис из трёх файлов.



В следующем посте перейдём уже к Serverless. Поговорим, почему это называется архитектурой и что ещё готовы взять на себя облачные провайдеры.