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

Microservices Meet Real-World Projects: Lessons Learned

Microservices Meet Real-World Projects: Lessons Learned

Alexander Heusingfeld

October 29, 2015
Tweet

More Decks by Alexander Heusingfeld

Other Decks in Technology

Transcript

  1. MicroServices
    meet Real World projects
    Tammo van Lessen | [email protected]
    Alexander Heusingfeld | [email protected]
    #javaone #microservices
    www.innoQ.com

    View full-size slide

  2. MicroServices
    meet Real World projects
    Tammo van Lessen | [email protected]
    Alexander Heusingfeld | [email protected]
    #javaone #microservices
    www.innoQ.com

    View full-size slide

  3. Consultings gigs...

    View full-size slide

  4. “We’d like to have a microservice architecture!”

    View full-size slide

  5. When reviewing a
    monolithic application …
    © innoQ/Roman Stranghöner

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  10. … then that application can be
    referred to as a self-
    contained system (SCS).

    View full-size slide

  11. https://www.innoq.com/de/links/self-contained-systems-infodeck/
    more information on
    self-contained systems (SCS)
    can be found at
    #javaone #microservices

    View full-size slide

  12. Architectural Decisions

    View full-size slide

  13. Architectural Decisions
    > Domain Architecture

    View full-size slide

  14. Architectural Decisions
    > Domain Architecture
    > Macro Architecture

    View full-size slide

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

    View full-size slide

  16. Isn't there more than that…

    View full-size slide

  17. At a project meeting…

    View full-size slide

  18. Did you think about the people 

    who make your architecture exist?

    View full-size slide

  19. “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

  20. overcome “us vs. them”

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

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

  25. well-known pros are subjective

    View full-size slide

  26. “Operating a monolith is easier!”

    View full-size slide

  27. Of course it’s easier…

    View full-size slide

  28. It’s always easier…
    …if the complexity is on someone
    else’s desk.

    View full-size slide

  29. “Separating teams duplicates work!”

    View full-size slide

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

    View full-size slide

  31. share ideas
    share concepts
    don’t share libraries
    Team 1
    Team 2 Team 3

    View full-size slide

  32. “Operational costs are increased!”

    View full-size slide

  33. Microservices?

    View full-size slide

  34. “Deployments cannot be faster, 

    we have an established process!”

    View full-size slide

  35. What this taught us

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

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

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

  41. “pets vs. cattle”

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  44. summarized:
    change perspectives!

    View full-size slide

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

    View full-size slide

  46. A company which
    embraced and evolved

    View full-size slide

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

    View full-size slide

  48. Modernisation Strategies

    View full-size slide

  49. Change via Copy

    View full-size slide

  50. Change via Extraction

    View full-size slide

  51. Strangulate Bad Parts

    View full-size slide

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

    can be found at
    #javaone #microservices

    View full-size slide

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

  54. Summary
    #javaone #microservices

    View full-size slide

  55. Summary
    > distributed systems are hard - organizational impact, too
    #javaone #microservices

    View full-size slide

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

    View full-size slide

  57. 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
    #javaone #microservices

    View full-size slide

  58. 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
    #javaone #microservices

    View full-size slide

  59. Thank you!
    Questions?
    Comments?
    Tammo van Lessen | @taval
    [email protected]
    Alexander Heusingfeld | @goldstift
    [email protected]
    innoQ Deutschland GmbH
    Krischerstr. 100
    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
    10999 Berlin
    Germany
    Ludwigstraße 180 E
    D-63067 Offenbach
    Germany
    Kreuzstr. 16
    D-80331 München
    Germany
    https://www.innoq.com/en/talks/2015/10/
    javaone-2015-microservices-projects-selfcontained-systems/
    #javaone #microservices

    View full-size slide