Building blocks: spring, managed-context, api, component-api
Manager, ManagerBase Adapter, AdapterBase ComponentLifecycle, ComponentLifecycleBase, ComponentContext
Deployment descriptor: WEB-INF/web.xml
The web.xml
has:
- Servlets (CloudStartupServlet, ApiServlet, ConsoleProxyServlet)
- Configuration (classpath:log4j-cloud.xml)
- Listeners (CloudStackContextLoaderListener)
- Mappings or filters (what url for what servlet)
- Error pages
- Security constraints
The CloudStartupServlet's init() runs
ComponentContext.initComponentsLifeCycle()
that kickstart the management
server module/component loading, registration, configuration and start.
(Related: see how usage server starts in UsageServer.java
)
The framework/spring/module
implements a spring based module framework
that discovers and constructs the hierarchy of CloudStack module based on the
module.properties file (defined in most CloudStack maven projects). It is
initialized via the CloudStackContextLoaderListener
.
https://cwiki.apache.org/confluence/display/CLOUDSTACK/Putting+CloudStack+together
AsyncJobManager
Cluster and Agent framework CloudStack clustering, agent LB etc. Agent/Cluster manager
Packer, build etc. (note: systemvm.iso has been deprecated with 4.17 onwards) https://cwiki.apache.org/confluence/display/CLOUDSTACK/SystemVm.iso
How it builds, programs etc. VR python codebase
- API framework:
- API handling and execution: ApiServlet, ApiServer/ApiServerService, DispatchWorker, DispatchTask, ApiResponseSerializer
- API jobs execution: ApiDispatcher, ApiAsyncJobDispatcher
- API security: APIAuthenticationManager, APIAuthenticator, UserAuthenticator, APIChecker
- Misc: CallContext, LogContext, ManagedContext, ManagedThreadLocal
- DB framework: GenericDao, GenericDaoBase, TransactionCallback, TransactionLegacy, StateMachine, GenericQueryBuilder, GenericSearchBuilder, Filter, EntityManagerImpl
- CA framework: CAProvider, RootCAProvider, Link, TLS v1.2, TLS v1.3
- Orchestration engine:
- Agent related: AgentAttache, ConnectedAgentAttache, DirectAgentAttache, ClusteredAgentAttache, ClusteredDirectAgentAttache, AgentManagerImpl, ClusteredAgentManagerImpl
- Cluster related: ClusterBasedAgentLoadBalancerPlanner, ClusteredAgentRebalanceService
- VM related: ClusteredVirtualMachineManagerImpl, VirtualMachineManagerImpl, VirtualMachinePowerStateSyncImpl, VmWork (cloud-engine-components-api)
- Misc Plugin Development:
- Host and Storage pool allocator plugin: http://docs.cloudstack.apache.org/en/latest/developersguide/alloc.html
- Storage plugin: http://docs.cloudstack.apache.org/en/latest/developersguide/plugins.html#storage-plugins
- Misc videos:
- State of Cloud https://www.youtube.com/watch?v=RJMSUDTl6Ds
- Scalability in CloudStack https://www.youtube.com/watch?v=JqktvtVKnX8 (first half)
- Misc reading:
Misc links:
- https://cwiki.apache.org/confluence/display/CLOUDSTACK/201+-+Orchestration+and+Plugins
- https://cwiki.apache.org/confluence/display/CLOUDSTACK/Alex%27s+Architecture+Notes
- https://cwiki.apache.org/confluence/display/CLOUDSTACK/VM+Deployment+Planning+and+Resource+Allocation
- https://cwiki.apache.org/confluence/display/CLOUDSTACK/High+Availability+Developer%27s+Guide