Slide 1

Slide 1 text

What is a microservice? Chris O’Dell Agile on the Beach 2021

Slide 2

Slide 2 text

@ChrisAnnODell About Me Senior Software Engineer 15+ years experience (inc: Monzo, Contino, JustEat, and 7digital) Speaker, Author, and Course Tutor

Slide 3

Slide 3 text

What is a microservice? Chris O’Dell Agile on the Beach 2021

Slide 4

Slide 4 text

@ChrisAnnODell Microservice architecture – a variant of the service-oriented architecture (SOA) structural style – arranges an application as a collection of loosely-coupled services. In a microservices architecture, services are fine-grained and the protocols are lightweight. - Wikipedia

Slide 5

Slide 5 text

@ChrisAnnODell Where did the name come from? https://en.wikipedia.org/wiki/Microservices#History

Slide 6

Slide 6 text

@ChrisAnnODell According to this paper https://arxiv.org/abs/1606.04036

Slide 7

Slide 7 text

@ChrisAnnODell According to this paper https://arxiv.org/abs/1606.04036

Slide 8

Slide 8 text

@ChrisAnnODell According to James Lewis & Martin Fowler https://martinfowler.com/articles/microservices.html

Slide 9

Slide 9 text

@ChrisAnnODell According to James Lewis & Martin Fowler https://martinfowler.com/articles/microservices.html#footnote-etymology

Slide 10

Slide 10 text

@ChrisAnnODell It’s everywhere! https://www.dataversity.net/a-brief-history-of-microservices/ https://www.infoq.com/presentations/microservices-roundtable-2020/ https://devopedia.org/microservices

Slide 11

Slide 11 text

@ChrisAnnODell … so I contacted James

Slide 12

Slide 12 text

@ChrisAnnODell Bruce Eckel

Slide 13

Slide 13 text

@ChrisAnnODell Bruce Eckel

Slide 14

Slide 14 text

@ChrisAnnODell Bruce Eckel

Slide 15

Slide 15 text

@ChrisAnnODell Bruce Eckel Jimmy Nilsson

Slide 16

Slide 16 text

@ChrisAnnODell Jimmy Nilsson

Slide 17

Slide 17 text

What is a microservice? Chris O’Dell Agile on the Beach 2021

Slide 18

Slide 18 text

@ChrisAnnODell Microservice architecture – a variant of the service-oriented architecture (SOA) structural style – arranges an application as a collection of loosely-coupled services. In a microservices architecture, services are fine-grained and the protocols are lightweight. - Wikipedia

Slide 19

Slide 19 text

@ChrisAnnODell Service Oriented Architecture (SOA) https://www.flickr.com/photos/davegray/6865783407/

Slide 20

Slide 20 text

@ChrisAnnODell SOA Principles Service Contract Composable Autonomy Stateless Reusable Loose Coupling Black boxes Granular Normalised Long lived

Slide 21

Slide 21 text

@ChrisAnnODell Simple Object Access Protocol (SOAP) https://flylib.com/books/en/2.439.1.22/1/

Slide 22

Slide 22 text

@ChrisAnnODell Distributed Computing https://www.sciencedirect.com/topics/computer-science/distributed-computing

Slide 23

Slide 23 text

@ChrisAnnODell Modular Programming https://resources.altium.com/p/product-design-trends-in-2020-modular-hardware-vs-modular-software

Slide 24

Slide 24 text

@ChrisAnnODell Microservices Modular Programming SOA Distributed Computing

Slide 25

Slide 25 text

@ChrisAnnODell Back to Venice...

Slide 26

Slide 26 text

@ChrisAnnODell Struggling with the maintenance of large codebases

Slide 27

Slide 27 text

@ChrisAnnODell Instead of large things, why not make small things?

Slide 28

Slide 28 text

Multiple Discovery

Slide 29

Slide 29 text

@ChrisAnnODell Invention of the Telephone

Slide 30

Slide 30 text

@ChrisAnnODell Invention of the Telephone

Slide 31

Slide 31 text

Multiple Discovery Of Microservices

Slide 32

Slide 32 text

@ChrisAnnODell The “workshop” in Venice http://2012.33degree.org/ James Lewis

Slide 33

Slide 33 text

@ChrisAnnODell Alternative universe? Fred George https://www.slideshare.net/fredgeorge/micro-service-architecure

Slide 34

Slide 34 text

@ChrisAnnODell Alternative universe? Adrian Cockcroft https://www.slideshare.net/adrianco/netflix-velocity-conference-2011

Slide 35

Slide 35 text

So, what is a microservice?

Slide 36

Slide 36 text

@ChrisAnnODell So, what is a microservice? https://twitter.com/ChrisAnnODell/status/1423618814390964224

Slide 37

Slide 37 text

@ChrisAnnODell So, what is a microservice? https://twitter.com/bascule/status/1423706101531381767

Slide 38

Slide 38 text

@ChrisAnnODell So, what is a microservice? https://twitter.com/graham_r_smith/status/1423627130022334466

Slide 39

Slide 39 text

@ChrisAnnODell So, what is a microservice? https://twitter.com/DivZero_/status/1423843330169794561

Slide 40

Slide 40 text

@ChrisAnnODell Let’s go back to wikipedia...

Slide 41

Slide 41 text

@ChrisAnnODell There is no single definition for microservices. - Wikipedia

Slide 42

Slide 42 text

@ChrisAnnODell There is no single definition for microservices. A consensus view has evolved over time in the industry. - Wikipedia

Slide 43

Slide 43 text

@ChrisAnnODell There is no single definition for microservices. A consensus view has evolved over time in the industry. Some of the defining characteristics that are frequently cited include: - Wikipedia

Slide 44

Slide 44 text

@ChrisAnnODell 1. Processes that communicate over a network to fulfil a goal using technology-agnostic protocols such as HTTP

Slide 45

Slide 45 text

@ChrisAnnODell 2. Services are organized around business capabilities

Slide 46

Slide 46 text

@ChrisAnnODell 3. Services can be implemented using different programming languages, databases, hardware and software environment, depending on what fits best

Slide 47

Slide 47 text

@ChrisAnnODell 3. Services can be implemented using different programming languages, databases, hardware and software environment, depending on what fits best.

Slide 48

Slide 48 text

@ChrisAnnODell 4. Services are small in size, messaging-enabled, bounded by contexts, autonomously developed, independently deployable, decentralized and built and released with automated processes

Slide 49

Slide 49 text

@ChrisAnnODell Myths

Slide 50

Slide 50 text

@ChrisAnnODell So, what is a microservice? https://twitter.com/Lilobase/status/1423641694856269828

Slide 51

Slide 51 text

@ChrisAnnODell You need to use kubernetes Myth

Slide 52

Slide 52 text

@ChrisAnnODell You need containers Myth

Slide 53

Slide 53 text

@ChrisAnnODell You need to be on the Cloud Myth

Slide 54

Slide 54 text

@ChrisAnnODell

Slide 55

Slide 55 text

@ChrisAnnODell You need to use gRPC Myth

Slide 56

Slide 56 text

@ChrisAnnODell You need to be a startup Myth

Slide 57

Slide 57 text

Cultural Changes

Slide 58

Slide 58 text

@ChrisAnnODell So, what is a microservice? https://twitter.com/kieranmch/status/1423619285155565570

Slide 59

Slide 59 text

@ChrisAnnODell 4. Services are small in size, messaging-enabled, bounded by contexts, autonomously developed, independently deployable, decentralized and built and released with automated processes

Slide 60

Slide 60 text

@ChrisAnnODell 4. Services are small in size, messaging-enabled, bounded by contexts, autonomously developed, independently deployable, decentralized and built and released with automated processes

Slide 61

Slide 61 text

@ChrisAnnODell 4. Services are small in size, messaging-enabled, bounded by contexts, autonomously developed, independently deployable, decentralized and built and released with automated processes

Slide 62

Slide 62 text

@ChrisAnnODell 4. Services are small in size, messaging-enabled, bounded by contexts, autonomously developed, independently deployable, decentralized and built and released with automated processes

Slide 63

Slide 63 text

@ChrisAnnODell 4. Services are small in size, messaging-enabled, bounded by contexts, autonomously developed, independently deployable, decentralized and built and released with automated processes

Slide 64

Slide 64 text

Pitfalls

Slide 65

Slide 65 text

@ChrisAnnODell So, what is a microservice? https://twitter.com/malk_zameth/status/1423637160381624330

Slide 66

Slide 66 text

@ChrisAnnODell Underestimating the Increased Operability Costs Pitfalls

Slide 67

Slide 67 text

@ChrisAnnODell Underinvestment in build and deployment Pitfalls

Slide 68

Slide 68 text

@ChrisAnnODell Tight coupling between microservices Pitfalls

Slide 69

Slide 69 text

Have we taken it too far?

Slide 70

Slide 70 text

@ChrisAnnODell A web https://twitter.com/JackKleeman/status/1190354757308862468

Slide 71

Slide 71 text

@ChrisAnnODell Adding in groupings https://twitter.com/JackKleeman/status/1190973434601324544

Slide 72

Slide 72 text

@ChrisAnnODell Swing back to monoliths?

Slide 73

Slide 73 text

@ChrisAnnODell Continue to evolve Modular Programming SOA Microservices Distributed Computing ?

Slide 74

Slide 74 text

@ChrisAnnODell So, what is a microservice?

Slide 75

Slide 75 text

@ChrisAnnODell So, what is a microservice? https://twitter.com/da5is/status/1423635467145203717

Slide 76

Slide 76 text

CREDITS: This presentation template was created by Slidesgo, including icons by Flaticon, and infographics & images by Freepik Do you have any questions? Chris O’Dell @ChrisAnnODell THANKS