Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What is a Microservice?

Chris
September 05, 2021

What is a Microservice?

It was 10 years ago that the term "microservice" was coined - that makes it as old as Agile on the Beach! But where did it come from, and what is it? In this light-hearted talk, we'll cover the history, the design and hopefully answer the question "what is a microservice?"

Chris

September 05, 2021
Tweet

More Decks by Chris

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  11. @ChrisAnnODell
    … so I contacted
    James

    View Slide

  12. @ChrisAnnODell
    Bruce Eckel

    View Slide

  13. @ChrisAnnODell
    Bruce Eckel

    View Slide

  14. @ChrisAnnODell
    Bruce Eckel

    View Slide

  15. @ChrisAnnODell
    Bruce Eckel Jimmy Nilsson

    View Slide

  16. @ChrisAnnODell
    Jimmy Nilsson

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  24. @ChrisAnnODell
    Microservices
    Modular Programming
    SOA
    Distributed Computing

    View Slide

  25. @ChrisAnnODell
    Back to Venice...

    View Slide

  26. @ChrisAnnODell
    Struggling with the maintenance
    of large codebases

    View Slide

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

    View Slide

  28. Multiple Discovery

    View Slide

  29. @ChrisAnnODell
    Invention of the Telephone

    View Slide

  30. @ChrisAnnODell
    Invention of the Telephone

    View Slide

  31. Multiple Discovery
    Of Microservices

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  35. So, what is a
    microservice?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  45. @ChrisAnnODell
    2. Services are organized around business capabilities

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  49. @ChrisAnnODell
    Myths

    View Slide

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

    View Slide

  51. @ChrisAnnODell
    You need to use kubernetes
    Myth

    View Slide

  52. @ChrisAnnODell
    You need containers
    Myth

    View Slide

  53. @ChrisAnnODell
    You need to be on the Cloud
    Myth

    View Slide

  54. @ChrisAnnODell

    View Slide

  55. @ChrisAnnODell
    You need to use gRPC
    Myth

    View Slide

  56. @ChrisAnnODell
    You need to be a startup
    Myth

    View Slide

  57. Cultural Changes

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  64. Pitfalls

    View Slide

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

    View Slide

  66. @ChrisAnnODell
    Underestimating the Increased
    Operability Costs
    Pitfalls

    View Slide

  67. @ChrisAnnODell
    Underinvestment in build and
    deployment
    Pitfalls

    View Slide

  68. @ChrisAnnODell
    Tight coupling between
    microservices
    Pitfalls

    View Slide

  69. Have we taken it
    too far?

    View Slide

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

    View Slide

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

    View Slide

  72. @ChrisAnnODell
    Swing back to
    monoliths?

    View Slide

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

    View Slide

  74. @ChrisAnnODell
    So, what is a microservice?

    View Slide

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

    View Slide

  76. 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

    View Slide