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