Monitoring and Supporting Microservices
May 2019 • Presentation
This presentation provides guidance on architecting microservices with domain-driven design, choosing tools, avoiding pitfalls, and making developers' lives easier.
Software Engineering Institute
If microservices are not architected correctly, they will be difficult to maintain and support. Great support starts with great architecture and ensuring the necessary tools are in place. I will focus first on domain-driven design. It is important to define domains properly; otherwise, ownership for a domain becomes an issue. Unless domains are designed to be independent, production releases will be difficult and require lot of coordination. I will walk through specific examples of how releases could be difficult if dependencies are not taken care of. DevOps practices like blue-green deployment, feature toggles, and microservice versioning are critical to successful deployment. These practices reduce deployment downtime and help releases go smoothly. In turn, they improve the supportability of microservices. The circuit breaker pattern and timeout settings are important in the microservices world as they localize faults and reduce customer impact. I will talk through an example. As we build and deploy microservices, how do we ensure that the end-to-end business process is auditable and traceable? I will share my experience on how we built traceability. Finally, how do we choose the right set of monitoring tools and what capabilities do we need for microservices monitoring? If you have just started or are mid-way into the microservices journey, attending my talk will help you avoid lot of pitfalls and also make the developers' lives easier!