Slide 1

Slide 1 text

@MarcDuiker

Slide 2

Slide 2 text

@MarcDuiker 2 Marc Duiker Developer Advocate

Slide 3

Slide 3 text

@MarcDuiker 3

Slide 4

Slide 4 text

@MarcDuiker 4

Slide 5

Slide 5 text

@MarcDuiker 5

Slide 6

Slide 6 text

@MarcDuiker 6

Slide 7

Slide 7 text

@MarcDuiker 7

Slide 8

Slide 8 text

@MarcDuiker 8

Slide 9

Slide 9 text

@MarcDuiker 9 https://en.wikipedia.org/wiki/Monolithic_application “In software engineering, a monolithic application describes a software application that is designed without modularity.”

Slide 10

Slide 10 text

@MarcDuiker App Server DB Server

Slide 11

Slide 11 text

@MarcDuiker 11 Function App Function App Queue Database

Slide 12

Slide 12 text

@MarcDuiker 12 Function App Function App Queue Database

Slide 13

Slide 13 text

@MarcDuiker 13

Slide 14

Slide 14 text

@MarcDuiker 14

Slide 15

Slide 15 text

@MarcDuiker 15

Slide 16

Slide 16 text

@MarcDuiker 16

Slide 17

Slide 17 text

@MarcDuiker 17

Slide 18

Slide 18 text

@MarcDuiker 18

Slide 19

Slide 19 text

@MarcDuiker 19

Slide 20

Slide 20 text

@MarcDuiker 20 https://www.atlassian.com/incident-management/kpis/common-metrics

Slide 21

Slide 21 text

@MarcDuiker 21 https://www.atlassian.com/incident-management/kpis/common-metrics

Slide 22

Slide 22 text

@MarcDuiker https://www.atlassian.com/incident-management/kpis/common-metrics

Slide 23

Slide 23 text

@MarcDuiker 23

Slide 24

Slide 24 text

@MarcDuiker 24

Slide 25

Slide 25 text

@MarcDuiker 25 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

Slide 26

Slide 26 text

@MarcDuiker 26 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.

Slide 27

Slide 27 text

@MarcDuiker 27

Slide 28

Slide 28 text

@MarcDuiker 28

Slide 29

Slide 29 text

@MarcDuiker 29

Slide 30

Slide 30 text

@MarcDuiker 30

Slide 31

Slide 31 text

@MarcDuiker 31

Slide 32

Slide 32 text

@MarcDuiker 32

Slide 33

Slide 33 text

@MarcDuiker 33

Slide 34

Slide 34 text

@MarcDuiker 34

Slide 35

Slide 35 text

@MarcDuiker 35

Slide 36

Slide 36 text

@MarcDuiker 36

Slide 37

Slide 37 text

@MarcDuiker 37 Domain Bounded Context Bounded Context Bounded Context Bounded Context https://thedomaindrivendesign.io/bounded-context/

Slide 38

Slide 38 text

@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

Slide 39

Slide 39 text

@MarcDuiker 39 Banking Context Ecommerce Context https://thedomaindrivendesign.io/what-is-strategic-design

Slide 40

Slide 40 text

@MarcDuiker 40

Slide 41

Slide 41 text

@MarcDuiker 41

Slide 42

Slide 42 text

@MarcDuiker 42

Slide 43

Slide 43 text

@MarcDuiker 43

Slide 44

Slide 44 text

@MarcDuiker 44 Function App Function App Queue Database

Slide 45

Slide 45 text

@MarcDuiker 45

Slide 46

Slide 46 text

@MarcDuiker 46 Fan out Fan out No fan out No fan out

Slide 47

Slide 47 text

@MarcDuiker 47 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

Slide 48

Slide 48 text

@MarcDuiker 48 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

Slide 49

Slide 49 text

@MarcDuiker 49 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/complexity of the app?

Slide 50

Slide 50 text

@MarcDuiker 50 @az_func_updates http://bit.ly/marc-serverless