Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Help! I've created a serverless monolith - Azur...
Search
Marc Duiker
June 30, 2022
Programming
0
380
Help! I've created a serverless monolith - Azure Lowlands
Slides for my session at Azure Lowlands.
Marc Duiker
June 30, 2022
Tweet
Share
More Decks by Marc Duiker
See All by Marc Duiker
Build distributed applications with ease using Dapr - Dev070 Meetup
marcduiker
1
360
Orchestrate your business logic reliably withDapr Workflows - TEQnation
marcduiker
0
490
Dapr 101: start building distributed applications with ease
marcduiker
0
380
Quest for Serverless Websockets - .NET Amsterdam
marcduiker
0
340
Dapr on AKS: building distributed applications with ease
marcduiker
0
350
Draw an audience with your non-IT skills to build your personal brand
marcduiker
2
330
Help! I've created a serverless monolith! - CloudBrew
marcduiker
2
460
Quest for serverless WebSockets - an adventure with Azure Functions and Durable Functions
marcduiker
0
370
Help! I've created a serverless monolith! - NDC Oslo 2022
marcduiker
0
360
Other Decks in Programming
See All in Programming
ID管理機能開発の裏側 高速にSaaS連携を実現したチームのAI活用編
atzzcokek
0
210
안드로이드 9년차 개발자, 프론트엔드 주니어로 커리어 리셋하기
maryang
1
110
全員アーキテクトで挑む、 巨大で高密度なドメインの紐解き方
agatan
8
20k
Microservices Platforms: When Team Topologies Meets Microservices Patterns
cer
PRO
1
1k
TypeScript 5.9 で使えるようになった import defer でパフォーマンス最適化を実現する
bicstone
1
1.3k
TypeScriptで設計する 堅牢さとUXを両立した非同期ワークフローの実現
moeka__c
6
3k
Building AI Agents with TypeScript #TSKaigiHokuriku
izumin5210
6
1.3k
Rediscover the Console - SymfonyCon Amsterdam 2025
chalasr
2
160
大体よく分かるscala.collection.immutable.HashMap ~ Compressed Hash-Array Mapped Prefix-tree (CHAMP) ~
matsu_chara
1
220
JETLS.jl ─ A New Language Server for Julia
abap34
1
340
Microservices rules: What good looks like
cer
PRO
0
1.2k
STYLE
koic
0
160
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
A better future with KSS
kneath
240
18k
Visualization
eitanlees
150
16k
GitHub's CSS Performance
jonrohan
1032
470k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Being A Developer After 40
akosma
91
590k
What's in a price? How to price your products and services
michaelherold
246
12k
Agile that works and the tools we love
rasmusluckow
331
21k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Automating Front-end Workflow
addyosmani
1371
200k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Transcript
@MarcDuiker
@MarcDuiker Marc Duiker Sr Developer Advocate
@MarcDuiker 3
@MarcDuiker 4
@MarcDuiker 5
@MarcDuiker 6
@MarcDuiker 7
@MarcDuiker 8
@MarcDuiker 9 https://en.wikipedia.org/wiki/Monolithic_application “In software engineering, a monolithic application describes
a software application that is designed without modularity.”
@MarcDuiker 10 https://en.wikipedia.org/wiki/Modularity “…modularity is the degree to which a
system's components may be separated and recombined, often with the benefit of flexibility and variety in use.”
@MarcDuiker App Server DB Server
@MarcDuiker 13 Function App Function App Queue Storage
@MarcDuiker 14 Function App Function App Queue Database
@MarcDuiker 15
@MarcDuiker 16
@MarcDuiker 17
@MarcDuiker 18
@MarcDuiker 19 https://martinfowler.com/articles/agileStory.html “We eventually agreed on "agile" as we
felt that captured the adaptiveness and response to change which we felt was so important to our approach…”
@MarcDuiker 20
@MarcDuiker 21
@MarcDuiker 22
@MarcDuiker 23
@MarcDuiker
@MarcDuiker
@MarcDuiker Task on backlog Work started Work completed
@MarcDuiker 29 https://www.atlassian.com/incident-management/kpis/common-metrics
@MarcDuiker 30 https://www.atlassian.com/incident-management/kpis/common-metrics
@MarcDuiker https://www.atlassian.com/incident-management/kpis/common-metrics
@MarcDuiker 32
@MarcDuiker 33
@MarcDuiker 35 Caused by the nature of the (business) problem.
Can’t be easily reduced. Caused by decisions we make related to architecture, frameworks, packages, code style etc. Can be reduced. https://en.wikipedia.org/wiki/Programming_complexity
@MarcDuiker 36 https://en.wikipedia.org/wiki/Programming_complexity Caused by decisions we make related to
architecture, frameworks, packages, code style etc. Can be reduced. Caused by the nature of the (business) problem. Can’t be easily reduced.
@MarcDuiker 37
@MarcDuiker 38
@MarcDuiker 40
@MarcDuiker 41
@MarcDuiker 42
@MarcDuiker 45
@MarcDuiker 46
@MarcDuiker 47
@MarcDuiker 48
@MarcDuiker 49 Domain Bounded Context Bounded Context Bounded Context Bounded
Context https://thedomaindrivendesign.io/bounded-context/
@MarcDuiker 50 Ecommerce Product Catalog Inventory Billing Shopping Basket https://thedomaindrivendesign.io/bounded-context/
@MarcDuiker “Ubiquitous language identifies the terms and concepts within a
bounded context that are unambiguous and agreed upon by all stakeholders.” https://thedomaindrivendesign.io/what-is-strategic-design
@MarcDuiker 52 Banking Context Ecommerce Context https://thedomaindrivendesign.io/what-is-strategic-design
@MarcDuiker 53
@MarcDuiker 54
@MarcDuiker “Resilience is the ability to provide and maintain an
acceptable level of service in the face of faults and challenges to normal operation.” https://en.wikipedia.org/wiki/Resilience_(network)
@MarcDuiker
@MarcDuiker https://docs.microsoft.com/en-us/azure/architecture/patterns/
@MarcDuiker 60
@MarcDuiker 61
@MarcDuiker 62 Function App B Function App A Queue Storage
@MarcDuiker 63
@MarcDuiker 64 Increase number of (virtual) machines Increase CPU /
memory of one machine
@MarcDuiker 66
@MarcDuiker
@MarcDuiker 68 Fan out Fan out No fan out No
fan out
@MarcDuiker 69 Fan out Fan out No fan out No
fan out https://docs.microsoft.com/en-us/azure/azure-functions/functions-scale#scale Use dedicated resource to its fullest
@MarcDuiker 70 Fan out Fan out No fan out No
fan out https://docs.microsoft.com/en-us/azure/azure-functions/functions-scale#scale Use higher tier / sku Use regular tier / sku
@MarcDuiker 74 Ask yourself these questions before adding any code:
- Do *I* need to write this? - Is this a good fit with the rest of the app? - What is the impact regarding resilience/scalability of the app?
@MarcDuiker 75 https://quest.ably.dev/
@MarcDuiker 76 Twitter: @marcduiker YouTube: http://bit.ly/marc-serverless Ably Discord: https://discord.gg/q89gDHZcBK