Microservices is an emerging technology in the programming field. We had a nice interaction with Joydip Kanjilal, who is the popular developer and author of over dozen books. Joydip is having 20+ years of experience in the software programming segment.
What do you mean by Micro-services?
Microservices architecture is a term given to a set of independently deployable services – such services are scoped to a particular business function. These services typically run in their own environments and are designed to communicate with other services through well-defined interfaces. It is actually a paradigm shift from the traditional monolithic architectural style for improved scalability, ease of deployment, and performance.
At its core, the Microservice approach is centered on the idea of breaking up complex enterprise software into smaller, more manageable pieces. The difference between Microservice architecture and SOA is that the former is an application architectural style while the latter crosses application boundaries. You can take advantage of this architectural style to build services that can leverage a wide variety of technologies, platforms, and devices.
How Micro-services benefit software development process?
In the traditional approach to build applications, all the features are bundled together in a single code base and in most cases, use a single underlying database. The Microservices architectural style is a paradigm shift – helps you build a large application as a suite of modular, independently deployable services. Essentially, the Microservices architectural style can be used to structure an application into independent, loosely coupled and deployable services. This also helps in a continuous delivery/deployment of your applications seamlessly.
Can you use Micro-services for web development?
Yes – absolutely!
Is there any IDE available for Micro-services?
No – it is just an architectural style.
Can you recommend few books for learning Micro-services?
Patterns of Enterprise Application Architecture – Martin Fowler (One should start with this book first)
Building Microservices – Sam Newman
How do you see the future of Micro-services?
Enterprise adoption of the microservices approach to software development is growing rapidly and practically all those that have embraced the technology so far expect it to become their default application architecture.
With that said, there is no shortage of technical challenges involved in implementing microservices. There are operational challenges, challenges to performance management and security. However, there are strategies and ways to overcome these challenges and the adoption trends (migration from a monolith to a microservice) show a remarkable growth of this architectural trend over the past couple of years across the globe.
How many percentage of companies have adopted Micro-services?
Many companies have already published articles detailing their experiences in adopting microservices. Here’s the list of a few:
Uber
Netflix
Amazon
Ebay
Sound Cloud
Karma
Groupon
Hailo