In the last 2 years or so Microservices have achieved the rock star status in the IT circles.
The graph below shows the Google trend for microservices. The concept of microservices is not new, its been there in the academia circles for over a decade.So what happened around 2014 that caused a sudden spike in the interest in microservices? This is the question that I am trying to answer in this article - so here are my thoughts based on my personal experience and thoughts shared by the technology practitioners (CTOs, architects, developers) I interact with as an IT consultant.
Google Microservices Trends
1. Availability of technologies aligned with microservices
Traditional technology stacks are not fit for the realization of the microservices architecture. Anyone who has interest in the topic of microservices would tell you that "microservices are NOW possible due to advent of Docker containers". I would agree with this statement but at the same time would say that we need to give credit to the PaaS technologies as well. Lately I have seen multiple large enterprises investing PaaS solutions such as Pivotal CF / Bluemix with the intent to leverage microservices architecture style. Successful microservices adoption requires the developer (team) of the microservices to be empowered. Both Docker container technology and PaaS offerings have made it possible for technology teams to get the freedom to use what makes sense for their app & that too without going through the age old beurocratic provisioning IT processes.
Docker (red) - Microservices (blue) Trend
2. Point of diminishing returns for SOA
In the last decade, enterprises have invested millions in building practices around their Service Oriented Architecture (SOA) programs. In this decade long journey of SOA enablement, enterprises have built skills, processes and platforms (e.g., ESB). Many such enterprises have reached a point where they have lost track of the services in these SOA platforms (ESB) and though the skills for building and managing the services is there the agility expected by stakeholders (customer, business ..) is not achievable due to the complex and monolithic nature of the services built on these SOA platforms. In other words enterprises have reached a point of diminishing returns with SOA. Microservices is considered as a nextgen services architecture that addresses the pain points experienced with the current state of SOA. The expectation is that adoption of microservices pattern (& technologies) over SOA will enable the development teams to realize the digital ambitions of the enterprise.
3. Microservices Pioneers & Evangelists
Success of Netflix and Amazon with microservices is one of the most talked about examples of how real enterprises are taking advantage of this new architectural pattern. These enterprises have not only adopted the microservices practices but they have also shared the insights and even tools with the tech community. Their practical insights have raised the confidence of the tech community. Also the tools built by these enterprises have brought to surface the gaps that need to be addressed by way of automations (tools).
Refer: Netflix Blog
4. Mainstream adoption of DevOps
DevOps is a MUST for successful realization of the microservices. Almost every customer I work with has a DevOps program in place. There are plethora of tools and technologies available to the enterprises today for creating their continuous integration/testing/delivery pipelines. This maturity in the area of DevOps is contributing to the higher levels of confidence of IT teams in their capabilities to build and manage microservices based applications.
Following graph depicts the trends for DevOps (blue) versus microservices (red).
5. Buzz generated by the technology vendors
In the last 12 months I got the opportunity to attend four (4) technology conferences. The common theme in all of these conference was microservices and how the vendor's (sponsorer's) technology offering support the creation and management of the microservices. One observation I made during these conferences was that, any session with microservices in the title was a soldout. Technology vendor blogs these days are full of advice on how to build and manage microservices using their products. Lately some of my customers have approached me with a question referring to vendor blogs or videos from some of these conferences. Clearly all these marketing efforts by multiple vendors is definitely influencing the IT decision makers to consider the adoption of microservices.
Please do share your thoughts.