I've been watching this video tutorial about principles of microservices, and I think it's the kind of video I'll need to watch again and again, it remainds a lot of theory that I need to remember everytime I deal with microservices, it's pretty basic, but necessary.
The speaker is Sam Newman, and he summarizes this basic stuff in 8 principles which I'm enumerating below
What are microservices? When should you use them? Should you start with microservices, or migrate to them over time?
Interest in microservices is exploding, with industry leaders like Amazon and Netflix deploying them massively. In this video course, O’Reilly author Sam Newman presents an overview of microservice architecture and usage, including modeling, integrating, testing, deploying, and monitoring your own autonomous services.
Throughout the course, Sam demonstrates his Eight Key Principles for doing microservices well:
- Model Around Your Business Domain: Domain-driven design can help you find stable, reusable boundaries
- Build a Culture of Automation: More moving parts means automation is key
- Hide Implementation Details: One of the pitfalls that distributed systems can often fall into is tightly coupling their services together
- Embrace Decentralization: To achieve autonomy, push power out of the center, organizationally and architecturally
- Deploy Independently: Perhaps the most important characteristic microservices need
- Focus on Consumers First: As the creator of an API, make your service easy to consume
- Isolate Failure: Microservice architecture doesn’t automatically make your systems more stable
- Make Them Highly Observable: With many moving parts, understanding what is happening in your system can be challenging
About the presenter:
Sam Newman is the author of Building Microservices: Designing Fine-Grained Systems (O’Reilly Media, 2015). Sam is a technologist at ThoughtWorks, where he divides his time between helping clients globally, and working as an architect for ThoughtWorks' own internal systems. Sam has written articles, presented at conferences, and sporadically commits to open source projects.
About the O’Reilly Software Architecture Series:
Clearing a path from developer to architect and enriching that path once you arrive.
Software architecture is a fast-moving, multidisciplinary subject in which entire suites of "best practices" become obsolete practically overnight. No single path or curriculum exists, and different types of architecture—application, integration, enterprise—require different subject emphasis. Whether you’re at the outset of a career as an architect or in the midst of such a career, series editor Neal Ford has curated this collection of tools and guides for aspiring and seasoned architects alike.