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

Aba82ecdcf1e1534f2c579d124d8cd35?s=128

Alexander Heusingfeld

October 29, 2015
Tweet

Transcript

  1. MicroServices meet Real World projects Tammo van Lessen | tammo.vanlessen@innoq.com

    Alexander Heusingfeld | alexander.heusingfeld@innoq.com #javaone #microservices www.innoQ.com
  2. MicroServices meet Real World projects Tammo van Lessen | tammo.vanlessen@innoq.com

    Alexander Heusingfeld | alexander.heusingfeld@innoq.com #javaone #microservices www.innoQ.com
  3. Consultings gigs...

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

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

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

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

    innoQ/Roman Stranghöner
  8. If you cut a monolithic system along its very domains

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

    application …
  10. … then that application can be referred to as a

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

    at #javaone #microservices
  12. Architectural Decisions

  13. Architectural Decisions > Domain Architecture

  14. Architectural Decisions > Domain Architecture > Macro Architecture

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

    Architecture
  16. Isn't there more than that…

  17. At a project meeting…

  18. Did you think about the people 
 who make your

    architecture exist?
  19. us vs. them

  20. “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.”
  21. overcome “us vs. them”

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

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

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

    one manager to decide on a team’s targets > don’t neglect team-building
  25. 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
  26. well-known pros are subjective

  27. “Operating a monolith is easier!”

  28. Of course it’s easier…

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

    desk.
  30. “Separating teams duplicates work!”

  31. The manageable, domain specific scope enables the development, operation and

    maintenance of an SCS by a independent team. Team 1 Team 2 Team 3
  32. share ideas share concepts don’t share libraries Team 1 Team

    2 Team 3
  33. “Operational costs are increased!”

  34. Monolith

  35. Microservices?

  36. “Deployments cannot be faster, 
 we have an established process!”

  37. None
  38. None
  39. None
  40. What this taught us

  41. What this taught us > enable fast feedback for your

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

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

    team > automate what’s next to you first > do your homework before you teach others
  44. 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
  45. 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
  46. “pets vs. cattle”

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

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

  49. summarized: change perspectives!

  50. None
  51. None
  52. http://izismile.com/2013/01/22/buyers_beware_its_a_matter_of_perspective_3_pics.html

  53. A company which embraced and evolved

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

  55. Modernisation Strategies

  56. Big Bang

  57. Change via Copy

  58. Change via Extraction

  59. Strangulate Bad Parts

  60. http://aim42.org/ more information on software modernisation 
 can be found

    at #javaone #microservices
  61. conclusion

  62. 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
  63. Summary #javaone #microservices

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

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

    > don't forget: there's always at least one other perspective #javaone #microservices
  66. 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
  67. 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
  68. Thank you! Questions? Comments? Tammo van Lessen | @taval tammo.vanlessen@innoq.com

    Alexander Heusingfeld | @goldstift alexander.heusingfeld@innoq.com 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