AbstractI would like to give an overview of the Serverless architectures with examples using Azure. We will explore strong and weak parts of the architecture. Take a look at use cases and scenarios. And see some practical demos: Azure Functions, Azure Logic Apps and some other services.Я розкажу про Serverless архітектури на прикладі Azure. Ми разом пройдемось по перевагам і недолікам цієї архітектури в порівнянні з іншими. Розглянемо потенційні сценарії використання і декілька практичних демонстрації: Azure Functions, Azure Logic Apps та інші сервіси.
Звідки це все пішло?
Історія, від on-premises до функцій
З as a Service
І як той ваш serverless виглядає?
Це дійсно функція
Це точно serverless?
FaaSFunction as a Service
BaaSBackend as a Service
Тож що це насправді?
Новий рівень абстракції
Новий рівень абстракції
Реактивність
Новий рівень абстракції
Реактивність
Оплата по факту роботи
Хм, виглядає непотрібним…
Обробка картинок в мікроскопічному додатку
$40.5
$80
$40
Маленька апплікушкаМаленька апплікушка
Велика апплікушкаВелика апплікушка
Маленька апплікушкаМаленька апплікушка Спеціальна функціяСпеціальна функція
NER microservice для Lang-UK
C++ MITIE Lib + Python 2.7 + 350МБ модель + мало запитів
$0.5$10
NER FunctionNER FunctionWeb AppWeb App
Автономні ізольовані сервіси1.Обробка картинок, чи
відео2.Фрауд детекшен3.Розсилка спаму4.Що завгодно…
Сервіси з спеціальними потребами1.Написане криворукими
баранами2.Нестандартні залежності3.Ресурсоємні операції4.…
Реакція на зовнішні події1.Реакція на події в клауді2.Робота по графіку3.Ресурсоємні операції4.…
Ще варіанти…1.GraphQL ендпоінт2.Обробка команд в CQRS3.SPA Backend4.Realtime analytics5.…
Шаблони
Microservices
Одна функція – багато функцій
Nanoservices
Багато функцій
Практика!
AWSLambda
Azure Functions
Google Cloud
Functions Auth0 Tasks
IBM OpenWhis
k
Azure Functions
Демо
Щось занадто все добре…
Нелінійна складність1.Каскадні виклики функцій2.Складність індивідуального
розгортання3.Складність версіонування4.Складність забезпечення
безпеки
Непророблені практики розробки1.Якщо код використовується
між двома функціями, як його первикористовувати?
2.Локальна розробка?3.Тестування?4.Vendor Lock-in?
Azure Functions1.Дуже не вистачає
підтримки path, в HTTP Trigger
Ресурси1. http://martinfowler.com/bliki/Serverless.html2. https://www.troyhunt.com/azure-functions-in-practice
/3. https://myignite.microsoft.com/videos/31744. https://github.com/chaliy/play-azure-serverless