Application deployment using Microservice and Docker containers: Framework and optimization

Abstract To improve the scalability and elasticity of application deployment and operation in cloud computing environments, new architectures and techniques are developed and studied, e.g., microservice architecture, and Docker container. Especially, Docker container enables the sharing on operation system and supporting libraries, which is more lightweight, prompt and scalable than Hypervisor based virtualization. These features make it ideally suit for applications deployed in microservice architecture. However, existing models and schemes, which are mostly designed for Hypervisor based virtualization techniques, fall short to be efficiently used for Docker container based application deployment. To take the benefits of microservice architecture and Docker containers, we explore the optimization of application deployment in cloud data centers using microservice and Docker containers. Our goal is to minimize the application deployment cost as well as the operation cost while preserving service delay requirements for applications. In this paper, we first formulate the application deployment problem by examining the features of Docker, the requirements of microservice-based applications, and available resources in cloud data centers. We further propose a communication efficient framework and a suboptimal algorithm to determine the container placement and task assignment. The proposed algorithm works in a distributed and incremental manner, which makes it scalable to massive physical resources and diverse applications under the framework. We validate the efficiency of our solution through comparisons with three existing strategies in Docker Swarm using real traces from Google Cluster. The evaluation results show that the proposed framework and algorithm provide more flexibility and save more cost than existing strategies.

[1]  Rajkumar Buyya,et al.  Energy-aware resource allocation heuristics for efficient management of data centers for Cloud computing , 2012, Future Gener. Comput. Syst..

[2]  Kemafor Anyanwu,et al.  Scheduling Hadoop Jobs to Meet Deadlines , 2010, 2010 IEEE Second International Conference on Cloud Computing Technology and Science.

[3]  Ramakrishnan Rajamony,et al.  An updated performance comparison of virtual machines and Linux containers , 2015, 2015 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS).

[4]  Malgorzata Steinder,et al.  A scalable application placement controller for enterprise data centers , 2007, WWW '07.

[5]  Jie Lu,et al.  Optimal Cloud Resource Auto-Scaling for Web Applications , 2013, 2013 13th IEEE/ACM International Symposium on Cluster, Cloud, and Grid Computing.

[6]  Zhen Xiao,et al.  Dynamic Resource Allocation Using Virtual Machines for Cloud Computing Environment , 2013, IEEE Transactions on Parallel and Distributed Systems.

[7]  P. Rajesh,et al.  Optimizing the docker container usage based on load scheduling , 2017, 2017 2nd International Conference on Computing and Communications Technologies (ICCCT).

[8]  Raouf Boutaba,et al.  Virtual Network Embedding with Coordinated Node and Link Mapping , 2009, IEEE INFOCOM 2009.

[9]  Carlos Juiz,et al.  Genetic Algorithm for Multi-Objective Optimization of Container Allocation in Cloud Architecture , 2017, Journal of Grid Computing.

[10]  Enzo Baccarelli,et al.  Minimum-energy bandwidth management for QoS live migration of virtual machines , 2015, Comput. Networks.

[11]  Fumio Machida,et al.  Redundant virtual machine placement for fault-tolerant consolidated server clusters , 2010, 2010 IEEE Network Operations and Management Symposium - NOMS 2010.

[12]  Larry L. Peterson,et al.  Container-based operating system virtualization: a scalable, high-performance alternative to hypervisors , 2007, EuroSys '07.

[13]  Xiaobo Zhou,et al.  Autonomic performance and power control for co-located Web applications on virtualized servers , 2013, 2013 IEEE/ACM 21st International Symposium on Quality of Service (IWQoS).

[14]  Yinong Chen,et al.  Dynamic Resource Allocation Algorithm for Container-Based Service Computing , 2017, 2017 IEEE 13th International Symposium on Autonomous Decentralized System (ISADS).

[15]  Rajiv Ranjan,et al.  Open Issues in Scheduling Microservices in the Cloud , 2016, IEEE Cloud Computing.

[16]  Zongpeng Li,et al.  Scheduling Frameworks for Cloud Container Services , 2018, IEEE/ACM Transactions on Networking.

[17]  Daniel M. Batista,et al.  Energy-Efficient Virtual Machines Placement , 2014, 2014 Brazilian Symposium on Computer Networks and Distributed Systems.

[18]  Xiao Ma,et al.  PAPMSC: Power-Aware Performance Management Approach for Virtualized Web Servers via Stochastic Control , 2015, Journal of Grid Computing.

[19]  Mohamed Faten Zhani,et al.  DREAMS: Dynamic resource allocation for MapReduce with data skew , 2015, 2015 IFIP/IEEE International Symposium on Integrated Network Management (IM).

[20]  Dmitry Namiot,et al.  On micro-services architecture , 2014 .

[21]  Xiaohua Chen,et al.  Optimization Model and Algorithm for Energy Efficient Virtual Node Embedding , 2015, IEEE Communications Letters.

[22]  Chanwit Kaewkasi,et al.  Improvement of container scheduling for Docker using Ant Colony Optimization , 2017, 2017 9th International Conference on Knowledge and Smart Technology (KST).

[23]  Barbara Panicucci,et al.  Energy-Aware Autonomic Resource Allocation in Multitier Virtualized Environments , 2012, IEEE Transactions on Services Computing.

[24]  T. V. Lakshman,et al.  Optimizing data access latencies in cloud systems by intelligent virtual machine placement , 2013, 2013 Proceedings IEEE INFOCOM.

[25]  Thomas Sandholm,et al.  Dynamic Proportional Share Scheduling in Hadoop , 2010, JSSPP.

[26]  Sateesh K Peddoju,et al.  Container-based microservice architecture for cloud applications , 2017, 2017 International Conference on Computing, Communication and Automation (ICCCA).

[27]  Mohsen Guizani,et al.  Process state synchronization for mobility support in mobile cloud computing , 2017, 2017 IEEE International Conference on Communications (ICC).

[28]  Zhen Feng,et al.  Container oriented job scheduling using linear programming model , 2017, 2017 3rd International Conference on Information Management (ICIM).

[29]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[30]  Magdalena Balazinska,et al.  SkewTune: mitigating skew in mapreduce applications , 2012, SIGMOD Conference.

[31]  Lin Wang,et al.  Power-efficient assignment of virtual machines to physical machines , 2016, Future Gener. Comput. Syst..

[32]  Manuel Díaz,et al.  State-of-the-art, challenges, and open issues in the integration of Internet of things and cloud computing , 2016, J. Netw. Comput. Appl..

[33]  Baek-Young Choi,et al.  Energy efficient virtual network embedding for green data centers using data center topology and future migration , 2015, Comput. Commun..

[34]  Ada Gavrilovska,et al.  VM power metering: feasibility and challenges , 2011, PERV.

[35]  Meng Wang,et al.  Consolidating virtual machines with dynamic bandwidth demand in data centers , 2011, 2011 Proceedings IEEE INFOCOM.

[36]  Huiqun Yu,et al.  A Novel Resource Scheduling Approach in Container Based Clouds , 2014, 2014 IEEE 17th International Conference on Computational Science and Engineering.

[37]  Baek-Young Choi,et al.  Topology and migration-aware energy efficient virtual network embedding for green data centers , 2014, 2014 23rd International Conference on Computer Communication and Networks (ICCCN).

[38]  Funda Ergün,et al.  Online load balancing for MapReduce with skewed data input , 2014, IEEE INFOCOM 2014 - IEEE Conference on Computer Communications.

[39]  Jiafeng Zhu,et al.  Application Oriented Dynamic Resource Allocation for Data Centers Using Docker Containers , 2017, IEEE Communications Letters.

[40]  Enzo Baccarelli,et al.  Energy-Efficient Adaptive Resource Management for Real-Time Vehicular Cloud Services , 2019, IEEE Transactions on Cloud Computing.

[41]  Naixue Xiong,et al.  A game-theoretic method of fair resource allocation for cloud computing services , 2010, The Journal of Supercomputing.

[42]  Jing Zhang,et al.  Cluster resource adjustment based on an improved artificial fish swarm algorithm in Mesos , 2016, 2016 IEEE 13th International Conference on Signal Processing (ICSP).

[43]  Maolin Tang,et al.  A More Efficient and Effective Heuristic Algorithm for the MapReduce Placement Problem in Cloud Computing , 2014, 2014 IEEE 7th International Conference on Cloud Computing.

[44]  César A. F. De Rose,et al.  Performance Evaluation of Container-Based Virtualization for High Performance Computing Environments , 2013, 2013 21st Euromicro International Conference on Parallel, Distributed, and Network-Based Processing.

[45]  Enzo Baccarelli,et al.  Stochastic traffic engineering for real-time applications over wireless networks , 2012, J. Netw. Comput. Appl..

[46]  Rajkumar Buyya,et al.  Seamless application execution in mobile cloud computing: Motivation, taxonomy, and open challenges , 2015, J. Netw. Comput. Appl..