Cloud and Autonomic Computing

Autonomic computing is a computer’s ability to manage itself automatically through adaptive technologies that further computing capabilities and cut down on the time required by computer professionals to resolve system difficulties and other maintenance such as software updates.
The move toward autonomic computing is driven by a desire for cost reduction and the need to lift the obstacles presented by computer system complexities to allow for more advanced computing technology.

Descriptive part

Cloud and autonomic computing is a subject that allows us to discover the use of the cloud around three main axes: via virtual machines such as Virtual Box, Docker and OpenStack.

These three tools are not based on the same thing. Indeed, we must differentiate between virtual machines and containers. To simplify things, a virtual machine is based on a hypervisor which runs on a host OS and which allows to virtualize one or more guest OS. There are two types of hypervisors. Type 1 where the hypervisor runs directly on the hardware and type 2 where it runs on the kernel. Instead of virtualizing the hardware, a container run multiple virtual instances of the same OS over a single hardware. It provides isolation between processes and appear as a separate OS. 

A container is much lighter and faster than a virtual machine. It only needs a few seconds to start up, compared to a few minutes for a virtual machine. Finally, it takes only a few MB, which is 50 to 100% less than a VM. However, there are also differences depending on the type of container. For more information, I invite you to download and read my report  here.

Virtual Box

VirtualBox is a type 2 hypervisor, meaning that it must be installed on an operating system, not directly on a computer as an operating system.

Docker allows you to embed an application in one or more software containers that can run on any machine server, whether physical or virtual. Docker works on Linux as well as Windows Server. It is a technology that aims to facilitate application deployments, and the management of the underlying infrastructure sizing.

Docker

Openstack

OpenStack is a platform for creating and managing private or public clouds based on pools of virtual resources. The tools (or "projects") that make up the OpenStack platform provide the main services of cloud computing, namely, computing, networking, storage, identity management and image management.
OpenStack leverages application programming interfaces (APIs) to push the boundaries of abstraction of these virtual resources by distributing them into individual pools, which drive standard cloud tools that administrators and users interact with directly.

Technical part

This section describes the context of the subject, my accomplishments and a summary of the skills I have acquired.

Presentation

This subject took place during October and lasted 5 sessions of TP plus personal work. I worked in pair with KHALED Walid only for 3 sessions as he was in a work-study program in a company.

There are no special hardware requirements for this course, only an OpenStack account and access to a linux machine. However, not having administrator rights complicates the practical work and lengthens the time needed to complete it. This subject has been evaluated with a report available below.

Objectives

The objectives of this subject and the achievements are described below. 

  1. Recognize the fundamental differences between the types of hypervisors’ architectures 
  2. Recognize the differences between the two main types of virtualisation hosts
  3. Evaluate the two different modes of network connection for VM and CT
  4. Operate VirtualBox VMs in NAT mode, and make configurations so that VMs can access and be accessed through the Internet
  5. Operate Docker containers and make configurations so that they can access and be accessed through the Internet
  6. Operate VMs with OpenStack and manage the networking connectivity 
  7. Test and evaluate the supported management operations on the virtualization hosts
  8. Implement a simple orchestration tool in order to provision a Web 2-tier application
  9. Make up a specific network topology on OpenStack
  10. Configure and deploy this network topology

Skills  used

This subject calls on the prerequisites of the network courses. The latter are useful for the network configuration of virtual machines allowing them to communicate with the outside world. It also allows us to set up the microservices used in the deployment of the Calculator Service application. 

Review

At the end of this course I am able to deploy and use virtual machines and containers. I can also use this knowledge to deploy microservices.

Analytical Part

This section presents a comprehensive analysis of all the knowledge and skills acquired during this experiences

Skills matrix

Understand the concept of cloud computing

Use a IaaS-type cloud service

Deploy and adapt a cloud-based platform for IoT

See related work

Click on the button below to download my report.

Download