Abstract
The use of containers in cloud architectures has become widespread, owing to advantages such as limited overheads, easier and faster deployment, and higher portability. Moreover, they present a suitable architectural solution for the deployment of applications created using a microservice development pattern. Despite the large number of solutions and implementations, there remain open issues that have not been completely addressed in container automation and management. Container resource allocation influences system performance and resource consumption, and so it is a key factor for cloud providers. We propose a genetic algorithm approach, using the Non-dominated Sorting Genetic Algorithm-II (NSGA-II), to optimize container allocation and elasticity management, motivated by the good results obtained with this algorithm in other resource management optimization problems in cloud architectures. Our optimization algorithm enhances system provisioning, system performance, system failure, and network overhead. A model for cloud clusters, containers, microservices, and four optimization objectives is presented. Experimental results demonstrate that our approach is a suitable solution for addressing the problem of container allocation and elasticity, and it obtains better objective values than the container management policies implemented in Kubernetes.
Similar content being viewed by others
References
Adam, O., Lee, Y.C., Zomaya, A.Y.: Stochastic resource provisioning for containerized multi-tier web services in clouds. IEEE Trans. Parallel Distrib. Syst. 28(7), 2060–2073 (2017). https://doi.org/10.1109/TPDS.2016.2639009
Akhter, N., Othman, M.: Energy aware resource allocation of cloud data center: Review and open issues. Clust. Comput. 19(3), 1163–1182 (2016)
de Alfonso, C., Calatrava, A., Moltó, G.: Container-based virtual elastic clusters. J. Syst. Softw. 127, 1–11 (2017). https://doi.org/10.1016/j.jss.2017.01.007. http://www.sciencedirect.com/science/article/pii/S0164121217300146
Amaral, M., Polo, J., Carrera, D., Mohomed, I., Unuvar, M., Steinder, M.: Performance evaluation of microservices architectures using containers. In: 2015 IEEE 14th International Symposium on Network Computing and Applications, pp. 27–34 (2015). https://doi.org/10.1109/NCA.49.405
Balalaie, A., Heydarnoori, A., Jamshidi, P.: Microservices architecture enables devops: Migration to a cloud-native architecture. IEEE Softw. 33(3), 42–52 (2016). https://doi.org/10.1109/MS.2016.64
Beloglazov, A., Abawajy, J.H., Buyya, R.: Energy-aware resource allocation heuristics for efficient management of data centers for cloud computing. Fut. Gen. Comp. Syst. 28(5), 755–768 (2012). https://doi.org/10.1016/j.future.2011.04.017
Brito, M.S.D., Hoque, S., Steinke, R., Willner, A.: Towards programmable fog nodes in smart factories. In:2016 IEEE 1st International Workshops on Foundations and Applications of Self* Systems (FAS*W), pp. 236–241 (2016). https://doi.org/10.1109/FAS-W.2016.57
Caballer, M., Blanquer, I., Moltó, G., de Alfonso, C.: Dynamic management of virtual infrastructures. J. Grid Comput. 13(1), 53–70 (2015). https://doi.org/10.1007/s10723-014-9296-5
Deb, K., Agrawal, S.: Understanding interactions among genetic algorithm parameters. In: FOGA, pp. 265–286 (1998)
Deb, K., Deb, K.: Multi-objective Optimization, pp. 403–449. Springer, Boston (2014)
Deb, K., Pratap, A., Agarwal, S., Meyarivan, T.: A fast and elitist multiobjective genetic algorithm: Nsga-ii. Trans. Evol. Comp 6(2), 182–197 (2002). https://doi.org/10.1109/4235.996017
Di, S., Cappello, F.: Gloudsim: Google trace based cloud simulator with virtual machines. Softw. Pract. Exper. 45(11), 1571–1590 (2015). https://doi.org/10.1002/spe.2303
Durillo, J.J., Nebro, A.J., Luna, F., Alba, E.: A study of master-slave approaches to parallelize nsga-ii. In: 2008 IEEE International Symposium on Parallel and Distributed Processing, pp. 1–8 (2008). https://doi.org/10.1109/IPDPS.2008.4536375
Fazio, M., Celesti, A., Ranjan, R., Liu, C., Chen, L., Villari, M.: Open issues in scheduling microservices in the cloud. IEEE Cloud Computing 3(5), 81–88 (2016). https://doi.org/10.1109/MCC.2016.112
Ferme, V., Ivanchikj, A., Pautasso, C., Skouradaki, M., Leymann, F.: A container-centric methodology for benchmarking workflow management systems. In: Proceedings of the 6th International Conference on Cloud Computing and Services Science - Volume 1 and 2, CLOSER 2016, pp. 74–84. SCITEPRESS - Science and Technology Publications, Lda, Portugal (2016). https://doi.org/10.5220/0005908400740084
Fu, S.: Failure-aware resource management for high-availability computing clusters with distributed virtual machines, vol. 70, pp. 384–393 (2010), https://doi.org/10.1016/j.jpdc.2010.01.002. http://www.sciencedirect.com/science/article/pii/S0743731510000031
Gai, K., Qiu, M., Zhao, H.: Cost-aware multimedia data allocation for heterogeneous memory using genetic algorithm in cloud computing. IEEE Trans. Cloud Comput. PP(99), 1–1 (2017). https://doi.org/10.1109/TCC.2016.2594172
Gen, M., Cheng, R.: Genetic Algorithms and Engineering Optimization, vol. 7. Wiley (2000)
Gerlach, W., Tang, W., Wilke, A., Olson, D., Meyer, F.: Container orchestration for scientific workflows. In: 2015 IEEE International conference on cloud engineering, pp. 377–378 (2015). https://doi.org/10.1109/IC2E.2015.87
Grefenstette, J.J.: Optimization of control parameters for genetic algorithms. IEEE Trans. Syst. Man Cybern. 16(1), 122–128 (1986). https://doi.org/10.1109/TSMC.1986.289288
Guan, X., Wan, X., Choi, B.Y., Song, S., Zhu, J.: Application oriented dynamic resource allocation for data centers using docker containers. IEEE Commun. Lett. PP(99), 1–1 (2016). https://doi.org/10.1109/LCOMM.2016.2644658
Guzek, M., Bouvry, P., Talbi, E.G.: A survey of evolutionary computation for resource management of processing in cloud computing [review article]. IEEE Comput. Intell. Mag. 10(2), 53–67 (2015). https://doi.org/10.1109/MCI.2015.2405351
Heidari, P., Lemieux, Y., Shami, A.: Qos assurance with light virtualization - a survey. In: 2016 IEEE International Conference on Cloud Computing Technology and Science (CloudCom), pp. 558–563 (2016) https://doi.org/10.1109/CloudCom.2016.0097
Hidalgo, J.I., Fernández de Vega, F.: Parallel bioinspired algorithms on the grid and cloud. J. Grid Comput. 13(3), 305–308 (2015). https://doi.org/10.1007/s10723-014-9322-7
Kaewkasi, C., Chuenmuneewong, K.: Improvement of container scheduling for docker using ant colony optimization. In: 2017 9th International Conference on Knowledge and Smart Technology (KST), pp. 254–259 (2017). https://doi.org/10.1109/KST.2017.7886112
Kang, D.K., Choi, G.B., Kim, S.H., Hwang, I.S., Youn, C.H.: Workload-aware resource management for energy efficient heterogeneous docker containers. In: 2016 IEEE Region 10 Conference (TENCON), pp. 2428–2431 (2016) https://doi.org/10.1109/TENCON.2016.7848467
Kaur, K., Dhand, T., Kumar, N., Zeadally, S.: Container-as-a-service at the edge: Trade-off between energy efficiency and service availability at fog nano data centers. IEEE Wirel. Commun. 24(3), 48–56 (2017). https://doi.org/10.1109/MWC.2017.1600427
Konak, A., Coit, D.W., Smith, A.E.: Multi-objective optimization using genetic algorithms: A tutorial. Reliab. Eng. Syst. Safety 91(9), 992–1007 (2006). https://doi.org/10.1016/j.ress.2005.11.018. http://www.sciencedirect.com/science/article/pii/S0951832005002012. Special Issue - Genetic Algorithms and Reliability Special Issue
Kozhirbayev, Z., Sinnott, R.O.: A performance comparison of container-based technologies for the cloud. Fut. Gen. Comput. Syst. 68, 175–182 (2017). https://doi.org/10.1016/j.future.2016.08.025. http://www.sciencedirect.com/science/article/pii/S0167739X16303041
Li, P., Nie, H., Xu, H., Dong, L.: A minimum-aware container live migration algorithm in the cloud environment. Int. J. Bus. Data Commun. Netw. 13(2), 15–27 (2017). https://doi.org/10.4018/ijbdcn.2017070102
von Lücken, C., Barán, B., Brizuela, C.: A survey on multi-objective evolutionary algorithms for many-objective problems. Comput. Optim. Appl. 58(3), 707–756 (2014). https://doi.org/10.1007/s10589-014-9644-1
Manvi, S.S., Shyam, G.K.: Resource management for infrastructure as a service (iaas) in cloud computing: A survey. J. Netw. Comput. Appl. 41, 424–440 (2014). https://doi.org/10.1016/j.jnca.2013.10.004. http://www.sciencedirect.com/science/article/pii/S1084804513002099
Menasce, D.A.: Tpc-w: a benchmark for e-commerce. IEEE Int. Comput. 6(3), 83–87 (2002). https://doi.org/10.1109/MIC.2002.1003136
Mitchell, M.: An Introduction to Genetic Algorithms. MIT Press, Cambridge (1998)
Nadgowda, S., Suneja, S., Kanso, A.: Comparing scaling methods for linux containers. In: 2017 IEEE International Conference on Cloud Engineering (IC2E), pp. 266–272 (2017). https://doi.org/10.1109/IC2E.2017.42
Nguyen, N., Bein, D.: Distributed mpi cluster with docker swarm mode. In: 2017 IEEE 7th Annual Computing and Communication Workshop and Conference (CCWC), pp. 1–7 (2017) https://doi.org/10.1109/CCWC.2017.7868429
Osborne, G., Weninger, T.: Ozy: a general orchestration container. In: 2016 IEEE International Conference on Web Services (ICWS), pp. 609–616 (2016) https://doi.org/10.1109/ICWS.2016.84
Pahl, C., Helmer, S., Miori, L., Sanin, J., Lee, B.: A container-based edge cloud paas architecture based on raspberry pi clusters. In: 2016 IEEE 4th International Conference on Future Internet of Things and Cloud Workshops (FiCloudW), pp. 117–124 (2016) https://doi.org/10.1109/W-FiCloud.2016.36
Pahl, C., Lee, B.: Containers and clusters for edge cloud architectures – a technology review. In: 2015 3rd International Conference on Future Internet of Things and Cloud, pp. 379–386 (2015) https://doi.org/10.1109/FiCloud.2015.35
Pascual, J.A., Lorido-Botrán, T, Miguel-Alonso, J., Lozano, J.A.: Towards a greener cloud infrastructure management using optimized placement policies. J. Grid Comput. 13(3), 375–389 (2015). https://doi.org/10.1007/s10723-014-9312-9
Peinl, R., Holzschuher, F., Pfitzer, F.: Docker cluster management for the cloud - survey results and own solution. J. Grid Comput. 14(2), 265–282 (2016). https://doi.org/10.1007/s10723-016-9366-y
Pizzolli, D., Cossu, G., Santoro, D., Capra, L., Dupont, C., Charalampos, D., Pellegrini, F.D., Antonelli, F., Cretti, S.: Cloud4iot: A heterogeneous, distributed and autonomic cloud platform for the iot. In: 2016 IEEE International Conference on Cloud Computing Technology and Science (CloudCom), pp. 476–479 (2016) https://doi.org/10.1109/CloudCom.2016.0082
Qiu, M., Ming, Z., Li, J., Gai, K., Zong, Z.: Phase-change memory optimization for green cloud with genetic algorithm. IEEE Trans. Comput. 64(12), 3528–3540 (2015). https://doi.org/10.1109/TC.2015.2409857
Ramalho, F., Neto, A.: Virtualization at the network edge: A performance comparison. In: 2016 IEEE 17th International Symposium on A World of Wireless, Mobile and Multimedia Networks (WoWMoM), pp. 1–6 (2016) https://doi.org/10.1109/WoWMoM.2016.7523584
Reniers, V.: The prospects for multi-cloud deployment of saas applications with container orchestration platforms. In: Proceedings of the Doctoral Symposium of the 17th International Middleware Conference, Middleware Doctoral Symposium’16, pp. 5:1–5:2. ACM, New York (2016), https://doi.org/10.1145/3009925.3009930
Rufino, J., Alam, M., Ferreira, J., Rehman, A., Tsang, K.F.: Orchestration of containerized microservices for iiot using docker. In: 2017 IEEE International Conference on Industrial Technology (ICIT), pp. 1532–1536 (2017) https://doi.org/10.1109/ICIT.2017.7915594
Rusek, M., Dwornicki, G., Orowski, A.: A Decentralized System for Load Balancing of Containerized Microservices in the Cloud, pp. 142–152. Springer International Publishing (2017)
Singh, S., Chana, I.: Cloud resource provisioning: survey, status and future research directions. Knowl. Inf. Syst. 49(3), 1005–1069 (2016). https://doi.org/10.1007/s10115-016-0922-3
Singh, S., Chana, I.: A survey on resource scheduling in cloud computing: Issues and challenges. J. Grid Comput. 14(2), 217–264 (2016). https://doi.org/10.1007/s10723-015-9359-2
Smith, N.A., Oommen, M., Sankaranaraynan, P.A.: Method and procedure for dynamic services orchestration that runs within an on device software container (2016). US Patent 9,264,304
Srinivas, M., Patnaik, L. M.: Adaptive probabilities of crossover and mutation in genetic algorithms. IEEE Trans. Syst. Man Cybern. 24(4), 656–667 (1994). https://doi.org/10.1109/21.286385
Tan, K., Lee, T., Khor, E.: Evolutionary algorithms for multi-objective optimization: Performance assessments and comparisons. Artif. Intell. Rev. 17(4), 251–290 (2002). https://doi.org/10.1023/A:1015516501242
Tao, Y., Wang, X., Xu, X., Chen, Y.: Dynamic resource allocation algorithm for container-based service computing. In: 2017 IEEE 13th International Symposium on Autonomous Decentralized System (ISADS), pp. 61–67 (2017) https://doi.org/10.1109/ISADS.2017.20
Tosatto, A., Ruiu, P., Attanasio, A.: Container-based orchestration in cloud: State of the art and challenges. In: 2015 Ninth International Conference on Complex, Intelligent, and Software Intensive Systems, pp. 70–75 (2015) https://doi.org/10.1109/CISIS.2015.35
Vohra, D.: Scheduling pods on nodes. In: Kubernetes Management Design Patterns, pp. 199–236. Springer (2017)
Weaveworks, ContainerSolutions: Socks shop - a microservices demo application (2016). https://microservices-demo.github.io/
Wei, G., Vasilakos, A.V., Zheng, Y., Xiong, N.: A game-theoretic method of fair resource allocation for cloud computing services. J. Supercomput. 54(2), 252–269 (2010). https://doi.org/10.1007/s11227-009-0318-1
Xu, H., Liu, W., Shu, G., Li, J.: Location-aware data block allocation strategy for hdfs-based applications in the cloud. 2016 IEEE 9th Int. Conf. Cloud Comput. 00, 252–259 (2016). https://doi.org/10.1109/CLOUD.2016.0042
Zhan, Z.H., Liu, X.F., Gong, Y.J., Zhang, J., Chung, H.S.H., Li, Y.: Cloud computing resource scheduling and a survey of its evolutionary approaches. ACM Comput. Surv. 47(4), 63:1–63:33 (2015). https://doi.org/10.1145/2788397
Zhang, Q., Cheng, L., Boutaba, R.: Cloud computing: State-of-the-art and research challenges. J. Int. Serv. Appl. 1(1), 7–18 (2010). https://doi.org/10.1007/s13174-010-0007-6
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Guerrero, C., Lera, I. & Juiz, C. Genetic Algorithm for Multi-Objective Optimization of Container Allocation in Cloud Architecture. J Grid Computing 16, 113–135 (2018). https://doi.org/10.1007/s10723-017-9419-x
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10723-017-9419-x