the microservices journey from a startup
play

The Microservices journey from a startup perspective Susanne Kaiser - PowerPoint PPT Presentation

The Microservices journey from a startup perspective Susanne Kaiser CTO @suksr Just Software @JustSocialApps Each journey is different People try to copy Netflix, but they can only copy what they see. They copy the results, not the


  1. The Microservices journey from a startup perspective Susanne Kaiser CTO @suksr Just Software @JustSocialApps

  2. Each journey is different “People try to copy Netflix, but they can only copy what they see. They copy the results, not the process.” Adrian Cockcroft, AWS VP Cloud Archtitect, former Netflix Chief Cloud Architect

  3. Our Transformation Process Identify candidates Decompose candidates  Establish Microservices ecosystem 

  4. Transformation process Start End

  5. Transformation process Start End Start Theory (straightforward) Reality (evolutionary)

  6. The beginning … A monolith in every aspect One One team Single Unit technology stack One collaboration product

  7. After an evolving while … New features Productivity suffered released slowly Usability and UX suffered

  8. Separate Collaboration Apps JUST PAGE JUST CONNECT Social Network Real-time collaboration JUST TASKS JUST DRIVE Task Management Document Sharing

  9. Small, autonomous teams with well-defined responsibilities JUST PAGE Social Network JUST CONNECT Real-time collaboration JUST DRIVE Document Sharing JUST TASKS Task Management

  10. In the long run ... Product Organization Software architecture

  11. Microservices come with complexities Multiple independent services Operational complexity Communication complexity Slow, unreliable network Partitioned data Complexity of eventual consistency

  12. Challenges of transformation You still have to Different skills & tools take care of your required existing system Core functionality Transformation is hard to untangle takes longer than anticipated

  13. Our Motivation ● Product and organizational/culture driven ● Enabling autonomous teams with well-defined responsibilities ● Develop and deploy independently to release changes quickly

  14. How to start? ? ? ? ?

  15. Transformation process Identify candidates

  16. Key concepts of modelling Microservices Loose coupling between services High cohesion within a service

  17. Identify Bounded Contexts Well defined business function

  18. Bounded Contexts = Collaboration Apps Monolith

  19. Transformation process Decompose candidates 

  20. First approach as a co-existing service Monolith Web App JUST CONNECT JUST DRIVE REST API JUST PAGE JUST DRIVE DB Adapter JUST LIST Message DB Adapter Broker        

  21. Hard work if you do all at once New UI Maintain & run current system New data structure More features

  22. Split in steps – e.g. top down

  23. Split in steps – e.g. top down Browser Monolith Web Client DB Adapter

  24. Split in steps – Step 1) Extracting Web App Browser Monolith Web App Web Client Web Client Business Logic DB Adapter

  25. Split in steps – Step 2) Extracting Business Logic Browser Web App Monolith Web Client REST API Business Logic Business Logic DB Adapter DB Adapter

  26. Split in steps – Step 3) Extracting Data Storage Browser Web App Monolith Web Client REST API Business Logic Business Logic R E S T A P I DB Adapter DB Adapter Message Broker

  27. Which one first? Changing Easy to extract frequently Different resource requirements

  28. Stop feeding the monolith Monolith

  29. How to handle Authz? Our authz context ... Authorization based on domain object level Each domain object has its own authorization handling

  30. How to handle Authz? We started with…

  31. How to handle Authz? But we missed a point ... Inter-Service Authorization Dependency

  32. How to handle Authz? Leading to …

  33. How to handle Authz? Not decentralized! + Fast in-process calls for read access + No single point of failure - Every MS has to implement authz logic - For a change every MS has to be updated - Duplication of all global authz data - Verbose communication - Tight coupling between services => Authorization is a cross-cutting concern Decentralized

  34. How to handle Authz? Centralized! Prerequisite: General rules applicable for every Microservice!

  35. How to handle Authz? + One authz logic implementation + Change at one place + Explicit data sovereignty + No duplicated data - Communication over network - Single Point of Failure Centralized

  36. Whenever you encounter communication and implementation overhead leading to high coupling between the services the seam might be wrong.

  37. Transformation process Establish Microservices ecosystem 

  38. Microservices ecosystem CI/CD Pipeline Design for Failure   Monitoring API-Gateway   Log tracing Service Discovery   Testing (incl. API) Load Balancing   Central Configuration Dev Sandbox  

  39. Microservices ecosystem Tool examples f. Java Hystrix &   Prometheus & Zuul   Spring Cloud Sleuth & Zipkin Eureka   Spring Cloud Config Ribbon   Pact (CDC-Testing)  

  40. Lessons learned ● Establishing Microservices ecosystem takes time and requires different skills & tools ● No explicit infrastructure team slows down the process ● Starting with decomposing big chunks frustrates ● Evaluate communication flow to identify wrong seams ● It takes far longer than originally anticipated

  41. By starting small and decomposing in manageable steps and taking care of your ecosystem from the beginning the transformation process can be handled with even limited resources.

  42. * *) Quarter of Hamburg, famous for its soccer club & entertainment district :)

  43. … AND W/ MICROSERVISES !

  44. THANK YOU! Susanne Kaiser CTO @suksr Just Software @JustSocialApps

Recommend


More recommend