Микросервисы / распределенные системы
3.74K subscribers
105 photos
1 video
21 files
308 links
Мысли, новости и ссылки по распределенным система и распределенной разработке.

Если есть вопросы или предложения, пишите @sergey486
Download Telegram
Микросервисы / распределенные системы
share-as-little-as-possible Микросервисы появились в ответ на эти вызовы как решение enterprise-уровня. При этом авторы ссылаются на статью Microservices vs. service-oriented architecture Марка Ричардчcа, где отличия SOA и Microservices лежит в плоскости…
FaaS / Serverless

Несмотря на то, что статья отражает путь эволюции к микросервисам, авторы затрагивают и технологию FaaS (function-as-a-service) как следующий шаг в развитии. FaaS выражает в себе те же принципы, что микросервисы: isolation, interchangeability, но отличается в подходах к следованию им:

– Обрабатывает запросы без предварительного выделения каких-либо вычислительных мощностей;
– Запросы выполняются в управляемых провайдером контейнерах, которые стартуют по событию и эфемерны (могут существовать только один вызов) [1]

Этот подход позволяет писать и развертывать код без учета среды выполнения, распределения ресурсов, балансировки нагрузки и масштабируемости; всеми этими аспектами занимается провайдер.

Serverless - это эволюция pay-per-use:
Virtual Machines (EC2) -> Containers (Docker) -> Ресурсы на время, необходимое для выполнения вычислений, обычно несколько секунд или миллисекунд

Выгоды очевидны:
– Экономия (модель pay-per-use с гранулярностью 100 ms у основных вендоров)
– Функции используют единую среду выполнения (обычно пул контейнеров)
– Мало кода и stateless by design
– Горизонтальное масштабирование полностью автоматическое, эластичное и быстрое

Все это упрощает масштабируемость и деплой, требующие серьезных усилий в микросервисной архитектуре.

Разумеется, FaaS/Serverless несет с собой и новые вызовы:
– Требуются методы поиска мест, в которых FaaS может принести экономическую выгоду
– Обеспечение изоляции между функциями
– Корректный уровень гранулярности при раскрытии данных и кода
– Работа с состоянием при том, что функции по-определению stateless
– Рост количества инструментов для локального деплоя и тестирования

FaaS/Serverless не подойдет, если [2]:
– Требуется собственная инфраструктура (требования регулятора или компании)
– Требуется реализация длительных операций (например, транзакций)
– Требуется избежать vendor lock (у каждого провайдера свой serverless API и SDK)
– Требуется использовать инфраструктуру еще и под иные нужды

Примеры
– AWS Lambda
– Azure Functions
– Google Firebase

Open Source решения
– IBM/Apache Openwhisk
– Quarkus
– OpenFaaS


[1] M. Roberts, Serverless architectures (2016). http://martinfowler.com/articles/serverless.html
[2] M. Stigler, Understanding serverless computing, in Beginning Serverless Computing (Springer, Berlin, 2018), pp. 1–14

#msaevolutionwspub4 #msaevolutionwspub #перевод