SlideShare ist ein Scribd-Unternehmen logo
1 von 18
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
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?
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
…
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
“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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 
Rearchitecting Storage for Server Virtualization
Rearchitecting Storage for Server VirtualizationRearchitecting Storage for Server Virtualization
Rearchitecting Storage for Server Virtualization
Stephen Foskett
 
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
 

Was ist angesagt? (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
 

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

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
 
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
 
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
 

Ähnlich wie 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