ContainerCloudSim: An Environment for Modeling and Simulation of Containers in Cloud Data Centers
Introduction
Due to the elasticity, availability, and scalability of its on-demand resources, cloud computing is being increasingly adopted by businesses, industries, and governments for hosting applications. In addition to traditional cloud services, namely Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS), recently a new type of service---Containers as a Service (CaaS)---has been introduced. An example of container management system is Docker that allows developers to define containers for applications. Containers share the same kernel with the host, hence they are defined as lightweight virtual environments compared to virtual machines (VMs) that provide a layer of isolation between workloads without the overhead of hypervisor-based virtualization. CaaS can lie between IaaS and PaaS: while IaaS provides virtualized compute resources and PaaS provides application specific runtime services, CaaS glues these two layers together by providing isolated environments for the deployed applications (or different modules of an application). As illustrated in the Figure below, CaaS services are usually provided on top of IaaS' virtual machines. CaaS providers, such as Google and AWS, argue that containers offer appropriate environment for semi-trusted workloads, while virtual machines provide another layer of security for untrusted workloads.
Resource management policies to ensure Quality of Service (QoS), avoid energy wastage, and resource fragmentation are an integral part of cloud systems. Innovating and comparing resource management strategies require evaluation environments that facilitate the design of experiments while making them repeatable and accurate. Simulators are useful tools to build such evaluation environment in the cloud context [1]. They are particularly helpful at early stages of research to identify and eliminate ineffective polices or when accessing large scale distributed infrastructure is costly and not possible. Testing and evaluating resource management policies in the first verification stage in a production environment is both risky and costly. In this respect, a number of simulation tools are developed for evaluation of algorithms that are specifically designed for cloud computing environments. Although containers are going to be one of the dominant application deployment models in the cloud, most of the simulators consider VMs as the building blocks of the virtualized cloud data centers.
To the best of our knowledge, no simulators introduced modeling for containerized cloud environments. "ContainerCloudSim" is proposed as a simulation environment for studying resource management techniques in CaaS environments. It is developed as an extension of the ClouSim simulation toolkit and provides an environment for evaluation of resource management techniques such as container scheduling, placement, and consolidation of containers. "ContainerCloudSim" uniquely enables researchers to consider resource management techniques for both virtualization types including the Operating System level virtualization/containers and system level virtualization/VMs side by side. For the Virtual Machine type, applications execute inside virtual machines and for the CaaS model, applications execute inside containers while the containers are placed in virtual machines. The proposed simulator models a container migration by stopping the container on the source host and starting it with a realistic delay on the destination host, which closely resembles current containerized environments. Moreover, ContainerCloudSim offers an environment to evaluate various (power-aware) resource management algorithms by providing diverse power models in a data center.
Main features
Overview of ContainerCloudSim functionalities:
- support for modeling and simulation of containerized Cloud environments
- support for modeling and simulation of containerized VMs, with customizable policies for provisioning VM resources to containers
- support for modeling and simulation of energy-aware computational resources
- support for modeling and simulation of data center network topologies and message-passing applications
- support for modeling and simulation of federated clouds
- support for dynamic insertion of simulation elements, stop and resume of simulation
- support for user-defined policies for allocation of VMs to containers and hosts to virtual machines along with the policies for allocation of VM/host resources to containers/virtual machines
Examples
`Download
The ContainerCloudSim package is included in CloudSim 4.0 can be downloaded from the CloudSim web page at GitHub:
https://github.com/Cloudslab/cloudsim/releases
Publications
- Sareh Fotuhi Piraghaj, Amir Vahid Dastjerdi, Rodrigo N.Calheiros, and Rajkumar Buyya, ContainerCloudSim: A Framework and Algorithm for Energy Efficient Container Consolidation in Cloud Data Centers, An Environment for Modeling and Simulation of Containers in Cloud Data Centers, Software: Practice and Experience (SPE), John Wiley & Sons, Ltd, USA, 2016. (Accepted for publication)
- Sareh Fotuhi Piraghaj, Amir Vahid Dastjerdi, Rodrigo N.Calheiros, and Rajkumar Buyya, A Framework and Algorithm for Energy Efficient Container Consolidation in Cloud Data Centers, Proceedings of the 11th IEEE Interna- tional Conference on Green Computing and Communications (GreenCom 2015), Pages: 368 - 375, Sydney, Australia, 2015.