Microservices is an evolution from Service Oriented Architecture (SOA) where it addresses the gaps in SOA and continues to achieves the goals of building applications using truly composable services. It it the fitting platform and infrastructure for the cloud and Internet of Things (IoT). Microservices is an architectural style of building atomic, autonomous and fine grained services which are single purpose and perform a well defined task. These atomic units or the lego building blocks could be assembled to create complex business applications.
|Fig 1: Wish I could use Legos to build my enterprise applications|
Microservices thus allow building of business applications at a reduced cost by reducing the cost of construction, build and maintenance. Think of it like assembling the business applications versus creating them from scratch. Microservices offer tremendous component reusability and are extreme elasticity to change. As business changes, which is the only constant thing in business, you could change the business applications with least impact by changing specific atomic component or the microservice.
To adopt microservices microservices architectural pattern, you break down larger components or services into single well defined atomic tasks. Later when you build or assemble business application functionality, you stitch together these single atomic tasks to create the desired result. In order for this aggregation to work following three key components are needed:
- API gateway which creates the entry point for business functionality.
- A messaging fabric that provides chaining of Microservices so that it can collaborate and allow creation of complex functionality through simple components
- Container technology like docker so that the Microservices can be packaged and delivered as independent and atomic units without needing any system dependencies
RoboMQ provides a framework for Microservices by providing a multi-protocol gateway through its ThingsConnect suite of adapters and connectors so that you can build applications using any of the industry standard protocol like HTTP/REST, web services, AMQP, MQTT and others. RoboMQ is itself a truly distributed, guaranteed delivery messaging platform that is available on cloud, on premise or as Hybrid Messaging Cloud. We follow docker container technology, providing you a one stop shop for your Microservices development.
We have created a library of fully dockerized connectors, adapters and utility components providing building blocks for Microservices. Build microservices and run them on the cloud, on premise virtual machines or container management platforms like IBM Bluemix or Google Kubernetes with full core infrastructure provided by RoboMQ.