A Probe into the Technological Enablers of Microservice Architectures
Microservice architectures (MSA), composed of loosely coupled and autonomous units called microservices, are gaining wide adoption in the software field. With characteristics that are loyal to the requirements of the Cloud environment, such as inherent support for continuous integration/continuous deployment (CI/CD), MSA are actively embraced by the Cloud computing community. Containers employing lightweight virtualization have also been increasingly adopted in the Cloud environment. The containers wrap applications along with their dependencies into self-contained units, which can be deployed independently. These features make it the unanimously accepted technology to enable seamless execution of microservices in the Cloud. With this outlook, this chapter undertakes a study on how containers may be used to support the execution of microservices. The study also includes other technologies that, in collaboration with container technologies, provide the support required for running microservices in the Cloud. An interesting concern for applications running on containers is resource management. Nevertheless, this is a significant aspect for supporting microservices as well. Such issues have been identified and research works addressing all or some of these issues, have been considered. The various relevant studies have been classified into different categories and the future directions have been identified, which can be used by researchers aiming to enhance the technological support for microservices in Cloud.
- 1.Richards, M. 2015. Microservices vs. service-oriented architecture. O’Reilly Media.Google Scholar
- 2.Richardson, C. 2016. Microservices- from design to deployment. NGINX, Inc.Google Scholar
- 3.Newman, S. 2015. Building microservices: designing fine-grained systems. O’Reilly Media, Inc.Google Scholar
- 4.Amaral, M., J. Polo, D. Carrera, I. Mohomed, M. Unuvar, and M. Steinder. 2015. Performance evaluation of microservices architectures using containers. In IEEE 14th International Symposium on Network Computing and Applications (NCA), 27–34. IEEE.Google Scholar
- 5.Kang, H., M. Le, and S. Tao. 2016. Container and microservice driven design for cloud infrastructure devops. In IEEE International Conference on Cloud Engineering (IC2E), 202–211. IEEE.Google Scholar
- 7.Stubbs, J., W. Moreira, and R. Dooley. 2015. Distributed systems of microservices using docker and serfnode. In 7th International Workshop on Science Gateways (IWSG), 34–39. IEEE.Google Scholar
- 8.Docker. 2017. https://hub.docker.com/.
- 9.Rkt, C. 2017. https://coreos.com/rkt.
- 10.Containers, L. 2017. https://linuxcontainers.org/.
- 11.Kubernetes. https://kubernetes.io/.
- 12.Swarm, D. 2017. https://github.com/docker/swarm.
- 13.Mesos, A. www.mesos.apache.org/.
- 14.ECS, A. 2017. https://aws.amazon.com/ec2/.
- 15.Yu, H.E., and W. Huang. 2015. Building a virtual hpc cluster with auto scaling by the docker. arXiv:1509.08231.
- 16.Zookeeper, A. https://cloud.spring.io/spring-cloud-zookeeper/.
- 17.CoreOS/etcd: (Oct 2017), https://github.com/coreos/etcd.
- 18.Registration, M., D. with Spring Cloud, and N. Eureka. 2015. https://spring.io/blog/2015/01/20/microservice-registration-and-discovery-with-spring-cloud-and-netflix-s-eureka.
- 19.Netflix: Netflix ribbon. 2017. https://github.com/Netflix/ribbon.
- 20.Amazon elb. https://aws.amazon.com/elasticloadbalancing/.
- 22.Olliffe, G. 2017. Microservices: Building services with the guts on the outside. Microservices: Building Services with the Guts on the Outside. https://blogs.gartner.com/gary-olliffe/2015/01/30/microservices-guts-on-the-outside/.
- 23.Havet, A., V. Schiavoni, P. Felber, M. Colmant, R. Rouvoy, and C. Fetzer. 2017. Genpack: A generational scheduler for cloud data centers. In IEEE International Conference on Cloud Engineering (IC2E), 95–104. IEEE.Google Scholar
- 25.Nardelli, M., C. Hochreiner, and S. Schulte. 2017. Elastic provisioning of virtual machines for container deployment. In Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering Companion, 5–10. ACM.Google Scholar
- 26.Awada, U., and A. Barker. 2017. Improving resource efficiency of container-instance clusters on clouds. In Proceedings of the 17th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing, 929–934. IEEE Press.Google Scholar
- 27.Sangpetch, A., O. Sangpetch, N. Juangmarisakul, and S. Warodom. 2017. Thoth: Automatic resource management with machine learning for container-based cloud platform. In CLOSER 2017 - Proceedings of the 7th International Conference on Cloud Computing And Services Science, April 24–26, 75–83. Portugal: Porto.Google Scholar
- 28.Nadgowda, S., S. Suneja, N. Bila, and C. Isci. 2017. Voyager: Complete container state migration. In IEEE 37th International Conference on Distributed Computing Systems (ICDCS), 2137–2142. IEEE.Google Scholar
- 31.Kratzke, N. 2017. Smuggling multi-cloud support into cloud-native applications using elastic container platforms. In 7th International Conference on Cloud Computing and Services Science (CLOSER 2017), 29–42.Google Scholar
- 32.Nardelli, M. 2017. Elastic allocation of docker containers in cloud environments. In ZEUS, 59–66.Google Scholar