上图就是Apache Stratos 4.1.x的架构图。
          在Apache Stratos的最下层是IaaS层。在使用虚拟机的场景下,Stratos使用jcloud用来与底层的IaaS来通信。因此,Stratos支持任何与jcloud相兼容的IaaS,比如EC2,OpenStatck,CloudStatck,Google cloud等。另外,Stratos使用Google Kubernetes和CoreOS来集成Docker。Stratos还提供了Mock IaaS模块,简单来说就是模拟的Iaas服务,想尝试apache stratos的开发者可以接近零成本的来尝试apache states。这里可以看我的这两篇文章:
          Stratos利用Cloud Controller与IaaS进行通信,比如Cloud Controller发送消息让IaaS新建或者销毁实例,实例也可以发送消息让Cloud Controller定期更新路由拓扑结构。
          Stratos的核心模块包括:Stratos Manager, Auto-scaler, REST API/CLI/Web UI, Artifact Distribution Coordinator (ADC) 和 Complex Event Processor (CEP)。下面分别简单介绍这些核心模块
Stratos Manager
     提供用户与Stratos交互的功能。并且提供了易理解的RESTful风格的API,可以与其他的PaaS管理模块结合起来使用。
Autoscaler
     负责整个系统各个模块的资源分配情况,基于当前系统的负载情况和部署规则、自动伸缩规则等规则来分配资源情况。内部含有一个rule engine来进行快速精准的决策。
REST API/CLI/Web UI
     简单的说就是提供用户的各种与stratos打交道的途径,包括RESful API,CLI,Web等形式。
Artifact Distribution Coordinator (ADC)
     Artifacts是应用程序的一部分,被部署在相应的实例中。ADC负责这些artifact的分发,它利用Instance Notifier来通知实例有新的artifact。
Complex Event Processor (CEP)
     基于健康状况的数据提供实时监测功能。CEP对发向它的事件流数据进行实时性的查询分析,之后发送报告给Auto-scaler.目前,Stratos利用WSO2 CEP,其实支持任意任性的CEP。
Message Broker
     以松耦合的方式来管理各个模块之间的消息通信。目前,Stratos使用的是Apache ActiveMQ作为Message Broker,不过Stratos支持任意的AMQP的Message Broker.
     HAProxy负责非http的流量,Apache Stratos LB负责http的流量。Cloud Controller 定期通过拓扑更新消息来更新Loader Balancer(LB)。LB基于其配置情况来路由数据流量,然后将状态事件直接发送到实时的事件处理器中。
     Stratos拥有一系列的核心服务,例如认证服务,日志服务,监控/计量服务。
认证服务(identity service)
     Stratos利用认证服务来处理身份,角色和用户权限的认证工作。
日志服务(logging service)
     Stratos利用可选的日志服务来监控所有与实例有关的日志消息。
监控/计量服务(monitoring/metering service)
     打开该服务后,Stratos将发送有用的消息到远端的监控/计量服务器。
    在Stratos的最上层是cartridge层。一个cartridge是一个Stratos的运行时实体。
    Stratos支持四种类型的cartidge:数据、框架、应用和负载均衡器。
    可以在Stratos中自定义新的cartridge,或者将遗留系统作为一 cartridge嵌入到PaaS中。Cartridge agent也是嵌入到cartridge中的。在每一个已经启动起来的实例中的cartridge可以发发送各种各样的事件给Message Bus和实时事件流中。 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐