There’s no shortage of hype around microservices. Pioneered by the likes of Netflix, Google, and Twitter, enterprises have been advancing deep into the research and adoption phase of microservices. In a recent survey, 36% of CIOs said that they had already adopted microservices, with another 26% stating that they are in the tire-kicking phase. Given this hockey-stick-like adoption curve you might expect there to be solid guidelines and best practices around adopting microservices. If only!
For enterprises committed to breaking apart legacy monolithic architectures and adopting microservices, there remains a lot of trial by fire. What tends to happen is that one team within an organization undertakes an initiative and then educates other application development teams on what they have learned, becoming a center of excellence for the enterprise. There still aren’t many external resources to learn from, and it is certainly an area where a “proceed with caution” approach is the pragmatic one.
JJ is an expert in microservices architecture with experience at both Motorola and Twitter, companies that were early to adopt a microservices approach. While we cannot possible provide a deep dive into everything an enterprise needs to consider and do in this brief post and accompanying videos, he does provide three main areas to consider:
In this video, JJ talks about what microservices are and aren’t. Even the term “micro” is misleading, as some services can be quite large, and others quite small.
Now that you have some understanding of what microservices are and aren’t, are they a good idea for your organization? In this second part of the interview, JJ provides some guidelines and best practices around how to adopt microservices and how to break up a monolithic application. He provides detailed insight into a real-life example at Motorola about how to scale out microservices.
There’s no shortage of headlines around security issues these days, and when adopting a microservices approach to development, security should always be front and center. In this video, JJ talks about how to isolate services so that other services do not become compromised in the event of a security breach.
As a developer or architect looking to adopt a microservice-based approach to application development, we recommend doing a lot of learning upfront and asking yourself if this approach is right for your application. If microservices indeed seem like the way to go, proceed in a pragmatic fashion, ensure isolation between services, and keep scalability and security in mind straight out the gate.
Christian Hasker and JJ Jeyappragash