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 - Microsoft Reactor Toronto
Search
Marc Duiker
January 20, 2022
Technology
1
190
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
210
Orchestrate your business logic reliably withDapr Workflows - TEQnation
marcduiker
0
280
Dapr 101: start building distributed applications with ease
marcduiker
0
210
Quest for Serverless Websockets - .NET Amsterdam
marcduiker
0
160
Dapr on AKS: building distributed applications with ease
marcduiker
0
220
Draw an audience with your non-IT skills to build your personal brand
marcduiker
2
210
Help! I've created a serverless monolith! - CloudBrew
marcduiker
2
320
Quest for serverless WebSockets - an adventure with Azure Functions and Durable Functions
marcduiker
0
260
Help! I've created a serverless monolith! - NDC Oslo 2022
marcduiker
0
230
Other Decks in Technology
See All in Technology
プレイドにおけるDatadog APMの活用方法
plaidtech
PRO
2
120
AWSサービスメニュー開発をしていてAWSを好きだ!と感じた瞬間
toru_kubota
0
130
スタートアップにおける組織設計とスクラムの長期戦略 / Scrum Fest Kanazawa 2024
yoshikiiida
13
3.6k
頼られるのが大好きな 皆さんへ - 支援相手との期待の合わせ方、突き放し方 -/For_people_who_like_to_be_relied_on
naitosatoshi
1
290
CEL(Common Expression Language)で書いた条件にマッチしたIAM Policyを見つける / iam-policy-finder
fujiwara3
0
710
公共領域から学ぶ クラウド移行についてエンジニアが意識していること
kawakawa2222
0
140
E2Eテスト自動化プラットフォームにおけるAIの活用
shift_evolve
0
180
ソフトウェアエンジニアリングの知見を活かして データ基盤をいい感じにする on Snowflake [MIERUNE BBQ #10]
mtpooh
2
150
DevIO2024_レガシー運用からの脱却 -クラウド活用の実践事例とベストプラクティス-
jun2882
0
210
JBUG岡山 #6 WordCamp男木島の チームビルディング
takeshifurusato
0
150
可視化プラットフォームGrafanaの基本と活用方法の全て
hamadakoji
0
230
「単なる OAuth 2.0 を認証に使うと、車が通れるほどのどでかいセキュリティー・ホールができる」のか検証してみた
terara
0
380
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
28
2.2k
Teambox: Starting and Learning
jrom
130
8.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
90
47k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
20
7.2k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.9k
Faster Mobile Websites
deanohume
303
30k
Being A Developer After 40
akosma
72
580k
How to Ace a Technical Interview
jacobian
274
23k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
No one is an island. Learnings from fostering a developers community.
thoeni
17
2.8k
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