Cloud Computing & CloudStack Open Source

Download Cloud Computing & CloudStack Open Source

Post on 12-Jul-2015




2 download


Cloud Computing

Cloud Computing,Open Source Cloud Computing & Experimental Evaluation of Apache Cloud StackPresented By: Ahmad Shah SultaniM.Sc. Computer ScienceSouth Asian UniversityNew Delhi, India.01-12-2014

OutlineOverview of Cloud ComputingCloud Computing HistoryCharacteristics of Cloud ComputingCloud Computing Service ModelsTypes of Cloud StorageVirtualizationAdvantages & DisadvantagesOpen Source Cloud ComputingCloud Stack

Open Source Cloud ComputingOpen Source HypervisorsCloudStack Open Source Cloud ComputingDeployment ArchitectureManagement ServerHypervisor HostInstallation & ConfigurationLog in UI AccessDashboard ScreenshotsGoalsConclusionReferences

Cloud computing is a style of computing where massively scalable IT-related capabilities are provided as a service across the Internet to multiple external customers

Cloud computing: A pool of abstracted, highly scalable, and managed infrastructure capable of hosting end-customer applications and billed by consumption Cloud computingisWeb-basedprocessing, whereby shared resources, software, and information are provided tocomputersand other devices (such as smart phones) on demand over theInternet.

What is Cloud Computing?3

Cloud computing is a style of computing where massively scalable IT-related capabilities are provided as a service across the Internet to multiple external customers

Cloud computing: A pool of abstracted, highly scalable, and managed infrastructure capable of hosting end-customer applications and billed by consumption Cloud computingisWeb-basedprocessing, whereby shared resources, software, and information are provided tocomputersand other devices (such as smart phones) on demand over theInternet.

What is Cloud Computing?4

Cloud computing is a style of computing where massively scalable IT-related capabilities are provided as a service across the Internet to multiple external customers

Cloud computing: A pool of abstracted, highly scalable, and managed infrastructure capable of hosting end-customer applications and billed by consumption Cloud computingisWeb-basedprocessing, whereby shared resources, software, and information are provided tocomputersand other devices (such as smart phones) on demand over theInternet.

What is Cloud Computing?5ContinuedCloud Computing is a general term used to describe a new class of network based computing that takes place over the Internet LEADING FACET OF NETWORKING- CLOUD COMPUTING

when John McCarthy wrote that computation may someday be organized as a public utility. Then, grid computing, a concept that originated in the early 1990s as an idea for making computer power as easy to access as an electric power grid also contributed to cloud computing.

The general idea behind the technology dates back to the 1960s, HISTORY7

One of the first movers in cloud computing was, which in 1999 introduced the concept of delivering enterprise applications via a simple website.

In 2002 Amazon started Amazon Web Services, providing services like storage, computation and even human intelligence.

The year 2006 also saw the introduction of Amazons Elastic Compute cloud (EC2) as a commercial web service that allowed small companies and individuals to rent computers on which to run their own computer applications.


Then came Google Docs in 2006,9

But 2009 marked a key turning point in the evolution of cloud computing, with the arrival of browser based cloud enterprise applications, with the best known being Google Apps Working on Google Chrome.

10A Golden Era in Computing..Characteristics of CloudsOn-Demand Self-ServiceBroad Network AccessResource PoolingRapid ElasticityMeasured ServicePer-usage based pricing modelIP-based architecture, etc

From the NIST Cloud Computing

On-demand self-service.

A consumer can unilaterally provision computing capabilities, such as server time and network storage, as needed automatically without requiring human interaction with each services provider.

Broad network access.

Capabilities are available over the network and accessed through standard mechanisms that promote use by heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).

Resource pooling.

The providers computing resources are pooled to serve multiple consumers using a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand. There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter). Examples of resources include storage, processing, memory, network bandwidth, and virtual machines.

This is different than virtual private hosting which is constrained to a single host or hosted Exchange server with fixed storage limits.

Rapid elasticity.

Capabilities can be rapidly and elastically provisioned, in some cases automatically, to quickly scale out, and rapidly released to quickly scale in. To the consumer, the capabilities available for provisioning often appear to be unlimited and can be purchased in any quantity at any time.Measured Service. Cloud systems automatically control and optimize resource use by leveraging a metering capability1 at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency for both the provider and consumer of the utilized service.

12Cloud Computing Service ModelsUSER CLOUD a.k.a. SOFTWARE AS A SERVICE

Single application, multi-tenancy, network-based, one-to-many delivery of applications, all users have same access to features.

Examples:, Google Docs, Red Hat Network/RHEL


Application developer model, Application deployed to an elastic service that autoscales, low administrative overhead. No concept of virtual machines or operating system. Code it and deploy it.

Examples: Google AppEngine, Windows Azure, Rackspace Site, Red Hat Makara


Servers and storage are made available in a scalable way over a network.

Examples: EC2,Rackspace CloudFiles, OpenStack, CloudStack, Eucalyptus, Ubuntu Enterprise Cloud, OpenNebula

SaaSPaaSIaaSCloud Software as a Service (SaaS) The Application Cloud

The capability provided to the consumer is to use the providers applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings.

Cloud Platform as a Service (PaaS) The Development Cloud

The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly application hosting environment configurations.

Cloud Infrastructure as a Service (IaaS). Systems Cloud

The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components (e.g., host firewalls).13

Software as a Service (SaaS)SaaS is a software delivery methodology that provides licensed multi-tenant access to software and its functions remotely as a Web-based service.

Usually billed based on usageUsually multi tenant environmentHighly scalable architecture

SaaS Examples

16Platform as a Service (PaaS)PaaS provides all of the facilities required to support the complete life cycle of building and delivering web applications and services entirely from the Internet.

Typically applications must be developed with a particular platform in mindMulti tenant environmentsHighly scalable multi tier architecture

17PaaS Examples

18Infrastructure as a Server (IaaS)IaaS is the delivery of technology infrastructure as an on demand scalable service

Usually billed based on usageUsually multi tenant virtualized environmentCan be coupled with Managed Services for OS and application support

IaaS Examples


Cloud StorageCloud storage means "the storage of data online in thecloud," wherein a company's data is stored in and accessible from multiple distributed and connected resources that comprise a cloud.Cloud storage can provide the benefits of greater accessibility and reliability; rapid deployment; strong protection fordata backup,archivalanddisaster recoverypurposes; and lower overall storage costs as a result of not having to purchase, manage and maintain expensive hardware. However, cloud storage does have the potential for security and compliance concerns.Types of Cloud StoragePublic CloudPrivate CloudHybrid Cloud

Public CloudA form of cloud storage where the enterprise and storage service provider are separate and the data is stored outside of the enterprise's data center.

Private CloudThe phrase used to describe a cloud computing platform that is implemented within the corporate firewall, under the control of the IT department.A private cloud is designed to offer the same features and benefits of public cloud systems, but removes a number of objections to the cloud computing model including control over enterprise and customer data, worries about security, and issues connected to regulatory compliance.

Hybrid CloudA combination of public cloud storage and private cloud storage where some critical data resides in the enterprise's private cloud while other data is stored and accessible from a public cloud storage provider.

VirtualizationVirtualization is something which is not REAL, but displays the full qualities of the REAL.Virtualization : hardware platform, operating system, storage device,network resources,Software implementation.28

VirtualizationHardwareOperating SystemAppAppAppTraditional StackHardwareOSAppAppAppHypervisorOSOSVirtualized Stack29

VirtualizationTypes of VirtualizationHardware VirtualizationDesktop Virtualization30

VirtualizationIn hardware virtualization, the host machine is the actual machine on which the virtualization takes place, and the guest machine is the virtual machine. The words host and guest are used to distinguish the software that runs on the actual machine from the software that runs on the virtual machine. The software or firmware that creates a virtual machine on the host hardware is called a hypervisor or Virtual Machine Manager.Hardware virtualization31

Desktop virtualization (sometimes called client virtualization) is a concept which separates a personal computer desktop environment from a physical machine using the clientserver model of computing.Desktop virtualization


33Trends of Cloud Computing34Core AdvantagesCost saving: You pay for what you useEasy on installation and maintenanceIncreased storageHighly automatedFlexibilityBetter mobilityShared resourcesBack up and restoration35DisadvantagesData security and privacyNetwork connectivity and bandwidthService unavailability due to power outageDependence on outside agenciesLimited flexibilityKnowledge and integrationLong term stability of service providerMicrosoft Engineering ExcellenceMicrosoft Confidential36

Building Compute Cloudswith Open Source SoftwareWhy Open Source?User-Driven Solutions to Real ProblemsLower barrier to participationLarger user base, users helping users Aggressive release cycles stay current with the state-of-the-artOpen data, Open standards, Open APIs

38Open Virtual Machine FormatsOpen Virtualization Format (OVF) is an open standard for packaging and distributing virtual appliances or more generally software to be run in virtual machines.Formats for hypervisors/cloud technologies:

Amazon - AMIKVM QCOW2VMware VMDKXen IMGVHD Virtual Hard Disk - Hyper-VAn OVF package consists of several files, placed in one directory. A one-file alternative is the OVA package, which is a TAR file with the OVF directory inside.

OVF is a packaging format for software appliances. From a technical point of view, an OVF is a transport mechanism for virtual machine templates. One OVF may contain a single VM, or many VMs (it is left to the software appliance developer to decide which arrangement best suits their application). OVFs must be installed before they can be run; a particular virtualization platform may run the VM from the OVF, but this is not required. If this is done, the OVF itself can no longer be viewed as a golden image version of the appliance, since run-time state for the virtual machine(s) will pervade the OVF. Moreover the digital signature that allows the platform to check the integrity of the OVF will be invalid.

VHD Virtual Hard Disk format started by Connectix (now part of Microsoft) made open through the Microsoft Open Specification Promise.

39Open Source HypervisorsOpen SourceXen, Xen Cloud Platform (XCP)KVM Kernel-based VirtualizationVirtualBox* - Oracle supported Virtualization Solutions OpenVZ* - Container-based, Similar to Solaris Containers or BSD ZonesLXC User Space chrooted installs

ProprietaryVMwareCitrix XenserverMicrosoft Hyper-VOracleVM (Based on OS Xen)

Top choices for Cloud Computing are Xen and KVM.

OpenVZ, container virtualization for Linux, is an interesting option as it has a very minimal overhead to scale application space similar to containers like BSD Jails. Advantage is that memory allocation is soft and unutilized memory can be used by other applications.

40Open Source Compute CloudsYear StartedLicenseHypervisors Supported2008GPLXenserver, Xen Cloud Platform, KVM, VMware2006GPL Xen, KVM, VMware2010 (Developed by NASA by Anso Labs previously)

ApacheVMware ESX and ESXi, Microsoft Hyper-V, Xen, KVM and Virtual Box

Other open source compute software include Abiquo, Red Hats CloudForms and OpenNebulaNumerous companies are building cloud software on OpenStack including Nebula, Piston Inc., CloudScalingCloudStack - CloudStack is a sponsored by Citrix systems released under GPLv3 that provides a highly capable IaaS solution for service providers and enterprises.

Robust Web Interface Comprehensive APISecure-Single Sign-OnDynamic Workload ManagementXenserver, Xen Cloud Platform, KVM, VMware, OracleVM supportSecure AJAX Console for VMsNetworking-as-a-Service (Create VLANs to segregate traffic)EC2 API Compatibility Usage Metering

Eucalyptus - IaaS platform originally targeted to provide migration path from Amazon EC2 to private cloud.

Amazon AWS Interface CompatibilitySupports Amazon AMIHigh AvailabilityNetwork Management, Security Groups, Traffic IsolationSelf Service S3 compatible Storage Bucket-Based StorageXen and KVM Hypervisor Support (VMware in Enterprise Edition)User Group and Role-Based Management

OpenStack - Sponsored by Rackspace, a hosting provider is made up by three primary projects.

OpenStack Compute (Nova) Nova is a cloud orchestration platform similar to Amazon EC2

Orchestration of popular hypervisors (Xen, Xenserver, KVM, Hyper-V, VMware, Linux Containers)Floating IP Addresses (keep IPs and DNS correct when restarting VMs)VNC proxy through the WebApache 2.0 License Android/iOS ClientsBlock Storage Support (AOE, iSCSI, Sheepdog)

OpenStack Storage (Swift) Is a EBS style solution used for long term storage not real time. Swift is used creating redundant, scalable object storage using clusters of standardized servers to store petabytes of accessible data.


Store and Manage files ProgrammaticallyCreate public and private folders Using Commodity HardwareFault tolerant (Nodes/HDD)Scale-out, Scale-Up

OpenStack Image Service(Glance) - OpenStack Image Service (code-named Glance) provides discovery, registration, and delivery services for virtual disk images.


Provides images-as-a-serviceSupports Raw, VHD, VDI, qcow2, VMDK, OVF Restful APIBackend Options Swift, Local, S3, HTTPVersion Control and Logging

OpenNebula Cloud Computing Toolkit Apache license

41CloudStack Open SourceCloud Computing Apache CloudStack is open source software designed to deploy and manage large networks of virtual machines, as a highly available, highly scalable Infrastructure as a Service (IaaS) cloud computing platform.CloudStack is used by a number of service providers to offer public cloud services, and by many companies to provide an on-premises (private) cloud offering, or as part of a hybrid cloud solution.Provides a friendly Web-based UI for managing the cloud.

CloudStack currently supports the most popular hypervisors:VMware, KVM, XenServer, Xen Cloud Platform (XCP) and Hyper-V.Users can manage their cloud with an easy to use Web interface, command line tools, and/or a full-featured RESTful API.Apache CloudStack is a mature, turnkey integrated Infrastructure-as-a-Service (IaaS) Open Source software platform that allows users to build feature-rich public and private cloud environments.

Choosing a Deployment Architecture

Choosing a Deployment Architecture

Small Scale CloudStack DeploymentA firewall provides a connection to the Internet. The firewall is configured in NAT mode. The firewall forwards HTTP requests and API calls from the Internet to the Management Server. The Management Server resides on the management network.A layer-2 switch connects all physical servers and storage.A single NFS server functions as both the primary and secondary storage.The Management Server is connected to the management network.

Deployment Architecture OverviewThe minimum installation consists of one machine running the CloudStack Management Server and another machine to act as the cloud infrastructure (in this case, a very simple infrastructure consisting of one host running hypervisor software).In its smallest deployment, a single machine can act as both the Management Server and the hypervisor host (using the KVM hypervisor).

Management ServerProvides the web interface for both the administrator and end user.Provides the API interfaces for both the CloudStack API as well as the EC2 interface.Manages the assignment of guest VMs to a specific compute resourceManages the assignment of public and private IP addresses.Allocates storage during the VM instantiation process.Manages snapshots, disk images (templates), and ISO images.Provides a single point of configuration for your cloud.Hypervisor HostA host is a single computer.Hosts provide the computing resources that run guest virtual machines.Each host has hypervisor software installed on it to manage the guest VMs. For example, a host can be a Citrix XenServer server, a Linux KVM-enabled server, an ESXi server, or a Windows Hyper-V server.For a host to function in CloudStack, you must do the following:Install hypervisor software on the hostAssign an IP address to the hostEnsure the host is connected to the CloudStack Management Server.

InstallationOverview of Installation StepsChoosing a Deployment ArchitectureChoosing a Hypervisor: Supported FeaturesNetwork SetupStorage SetupBest Practices

Minimum System RequirementsManagement Server, Database, and Storage System RequirementsHost/Hypervisor System Requirements

Management Server InstallationPrepare the Operating SystemTurn on NTP for time synchronization.Install NTP and Turn on NTP for time synchronization.Downloading vhd-utilInstalling the required packagesDEB package repositoryInstall the database serverSet up the databasePrepare NFS SharesUsing the Management Server as the NFS ServerPrepare the System VM TemplateSetup ComplitionHost Hypervisor Installation and ConfigurationPrepare the Operating SystemInstall NTP and Turn on NTP for time synchronization.Install and configure the AgentConfigure CPU model for KVM guestInstall and Configure libvirtConfigure the Security PoliciesConfigure the network bridgesConfiguring the firewallOpen ports in RHEL/CentOS OR UbuntuAdd the host to CloudStackLog In to the UI (User Interface) > Ubuntu 14.4192.168.12.200:8080/client > CentOS 6.5 Minimal192.168.12.199:8080/client > CentOS 6.5 Live

GoalsTo Successfully, build the Cloud PlatformTo Analyse the Performance of the different platformsTo Develop Applications on the cloud.

ConclusionCloud Computing is outpacing the IT industryReal business value can be realized by customers of all sizesCloud solutions are simple to acquire, dont require long term contracts and are easier to scale up and down as neededProper planning and migration services are needed to ensure a successful implementationPublic and Private Clouds can be deployed together to leverage the best of bothThird party monitoring services ensure customer are getting the most out of their cloud environmentSecurity Compliance and Monitoring is achievable with careful planning and analysis

References & Useful linksApache Cloud Stack: Amazon AWS: Cost Calculator: Azure: App Engine (GAE): Analytics: miscellaneous information:


View more >