Cloud computing is a new and emerging technology where the computer hardware and software that we use on our desktop is shared over the internet and we could access such computing facilities typically by purchasing it as a service from another company. This sharing of computing is being made possible with the extensive use virtualization technologies and distributed computing. The Cloud computing providers offer their cloud services based on several fundamental models as follows:
- Infrastructure as a service (IaaS):
According to the IETF (Internet Engineering Task Force), the providers of IaaS services offer virtual machines and other resources. The cloud user have to install the operating system images in order to deploy their cloud applications.
- Platform as a service (PaaS):
In this model, the cloud provider delivers a computing platform. It includes the operating system, programming language execution environment, database and web server.
- Software as a service (SaaS):
Cloud providers in this model provides access to the application software and databases to the users.
- Unified Communications as a Service (UCaaS):
In the UCaaS model, multi-platform communications over the network are packaged by the service provider. The services could be in different devices, such as computers and mobile devices.
People are migrating from the traditional computing towards cloud computing because it is agile, cost reductions, device and location independence, higher reliability, fault tolerance etc. Some of the cloud based application services include social networking, web hosting, content delivery and other real time data processing. Quantifying the performance of various scheduling and allocation policies in a real cloud computing environment for different application models is extremely challenging and costly. Thus we go for cloud simulation tools to analyse the performance of a Cloud system with reduced complexity.
CLOUD SIMULATION TOOLS
CloudSim is a toolkit (library) for simulation of Cloud computing environments developed in the CLOUDS Laboratory at the Computer Science and Engineering Department of the University of Melbourne, Australia. It provides basic classes for describing data centers, virtual machines, applications, users, computational resources, and policies for management of diverse parts of the system (e.g., scheduling and provisioning). These components can be put together for users to evaluate new policies, schedulingalgorithms, mapping etc. in Cloud. It is a complex simulation toolkit using which most of the Cloud scenarios can be built by simply extending or replacing the classes and coding the desired scenario.
It is important to note that CloudSim is not a ready-to-use solution where you set parameters and collect results for use in your project. Instead, being a library, CloudSim requires that we write a Java program using its components to compose the desired scenario and collect the results for the analysis of performance and security of Cloud applications.
All the components in CloudSim communicate with each other through message passing. In the above layered architecture of CloudSim, the lowest layer is mainly responsible for communication between the components and the second layer has all the sub layers in it that have the main Cloud components like sensors, data centres etc. . Using CloudSim a user can model data centre, virtual machine allocation using a VMScheduler, power consumption and network behaviour.
Layered CloudSim Architecture
Other simulation tools that extends the power of CloudSim are: CloudSimEx, WorkflowSim, SimpleWorkflow, RealCloudSim, CloudReports, CloudAuction, CloudMIG Xpress, CloudAnalyst.
SPECI, (Simulation Program for Elastic Cloud Infrastructures), is a simulation tool which allows exploration of aspects of scaling as well as performance properties of future datacentres. Given the size and middleware design policy as the input, SPECI simulates the performance and behaviour of data centres.
GreenCloud, as proposed by Kliazovich, is a sophisticated packet-level simulator for energy-aware cloud computing data centres with a focus on cloud communications. It offers a detailed fine-grained modelling of the energy consumed by the data centre IT equipment, such as computing servers, network switches, and communication links. It can be used to develop novel solutions in monitoring, resource allocation, workload scheduling as well as optimization of communication protocols and network infrastructures.
Architecture of the GreenCloud simulation environment
D. OCT ( Open Cloud Testbed )
Open Cloud Testbed (OCT) was proposed by Grossman et al.  to mainly benchmark different cloud computing systems, to investigate their interoperability. It is currently configured as a smaller-scale testbed. It is use to develop cloud computing software and infrastructure. The architecture of OCT is shown in the below Figure :
Architecture of the OCT Cloud simulator
The main characteristics of OCT are as follows:
- Different cloud systems and services are installed, including Eucalyptus, Hadoop, CloudStore (KosmosFS), Sector/Sphere, and Thrift in order to make OCT easier to study interoperability and benchmarking, to develop network libraries, monitoring systems and benchmarking suites to support the development and experimental studies of cloud computing stacks.
- The architecture of OCT includes high-performance protocols, services, and infrastructure at all levels. It uses a high-performance 10Gb/s network based on extremely fast transport protocols supported by dedicated light paths instead of using the internet.
The OCT infrasreucture consists of 4 data centers located at John Hopkins University (Baltimore), Startlight (Chicago), The University of Illinois (Chicago), and the University of California (San Diego). Each rack has 32 nodes. Each node has dual dual-core AMD 2.4GHz CPU, 12GB memory, 1TB single SATA disk, and dual 1GE NICs. Two Cisco 3750E switches connect the 32 nodes, which then connects to the outside by a 10Gb/s uplink.
E. Open Cirrus
Open Cirrus is an open cloud computing testbed sponsored by Hewlett-Packard (HP), Inter, and Yahoo! in collaboration with many other organizations. According to the Open Cirrus aspires to achieve the below goals:
- Foster systems-level research in cloud computing.
- Encourage new cloud computing applications and applications-level research.
- Offer a collection of experimental datasets.
- Develop open-source stacks and APIs for the cloud.
Open Cirrus offers a cloud stack consisting of physical and virtual machines, and global services, such as sign-on, monitoring, storage, and job submission. A platform for real world applications and services.
Open Cirrus testbed
GroudSim is a is an event based simulator proposed by Ostermann for scientific applications on Grid and Cloud environments based on a scalable simulationindependent discrete-event core. It provides a comprehensive set of features for complex simulation scenarios from simple job executions on leased computing resources to calculation of costs, and background load on resources. Simulations can be parameterised and are easily extendable by probability distribution packages for failures which normally occur in complex environments. It is mainly concentrated on the IaaS, but it is easily extendable to support additional models such as PaaS, DaaS and TaaS.
NetworkCloudSim, as proposed by S.K. Garg and RajkumarBuyya, is an extension of CloudSim with a scalable network and generalized application model, which allows more accurate evaluation of scheduling and resource provisioning policies to optimize the performance of a Cloud
In this blog, I have projected numerous cloud simulation tools. We have also shown there properties with respect to their TCP/IP support, GUI Support, under lying platform and the programming language. In general, every simulator has its pros and cons. So, we need to choose the appropriate simulator depending on the user requirement.