Михаил Чалый "serverless architectures using .net and azure"
TRANSCRIPT
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