I created a wiki page for architecture proposals and discussion topics.

http://wiki.cloudstack.org/display/DesignDocs/CloudStack+Javelin


Kelven

On 8/14/12 11:04 PM, "Kelven Yang" <kelven.y...@citrix.com> wrote:

>I know everyone is recently busy and excited for the first Apache release
>of CloudStack, hopefully we still have some bandwidth for discussions
>about architecture fine-tunes, here is one for discussion.
>
>Conceptually, current CloudStack works very much like an JaveEE
>application server container, given the scale of all our current cloud
>deployments with CloudStack, I think CloudStack has done a great job.
>
>Running as an application server container, it brings us a lot of benefits
>like easy to deploy, efficient resource utilization, etc, but in the mean
>time, as modules inside a container are too easy to be involved tightly,
>over time, as we add more and more features, the complexity of overall
>system increases dramatically. Moving forward, it makes a lot of sense to
>reshape CloudStack from a module container to be a component oriented
>distributed platform.
>
>Component
>Component is an independent deployment unit in a distributed
>environment(i.e., CloudStack), it usually runs as a separated process, can
>be independently scaled and has independent communication endpoint. It
>should have simple bindings to the distributed environment instead of
>requiring a complex container, to communicate with other components in the
>system, it should use bi-directional principal for loose-coupling and
>service-oriented, which is, using light-weight messaging event
>notification in one direction and service-oriented interaction at another
>direction.
>
>Module
>Module is a logic software unit that encapsulates software functions with
>well defined programming interface, a component contains one or more
>software modules
>
>Component Service
>Software service that is provided at component level, usually in shape of
>web service or REST-ful service
>
>Messaging
>A process for components to notify each other by exchanging messaging
>events
>
>Messaging event
>A package of information that is uni-casted or broadcasted to the
>destination component(s)
>
>Service discovery
>A process for component to discover services and endpoint bindings within
>the environment, it could be either through a directory service provided
>at infrastructure level or through auto-discovery
>
>Under component oriented principal, at high level CloudStack core can be
>fine-tuned to a number of (not limited to) components
>
>API component
>Implements CloudStack API, it also initiates logic orchestration flows
>(i.e., deploy a VM) which will be notified and picked up in Orchestration
>engine component
>
>Orchestration Engine component
>This components is the heart to drive all async-flows currently active in
>the system, it orchestrates high-level flow through messaging among
>networking/storage/compute components.
>
>Data service component
>This components provides the data service for objects within the Cloud.
>
>Networking component
>A component to implement networking provisioning
>
>Storage Component
>A component to implement storage provisioning
>
>Compute Component
>A component to implement hypervisor VM provisioning
>
>Fabric Monitoring Component
>A component dedicated for monitoring on fabric resources, for example,
>monitoring of hypervisor host status
> 
>Fabric Admin Component
>A component that implements fabric resource administration.
>
>Service Framework Component (module?)
>A component(or a module inside Orchestration Engine?) to provide service
>to launch component service in a VM and auto-scale the component service.
>
>At middleware level, we will need a messaging event delivery platform and
>middleware level synchronization system, possible candidates could be
>Redis and Apache ZooKeeper.
>
>
>Kelven
>

Reply via email to