7. The monolith
● Componentization is via Services
● Often organized around Tech abilities
○ UI Expert teams
○ Backend or middleware developers
○ DBA’s
8. … organizations which design systems
... are constrained to produce designs
which are copies of the communication
structures of these organizations...
—Melvin Conway
9. The microservices
● Organized around Business Capabilities
● Products not Projects
○ development team takes full responsibility for the
software in production
○ "you build, you run it" - aka the Amazon way
● SOA done right?
13. Microservices are the unix way
This is the Unix philosophy: Write programs that
do one thing and do it well. Write programs to
work together. Write programs to handle text
streams, because that is a universal interface.
Doug McIlroy, head of the Bell Labs CSRC (Computing Sciences
Research Center), and inventor of the Unix pipe
14. Mike Gancarz: The UNIX Philosophy
1. Small is beautiful.
2. Make each program do one thing well.
3. Build a prototype as soon as possible.
4. Choose portability over efficiency.
5. Store data in flat text files.
6. Use software leverage to your advantage.
7. Use shell scripts to increase leverage and portability.
8. Avoid captive user interfaces.
9. Make every program a filter.
15. With all the frameworks out there
what do I pick?
20. #2 Each service on it’s own repo
● Each service should be on a separate VCS
root
○ Physical code separation
● Various dependencies temptations not
possible
21. #3 What to standardize
Java EE
Clojure
Ruby
NodeJS
Spring
based
Spring
with tab
indentati
on
Standardize interface
Free for all
22. #4 How do test all of this?
Nod
eJS
S2App
S1
Nod
eJSMock
App
Mock
End 2 end
23. #5 Coupling avoidance
● Function coupling
● Data structure coupling
● Temporal coupling
● URI coupling
43. Summary
Microservices are awesome but be
aware of the challenges and make sure
you use best practices.
Operation and resilience are the
biggest overheads.
44. Summary
Ensure your team is up to the task
and you really need it !
Ensure you have DevOps experties.
Start small and make adjustments
as needed.