Building Microservices
I'm really pleased to announce that my latest Pluralsight course, Building Microservices is now available. This follows on from my Microservices Fundamentals course, and is part of the a microservices architecture learning path at Pluralsight.
The course focuses on three aspects of building microservices in particular.
First, how to structure domain logic. One of the nice things about microservices is that you are free to use different architectural styles and data access patterns in each microservice, giving you the freedom to use simple patterns where that makes sense, and more advanced techniques like CQRS or event sourcing where they would bring most benefit.
The domain logic pattern names I was asked to use for this course come from the classic book "Patterns of Enterprise Architecture" by Martin Fowler, which predates the microservices by many years, but it was interesting to me to see how these approaches are still applicable and relevant despite the architectural landscape having changed a lot.
Second, how to test microservices. As you'd expect I emphasise the importance of unit testing and test driven development, but I don't think they are the whole story. With a microservices architecture, you need a broad testing strategy, and so I use the concept of the test pyramid to look at the role that integration (or "service-level") and end-to-end tests play in the bigger picture.
Finally, how to authenticate and authorize microservices with each other. This is of course an extremely important topic, but also very challenging to cover in a relatively short course like this. Because I'm using the eShopOnContainers sample application again in this course, I show how its approach of using OAuth and OpenID Connect along with Identity Server is a really great choice for securing microservices.
It's impossible not to feel a little bit of "imposter syndrome" when teaching a course on a topic as broad-ranging as microservices. There are many different viable approaches to implementing a microservices architecture, and I only know about a few of them. This course isn't intended to be the final word on how to build microservices, but my hope is that what I've learned so far will be helpful for others starting out on their microservices journey.
If you do watch the course, I'd love to hear your feedback, and what techniques and patterns you're finding most helpful in implementing your own microservices architectures.
Finally, if any of you are UK based, I'll be speaking at the Ignite the Tour conference in London in January 2020, looking in particular at containerized and serverless architectures and how to host them in Azure.