5 Things to Know about Microservices
vasfi 1200008QSY Visits (21451)
Traditional practices are daily being challenged by innovative ideas. Software Architecture is no different. Until very recently, single big applications ("monoliths") were the de-facto standard way of building applications. The entire team worked in unison to produce a single deployable unit which encompassed all the business requirements. This blog post discusses an alternative architecture pattern, Microservices, which is increasingly being used by companies in their cloud based solutions.
What are microservices?
Microservices is an architecture style which prescribes building large complex software applications using many small microservices. These microservices are narrowly focused, independently deployable, loosely coupled, language agnostic services fulfilling a business capability. These multiple microservices communicate with each other using language-agnostic APIs such as REST.
These microservices are applications in themselves and are often owned by small teams. Unlike the normal practice, the team which coded the microservices is also responsible for its support.
Business drivers like agility, better reliability, improved scalability, security has forced architects to consider new paradigms like cloud computing and microservices. The traditional monolithic applications suffer from challenges like
In contrast, microservices, by definition itself are smaller manageable units of business capabilities which are easy to develop, test and maintain and also faster to adapt.
How is it related to SOA?
Services form the core concept in both SOA and microservices but the objectives are different. While SOA services aim for enterprise wide reuse, Microservices have a much smaller goal. They are made for specific objectives so they are often called “fine grained SOA”. Microservices tends to be focused on agility.
SOA is found in technical environments which have traditional in-house infrastructure, where as Microservices are being rapidly adopted in organizations relying on Cloud computing as cloud infrastructure makes it easy to deploy, manage and collaborate with other microservices.
Bluemix is a great platform for microservices
IBM Bluemix is an open-standards cloud platform for building, running, and managing applications. It provides developers access to IBM and third party services for inte
Microservices are created as individual applications on Bluemix. These multiple microservices talk using REST or messaging services.. IBM Bluemix also provides rich DevOps capabilities which allows developers to rapidly create microservices. IBM Bluemix DevOps Services provides capabilities like
Will Microservices solve all our problems and bring "World Peace"?
Microservices are not a silver bullet that will solve all our problems. Microservices has its own challenges and can’t be blindly applied to all scenarios. Few of the issues that needs to be carefully addressed are
To summarize, Microservices pattern offer a fresh alternative to Monolithic application development and should be considered in Cloud based solutions. Check out the latest Redbooks publ
Shishir Narain is an Open Group certified Master IT Specialist with deep skills in IBM middleware products. He works in IBM Software Services for WebSphere at India Software Lab, Bangalore. He has 16 years of experience in developing solutions for multiple clients. He has led several end-to-end IT implementations based on SOA. He holds a Master of Technology degree from Indian Institute of Technology, Kanpur.