Automated Deployment of Private Cloud (EasyCloud) Mohammed Kazim Musab Al-Zahrani Mohannad Mostafa Moath Al-Solea Hassan Al-Salam Advisor: Dr.Ahmad Khayyat COE485 T151 1
Table of Contents Introduction Background Problem Statement Requirements and Specifications System design Solution Concept Architecture Design Component Design System Integration Implementation and Demo Q / A 2
Introduction Background Problem Statement 3
Background What is Cloud Computing? According to NIST, Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. CHARACTERISTICS OF CLOUD COMPUTING On-demand self-service Broad network access Resource pooling Rapid elasticity Measured service 4
Models of Cloud Service The main uses of IaaS include the actual development and deployment of PaaS, SaaS, and web-scale applications. 5
Deployment Models 6
Problem Statement(1) Cloud computing has become a great factor in many enterprises. The deployment of such a private cloud will take time and effort If you have to deploy a cloud on a cluster of PCs, you will have to install OSs, manage them after installation and add them to the cloud. Depending on the approach this might take from weeks to months. This project try to solve the deployment issue and implement an automated deployment system for private cloud. 7
Problem Statement (2) Automated, i.e. easily producible, private cloud setup in which virtual machines can be easily provisioned and addition hardware can be added to increase the platform capacity. 8
Requirements and Specifications Functional user requirements Non-functional user requirements Technical specifications 9
Requirements & Specifications Functional user requirements Deployment on hardware Automated deployment of platform on hardware, e.g. network boot, automatic node configuration. Support heterogeneous hardware; hardware does not need to be identical. Automated expansion by deploying on additional hardware, e.g. adding PCs or hard driver. Enable users to create a VM and to configure its specs based on the availability of the hardware. Administration. Monitoring of resource usage per VM and for the entire platform. Network configuration to control connectivity between VMs. Selection of boot images for the VMs. 10
Requirements & Specifications Non-functional user requirements Using open source tools only. Scalability of the system varies from small setup to large setup. The smallest configuration can be 2 nodes, and the largest setup can be up to 1000 nodes The system should provide friendly user interface Deploying the system should take less than 2 Hours. The system should be able to work any scale with little performance drop. 11
Requirements & Specifications Technical specifications (1) Using open source cloud platform, such as OpenStack, Eucalyptus, CloudStack, Open Nebula. Deploying the system will be in less than 2 hours. The user can specify the OS, RAM, Virtual Cores, disk storage, and number of network interfaces of the VMs. The response time for creating the virtual machine is less than 15 minutes. 12
Requirements & Specifications Technical specifications (2) The admin can see the following: CPU utilization, RAM, network traffic, and storage per VM and for the entire platform. Any computer added to the system should be able to boot directly from network and be automatically configured to the system. The system can be installed and configured on any x86 architecture 13
System design Solution Concept Architecture Design Component Design System Integration 14
Solution Concept General Approach Find best Private Cloud Platform that meets the requirements. Use an automatic installation tool to install an OS image through network boot for cloud nodes. Using configuration management tool to configure all the nodes to join the cloud. Writing a program to install the master node and install/configure the deployment management tool to build the cloud. 15
Solution Concept Alternative Approach Using scripts only to build the cloud from scratch to automate the deployment along with holding the configurations of all nodes in the cloud itself. General Approach Script - Other cloud system can be added without changing the system architecture. - Easier to be understood and updated in future. - Parallel execution across multiple machines. - Relatively hard to integrate all tools to work together automatically. - Full control of deployment process. - Does not need or depends on some software. - Relatively hard to accomplish. - Difficult to be understood and updated in future. - Single execution per machine. - Providing idempotency. - None-Idempotent. 16
Solution Concept Sub-Functions 17
Architecture Design Alternative Architecture Comparison between Architectures Hardware/Software Components and its Function 18
Architecture Design Architecture Design Distributed Storage Architecture Design with High availability 19
Architecture Design Alternative Architecture Designs Shared Storage Architecture 20
Architecture Design Comparison between Architectures Architecture Strength Reduce VM deployments times Enables live-migration Shared Storage Distributed Storage Weakness It can become a bottleneck in the infrastructure. Thus, degrading VMs performance. Waste the storage resources in the host nodes Strength Uses the host data storage which will increase the storage and the number of VMs All Operations are done locally, more performance (no network usage) Weakness Images have to be copied always to the hosts, which can be a very resource demanding operation. Prevent the use of live-migration between hosts. However, host can be recreated and deployed on another machine High VM deployment times depending on the infrastructure network connectivity. 21
Architecture Design Hardware/Software Components 22
Component Design Cloud Platform Deployment Management Tool Script Installation 23
Component Design Cloud Platforms Cloud platform is the core of this system. The cloud platform must be chosen to meet the requirements. The main selection criteria of choosing cloud platform: Simple Deployment Architecture Features that meet the requirements and specification Additional features which helps in expanding the project. Simple installation 24
Component Design OpenStack OpenStack is one of the popular private cloud in the market. Its architecture is too complicated because of its flexibility to work on many environment. complex architecture and installation will not help us in the automated deployment of the cloud. 25
Component Design Cloud Stack CloudStack is an open source cloud computing software for creating, managing, and deploying infrastructure cloud services. It uses existing hypervisors such as KVM, VMware vsphere, and XenServer/XCP for virtualization. It is a great candidate to be the core infrastructure platform for this project. 26
Component Design Eucalyptus Eucalyptus is free and open-source computer software for building (AWS)-compatible private and hybrid cloud computing environments. Eucalyptus can provide high availability by building primary and secondary cloud. 27
Component Design OpenNebula OpenNebula is a cloud computing platform for managing heterogeneous distributed data center infrastructures. Manages a data center's virtual infrastructure to build private, public and hybrid IaaS. Provides all the feature needed to complete this project. It s known for its simple architecture and installation. 28
Component Design Cloud Platform Comparison
Component Design Configuration Management Tool Deployment Management Tools enable you to simplify automation and orchestration across your environment to provide a standard deployment. Many deployment management tools : Ansible, Puppet, Cheff, Fabric, and SaltStack. This system will use Ansible in deploying scripts and configuration file because: Support for new systems to become a full functional nodes for OpenNebula cloud Adding them automatically to the cloud with no interaction needed with the user. It doesn t need any sql server like others to be installed on the other nodes. Which is a big advantage in EasyCloud System 30
Component Design Deployment Installation Tool There are multiple automatic installation tool which helps in ease the automation of network booting of bare metal devices. These tools provide configurations for DHCP, TFTP, and HTTP. help in modifying the Linux distribution with a preseed file to choose the packages that needed to be installed with the setup. The tools that have been tested and considered in this project is FAI, Cobbler, and Foreman. 31
Component Design Comparison between Automatic Installation Tool 32
System Integration We created a python program to integrate the different components of the system automatically, and it will be the user interface to use the system and build the cloud.
Implementation and Screenshots
Python program A simple user interface which is needed to install the system or adding any nodes Remove an existing node is possible without any loss of information or VMs Sending the initial user and password to the email (Require install SMTP server) Creating a default virtual network Takes care of configuring all the needed file.
Demo Video https://drive.google.com/file/d/0b9eisewkbnz9ywrwmelznkzoruu/view https://youtu.be/4uupsnmfj-4
OpenNebula Cloud (Image state machine)
Hosts states create: Creates a new Host delete: Deletes the given Host enable: Enables the given Host disable: Disables the given Host update: Update the template contents. show: Shows information for the given Host top: Lists Hosts continuously flush: Disables the host and reschedules all the running VMs it. 38
OpenNebula Cloud
Future Work and Development Support multiple cloud system. Network Discovery. GUI program that can control the cloud more easily. Support of Hybrid and public cloud installation 40
THE END.... THANK YOU Q/A