SlideShare a Scribd company logo
Apache CloudStack's Plugin Model:
Balancing the Cathedral with a Bazaar
Adding Hyper-V Support

    donal.lafferty@citix.com

    Feb 26th, 2012
Familiar?
The Call For Submissions sets the context

• “Open Source Community Leadership Drives Enterprise-Grade Innovation”
 ᵒCloudStack‟s plugin model permits enterprise-grade adaptions

• “Apache initiatives play a key role in powering today's Cloud”
 ᵒPlugin model allows cloud to adapt to compute loads (not the other way around)

• “particular focus on those [talks] demonstrating real-world experience of
  solving specific problems.”
 ᵒCase study of adding Hyper-V support as a newcomer
Innovators Need the System to be Disaggregated
                                                 CloudStack WebServices API
     OAM&P API                    End User API                                           AWS API                        Pluggable Service API Engine

                                                 Business Logic                                                            Provisioning


                     Resource




                                                                                          Capacity
  Accounts




                                                                                            Mgr
                                       Update
                       Mgr




                                                           Rules



                                                                                Mgr
                                        Mgr


                                                           Mgr

                                                                                HA
  Security Mgr
 Events Manager
                                                                                                     Adapters




                                                                                                                                            XenServer
                                            Orchestration




                                                                                                                                   VMWare
 Usage Manager




                                                                                                                                                        OVM
                                                                                                                             KVM
                                                                                                      Network Guru




                                                                      Template Mgr
                                                    Network Mgr
                     VM Manager

                                   Storage Mgr
Domain Manager




                                                                                     Snapshot
                                                                                     Manager
                                                                                                     Network Element
                                                                                                       Deployment
  Account Mgr                                                                                            Planner
 Limits Manager                                                                                       Hypervisor Guru



                                                                    Framework
         Agent Manager                                            Cluster Manager                                       Data Access Layer

Recommended for you

Использование maven для сборки больших модульных c++ проектов на примере Odin...
Использование maven для сборки больших модульных c++ проектов на примере Odin...Использование maven для сборки больших модульных c++ проектов на примере Odin...
Использование maven для сборки больших модульных c++ проектов на примере Odin...

В докладе рассматривается технология сборки C++ проектов на основе maven, применяемая в Odin Service Automation (OSA)

c++
Grizzly Comet Aquarium Paris
Grizzly Comet Aquarium ParisGrizzly Comet Aquarium Paris
Grizzly Comet Aquarium Paris

The document discusses Project Grizzly Comet, an open source framework for building real-time web applications using Comet techniques. It provides an overview of key Grizzly Comet components like CometContext, CometHandler, NotificationHandler, and how they enable asynchronous communication between a server and browsers. Additional related projects like Grizzly Messages Bus, Bayeux protocol, and Grizzlet interface are also summarized.

atmospherecometgrizzly
Juggling Java EE with Enterprise Apache Maven
Juggling Java EE with Enterprise Apache MavenJuggling Java EE with Enterprise Apache Maven
Juggling Java EE with Enterprise Apache Maven

This document discusses using Maven to manage the build and deployment of Java EE applications. It covers: 1. The components of Java EE applications like EJBs, web services, WARs, and EARs and how to structure them in Maven. 2. How to configure the Maven plugins for each type of artifact like the maven-ejb-plugin, maven-war-plugin, and maven-ear-plugin. 3. Tips for testing the different types of artifacts and deploying the finished application with tools like Cargo.

2007javamaven
Jimmy
McMillan…
Disaggregation Started with Hardware Management

                   CloudStack Orchestration                                                       Adapters     CloudStack Provisioning
                                                                                                                       Plugins
                                                                                               Network Guru




                                                                        Snapshot Manager
                      Template Manager
 Network Manager




                                         Storage Manager

                                                           VM Manager




                                                                                                                                  XenServer
                                                                                              HypervisorGuru




                                                                                                                         VMWare




                                                                                                                                              OVM
                                                                                                                 KVM
                                                                                                     Etc…




                                                                                             Framework
                      Agent Manager                                                        Cluster Manager       Data Access Layer
Understand that the Plugin serves two masters

                                                             • Server Component:
                          Rest API                           ᵒJava
                                                             ᵒAdapter APIs
 Plugin API




                      Implementation                         ᵒDAO
                                                             ᵒRESTful API
                        Data Access Layer


                                                             • ServerResource:
                  ServerResource
 -        Optional. Required if Plugin needs to be co-
                                                             ᵒAgent Proxy, e.g. KVM
          located with the resource                            • „Message Bus‟ of JSON over TCP
 -        Implements translation layer to talk to resource
 -        Communicates with server component via JSON        ᵒDirect connect, e.g. XenServer
That’s
the
theory…




          … is it achievable?

Recommended for you

Kubernetes #4 volume & stateful set
Kubernetes #4   volume & stateful setKubernetes #4   volume & stateful set
Kubernetes #4 volume & stateful set

Kubernetes can manage stateful applications using StatefulSets. StatefulSets ensure each Pod in the StatefulSet gets a persistent unique network identity, stable storage, and ordered deployment and scaling. When a Pod is removed from the StatefulSet through scaling in, its PersistentVolumeClaim and PersistentVolume are retained and not deleted so they can be mounted by new Pods. This allows each Pod's stateful data to persist independently of the Pod's lifetime.

kubernetes쿠버네티스볼륨
VMware Advance Troubleshooting Workshop - Day 5
VMware Advance Troubleshooting Workshop - Day 5VMware Advance Troubleshooting Workshop - Day 5
VMware Advance Troubleshooting Workshop - Day 5

This document provides an overview of vMotion capabilities in VMware vSphere, including: - Types of virtual machine migrations like vMotion, Storage vMotion, and shared-nothing vMotion. - Requirements for vMotion like compatible CPUs and network connectivity. - Enhanced features in vSphere 6 like separate vMotion networking stacks and long distance vMotion. - Best practices for vMotion planning, limitations, and troubleshooting migration errors.

fault tolerancevcap desginvmotion
WebLogic Scripting Tool Overview
WebLogic Scripting Tool OverviewWebLogic Scripting Tool Overview
WebLogic Scripting Tool Overview

WLST is a scripting tool that can be used to manage Oracle WebLogic Server domains and instances. It has two modes - offline for configuring domains without a running server, and online for managing running servers. The document discusses using WLST offline to create domains from templates, and online to perform tasks like deployment, configuration, and monitoring of running servers through JMX.

weblogic wlst
Follow the process for new features
• https://cwiki.apache.org/confluence/display/CLOUDSTACK/Adding+new+features+and+design+documents
      • Announce over mailing list
          - Attempt to get consensus: awareness & acceptance
      • Publish Functional Spec & Design
      • JIRA ticket for feature
      • Setup a Dev Environment
      • Branch on github, use your own (public) branch
      • Submit changes to Review Board
          - post-review for large packages of changes.
• Decide on the wiki you want
     • Incubator wiki cleaner, simpler view
        - http://incubator.apache.org/cloudstack/develop/developer-faq.html
     • CloudStack wiki for in depth development
        - https://cwiki.apache.org/confluence/display/CLOUDSTACK/Home
     • Avoid the pre-Apache wiki (http://wiki.cloudstack.org/dashboard.action)
Simpler Steps Make it Easier to Learn CloudStack
             CloudStack Manager                   CloudStack Manager
                 Hyper-V Types                        Hyper-V Types
Phase 1:                             Phase 2:
           Plugin Server Component              Plugin Server Component
             Proxy ServerResource                    ServerResource

                   Message Bus                          WS-Management

              Connected Agent
              WMI (or PowerShell)                        WMI
             Hyper-V Server 2012                  Hyper-V Server 2012

              XenServer Cluster                     Hyper-V based
                (System VMs)                         System VMs
Reuse and repurpose rather than rewrite

     Phase 1
     Remote            WMI via
                       Python
     Agent
                Server Resource (KVM)

                      Agent             Message Bus

                    AgentShell
                        O/S
ServerResource commands are easier to log and replay
public interface HypervisorResource extends ServerResource {
  StartAnswer execute(StartCommand cmd);
  StopAnswer execute(StopCommand cmd);
  RebootAnswer execute(RebootCommand cmd); }

@Test
public void TestCreateCommand() {
  String sample = "{"volId":10,"pool":{"id":201,"uuid":""+testLocalStoreUUID+"","h
  ","path":"+testLocalStorePathJSON+","port":0,"type":"Filesystem"},"diskCharact
  ""tags":[],"type":"ROOT","name":"ROOT-9","useLocalStorage":true,"recreatab
  ""volumeId":10,"hyperType":"Hyperv"},"templateUrl":"+testSampleTemplateURLJ
…

Recommended for you

Java Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
Java Tech & Tools | Grails in the Java Enterprise | Peter LedbrookJava Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
Java Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook

This document discusses how to integrate Grails applications with various enterprise systems and processes. It covers integrating Grails with build tools like Ant and Maven, managing dependencies, connecting to legacy databases, deploying applications, and integrating with Spring frameworks for messaging, web services, and other enterprise features. Grails can work with many external systems through plugins, custom ORM mappings, and by treating Grails as a Spring application. This allows Grails applications to fit into a variety of enterprise environments and development processes.

jaxjava tech & toolsjax london
E2EVC SCVMM-Mania
E2EVC SCVMM-ManiaE2EVC SCVMM-Mania
E2EVC SCVMM-Mania

This document provides an overview of System Center Virtual Machine Manager (SCVMM) including its architecture, supported platforms, high availability options, networking capabilities like software defined networks, bare metal deployment, services templates, hybrid cloud integration with App Controller, and managing third party hypervisors. SCVMM provides centralized management of private clouds and hypervisors. It supports features like VM templates, self-service, and role-based access.

hyper-vscvmmsystem center
Spring Boot Revisited with KoFu and JaFu
Spring Boot Revisited with KoFu and JaFuSpring Boot Revisited with KoFu and JaFu
Spring Boot Revisited with KoFu and JaFu

This document summarizes a presentation on Spring Boot revisited with KoFu and JaFu. KoFu and JaFu are new flavors of Spring Boot that use functional programming approaches. KoFu uses Kotlin and functional bean registration, while JaFu uses Java and a lambda-based infrastructure. The presentation discusses the benefits of Kotlin and Java evolutions, an overview of Spring Fu which is an incubator for KoFu and JaFu, examples of applications written in each flavor, efficiency gains from using Kotlin and KoFu, the team working on the project, and a roadmap for upcoming features including native application support and automated transformation between configurations.

core frameworkmodernization/refactoringspringone 2020
CloudStack is evolving, it may fix your problem

• Storage disaggregated




• SystemVM creation broadened & simplified

         XenServer Cluster                   Hyper-V based
           (System VMs)                       System VMs
Make advance preparations for IP clearance
# Copyright (c) 2010 Cloud.com, Inc
#
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
#    not use this file except in compliance with the License. You may obtain
#    a copy of the License at
#
#         http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#    License for the specific language governing permissions and limitations
#    under the License.

 • http://www.apache.org/licenses/
  ᵒhttp://www.apache.org/legal/src-headers.html
  ᵒhttp://apache.org/licenses/LICENSE-2.0.html#apply
Bonus Tips – Read at your leisure

• SystemVMs have logs
 ᵒConnect form hypervisor console, user:root, password: 6m1ll10n.
    • Avoids SSH over 3392 with management server RSA keys
• Import Maven projects into Eclipse using m2e
• Maven debuggable task paused waiting for Eclipse to attach:
      export MAVEN_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -
      Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y
         - See http://www.mojavelinux.com/blog/archives/2007/03/remote_debugging_with_jetty/
• Expand Log4j logging
 ᵒChange Threshold from INFO to TRACE
    • :%s/INFO/TRACE/g
Summary

• Innovators Need the System to be Disaggregated
• Disaggregation Started with Hardware Management
• Understand that the Plugin serves two masters
• Follow the process for new features
• Simpler Steps Make it Easier to Learn CloudStack
• Repurpose rather than rewrite
• ServerResource commands are easier to log and replay
• Keep an eye out for evolving solutions
• Make advance preparations for IP clearance

Recommended for you

Vsphere esxi-vcenter-server-55-troubleshooting-guide
Vsphere esxi-vcenter-server-55-troubleshooting-guideVsphere esxi-vcenter-server-55-troubleshooting-guide
Vsphere esxi-vcenter-server-55-troubleshooting-guide

This document provides troubleshooting information for issues that may occur when using vSphere features and components, including: - Troubleshooting steps for resolving common virtual machine problems like fault tolerant configuration errors and USB device connectivity issues. - Troubleshooting hosts, including vSphere HA states and Auto Deploy problems. - Troubleshooting the vCenter Server and vSphere Web Client, as well as Linked Mode, certificates, and plug-ins. - Troubleshooting availability features like vSphere HA, DRS, and fault tolerance. - Troubleshooting storage, networking, licensing, and other resource management problems.

vmware troubleshootingvmwarevpshere
a Running Tour of Cloud Foundry
a Running Tour of Cloud Foundrya Running Tour of Cloud Foundry
a Running Tour of Cloud Foundry

This was a quick (15 minutes!) tour of Cloud Foundry that I gave at JFokus 2012 introducing Cloud Foundry as the answer to the question, "I've got a working web application and Spring made it easy, but where do I host it?"

cloudfoundryspringpaas
Rearchitecting Storage for Server Virtualization
Rearchitecting Storage for Server VirtualizationRearchitecting Storage for Server Virtualization
Rearchitecting Storage for Server Virtualization

This document summarizes a presentation on rearchitecting storage for server virtualization. It discusses how server virtualization impacts storage by increasing random I/O, challenges of shared storage, and various hypervisor storage approaches like shared storage on SAN/NAS, raw device mapping, and their pros and cons. It also covers storage connectivity options, features in vSphere like thin provisioning and storage I/O control, and technologies like NPIV that are important for virtualization.

e-stormserver virtualizationvmware
“It is not the strongest of the species that
      survives, nor the most intelligent that
      survives. It is the one that is the most
      adaptable to change.”

                                      – Charles Darwin




17
References

• Theory behind plugins http://www.youtube.com/watch?v=FMM-YgK1jmg
• Disaggregating CloudStack
 ᵒhttp://www.slideshare.net/buildacloud/cloudstack-collaboration-conference-12-
  refactoring-cloud-stack
 ᵒhttp://www.youtube.com/watch?v=iGk3s68Meh0
• Hyper-V Plugin Wiki
 ᵒhttps://cwiki.apache.org/CLOUDSTACK/hyper-v-2012-30-support.html

More Related Content

What's hot

Scaling and Embracing Failure: Clustering Docker with Mesos
Scaling and Embracing Failure: Clustering Docker with MesosScaling and Embracing Failure: Clustering Docker with Mesos
Scaling and Embracing Failure: Clustering Docker with Mesos
Rob Gulewich
 
Sdc 2012-how-can-hypervisors-leverage-advanced-storage-features-v7.6(20-9-2012)
Sdc 2012-how-can-hypervisors-leverage-advanced-storage-features-v7.6(20-9-2012)Sdc 2012-how-can-hypervisors-leverage-advanced-storage-features-v7.6(20-9-2012)
Sdc 2012-how-can-hypervisors-leverage-advanced-storage-features-v7.6(20-9-2012)
Abhijeet Kulkarni
 
OSGi Cloud Ecosystems
OSGi Cloud EcosystemsOSGi Cloud Ecosystems
OSGi Cloud Ecosystems
David Bosschaert
 
Использование maven для сборки больших модульных c++ проектов на примере Odin...
Использование maven для сборки больших модульных c++ проектов на примере Odin...Использование maven для сборки больших модульных c++ проектов на примере Odin...
Использование maven для сборки больших модульных c++ проектов на примере Odin...
Platonov Sergey
 
Grizzly Comet Aquarium Paris
Grizzly Comet Aquarium ParisGrizzly Comet Aquarium Paris
Grizzly Comet Aquarium Paris
Alexis Moussine-Pouchkine
 
Juggling Java EE with Enterprise Apache Maven
Juggling Java EE with Enterprise Apache MavenJuggling Java EE with Enterprise Apache Maven
Juggling Java EE with Enterprise Apache Maven
elliando dias
 
Kubernetes #4 volume & stateful set
Kubernetes #4   volume & stateful setKubernetes #4   volume & stateful set
Kubernetes #4 volume & stateful set
Terry Cho
 
VMware Advance Troubleshooting Workshop - Day 5
VMware Advance Troubleshooting Workshop - Day 5VMware Advance Troubleshooting Workshop - Day 5
VMware Advance Troubleshooting Workshop - Day 5
Vepsun Technologies
 
WebLogic Scripting Tool Overview
WebLogic Scripting Tool OverviewWebLogic Scripting Tool Overview
WebLogic Scripting Tool Overview
James Bayer
 
Java Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
Java Tech & Tools | Grails in the Java Enterprise | Peter LedbrookJava Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
Java Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
JAX London
 
E2EVC SCVMM-Mania
E2EVC SCVMM-ManiaE2EVC SCVMM-Mania
E2EVC SCVMM-Mania
Michael Rüefli
 
Spring Boot Revisited with KoFu and JaFu
Spring Boot Revisited with KoFu and JaFuSpring Boot Revisited with KoFu and JaFu
Spring Boot Revisited with KoFu and JaFu
VMware Tanzu
 
Vsphere esxi-vcenter-server-55-troubleshooting-guide
Vsphere esxi-vcenter-server-55-troubleshooting-guideVsphere esxi-vcenter-server-55-troubleshooting-guide
Vsphere esxi-vcenter-server-55-troubleshooting-guide
Sree Harsha Boyapati
 
a Running Tour of Cloud Foundry
a Running Tour of Cloud Foundrya Running Tour of Cloud Foundry
a Running Tour of Cloud Foundry
Joshua Long
 
Rearchitecting Storage for Server Virtualization
Rearchitecting Storage for Server VirtualizationRearchitecting Storage for Server Virtualization
Rearchitecting Storage for Server Virtualization
Stephen Foskett
 
EWD 3 Training Course Part 16: QEWD Services
EWD 3 Training Course Part 16: QEWD ServicesEWD 3 Training Course Part 16: QEWD Services
EWD 3 Training Course Part 16: QEWD Services
Rob Tweed
 
Dwr
DwrDwr
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla1512 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
Frank Munz
 
A Walking Tour of (almost) all of Springdom
A Walking Tour of (almost) all of Springdom A Walking Tour of (almost) all of Springdom
A Walking Tour of (almost) all of Springdom
Joshua Long
 
Using Puppet - Real World Configuration Management
Using Puppet - Real World Configuration ManagementUsing Puppet - Real World Configuration Management
Using Puppet - Real World Configuration Management
James Turnbull
 

What's hot (20)

Scaling and Embracing Failure: Clustering Docker with Mesos
Scaling and Embracing Failure: Clustering Docker with MesosScaling and Embracing Failure: Clustering Docker with Mesos
Scaling and Embracing Failure: Clustering Docker with Mesos
 
Sdc 2012-how-can-hypervisors-leverage-advanced-storage-features-v7.6(20-9-2012)
Sdc 2012-how-can-hypervisors-leverage-advanced-storage-features-v7.6(20-9-2012)Sdc 2012-how-can-hypervisors-leverage-advanced-storage-features-v7.6(20-9-2012)
Sdc 2012-how-can-hypervisors-leverage-advanced-storage-features-v7.6(20-9-2012)
 
OSGi Cloud Ecosystems
OSGi Cloud EcosystemsOSGi Cloud Ecosystems
OSGi Cloud Ecosystems
 
Использование maven для сборки больших модульных c++ проектов на примере Odin...
Использование maven для сборки больших модульных c++ проектов на примере Odin...Использование maven для сборки больших модульных c++ проектов на примере Odin...
Использование maven для сборки больших модульных c++ проектов на примере Odin...
 
Grizzly Comet Aquarium Paris
Grizzly Comet Aquarium ParisGrizzly Comet Aquarium Paris
Grizzly Comet Aquarium Paris
 
Juggling Java EE with Enterprise Apache Maven
Juggling Java EE with Enterprise Apache MavenJuggling Java EE with Enterprise Apache Maven
Juggling Java EE with Enterprise Apache Maven
 
Kubernetes #4 volume & stateful set
Kubernetes #4   volume & stateful setKubernetes #4   volume & stateful set
Kubernetes #4 volume & stateful set
 
VMware Advance Troubleshooting Workshop - Day 5
VMware Advance Troubleshooting Workshop - Day 5VMware Advance Troubleshooting Workshop - Day 5
VMware Advance Troubleshooting Workshop - Day 5
 
WebLogic Scripting Tool Overview
WebLogic Scripting Tool OverviewWebLogic Scripting Tool Overview
WebLogic Scripting Tool Overview
 
Java Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
Java Tech & Tools | Grails in the Java Enterprise | Peter LedbrookJava Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
Java Tech & Tools | Grails in the Java Enterprise | Peter Ledbrook
 
E2EVC SCVMM-Mania
E2EVC SCVMM-ManiaE2EVC SCVMM-Mania
E2EVC SCVMM-Mania
 
Spring Boot Revisited with KoFu and JaFu
Spring Boot Revisited with KoFu and JaFuSpring Boot Revisited with KoFu and JaFu
Spring Boot Revisited with KoFu and JaFu
 
Vsphere esxi-vcenter-server-55-troubleshooting-guide
Vsphere esxi-vcenter-server-55-troubleshooting-guideVsphere esxi-vcenter-server-55-troubleshooting-guide
Vsphere esxi-vcenter-server-55-troubleshooting-guide
 
a Running Tour of Cloud Foundry
a Running Tour of Cloud Foundrya Running Tour of Cloud Foundry
a Running Tour of Cloud Foundry
 
Rearchitecting Storage for Server Virtualization
Rearchitecting Storage for Server VirtualizationRearchitecting Storage for Server Virtualization
Rearchitecting Storage for Server Virtualization
 
EWD 3 Training Course Part 16: QEWD Services
EWD 3 Training Course Part 16: QEWD ServicesEWD 3 Training Course Part 16: QEWD Services
EWD 3 Training Course Part 16: QEWD Services
 
Dwr
DwrDwr
Dwr
 
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla1512 Things About WebLogic 12.1.3 #oow2014 #otnla15
12 Things About WebLogic 12.1.3 #oow2014 #otnla15
 
A Walking Tour of (almost) all of Springdom
A Walking Tour of (almost) all of Springdom A Walking Tour of (almost) all of Springdom
A Walking Tour of (almost) all of Springdom
 
Using Puppet - Real World Configuration Management
Using Puppet - Real World Configuration ManagementUsing Puppet - Real World Configuration Management
Using Puppet - Real World Configuration Management
 

Similar to Apache CloudStack's Plugin Model: Balancing the Cathedral with a Bazaar

System Software, IBM Power Event
System Software, IBM Power EventSystem Software, IBM Power Event
System Software, IBM Power Event
IBM Danmark
 
2012 CloudStack Design Camp in Taiwan--- CloudStack Overview-2
2012 CloudStack Design Camp in Taiwan--- CloudStack Overview-22012 CloudStack Design Camp in Taiwan--- CloudStack Overview-2
2012 CloudStack Design Camp in Taiwan--- CloudStack Overview-2
tcloudcomputing-tw
 
Management server internals
Management server internalsManagement server internals
Virtual Security in Cloud Networks
Virtual Security in Cloud NetworksVirtual Security in Cloud Networks
Virtual Security in Cloud Networks
Marcelo Grebois
 
Private Cloud Day Session 1: Building your Private Cloud Infrastructure
Private Cloud Day Session 1: Building your Private Cloud InfrastructurePrivate Cloud Day Session 1: Building your Private Cloud Infrastructure
Private Cloud Day Session 1: Building your Private Cloud Infrastructure
Microsoft TechNet - Belgium and Luxembourg
 
Apache CloudStack AlpesJUG
Apache CloudStack AlpesJUGApache CloudStack AlpesJUG
Apache CloudStack AlpesJUG
Sebastien Goasguen
 
eG Enterprise Suite
eG Enterprise SuiteeG Enterprise Suite
eG Enterprise Suite
Paul Bird
 
CloudStack for Java User Group
CloudStack for Java User GroupCloudStack for Java User Group
CloudStack for Java User Group
Sebastien Goasguen
 
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
mfrancis
 
Orchestration & provisioning
Orchestration & provisioningOrchestration & provisioning
Orchestration & provisioning
buildacloud
 
Reference architecture for community clouds
Reference architecture for community cloudsReference architecture for community clouds
Reference architecture for community clouds
Jonathan Spindel
 
Operating the Hyperscale Cloud
Operating the Hyperscale CloudOperating the Hyperscale Cloud
Operating the Hyperscale Cloud
Open Stack
 
VMUG ISRAEL November 2012, EMC session by Itzik Reich
VMUG ISRAEL November 2012, EMC session by Itzik ReichVMUG ISRAEL November 2012, EMC session by Itzik Reich
VMUG ISRAEL November 2012, EMC session by Itzik Reich
Itzik Reich
 
DevOps як System Administration 2.0
DevOps як System Administration 2.0DevOps як System Administration 2.0
DevOps як System Administration 2.0
SoftServe
 
JMX Tutorial
JMX TutorialJMX Tutorial
JMX Tutorial
satishdotlinkedin
 
Presentation resource manager���utility package for st9990 and st9985 storage...
Presentation   resource manager™utility package for st9990 and st9985 storage...Presentation   resource manager™utility package for st9990 and st9985 storage...
Presentation resource manager™utility package for st9990 and st9985 storage...
xKinAnx
 
Intro to Cloudstack
Intro to CloudstackIntro to Cloudstack
Intro to Cloudstack
Sebastien Goasguen
 
Hyper-V VMM ile Cloud computing
Hyper-V VMM ile Cloud computingHyper-V VMM ile Cloud computing
Hyper-V VMM ile Cloud computing
Ahmet Mutlu
 
David Booth R D F & S O A
David  Booth    R D F &  S O ADavid  Booth    R D F &  S O A
David Booth R D F & S O A
SOA Symposium
 
Private Cloud Day Session 2: Creating & Configure your Private Cloud
Private Cloud Day Session 2: Creating & Configure your Private CloudPrivate Cloud Day Session 2: Creating & Configure your Private Cloud
Private Cloud Day Session 2: Creating & Configure your Private Cloud
Microsoft TechNet - Belgium and Luxembourg
 

Similar to Apache CloudStack's Plugin Model: Balancing the Cathedral with a Bazaar (20)

System Software, IBM Power Event
System Software, IBM Power EventSystem Software, IBM Power Event
System Software, IBM Power Event
 
2012 CloudStack Design Camp in Taiwan--- CloudStack Overview-2
2012 CloudStack Design Camp in Taiwan--- CloudStack Overview-22012 CloudStack Design Camp in Taiwan--- CloudStack Overview-2
2012 CloudStack Design Camp in Taiwan--- CloudStack Overview-2
 
Management server internals
Management server internalsManagement server internals
Management server internals
 
Virtual Security in Cloud Networks
Virtual Security in Cloud NetworksVirtual Security in Cloud Networks
Virtual Security in Cloud Networks
 
Private Cloud Day Session 1: Building your Private Cloud Infrastructure
Private Cloud Day Session 1: Building your Private Cloud InfrastructurePrivate Cloud Day Session 1: Building your Private Cloud Infrastructure
Private Cloud Day Session 1: Building your Private Cloud Infrastructure
 
Apache CloudStack AlpesJUG
Apache CloudStack AlpesJUGApache CloudStack AlpesJUG
Apache CloudStack AlpesJUG
 
eG Enterprise Suite
eG Enterprise SuiteeG Enterprise Suite
eG Enterprise Suite
 
CloudStack for Java User Group
CloudStack for Java User GroupCloudStack for Java User Group
CloudStack for Java User Group
 
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
Balconies, Patios, Terraces, and Bridges. Architectural approaches for moving...
 
Orchestration & provisioning
Orchestration & provisioningOrchestration & provisioning
Orchestration & provisioning
 
Reference architecture for community clouds
Reference architecture for community cloudsReference architecture for community clouds
Reference architecture for community clouds
 
Operating the Hyperscale Cloud
Operating the Hyperscale CloudOperating the Hyperscale Cloud
Operating the Hyperscale Cloud
 
VMUG ISRAEL November 2012, EMC session by Itzik Reich
VMUG ISRAEL November 2012, EMC session by Itzik ReichVMUG ISRAEL November 2012, EMC session by Itzik Reich
VMUG ISRAEL November 2012, EMC session by Itzik Reich
 
DevOps як System Administration 2.0
DevOps як System Administration 2.0DevOps як System Administration 2.0
DevOps як System Administration 2.0
 
JMX Tutorial
JMX TutorialJMX Tutorial
JMX Tutorial
 
Presentation resource manager™utility package for st9990 and st9985 storage...
Presentation   resource manager™utility package for st9990 and st9985 storage...Presentation   resource manager™utility package for st9990 and st9985 storage...
Presentation resource manager™utility package for st9990 and st9985 storage...
 
Intro to Cloudstack
Intro to CloudstackIntro to Cloudstack
Intro to Cloudstack
 
Hyper-V VMM ile Cloud computing
Hyper-V VMM ile Cloud computingHyper-V VMM ile Cloud computing
Hyper-V VMM ile Cloud computing
 
David Booth R D F & S O A
David  Booth    R D F &  S O ADavid  Booth    R D F &  S O A
David Booth R D F & S O A
 
Private Cloud Day Session 2: Creating & Configure your Private Cloud
Private Cloud Day Session 2: Creating & Configure your Private CloudPrivate Cloud Day Session 2: Creating & Configure your Private Cloud
Private Cloud Day Session 2: Creating & Configure your Private Cloud
 

Apache CloudStack's Plugin Model: Balancing the Cathedral with a Bazaar

  • 1. Apache CloudStack's Plugin Model: Balancing the Cathedral with a Bazaar Adding Hyper-V Support donal.lafferty@citix.com Feb 26th, 2012
  • 3. The Call For Submissions sets the context • “Open Source Community Leadership Drives Enterprise-Grade Innovation” ᵒCloudStack‟s plugin model permits enterprise-grade adaptions • “Apache initiatives play a key role in powering today's Cloud” ᵒPlugin model allows cloud to adapt to compute loads (not the other way around) • “particular focus on those [talks] demonstrating real-world experience of solving specific problems.” ᵒCase study of adding Hyper-V support as a newcomer
  • 4. Innovators Need the System to be Disaggregated CloudStack WebServices API OAM&P API End User API AWS API Pluggable Service API Engine Business Logic Provisioning Resource Capacity Accounts Mgr Update Mgr Rules Mgr Mgr Mgr HA Security Mgr Events Manager Adapters XenServer Orchestration VMWare Usage Manager OVM KVM Network Guru Template Mgr Network Mgr VM Manager Storage Mgr Domain Manager Snapshot Manager Network Element Deployment Account Mgr Planner Limits Manager Hypervisor Guru Framework Agent Manager Cluster Manager Data Access Layer
  • 6. Disaggregation Started with Hardware Management CloudStack Orchestration Adapters CloudStack Provisioning Plugins Network Guru Snapshot Manager Template Manager Network Manager Storage Manager VM Manager XenServer HypervisorGuru VMWare OVM KVM Etc… Framework Agent Manager Cluster Manager Data Access Layer
  • 7. Understand that the Plugin serves two masters • Server Component: Rest API ᵒJava ᵒAdapter APIs Plugin API Implementation ᵒDAO ᵒRESTful API Data Access Layer • ServerResource: ServerResource - Optional. Required if Plugin needs to be co- ᵒAgent Proxy, e.g. KVM located with the resource • „Message Bus‟ of JSON over TCP - Implements translation layer to talk to resource - Communicates with server component via JSON ᵒDirect connect, e.g. XenServer
  • 8. That’s the theory… … is it achievable?
  • 9. Follow the process for new features • https://cwiki.apache.org/confluence/display/CLOUDSTACK/Adding+new+features+and+design+documents • Announce over mailing list - Attempt to get consensus: awareness & acceptance • Publish Functional Spec & Design • JIRA ticket for feature • Setup a Dev Environment • Branch on github, use your own (public) branch • Submit changes to Review Board - post-review for large packages of changes. • Decide on the wiki you want • Incubator wiki cleaner, simpler view - http://incubator.apache.org/cloudstack/develop/developer-faq.html • CloudStack wiki for in depth development - https://cwiki.apache.org/confluence/display/CLOUDSTACK/Home • Avoid the pre-Apache wiki (http://wiki.cloudstack.org/dashboard.action)
  • 10. Simpler Steps Make it Easier to Learn CloudStack CloudStack Manager CloudStack Manager Hyper-V Types Hyper-V Types Phase 1: Phase 2: Plugin Server Component Plugin Server Component Proxy ServerResource ServerResource Message Bus WS-Management Connected Agent WMI (or PowerShell) WMI Hyper-V Server 2012 Hyper-V Server 2012 XenServer Cluster Hyper-V based (System VMs) System VMs
  • 11. Reuse and repurpose rather than rewrite Phase 1 Remote WMI via Python Agent Server Resource (KVM) Agent Message Bus AgentShell O/S
  • 12. ServerResource commands are easier to log and replay public interface HypervisorResource extends ServerResource { StartAnswer execute(StartCommand cmd); StopAnswer execute(StopCommand cmd); RebootAnswer execute(RebootCommand cmd); } @Test public void TestCreateCommand() { String sample = "{"volId":10,"pool":{"id":201,"uuid":""+testLocalStoreUUID+"","h ","path":"+testLocalStorePathJSON+","port":0,"type":"Filesystem"},"diskCharact ""tags":[],"type":"ROOT","name":"ROOT-9","useLocalStorage":true,"recreatab ""volumeId":10,"hyperType":"Hyperv"},"templateUrl":"+testSampleTemplateURLJ …
  • 13. CloudStack is evolving, it may fix your problem • Storage disaggregated • SystemVM creation broadened & simplified XenServer Cluster Hyper-V based (System VMs) System VMs
  • 14. Make advance preparations for IP clearance # Copyright (c) 2010 Cloud.com, Inc # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. • http://www.apache.org/licenses/ ᵒhttp://www.apache.org/legal/src-headers.html ᵒhttp://apache.org/licenses/LICENSE-2.0.html#apply
  • 15. Bonus Tips – Read at your leisure • SystemVMs have logs ᵒConnect form hypervisor console, user:root, password: 6m1ll10n. • Avoids SSH over 3392 with management server RSA keys • Import Maven projects into Eclipse using m2e • Maven debuggable task paused waiting for Eclipse to attach: export MAVEN_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE - Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y - See http://www.mojavelinux.com/blog/archives/2007/03/remote_debugging_with_jetty/ • Expand Log4j logging ᵒChange Threshold from INFO to TRACE • :%s/INFO/TRACE/g
  • 16. Summary • Innovators Need the System to be Disaggregated • Disaggregation Started with Hardware Management • Understand that the Plugin serves two masters • Follow the process for new features • Simpler Steps Make it Easier to Learn CloudStack • Repurpose rather than rewrite • ServerResource commands are easier to log and replay • Keep an eye out for evolving solutions • Make advance preparations for IP clearance
  • 17. “It is not the strongest of the species that survives, nor the most intelligent that survives. It is the one that is the most adaptable to change.” – Charles Darwin 17
  • 18. References • Theory behind plugins http://www.youtube.com/watch?v=FMM-YgK1jmg • Disaggregating CloudStack ᵒhttp://www.slideshare.net/buildacloud/cloudstack-collaboration-conference-12- refactoring-cloud-stack ᵒhttp://www.youtube.com/watch?v=iGk3s68Meh0 • Hyper-V Plugin Wiki ᵒhttps://cwiki.apache.org/CLOUDSTACK/hyper-v-2012-30-support.html