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

Microservices Meet Real-World Projects: Lessons Learned @ Microservices-Meetup-Rhein-Main

Microservices Meet Real-World Projects: Lessons Learned @ Microservices-Meetup-Rhein-Main

Alexander Heusingfeld

February 21, 2017
Tweet

More Decks by Alexander Heusingfeld

Other Decks in Technology

Transcript

  1. MicroServices
    meet Real World projects
    www.innoQ.com

    View full-size slide

  2. MicroServices
    meet Real World projects
    www.innoQ.com

    View full-size slide

  3. Alexander Heusingfeld
    [email protected]
    Senior Consultant @ innoQ
    @goldstift
    Tammo van Lessen
    [email protected]
    Principal Consultant @ innoQ
    @taval

    View full-size slide

  4. Architecture Consulting...

    View full-size slide

  5. “We want to have a microservice architecture!”

    View full-size slide

  6. “We want to have a microservice architecture!”
    — Every Customer, since 2015

    View full-size slide

  7. When reviewing
    monolithic applications …
    © innoQ/Roman Stranghöner

    View full-size slide

  8. …and taking a look
    into the black box…
    © innoQ/Roman Stranghöner

    View full-size slide

  9. …you’ll likely find it consists of
    multiple Bounded Contexts.
    © innoQ/Roman Stranghöner

    View full-size slide

  10. Architectural Decisions

    View full-size slide

  11. Architectural Decisions
    > Domain Architecture

    View full-size slide

  12. Architectural Decisions
    > Domain Architecture
    > Micro Architecture

    View full-size slide

  13. Architectural Decisions
    > Domain Architecture
    > Macro Architecture
    > Micro Architecture

    View full-size slide

  14. …so we show the different levels of decisions…

    View full-size slide

  15. Domain Architecture
    -Which boxes?
    -Use Cases
    -Semantics & Purpose
    …so we show the different levels of decisions…

    View full-size slide

  16. Domain Architecture
    -Which boxes?
    -Use Cases
    -Semantics & Purpose
    Macro Architecture
    -What’s in between?
    -Protocols, Deployment
    …so we show the different levels of decisions…

    View full-size slide

  17. Domain Architecture
    -Which boxes?
    -Use Cases
    -Semantics & Purpose
    Macro Architecture
    -What’s in between?
    -Protocols, Deployment
    Micro Architecture
    -What’s inside?
    -Component internals
    …so we show the different levels of decisions…

    View full-size slide

  18. If you cut a monolithic
    system along its very
    domains …

    View full-size slide

  19. … and wrap every domain in
    a separate, replaceable
    web application …

    View full-size slide

  20. … then that application can be
    build as a self-contained
    system (SCS).

    View full-size slide

  21. http://scs-architecture.org/
    more information on
    self-contained systems (SCS)
    can be found at

    View full-size slide

  22. Isn't there more than that…

    View full-size slide

  23. At a project meeting…

    View full-size slide

  24. Did you think about the people 

    who make your architecture exist?

    View full-size slide

  25. WHY do you actually WANT microservices?

    View full-size slide

  26. WHY do you actually WANT microservices?
    Which business goals does it serve?

    View full-size slide

  27. “Don’t care about this, it’s our business!”
    “Alarming is our concern, don’t bother about it!”
    “No need for a discussion, we always fix that during deployment.”
    “That’s part of the handover to operations.”

    View full-size slide

  28. overcome “us vs. them”

    View full-size slide

  29. overcome “us vs. them”
    > cross-functional != cross-department

    View full-size slide

  30. overcome “us vs. them”
    > cross-functional != cross-department
    > have one manager to decide on a team’s targets

    View full-size slide

  31. overcome “us vs. them”
    > cross-functional != cross-department
    > have one manager to decide on a team’s targets
    > don’t neglect team-building

    View full-size slide

  32. overcome “us vs. them”
    > cross-functional != cross-department
    > have one manager to decide on a team’s targets
    > don’t neglect team-building
    > trust is not optional

    View full-size slide

  33. well-known pros are subjective

    View full-size slide

  34. “Operating a monolith is easier!”

    View full-size slide

  35. Of course it’s easier…

    View full-size slide

  36. It’s always easier for you…
    …if the complexity is on someone
    else’s desk.

    View full-size slide

  37. “Operational costs are increased!”

    View full-size slide

  38. Microservices?

    View full-size slide

  39. Microservices?
    smaller components!

    View full-size slide

  40. Microservices?
    smaller components!
    • easier to test
    • quicker to automate
    • faster roundtrips

    View full-size slide

  41. “Separating teams duplicates work!”

    View full-size slide

  42. The manageable, domain
    specific scope enables the
    development, operation
    and maintenance of an SCS
    by an autonomous team.
    Team 1
    Team 2 Team 3

    View full-size slide

  43. share ideas
    share concepts
    don’t share functional code
    Team 1
    Team 2 Team 3

    View full-size slide

  44. Conway’s Law
    “Organizations which design systems are
    constrained to produce systems which are
    copies of the communication structures of
    these organizations.” – M.E. Conway
    Organization ˠ Architecture

    View full-size slide

  45. Golden Rule:
    Nurture good communication.

    Hamper bad communication.

    View full-size slide

  46. “Deployments cannot be faster, 

    we have an established process!”

    View full-size slide

  47. What this taught us

    View full-size slide

  48. What this taught us
    > enable fast feedback for your team

    View full-size slide

  49. What this taught us
    > enable fast feedback for your team
    > automate what’s next to you first

    View full-size slide

  50. What this taught us
    > enable fast feedback for your team
    > automate what’s next to you first
    > do your homework before you teach others

    View full-size slide

  51. What this taught us
    > enable fast feedback for your team
    > automate what’s next to you first
    > do your homework before you teach others
    > other people will notice the benefits

    View full-size slide

  52. What this taught us
    > enable fast feedback for your team
    > automate what’s next to you first
    > do your homework before you teach others
    > other people will notice the benefits
    > complex processes can be adopted, divide them
    and take one step at a time

    View full-size slide

  53. “pets vs. cattle”

    View full-size slide

  54. https://www.flickr.com/photos/cornelii/531691572
    https://www.flickr.com/photos/cornelii/531691572

    View full-size slide

  55. https://www.flickr.com/photos/cornelii/531691572
    https://www.flickr.com/photos/cornelii/531691572
    • pets
    • have names & take time
    • individual care
    • you usually only have 1 to 3 of them
    • when they get sick -> take them to the doctor

    View full-size slide

  56. https://www.flickr.com/photos/cornelii/531691572
    https://www.flickr.com/photos/cornelii/531691572
    • pets
    • have names & take time
    • individual care
    • you usually only have 1 to 3 of them
    • when they get sick -> take them to the doctor

    View full-size slide

  57. https://www.flickr.com/photos/cornelii/531691572
    https://www.flickr.com/photos/cornelii/531691572
    • pets
    • have names & take time
    • individual care
    • you usually only have 1 to 3 of them
    • when they get sick -> take them to the doctor
    • cattle
    • you probably know how many you have
    • maybe their number
    • they mostly care for themselves
    • new ones are born, old ones die
    • if they get seriously sick -> kill them

    View full-size slide

  58. Summarized:
    Change Perspectives!

    View full-size slide

  59. http://izismile.com/2013/01/22/buyers_beware_its_a_matter_of_perspective_3_pics.html

    View full-size slide

  60. A company which
    embraced and evolved

    View full-size slide

  61. http://projectcartoon.com/cartoon/1

    View full-size slide

  62. Modernisation Strategies

    View full-size slide

  63. Big Bang
    not WANTED!

    View full-size slide

  64. Service 2
    Frontend Switch
    Monolith
    Module 1
    Service 3
    Service 4
    Customer Request
    Service 5
    Reverse Proxy

    View full-size slide

  65. Change via Copy

    View full-size slide

  66. Change via Extraction

    View full-size slide

  67. Strangulate Bad Parts

    View full-size slide

  68. http://aim42.org/
    more information on
    software modernisation 

    can be found at
    #javaland #innoQ

    View full-size slide

  69. Summary
    > distributed systems are hard - organizational impact, too

    View full-size slide

  70. Summary
    > distributed systems are hard - organizational impact, too
    > don't forget: there's always at least one other perspective

    View full-size slide

  71. Summary
    > distributed systems are hard - organizational impact, too
    > don't forget: there's always at least one other perspective
    > Don’t overwhelm people, change one thing at a time

    View full-size slide

  72. Summary
    > distributed systems are hard - organizational impact, too
    > don't forget: there's always at least one other perspective
    > Don’t overwhelm people, change one thing at a time
    > not everyone who wants microservices is immediately
    capable to establish them

    View full-size slide

  73. Tammo van Lessen | @taval
    [email protected]
    Alexander Heusingfeld | @goldstift
    [email protected]
    Thank you!
    Questions?
    Comments?
    innoQ Deutschland GmbH
    Krischerstr. 100
    D-40789 Monheim am Rhein
    Germany
    Phone: +49 2173 3366-0
    innoQ Schweiz GmbH
    Gewerbestr. 11
    CH-6330 Cham
    Switzerland
    Phone: +41 41 743 0116
    www.innoq.com
    Ohlauer Straße 43
    D-10999 Berlin
    Germany
    Phone: +49 2173 3366-0
    Ludwigstr. 180 E
    D-63067 Offenbach
    Germany
    Phone: +49 2173 3366-0
    Kreuzstr. 16
    D-80331 München
    Germany
    Telefon +49 2173 3366-0
    https://www.innoq.com/en/talks/

    View full-size slide