View
1.940
Download
4
Tags:
Embed Size (px)
DESCRIPTION
By Alex Huang Architect, Cloud Platforms Group, Citrix Systems Inc.
Citation preview
Alex Huang Architect November 10, 2012
• Have always recognized that innovation in Cloud IaaS will not be from only Citrix
• Software built on top of adaptors written by third-party
• Well defined control and data paths
• Server Resource can be delivered to remote data centers to be co-located with the resource that it controls
• VM images can be downloaded to data center and started/stopped to support operations within remote data centers
2
• DeploymentPlanner – Algorithms and heuristics to select pod, cluster, hosts to deploy VMs and storage pools to create VM on
• NetworkElement – Third-party implementation of physical network elements to support a VM deployed in a network
• ServerResource – API translation layer
• PluggableService – Additional APIs introduced by third party vendors to configure their own services
• Discoverer – Third-party specified code to introduce new ServerResource to CloudStack
• NetworkGuru – Different ways to do ip address allocation
• PluggableService that defines APIs to configure the plug-in
• ServerResource extension that is meant to be run co-located with the resource (no DB access)
• Manager code that runs within the management server with access to management database
• Implement Adaptor interfaces to implement functionalities required by CloudStack
• Change components.xml to make the plug-in and adaptors active
• Operations are atomic
• Operations are idempotent
• Do not modify CloudStack database tables
• Well-defined interfaces that third-party implements are configurable through components.xml
• Components specification can inherit from and extend the default specification
• CloudStack assembles the components according to the xml at startup time
• CloudStack assembles the list of APIs it supports according to the PlugableService specified in the xml
<management-server class="com.cloud.server.ManagementServerImpl"
library="com.cloud.configuration.DefaultComponentLibrary">
<adapters key="com.cloud.network.element.NetworkElement">
<adapter name="DomainRouter" class="com.cloud.network.element.VirtualRouterElement"/>
<adapter name="Ovs" class="com.cloud.network.element.OvsElement"/>
<adapter name="ElasticLoadBalancer" class="com.cloud.network.element.ElasticLoadBalancerElement"/>
</adapters>
<pluggableservice name="VirtualRouterElementService"
key="com.cloud.network.element.VirtualRouterElementService"
class="com.cloud.network.element.VirtualRouterElement"/>
</management-server>
• Defines three different NetworkElement adaptors, one of which is VirtualRouterElement
• Defines a PluggableService for the VirtualRouterElement so that it can be configured using its own APIs
• Defines the capabilities of the NetworkElement, which is used by CloudStack to determine if certain operations can be done
• Defines the call CloudStack makes when a VM is provisioned on the network
• Defines the call CloudStack makes when a VM leaves the network
• Defines the call CloudStack makes when a network changes its state
public interface PluggableService {
/**
* The config file name that lists API commands supported by this pluggable service
*/
String getPropertiesFile();
}
Properties File define over-the-wire method name to Java class mapping
createAccount=com.cloud.api.commands.CreateAccountCmd
• NetscalerResource – Translation layer from CloudStack LoadBalancing Commands to NetScaler API. Can be co-located with NetScaler deployment.
• ExternalLoadBalancerDeviceManagerImpl – Server side implementation that have access to DB.
• NetscalerExternalLoadBalancerElement – NetworkElement implementation that hooks the ExternalLoadBalancerDeviceManagerImpl code to the CloudStack core.
• NetscalerNetworkElementService – PluggableService implementation that adds Netscaler specific configuration API.
• Provide third-party software to present end user API
• Provide multi-tenancy support in end user facing API
• Provide third-party software to present end user facing UI
• Provide third-party software the ability to upgrade database schema independent of CloudStack
• Provide dynamic loading of third-party software without restart of management server
12
Q&A