Post on 28-Jul-2018
transcript
Automated Deployment ofPrivate Cloud (EasyCloud)
Mohammed Kazim
Musab Al-Zahrani
Mohannad Mostafa
Moath Al-Solea
Hassan Al-Salam
Advisor: Dr.Ahmad KhayyatCOE485 | 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
The main uses of IaaS includethe actual development anddeployment of PaaS, SaaS, andweb-scale applications.
Models of Cloud Service
5
Deployment Models
6
Problem Statement(1)
7
▪ 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.
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
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
Re
qu
ire
me
nts
& S
pe
cifi
ca
tio
ns
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
Re
qu
ire
me
nts
& S
pe
cifi
ca
tio
ns
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
Re
qu
ire
me
nts
& S
pe
cifi
ca
tio
ns
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
Re
qu
ire
me
nts
& S
pe
cifi
ca
tio
ns
System design• Solution Concept• Architecture Design• Component Design• System Integration
14
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.
So
luti
on
Co
nc
ep
t
15
- 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.
- None-Idempotent.
- Other cloud system can be added without changing the system architecture.
- Easier to be understood and updated in future.
- Parallel execution across multiple machines.
- Providing idempotency.
- Relatively hard to integrate all tools to work together automatically.
Alternative ApproachS
olu
tio
n C
on
ce
pt
16
General Approach Script
▪ 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.
Sub-Functions
So
luti
on
Co
nc
ep
t
17
Architecture Design• Alternative Architecture• Comparison between Architectures• Hardware/Software Components and its Function
18
Architecture DesignDistributed Storage Architecture Design with High availability
Arc
hit
ec
ture
De
sig
n
19
Alternative Architecture DesignsShared Storage Architecture
Arc
hit
ec
ture
De
sig
n
20
Comparison between Architectures
Arc
hit
ec
ture
De
sig
n
21
Architecture
Shared Storage
Strength ● Reduce VM deployments times● Enables live-migration
Weakness ● It can become a bottleneck in the infrastructure. Thus, degrading VMs performance.
● Waste the storage resources in the host nodes
Distributed Storage
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.
Hardware/Software Components
Arc
hit
ec
ture
De
sig
n
22
Component Design• Cloud Platform
• Deployment Management Tool
• Script Installation
23
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
Co
mp
on
en
t D
esi
gn
24
• OpenStack is one of the popularprivate cloud in the market.
• Its architecture is toocomplicated because of itsflexibility to work on manyenvironment.
• complex architecture andinstallation will not help us in theautomated deployment of thecloud.
OpenStack
Co
mp
on
en
t D
esi
gn
25
• CloudStack is an open sourcecloud computing software forcreating, managing, anddeploying infrastructurecloud services.
• It uses existing hypervisorssuch as KVM, VMwarevSphere, and XenServer/XCPfor virtualization.
• It is a great candidate to bethe core infrastructureplatform for this project.
Cloud Stack
Co
mp
on
en
t D
esi
gn
26
• Eucalyptus is free andopen-source computersoftware for building(AWS)-compatible privateand hybrid cloudcomputing environments.
• Eucalyptus can providehigh availability bybuilding primary andsecondary cloud.
Eucalyptus
Co
mp
on
en
t D
esi
gn
27
• OpenNebula is a cloud computingplatform for managingheterogeneous distributed datacenter infrastructures.
• Manages a data center's virtualinfrastructure to build private,public and hybrid IaaS.
• Provides all the feature needed tocomplete this project.
• It’s known for its simplearchitecture and installation.
OpenNebula
Co
mp
on
en
t D
esi
gn
28
Cloud Platform Comparison
Co
mp
on
en
t D
esi
gn
• 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
Configuration Management Tool
Co
mp
on
en
t D
esi
gn
30
• 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.
Deployment Installation Tool
Co
mp
on
en
t D
esi
gn
31
Comparison between Automatic Installation Tool
Co
mp
on
en
t D
esi
gn
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)
● 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.
Hosts states
38
OpenNebula
Cloud
▪ Support multiple cloud system. ▪ Network Discovery. ▪ GUI program that can control the cloud more easily.▪ Support of Hybrid and public cloud installation
Future Work and Development
40
THE END.... THANK YOU
• Q/A