Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Help I've created a serverless monolith - Micro...
Search
Marc Duiker
January 20, 2022
Technology
1
230
Help I've created a serverless monolith - Microsoft Reactor Toronto
Marc Duiker
January 20, 2022
Tweet
Share
More Decks by Marc Duiker
See All by Marc Duiker
Build distributed applications with ease using Dapr - Dev070 Meetup
marcduiker
0
270
Orchestrate your business logic reliably withDapr Workflows - TEQnation
marcduiker
0
360
Dapr 101: start building distributed applications with ease
marcduiker
0
280
Quest for Serverless Websockets - .NET Amsterdam
marcduiker
0
220
Dapr on AKS: building distributed applications with ease
marcduiker
0
270
Draw an audience with your non-IT skills to build your personal brand
marcduiker
2
250
Help! I've created a serverless monolith! - CloudBrew
marcduiker
2
370
Quest for serverless WebSockets - an adventure with Azure Functions and Durable Functions
marcduiker
0
300
Help! I've created a serverless monolith! - NDC Oslo 2022
marcduiker
0
280
Other Decks in Technology
See All in Technology
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
190
複雑性の高いオブジェクト編集に向き合う: プラガブルなReactフォーム設計
righttouch
PRO
0
110
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
1
110
NilAway による静的解析で「10 億ドル」を節約する #kyotogo / Kyoto Go 56th
ytaka23
3
370
Amazon SageMaker Unified Studio(Preview)、Lakehouse と Amazon S3 Tables
ishikawa_satoru
0
150
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
210
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
1
230
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
TSKaigi 2024 の登壇から広がったコミュニティ活動について
tsukuha
0
160
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
330
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
110
なぜCodeceptJSを選んだか
goataka
0
150
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
4 Signs Your Business is Dying
shpigford
181
21k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
The Pragmatic Product Professional
lauravandoore
32
6.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
BBQ
matthewcrist
85
9.4k
Code Reviewing Like a Champion
maltzj
520
39k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
Transcript
@MarcDuiker
@MarcDuiker 2 Marc Duiker 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 12 Function App Function App Queue Database
@MarcDuiker 13 Function App Function App Queue Database
@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
@MarcDuiker
@MarcDuiker
@MarcDuiker Task on backlog Work completed
@MarcDuiker Task on backlog Work started Work completed
@MarcDuiker 28 https://www.atlassian.com/incident-management/kpis/common-metrics
@MarcDuiker 29 https://www.atlassian.com/incident-management/kpis/common-metrics
@MarcDuiker https://www.atlassian.com/incident-management/kpis/common-metrics
@MarcDuiker 31
@MarcDuiker 32
@MarcDuiker 33 Caused by the nature of the (business) problem.
Can’t be easily reduced. https://en.wikipedia.org/wiki/Programming_complexity
@MarcDuiker 34 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 35 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 36
@MarcDuiker 37
@MarcDuiker 38
@MarcDuiker 39
@MarcDuiker 40
@MarcDuiker 41
@MarcDuiker 42
@MarcDuiker 43
@MarcDuiker 44
@MarcDuiker 45
@MarcDuiker 46
@MarcDuiker 47
@MarcDuiker 48 Domain Bounded Context Bounded Context Bounded Context Bounded
Context https://thedomaindrivendesign.io/bounded-context/
@MarcDuiker 49 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 51 Banking Context Ecommerce Context https://thedomaindrivendesign.io/what-is-strategic-design
@MarcDuiker 52
@MarcDuiker 53
@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 https://docs.microsoft.com/en-us/azure/architecture/patterns/
@MarcDuiker https://docs.microsoft.com/en-us/azure/architecture/patterns/
@MarcDuiker 59
@MarcDuiker 60
@MarcDuiker 61 Function App Function App Queue Database
@MarcDuiker 62
@MarcDuiker 63 Increase number of (virtual) machines Increase CPU /
memory of one machine
@MarcDuiker 64
@MarcDuiker 65
@MarcDuiker
@MarcDuiker 67 Fan out Fan out No fan out No
fan out
@MarcDuiker 68 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 69 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 70 Ask yourself these questions before adding any code:
@MarcDuiker 71 Ask yourself these questions before adding any code:
- Do *I* need to write this?
@MarcDuiker 72 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?
@MarcDuiker 73 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 74 @marcduiker http://bit.ly/marc-serverless