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.
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.
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.
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.
This section describes the context of the subject, my accomplishments and a summary of the skills I have acquired.
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.
The objectives of this subject and the achievements are described below.
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.
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.
This section presents a comprehensive analysis of all the knowledge and skills acquired during this experiences
Understand the concept of cloud computing
Use a IaaS-type cloud service
Deploy and adapt a cloud-based platform for IoT