Abstract
Cloud applications are more and more featuring microservices as a design pattern, using related technologies (containerization, orchestration, continuous deployment, integration, and more) to speed up design, development, and operation. However, microservices are not bullet-proof: they increase design and management issues in the cloud adding to the mix all the intrinsic complexities of highly distributed systems. This addition can render ineffective all centralized management technologies like Docker or clustering systems like Swarm and Kubernetes. Conversely, autonomic and decentralized microservices management is still largely unexplored. We address this problem with Gru, an approach based on multiagent systems that adds an autonomic adaptation layer for microservice applications focusing on Docker, the de facto market leader in container technology. Gru is designed to support fully decentralized microservices management, and can be integrated with ease in dockerized applications, managing them with autonomic actions to satisfy application quality requirements. We evaluate Gru with a concrete case study showing autoscaling dockerized microservices matching variating and bursty workloads. Evaluation shows encouraging results for Gru autonomic management.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Auto Scaling in the Amazon Cloud, http://techblog.netflix.com/2012/01/auto-scaling-in-amazon-cloud.html. Accessed 18 Jan 2017
A. Balalaie, A. Heydarnoori, P. Jamshidi, Microservices architecture enables DevOps: migration to a cloud-native architecture. IEEE Softw. 33(3), 42–52 (2016)
L. Baresi, S. Guinea, A. Leva, G. Quattrocchi, A discrete-time feedback controller for containerized cloud applications, in Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering (ACM, New York, 2016), pp. 217–228
L. Baresi, S. Guinea, A. Leva, G. Quattrocchi, A discrete-time feedback controller for containerized cloud applications, in ed. by T. Zimmermann, J. Cleland-Huang, Z. Su. Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering (ACM, New York, 2016), pp. 217–228. http://dblp.uni-trier.de/db/conf/sigsoft/fse2016.html#BaresiGLQ16
L. Baresi, S. Guinea, G. Quattrocchi, D.A. Tamburri, Microcloud: a container-based solution for efficient resource management in the cloud, in SmartCloud (IEEE Computer Society, Washington, 2016), pp. 218–223. http://dblp.uni-trier.de/db/conf/smartcloud/smartcloud2016.html#BaresiGQT16
D. Bernstein, Containers and cloud: from LXC to docker to kubernetes. IEEE Cloud Comput. 1(3), 81–84 (2014)
N. Calcavecchia, B. Caprarescu, E. Di Nitto, D. Dubois, D. Petcu, DEPAS: a decentralized probabilistic algorithm for auto-scaling. Computing 94, 701–730 (2012). http://dx.doi.org/10.1007/s00607-012-0198-8
J. Cámara, P. Correia, R. De Lemos, D. Garlan, P. Gomes, B. Schmerl, R. Ventura, Evolving an adaptive industrial software system to use architecture-based self-adaptation, in 2013 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS) (IEEE, Piscataway, 2013), pp. 13–22
J. Cámara, P. Correia, R. de Lemos, D. Garlan, P. Gomes, B. Schmerl, R. Ventura, Incorporating architecture-based self-adaptation into an adaptive industrial software system. J. Syst. Softw. 122, 507–523 (2016)
M. Caporuscio, C. Ghezzi, Engineering future internet applications: the prime approach. J. Syst. Softw. 106, 9–27 (2015). http://dx.doi.org/10.1016/j.jss.2015.03.102. http://www.sciencedirect.com/science/article/pii/S0164121215000783
M. Caporuscio, V. Grassi, M. Marzolla, R. Mirandola, GoPrime: a fully decentralized middleware for utility-aware service assembly. IEEE Trans. Softw. Eng. 42(2), 136–152 (2016). https://doi.org/10.1109/TSE.2015.2476797
Y. Chen, Y. Kakuda, Autonomous decentralised systems in web computing environment. Int. J. Crit. Comput.-Based Syst. 2(1), 1–5 (2011). http://dblp.uni-trier.de/db/journals/ijccbs/ijccbs2.html#ChenK11
Cisco: Cisco visual networking index: forecast and methodology, 2015–2020 (2016), http://www.cisco.com/c/en/us/solutions/collateral/service-provider/visual-networking-index-vni/complete-white-paper-c11-481360.html
Dar, MAPE-k adaptation p control loop p (2012), https://www.bibsonomy.org/bibtex/2d3cd41f1bc9f09286bc73b1a3456827b/olemeyer
Dismantling the monoliths, https://engineering.groupon.com/2013/misc/i-tier-dismantling-the-monoliths/. Accessed 26 Aug 2016
Docker, https://www.docker.com/. Accessed 26 Aug 2016
Docker Swarm, https://docs.docker.com/swarm/. Accessed 26 Aug 2016
L. Florio, E. Di Nitto, Gru: an approach to introduce decentralized autonomic behavior in microservices architectures, in 2016 IEEE International Conference on Autonomic Computing (ICAC) (2016), pp. 357–362. https://doi.org/10.1109/ICAC.2016.25
D. Garlan, S.W. Cheng, A.C. Huang, B. Schmerl, P. Steenkiste, Rainbow: architecture-based self-adaptation with reusable infrastructure. Computer 37(10), 46–54 (2004)
P. Hoenisch, I. Weber, S. Schulte, L. Zhu, A. Fekete, Four-fold auto-scaling on a contemporary deployment platform using docker containers, in International Conference on Service-Oriented Computing (Springer, Berlin, 2015)
C. Kan, Docloud: an elastic cloud platform for web applications based on docker, in 2016 18th International Conference on Advanced Communication Technology (ICACT) (IEEE, Piscataway, 2016), pp. 478–483
J.O. Kephart, D.M. Chess, The vision of autonomic computing. Computer 36(1), 41–50 (2003)
C. Klein, R. Schmid, C. Leuxner, W. Sitou, B. Spanfelner, A survey of context adaptation in autonomic computing, in Fourth International Conference on Autonomic and Autonomous Systems (2008)
Kubernetes, http://kubernetes.io/. Accessed 26 Aug 2016
Microservices, http://martinfowler.com/articles/microservices.html. Accessed 26 Aug 2016
Microservices Are not a Free Lunch!, http://highscalability.com/blog/2014/4/8/microservices-not-a-free-lunch.html. Accessed 14 June 2017
Microservices at Netflix, http://www.slideshare.net/stonse/microservices-at-netflix. Accessed 26 Aug 2016
Microservices Evolution at SoundCloud, https://www.infoq.com/articles/microservices-evolution-soundcloud. Accessed 26 Aug 2016
Microservices Trade-Offs, http://martinfowler.com/articles/microservice-trade-offs.html. Accessed 27 July 2016
S. Newman, Building Microservices (O’Reilly Media, Newton, 2015)
M. Premoli, C.F. Riva, Analisi delle prestazioni per la conversione di video distribuita con mapreduce. Master’s Thesis, Politecnico di Milano (2013)
S. Rajagopalan, H. Jamjoom, App–bisect: autonomous healing for microservice-based apps, in 7th USENIX Workshop on Hot Topics in Cloud Computing (HotCloud’15) (2015)
L. Steels, The origins of ontologies and communication conventions in multi-agent systems. J. Agents Multi-Agent Syst. 1(2), 169–194 (1998)
G. Toffetti, S. Brunner, M. Blöchlinger, F. Dudouet, F. Edmonds, An architecture for self-managing microservices, in Proceedings of the 1st International Workshop on Automated Incident Management in Cloud, AIMC’15 (ACM, New York, 2015), pp. 19–24. https://doi.org/10.1145/2747470.2747474
J. Turnbull, The Docker Book: Containerization Is the New Virtualization (2014), https://dockerbook.com/
D. Weyns, M. Georgeff, Self-adaptation using multiagent systems. IEEE Softw. 27(1), 86–91 (2010)
A. Wiggins, The twelve-factor app (2012), http://12factor.net/. Accessed 29 June 2016
Acknowledgements
The research reported in this chapter is partially supported by the European Commission grant no. FP7-ICT-2011-8-318484 (MODAClouds). Also, Damian and Elisabetta’s work is partially supported by the European Commission grant no. 644869 (H2020 - Call 1), DICE, and grant no. 779656 (H2020), SODALITE.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Nitto, E.D., Florio, L., Tamburri, D.A. (2020). Autonomic Decentralized Microservices: The Gru Approach and Its Evaluation. In: Bucchiarone, A., et al. Microservices. Springer, Cham. https://doi.org/10.1007/978-3-030-31646-4_9
Download citation
DOI: https://doi.org/10.1007/978-3-030-31646-4_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-31645-7
Online ISBN: 978-3-030-31646-4
eBook Packages: Computer ScienceComputer Science (R0)