Introduction
- Stratos2.0可以实现private和public cloud
- 集成了具备多租户模式的服务组件-比如有:WSO2-ApplicationServer、WSO2-ESB
- 把非云服务的组件接入到云平台。比如:PHP和Jetty,但是只能单组户运行。
cartridge是一个组件,可以以插件的模式接入到stratos里面运行。比便这个组件可以运行stratos的核心的服务,比如有:自动扩展auto scaling、负载均衡load balance、健康监控health monitoring、计费计量metering biling、租户服务证书提供tenant provisioning、代码部署code deploy、认证管理identity management、授权服务entitlement
cartidge可以打包wrap一些传统的、非cloud-aware-application platform container成具备PaaS云服务的(elastic sacablity,resource pooling,on-demand self-service和computing pricing);比如已经建立的有PHP和MySQL的cartridge
Stratos的cartidge可以穿件任何cartidge的type和托管任何应用、容器、框架在stratos cloud。比如有weblogic 、websphere application server、websphere application esb、JBOSS SOA 平台。
Stratos 2. 0 Foundation
1.Elastic Load Balancer(ELB)
load monitor是和ELB一起启动(co-located with ELB to start);接受receives load events from various places比如说ELB;发送请求负载负载消息给Cloud Controler;做出自动弹性扩展的决定Make autoscaling decisions;接受动态集群域名注册Accept dynamic cluster domain registrations;通过读取loadbalancer.cnf配置文件来设置静态集群域名的注册。
Artifact Distribution Coordinator(ADC)
artifact distribution coordinator组件分配协调器:ADC的职能就是分发组件;artifact的上传可以通过git push;ADC有一个监听的服务。Stratos2.0可以通过gitblit上面的脚本,自动把git上来的应用程序git push通过给ADC的监听服务。也就是说当artitact通过git push上传到gitblit的时候,就会通过groovy脚本notify给ADC的监听服务。
1:首先用户PUSH一个artfact到gitrepository;
2:git repository 比如只自己建立的gitblit,可以把消息发给ADC的服务进程。
3:ADC通过查找lookup函数查找topology;并且返回topology所在的位置;通过SSH发送消息给IaaS的cartidge
4:cartidge就可以根据获取的位置,通过git pull获取响应的artifact。
这个过程就叫做artifact 分发协同器。
Cloud Controller
cloud contrller在stratos2.0中是一个重要的角色。一般也叫做CC。其主要功能如下:
1:扮演桥梁角色,主要在应用程序和IaaS层之间
2:满足应用程序的扩展通过多个IaaS的提供方。
3:
CC常用的API如下:
1:public registerService:主要作用是注册一个新提供的服务集群。可以覆盖已经存在的服务集群。主要参数如下:主域名domain、子域名sub-domain、租户ID范围tenant range id、cartridgeType 注册新服务的cartidge的类型(这个cartidge肯定一个已经存在的类型)、hostname注册服务实例的主机名、payload付款的标签。
返回的参数是:这个服务注册是否成功。抛出的异常有:cartidge type不存在、
2:String startInstance:启动刚刚新创建的服务;入参是:主域名和子域名;返回参数是,提供服务的IP
3:boolean terminateInstance
4:public string[] getRegisteredCartridges:
2:cloud controller deployer:这主要是