I. A Brief Cloud Overview Cloud computing is a network-based, distributed computing environment where resources are shared to deliver on-demand applications and services that are expected to meet a certain quality of service (QOS). A. Characteristics of a Cloud 1. Agile – Rapidly adapt to changes 2. Multi-Tenancy – Sharing of resources across a large pool of users 3. Scalability – Dynamic expansion to meet user needs 4. High-Availability – Ability to handle workloads and adapt to multiple points of failure 5. Load Balancing – Balance workloads across virtual machines 6. API – Ability to interact with cloud through some well-defined interface (usually via Representational State Transfer (REST)) 7. Nice To Have – Security, metering, geographical independence, lower maintenance B. The Hype - The Benefits of a Cloud 1. Reduce Costs - Higher utilization, pay for what you need, faster response, automation, etc. 2. Portability – Ability to migrate from one type of cloud to another 3. Agility – Scale-up, scale down, live migrations, etc. 4. Lower Maintenance – Standardization via abstraction for target operating systems, heterogeneity, etc. C. Types of Clouds • Software-as-a-Service (SaaS) – Software-as-a-service indicates software that is offered on-demand and deployed either in a hosted model or with a subscription that typically provides new features and updates. Common examples of OSS offered by either a software company or hosting provider include Drupal, Linux, MindTouch and SugarCRM. • Platform-as-a-Service (PaaS) – Platform as a service are services offerings where the hardware and operating system have been abstracted. These services aren’t free and open source but are often powered by open source frameworks. Examples of these frameworks are JBoss Network by Red Hat, SpringSource by VMware and WS02. • Infrastructure-as-a-Service (IaaS) – IaaS is the deliver of resources in an expandable way so as to allow supply to dynamically meet demand of the user and removes the specifics of provisioning servers, software, data-center space or network equipment. The most common example of this is Amazon’s Elastic Cloud (EC2). This is commonly called a public cloud. The ability to pool internal resources to provide this infrastructure from behind the firewall is often referred to as a private cloud. Open source examples of this include Eucalyptus, Ubuntu Enterprise Cloud (EUC), Cloudstack and OpenStack. The ability for private and public clouds to interact is called a hybrid cloud. II. Open Source Cloud Computing Infrastructure or Open Source IaaS The type of cloud we will discuss will be the IaaS, and specifically compute clouds. When you talk about IaaS you look at taking discrete resources and pooling them in a way to allow the users of those resources to draw capacity as needed. The usual limiting factors of individual servers, compute, storage and networking are pulled from a resource pool that at least meets if not exceeds demand. A. Open Source Software to Build, Deploy and Manage a Private Cloud To discuss cloud computing you need to look at the elements that make up the cloud fabric. These resources abstract the hardware and pool computing resources to create the cloud operating system. A. Virtualization – “The Hypervisor” The foundation for cloud computing starts at the abstraction of the hardware. The availability of open source hypervisors has made it possible to build extremely complex and customized virtualization infrastructure. Of the open source hypervisor technologies, two lend themselves to building cloud computing infrastructure. • Kernel-based Virtual Machine (KVM) – KVM is a virtualization technology for Linux (first released in 2006) that leverages the Linux kernel and the virtual extensions provided by Intel or AMD to provide a hypervisor. The requirement for virtualization-enabled chips precludes its use on older hypervisors. • Xen – Xen is a more mature hypervisor (released in 2002), sponsored by Citrix and has wide adoption as a hypervisor. It is the most common and mature hypervisor. B. Cloud Operating System The ability to orchestrate virtual machines, storage and networking so as to pool resources and balance these loads • CloudStack – CloudStack is developed by Cloud.com and was released in May 2010. The features of CloudStack are hypervisor • Eucalyptus (Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems) – Sponsored by Eucalyptus (first released in 2008) systems formed the initial basis for Ubuntu Enterprise Cloud. It was designed to keep complete compatibility with Amazon’s EC2 and S3 services. • OpenNebula – First released in 2008 spawned from a university research project. Now supported by a services company C12G Labs. • OpenStack – Newest kid on the block, released by Rackspace and NASA in July 2010. Large ecosystem first release in fall of 2010, Austin. • Ubuntu Enterprise Cloud – Canonical sponsored fork of Eucalyptus but uses KVM as the preferred hypervisor. C. The Management Tools There are numerous open source tools that have been proven for usage in legacy data centers. Many of them have characteristics that lend themselves to cloud computing because of their ability to automate tasks and/or because they are network aware. We’ll walk through the components that can be combined to form open source tool chains, combinations of tools that can be combined where the output of one ??? • Provisioning and Patching o Cobbler o Kickstart o OpenQRM o Spacewalk o Viper • Configuration Management o Cfengine o Chef o Puppet • Orchestration – Run scripts, take data from one system and export to another o AutomateIT o Capistrano o Control Tier o Func • Monitoring – Report and alert on the health o Nagios o OpenNMS o Zabbix o Zenoss D. Complimentary Cloud-Related Open Source Projects • DeltaCloud – DeltaCloud is a middleware to stop and start cloud instances on various types of cloud infrastructure, DeltaCloud Aggregator offers a web UI for DeltaCloud API (emerging technology from Red Hat) • libvirt – A toolkit to interact with virtualization capabilities of recent versions of Linux (emerging technology from Red Hat) • Jclouds – Abstraction of API across compute and storage clouds • libcloud – unified interface for the cloud incubated by Apache III. Putting it all Together to Build your Open Source Cloud - The appeal of cloud computing is elasticity on-demand, agility. This part of the discussion will focus on how to combine the components mentioned above to build a cloud and then deploy target operating systems and applications in a complete private cloud. Take all the components mentioned so far and compile them to create a cloud that can provide all the elasticity, and: • Choosing a Hypervisor - Do you have newer hardware (specifically VT enable processors) Linux expertise or a mix of older and newer hardware? • Choosing a Cloud Orchestration Project - Choose a cloud operating system based on hypervisor and other features • Management Tool Chains - Management tools use open source tool chains to automate the deployment of target operating systems and deploying them. Finally, time permitting, we will look at a live cloud computing management console showing the interface for monitoring. Speaker Bio: Mark Hinkle, Vice President of Community Mark is the Vice President of Community for Cloud.com where he is responsible for driving all of the community efforts around the company's open source, cloud computing software and ecosystem. Before that he was the force behind the Zenoss Core open source management projects adoption and community involvement, growing community membership to over 100,000 members. He is a co-founder of both the Open Source Management Consortium and the Desktop Linux Consortium, has served as Editor-in-Chief for both LinuxWorld Magazine and Enterprise Open Source Magazine, and authored the book, "Windows to Linux Business Desktop Migration." (Thomson, 2006) Mark has also held executive positions at a number of technology start-ups, including Earthlink, (previously MindSpring)--where he was the head of the technical support organization recognized by PC Computing and PC World as the best in the industry--Win4Lin and Emu Software.