Deploying with Ubuntu Cloud
Total Page:16
File Type:pdf, Size:1020Kb
Deploying with Ubuntu Cloud Nick Barcet <[email protected]> Ubuntu Cloud Product Manager Cloud computing stack Salesforce.com, GoogleDocs, Office, etc... GoogleApps, Java, Azure, etc... Amazon, GoGrid, 3Tera, OpenStack, etc... Storage Network Xen KVM VMWare HyperV etc.. HP IBM Dell Lenovo etc.. 2 Presentation by Kyle MacDonald Ubuntu Cloud (Ubuntu One) Juju (CloudFoundry) Ubuntu Cloud Infrastructure and Guest Storage Network KVM, Xen LXC Orchestra (Bare metal provisioning) x86 ARM 3 Presentation by Kyle MacDonald What is Ubuntu Cloud? ● Ubuntu is the reference OS for IaaS (Cloud Infrastructure) ● Ubuntu is the leading Guest OS (Cloud Guest) ● Juju is the base for the next generation Ubuntu 4 Presentation by Kyle MacDonald Ubuntu Cloud Infrastructure Value Proposition Why Ubuntu Cloud Infrastructure? Why OpenStack? ● Best in class deployment tools ● Fastest ever growing OpenSource - Orchestra project - Juju - in terms of partners (HP, Citrix, Dell, Cisco, - Can adapt to any customer preferred tool RackSpace, etc...) ● Best in class management tools - in terms of contributions (43 companies involved in the Diablod release) - Landscape - in terms of time to Market (5 major public clouds - Juju expected by EO 2011) - Nagios, Collectd and other OSS ● ● Ubuntu provides the base components Built to support the needs of public for most OpenStack distributors clouds (which supersedes private) - HP Cloud ● Built to provide no SPOF - Dell OpenStack - Rackspace Cloud Builder ● Massively extensible in terms of ● Ubuntu and OpenStack synchronized functionalities - SAN development releases - Network ● Ubuntu is the reference OS for - Hypervisors - etc.. 5 PresentationOpenStack by Kyle MacDonald Ubuntu Cloud Infrastructure Ubuntu Cloud Infrastructure An IaaS stack based on 3 pillars Openstack Compute (aka Nova) ●Delivers instances and disk space on demand to run Ubuntu Cloud Guest or most other Operating Systems. ●Logical equivalent to AWS EC2 Openstack Image Service (aka Glance) ●Delivers machines images locally and remotely ●Ubuntu Cloud Guest enabled ●Logical equivalent of AWS AMI Server Openstack Object Storage (aka Swift) ●Delivers Peta-scale object storage capabilities with redundancy built-in. ●Logical equivalent to AWS S3 7 Presentation by Kyle MacDonald Ubuntu Cloud Infrastructure → Ubuntu Oneiric Ocelot (11.10) Your Workloads Build your infrastructure as a service public or private cloud Ubuntu Cloud Any OS ● Guest Based on OpenStack ● Supporting KVM, Xen & LXC hypervisors ● All components can be made highly OpenStack available ● EC2, EBS and S3 compatible ● One of the workload made easy to deploy with Orchestra KVM, Xen or LXC Ubuntu Server 8 Presentation by Kyle MacDonald Orchestra 9 Presentation by Nick Barcet Ubuntu Orchestra Orchestra Install Orcherstra on your Infrastructure Server first server 10 Presentation by Kyle MacDonald Ubuntu Orchestra Orchestra Associate profiles with Infrastructure Server MAC addresses via the web or API interface 11 Presentation by Kyle MacDonald Ubuntu Orchestra Orchestra Turn on your hardware, Infrastructure Server the deployment happens, your infrastructure is ready! 12 Presentation by Kyle MacDonald Ubuntu Orchestra Orchestra Bare metal deployment Infrastructure Server from the Ubuntu Installer ● Zero touch deployment of complex workloads ● Configuration management ● Customizable Components ● Cobbler ● Fact database ● Cloud-Init ● Pluggable management tools (Juju as default) 13 Presentation by Kyle MacDonald Installing Orcherstra > sudo apt-get install ubuntu- orchestra-server 14 Presentation by Kyle MacDonald Installing Orcherstra 15 Presentation by Kyle MacDonald Installing Orchestra 16 Presentation by Kyle MacDonald Installing Orchestra 17 Presentation by Kyle MacDonald 18 Presentation by Kyle MacDonald Orchestra ready ● Latest Ubuntu ISO is downloaded ● Package repositories are setup ● PXE, TFTP, DHCP and Cobbler are ready –> Let's define some servers 19 Presentation by Kyle MacDonald Declaring servers for Orchestra sudo cobbler system add \ --name="cempedak.canonical.com" \ --mac-address="00:24:81:e4:59:9c" \ --ip-address="10.55.55.2" \ --dns-name="cempedak.canonical.com" \ --hostname="cempedak.canonical.com" \ --profile="oneiric-x86_64-ensemble" \ --mgmt-classes="orchestra-juju-available" \ --kopts="console=ttyS0,9600n8 DEBCONF_DEBUG=developer netcfg/dhcp_timeout=120 netcfg/choose_interface=eth0" 20 Presentation by Kyle MacDonald Juju Devops Distilled 21 Presentation by Nick Barcet What is DevOps? ● Rate of agile development and deployment requires deeper interaction between teams ● A melding of development, deployment, and QA principles, methods, and practices ● Fills the gap between developers and system administrators 22 Presentation by Kyle MacDonald What drives DevOps? ● Speed of the deployment ● Continuous Integration, Automated Testing, etc. ● Fast change vs. Stability 23 Presentation by Kyle MacDonald What does DevOps “deliver”? ● Fast repeatable server setup, consistent environment ● Abstract ops tasks to empower devs ● Smaller deployments empower ops ● Repeatable processes that let you scale out quickly 24 Presentation by Kyle MacDonald You've got the tools already ● Hardware ● Virtualization ● Platform (OS) ● Configuration Management … need to tie that together into something whole. 25 Presentation by Kyle MacDonald Manages Services, not Machines 26 Presentation by Nick Barcet Elevate to Juju Service Orchestration Configuration Management Virtualization Operating System Hardware 27 Presentation by Kyle MacDonald Juju, DevOps Distilled Dev Ops ● Reuse existing deployment charms in an ● Explicit control over deployment, openly-accessible repository of shared configuration and upgrade options expertise ● See what’s deployed and track usage in the ● Reproduce deployments for test and staging cloud purposes ● Create and share charms for new ● Rapid deployment of your dependencies for applications development purposes ● Monitor, scale, shrink and adjust deployment ● Compose whole systems from individual parameters in real time application components and describe the ● Explicitly connect different components and entire deployment maintain those relationships over time ● Collaborate with developers on the exact deployment and upgrade processes ● Get more done: implement decisions http://juju.ubuntu.comimmediately regardless of infrastructure scale 28 Presentation by Kyle MacDonald Juju's Charms ● Charms are a shareable, re-usable, and repeatable expressions of DevOps best practices. ● You can use them unmodified, or easily change and connect them to fit your needs. ● Deploying a charm is similar to installing a package on Ubuntu: ask for it and it’s there, remove it and it’s completely gone. 29 Presentation by Kyle MacDonald Juju is a community of DevOps expertise. ● Most of the application you want will be available in Juju. ● Juju provides direct and free access to a DevOps community- contributed collection of charms 30 Presentation by Kyle MacDonald Juju provides service orchestration ● Juju focuses on managing the service units you need to deliver a single solution, above simply configuring the machines or cloud instances needed to run them. ● Charms developed, tested, and deployed on your own hardware will operate the same in an EC2 API compatible cloud, including OpenStack. 31 Presentation by Kyle MacDonald Juju is intelligent ● Juju exposes re-usable service units and well-defined interfaces that allow you to quickly and organically adjust and scale solutions without repeating yourself. 32 Presentation by Kyle MacDonald Juju is Easy ● There’s no need to learn a domain specific language (DSL) to use Juju or create charms. You can be up and running with your own charm in minutes 33 Presentation by Kyle MacDonald Juju's internals 34 Presentation by Nick Barcet Juju Juju treats individual services as atoms that are described as charms and can be Juju environment instantiated one or many times. Cloud app CloudCloud app app and dependency solver 35 Presentation by Kyle MacDonald Juju Load BalancerHAProxy Each charm (or atom) define dependencies and/or Depends Provides provides. Juju environment Cloud app CloudCloud app app and dependency solver Provides Depends SQL Database MySQL 36 Presentation by Kyle MacDonald Juju Load BalancerHAProxyVarnish Multiple charms can provide the same service and can be Depends Provides easily switched. Juju environment Cloud app CloudCloud app app and dependency solver Provides Depends SQL Database MySQL 37 Presentation by Kyle MacDonald Juju VarnishVarnish Juju maintains the relations between the services so that Juju Relation you don't need to care about Juju environment the elasticity of your environment. Cloud app CloudCloud app app Relations are to charms what and dependency solver Juju Relation bounds are to atoms. Services are loosely coupled MySQLMySQL MySQL but highly cohesive. 38 Presentation by Kyle MacDonald Juju Varnish Juju delivers service focused management through their Juju Relation life-cycle Juju environment ● Offers the same simple rules to components of you infra as we do already for packages Cloud app on your servers: dependencies, provides Cloud app Cloud app ● Adds the notion of dynamic relations between components and dependency ● solver* To provide you with simple automated Juju Relation elasticity that is easy to expand ● Working on your bare metal servers (through Orchestra*) as easily as on your favourite clouds (AWS, OpenStack*, ...) MySQL 39 Presentation by Kyle MacDonald *coming soon Deploying OpenStack