Building a big IaaS cloud with Apache CloudStack

Similar documents
CloudStack Release Notes

CloudPlatform (powered by Apache CloudStack) Version 4.2 Administrator's Guide

Apache CloudStack 4.x (incubating) Network Setup: excerpt from Installation Guide. Revised February 28, :32 pm Pacific

CloudPlatform (powered by Apache CloudStack) Version Administrator's Guide

STeP-IN SUMMIT June 18 21, 2013 at Bangalore, INDIA. Performance Testing of an IAAS Cloud Software (A CloudStack Use Case)

CloudStack Networking. Paul Angus Cloud

Citrix CloudPlatform (powered by Apache CloudStack) Version 4.5 Administration Guide

Comparing Ganeti to other Private Cloud Platforms. Lance Albertson

Comparing Open Source Private Cloud (IaaS) Platforms

ovirt self-hosted engine seamless deployment

On- Prem MongoDB- as- a- Service Powered by the CumuLogic DBaaS Platform

Mobile Cloud Computing T Open Source IaaS

CLOUDSTACK VS OPENSTACK. Apache CloudStack: It Just Works for Service Providers

CloudStack Metering Working with the Usage Data. Tariq Iqbal Senior

Cloud.com CloudStack Community Edition 2.1 Beta Installation Guide

Cisco Prime Network Services Controller. Sonali Kalje Sr. Product Manager Cloud and Virtualization, Cisco Systems

CERN Cloud Infrastructure. Cloud Networking

OpenStack Introduction. November 4, 2015

SolidFire SF3010 All-SSD storage system with Citrix CloudPlatform Reference Architecture

OpenStack Awareness Session

Getting Started Hacking on OpenNebula

OpenNebula Open Souce Solution for DC Virtualization

OpenStack. Orgad Kimchi. Principal Software Engineer. Oracle ISV Engineering. 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Application-Centric WLAN. Rob Mellencamp

OnApp Cloud. The complete platform for cloud service providers. 114 Cores. 286 Cores / 400 Cores

Cloud on TEIN Part I: OpenStack Cloud Deployment. Vasinee Siripoonya Electronic Government Agency of Thailand Kasidit Chanchio Thammasat University

OpenNebula Open Souce Solution for DC Virtualization

How To Test Cloud Stack On A Microsoft Powerbook 2.5 (Amd64) On A Linux Computer (Amd86) On An Ubuntu) Or Windows Xp (Amd66) On Windows Xp (Amd65

Introduction to ovirt

Cloud.com CloudStack Installation Guide

Déployer son propre cloud avec OpenStack. GULL François Deppierraz

OVERVIEW. The complete IaaS platform for service providers

Cloud computing - Architecting in the cloud

The OpenNebula Cloud Platform for Data Center Virtualization

Virtualization. Nelson L. S. da Fonseca IEEE ComSoc Summer Scool Trento, July 9 th, 2015

Overview. The OnApp Cloud Platform. Dashboard APPLIANCES. Used Total Used Total. Virtual Servers. Blueprint Servers. Load Balancers.

Network Virtualization

Mirantis

Introduction to Network Virtualization in IaaS Cloud. Akane Matsuo, Midokura Japan K.K. LinuxCon Japan 2013 May 31 st, 2013

Simplified Private Cloud Management

Cloud Platform Comparison: CloudStack, Eucalyptus, vcloud Director and OpenStack

CloudStack and Big Data. Sebastien May 22nd 2013 LinuxTag, Berlin

Apache CloudStack: Open Source Infrastructure as a Service Cloud Computing Platform

OpenNebula Open Souce Solution for DC Virtualization. C12G Labs. Online Webinar

Preparation Guide. How to prepare your environment for an OnApp Cloud v3.0 (beta) deployment.

2013 ovh.com. All rights reserved

SDN v praxi overlay sítí pro OpenStack Daniel Prchal daniel.prchal@hpe.com

About the VM-Series Firewall

Virtualization Management the ovirt way

Cloud Optimize Your IT

Introduction to OpenStack

CloudPlatform Deployment Reference Architecture

Corso di Reti di Calcolatori M

ovirt Introduction James Rankin Product Manager Red Hat Virtualization Management the ovirt way

Why is a good idea to use OpenNebula in your VMware Infrastructure?

NephOS A Licensed End-to-end IaaS Cloud Software Stack for Enterprise or OEM On-premise Use.

Citrix CloudPlatform (powered by Apache CloudStack) Version Administration Guide

Building a Cloud Computing Platform based on Open Source Software Donghoon Kim ( donghoon.kim@kt.com ) Yoonbum Huh ( huhbum@kt.

Solution for private cloud computing

RED HAT ENTERPRISE VIRTUALIZATION FOR SERVERS: COMPETITIVE FEATURES

SUSE Cloud 2.0. Pete Chadwick. Douglas Jarvis. Senior Product Manager Product Marketing Manager

IN DETAIL. Smart & Dedicated Servers

Cloud.com CloudStack Release Notes

Building Clouds with OpenNebula 2.2 and StratusLab

How To Choose Between A Relational Database Service From Aws.Com

Rally Installation Guide

CloudPortal Business Manager 2.2 POC Cookbook

CloudStack Basic Installation Guide

Building Storage Service in a Private Cloud

IaaS Cloud Architectures: Virtualized Data Centers to Federated Cloud Infrastructures

OpenStack IaaS. Rhys Oxenham OSEC.pl BarCamp, Warsaw, Poland November 2013

Integration in the cloud - IPaaS with Fuse technology. Charles Moulliard Apache Committer

Architecture des plates-formes IaaS Etat des lieux et perspectives

Η υπηρεσία Public IaaS ΕΔΕΤ ανάπτυξη και λειτουργία για χιλιάδες χρήστες

Amazon Elastic Beanstalk

How To Build A Software Defined Data Center

Contents UNIFIED COMPUTING DATA SHEET. Virtual Data Centre Support.

Cisco Network Services Manager 5.0

How To Build An Openstack Cloud System

3.0 CDN 3.0 OnApp CDN Activation and Setup Guide Author: Version: Date:

rackspace.com/cloud/private

CDH installation & Application Test Report

Using SouthBound APIs to build an SDN Solution. Dan Mihai Dumitriu Midokura Feb 5 th, 2014

Cloud Computing Architecture with OpenNebula HPC Cloud Use Cases

Citrix Lab Manager 3.6 SP 2 Quick Start Guide

Boas Betzler. Planet. Globally Distributed IaaS Platform Examples AWS and SoftLayer. November 9, IBM Corporation

Security. Environments. Dave Shackleford. John Wiley &. Sons, Inc. s j}! '**»* t i j. l:i. in: i««;

Transcription:

Building a big IaaS cloud with Apache CloudStack David Nalley PMC Member Apache CloudStack Member, Apache Software Foundation ke4qqq@apache.org Twitter: @ke4qqq New slides at: http://s.apache.org/bigiaas

#whoami Apache Software Foundation Member Apache CloudStack PMC Member Recovering Sysadmin Fedora Project Contributor Zenoss contributor Employed by Citrix in the Open Source Business Office

My questions for you.

Agenda Justification - 'so what' Overview of Apache CloudStack Break Design choices

Why use cloud? From a dev point of view the process looks like: Start new project File ticket for resources...wait...wait...wait Get resources, that aren't configured...wait... Get network access...get permission...wait Get things done.

Why use cloud? What IT Ops provides is not what developers want. Does not maximize value for the business

Get rid of the waiting! Remove constraints - developers empowered to get things done. Agility Enforce automated process instead of manual ones

Orchestration/Automation Sysadmins and network admins, still do so much manually. IaaS does not solve all the problems.

Overview

Overview CloudStack is an open source Infrastructure-as a-service (IaaS) orchestration platform that enables users to build, manage and deploy compute cloud environments.

Overview - GUI CloudStack offers an administrator's Web interface, used for provisioning and managing the cloud, as well as an end-user's Web interface, used for running VMs and managing VM templates.

Overview - API CloudStack Web Services Query HTTP API is loosely based on the REST architecture and allows developers to create new management solutions or integrate existing systems with CloudStack. It returns both XML and JSON response formats. Documented at: http://cloudstack.apache.org/docs/api

Overview API - EC2 CloudStack also has a native but separate EC2 API Interface. Documented at: http://cloudstack.apache.org/docs/api

Overview API Google Compute Engine A few CloudStack developers created a lightweight GCE API translation layer as well. Currently a separate project. Downloadable from: https://github.com/nopping/gcloud

VM Provisioning Select Operating System Windows, Linux Select Compute Offering CPU & RAM Select Data Disk Offering Volume Size Select Network Offering Network & Services Create VM

Dashboard VM Counts Public IPs Networks Latest Events

Virtual Machine Management Users VM Operations Console Access VM Status Change Service Offering Start Stop Restart Destroy CPU Utilized Network Read Network Writes 2 CPUs 1 GB RAM 20 GB 20 Mbps 4 CPUs 4 GB RAM 200 GB 100 Mbps

Volume Management Add / Delete Volumes VM 1 Volume Create Templates from Volumes Volume Template Schedule Snapshots Now Hourly Daily Weekly Monthly View Snapshot History. 12/2/2012 7.30 am 2/2/2012 7.30 am

Network Management Create Networks and attach VMs Acquire public IP address for NAT & load balancing Control traffic to VM using ingress and egress firewall rules Set up rules to load balance traffic between VMs Configure multi-tier networks

Management Server Secondary Storage MySQL Cloud_db Zone Zone Zone

Management Server Deployments User API Management Server Admin API Load Balancer Management Server MySQL DB Replication Back Up DB Infrastructure Resources

Understanding the Role of Storage and Templates Primary Storage Cluster level storage for VMs Connected directly to hosts NFS, iscsi, FC and Local Secondary Storage Zone level storage for template, ISOs and snapshots Host Host Primary Storage Cluster Pod NFS or Object Store via CloudStack System VM Templates and ISOs Imported into CloudStack Can be private or public Templat e Secondary Storage Zone

Provisioning Process 1. User Requests Instance 2. Provision Optional Network Services 3. Copy instance template from secondary storage to primary storage on appropriate cluster Host Host VM Primary Storage Cluster 4. Create any requested data volumes on primary storage for the cluster 5. Create instance 6. Start instance Templat e Secondary Storage Pod Zone

System VMs System VMs optimize and scale the datapath on behalf of CloudStack Stateless, can be destroyed and recreated from database state Highly Available Communicates with Management Server over management network Usually have 3 interfaces: control, guest and public

System VMs Virtual Router VM Provides multiple network services IPAM (DHCP), DNS, NAT, Source NAT, Firewall, PF, VPN User-data, Meta-data, SSH keys and password change server Redundancy via VRRP MS configures VR over SSH Proxied via the hypervisor on XS and KVM

System VMs Console Proxy VM Provides AJAX-style HTTP-only console viewer Grabs VNC output from hypervisor Scales out (more spawned) as load increases Java-based server Communicates with MS over message bus

System VMs Secondary Storage VM Provides image (template) management services Download from HTTP file share or Object Storage Copy between zones Scale out to handle multiple NFS mounts/object Stores Java-based server communicates with MS over message bus

Networking.is the bane of every cloud operators existence... Advanced Basic Everything else

Networking - Advanced VLANs for isolation All VLANs in a Pod trunked to hypervisors Each account has a dedicated virtual router More services (VPN, Firewall, LB, etc.)

Networking - Basic Simple, flat, Layer-2 network Bridge-based Layer-3 filtering/firewall Massively scalable

Networking Everything else GRE Tunnels VMware NSX (nee Nicira NVP) Midokura Midonet Stratosphere BigSwitch VXLAN (in a release this winter) Juniper Contrail (in a release this winter)

Installation Add yum/apt repo yum -y install cloudstack-management cloudstack-setup-databases cloudstack-setup-management Configure...

Design Choices

Self service UI API Some external tool

Self service UI API Some external tool

API or Command-line cloudmonkey> deploy virtualmachine serviceofferingid=d8611d07-acf5-4cd4-a630-5c4d937ef043 templateid=081358ff-2427-44f8-adcc-1bb002fab361 zoneid=d06193b2-7980-4ad1-bd8-7b2f2eda63c3 curl 'http://localhost:8096/client/api? command=listusers'

Config Management deployment

{ "name": "hadoop_cluster_a", "description": "A small hadoop cluster with hbase", "version": "1.0", "environment": "production", "servers": [ { "name": "zookeeper-a, zookeeper-b, zookeeper-c", "description": "Zookeeper nodes", "template": "rhel-5.6-base", "service": "small", "port_rules": "2181", "run_list": "role[cluster_a], role[zookeeper_server]", "actions": [ { "knife_ssh": ["role:zookeeper_server", "sudo chef-client"] } ] }, { "name": "hadoop-master", "description": "Hadoop master node", "template": "rhel-5.6-base", "service": "large", "networks": "app-net, storage-net", "port_rules": "50070, 50030, 60010", "run_list": "role[cluster_a], role[hadoop_master], role[hbase_master]" }, { "name": "hadoop-worker-a hadoop-worker-b hadoop-worker-c", "description": "Hadoop worker nodes", "template": "rhel-5.6-base", "service": "medium", "port_rules": "50075, 50060, 60030", "run_list": "role[cluster_a], role[hadoop_worker], role[hbase_regionserver]", "actions": [ { "knife_ssh": ["role:hadoop_master", "sudo chef-client"] }, { "http_request": "http://${hadoop-master}:50070/index.jsp" } ] } }

Use a tool

Usage Jevons Paradox Plenty of waste possible as well - will developers always destroy a machine when they are done with it? Important to show what projects and groups are consuming resources as well as how they are using those resources

Storage Commodity storage if you can get away with it. Local storage tends to be the best mix of cheap and performant No failover - do you need it? If so, use something enterprise-y.

Commodity Networking Layer 3 isolation - (aka Security Groups) VLANs - (not as commodity, but still relatively cheap on a small scale, but not at a large scale) Virtual routers (provide DHCP, DNS, LB, Firewall, PF, NAT, etc)

Commodity Hypervisor If your scale is below 100 hypervisors use what you know and if you don't know use KVM If you have more than 100 hypervisors you should be seriously evaluating XenServer there's a reason Amazon, Rackspace, and Google use Xen-based hypervisors. Use VMware if you already know it. Or have some demands. Easy to mix and match if necessary.

Limiting Resources Limit the number of VMs, snapshots, IP addresses, etc. Use 'projects' to share resources This means most folks will never have problems, but heaviest users will not be able to interrupt service for others.

Questions

Resources http://cloudstack.apache.org #cloudstack on irc.freenode.net http://cloudstack.apache.org/docs