International Journal of Computer Applications |
Foundation of Computer Science (FCS), NY, USA |
Volume 182 - Number 29 |
Year of Publication: 2018 |
Authors: Chaitanya K. Rudrabhatla |
10.5120/ijca2018918153 |
Chaitanya K. Rudrabhatla . A Systematic Study of Micro Service Architecture Evolution and their Deployment Patterns. International Journal of Computer Applications. 182, 29 ( Nov 2018), 18-24. DOI=10.5120/ijca2018918153
With the advent of Local Area Networks (LAN), the client server architecture gained traction. The ever-growing need for the distributed systems have paved the path for client server architecture to transform in to Service Oriented Architecture (SOA). Due to the reusable and loosely coupled nature of the services, SOA became a successful representation of client server architecture. However, over time SOA fell short of expectations, as it was fully reliant on monolithic system design. Achieving horizontal scalability, faster response times, high availability, infrastructure agility, service and resource isolation was a challenge in SOA frameworks. Micro service architecture (MSA) soon came to the rescue. It offered various solutions to overcome most of the shortfalls of the traditional monolithic SOA architecture. But at the same time, MSA comes with its own set of challenges due to the complex distributed design. Among various design complexities involved in MSA, creating, managing and deploying microservices in a clustered production grade environment is a major challenge. A micro service can be deployed to run on a virtual machine (VM) or on a container which itself runs on a VM. The VM can be in the data center or in the public cloud. The containers can be self-managed or orchestrated. The orchestration can be done by the cloud provider or a third-party software. This research paper illustrates (1) the journey of architectural design patterns from SOA to MSA, by citing the related work and the reasons for evolution. (2) various deployment models available for MSA (3) comparison of the deployment models and a quantitative analysis of the use cases.