Most large-scale web companies have evolved their system architecture from a monolithic application and monolithic database to a set of loosely coupled microservices. Using examples from Google, eBay, and other large-scale sites, this talk outlines the pros and cons of these different stages of evolution, and makes practical suggestions about when and how other organizations should consider migrating to microservices. It concludes with some more advanced implications of a microservices architecture, including SLAs, cost-allocation, and vendor-customer relationships within the organization.
- In a monolith there is no enforcement of modularity. It all depends on the discipline of the engineers. Sloppiness can happen.
- The database, the data persistence layer is usually the hardest to decouple.
- If you don’t end up regretting your early technology decisions, then you probably over engineered.
- Microservice is SOA done properly.
- Natural selection of services: Services continue to justify their existence through being used.
- Architecture without architect. No central approval for technology decisions.
- Standardized communication.
- Standardized infrastructure.
- In a mature ecosystem of services, we standardize the arcs of the graph, not the nodes!
- Small teams, Microservices, DevOps, Agile practices = are facets of some modern programming practices. It just does not have a name yet.