Apache StratOS 部分功能介绍

功能

组合应用

Stratos能够根据需要启动和停止实例(单租户),在Stratos术语中称为订阅和退订。订阅将会启动最小数量实例的集群,退订将停止那些实例。在订阅之前,需要定义和部署相关的cartridge,使得Stratos了解你要提供服务的细节和所要使用的IaaS等相关信息。

在Stratos以前的发布版本中,每个订阅所启动的集群是相互隔离的,在多个集群之间没有连接。然而,在现实世界中,存在着群组方式的多集群需求,其中一个或多个集群依赖于其他集群。因此,在本版本中引入了组合应用。

组合应用支持cartridge群组。通过cartridge群组,提供了部署含不同服务运行时应用的能力,这些服务运行时有相互关系或依赖关系。更进一步,应用中的每个服务运行时可以关联伸缩或者有依赖关系的服务组合共同伸缩。因此,用户可以在JSON文件中定义所需要的服务运行时、部署和自动伸缩策略、构件库和所有的依赖关系,这样Stratos可以根据定义提供所需要的运行时。

组合应用 = 多群集配置信息 +依赖关系配置信息

组合应用相关的术语,如:群组、依赖关系、启动顺序、群组伸缩,依赖组合伸缩,停止处理和元数据服务将在后续章节中进行深入描述。

Cartridge群组

Cartridge群组是一个描述将多个cartridge组合到一起的定义元数据。Stratos的组合应用支持群组的嵌套,也就是一个群组作为另一个群组成员。Cartridge群组定义了一组群组和一组cartridge之间的相互关系。群组成员的关系可以是启动顺序、停止处理和可伸缩的依赖关系。编写一个群组定义提供了在不同组合应用中重用群组的能力。

启动顺序

在一个群组或一个应用中,如果有二个或更多的独立cartridge或群组,你可以定义它们的启动顺序。

停止处理

停止处理允许你定义在应用中某些附属的运行时失败的情况下所采取的行动。当不能满足所需最小实例数量时触发失败处理。Stratos支持以下三种停止处理操作。

·        停止所有实例

·        停止所依赖的实例

·        不动作

关联伸缩

在成员间(cartridge 或群组)定义了关联伸缩后,当其中某些成员发生了伸缩(扩张或收缩)时,所有其他关联的成员也会进行相应的伸缩来维持预先设定的比例。

群组伸缩

如果在群组定义中将“群组伸缩”设置为“是”,那么在某些情况下,群组自己将进行伸缩,同时受最大实例数限制和关联伸缩关系限制。

应用JSON

应用JSON是结构化的JSON,你可以定义应用所使用的运行时、cartridge、cartridge群组、依赖关系、构件库和自动伸缩策略。应用JSON可以转换成应用模板,可以在不同部署模式下重用来部署同样的应用。部署策略是定义部署模式的方法(如:高可用、灾备、云端负载均衡、混合云,达到4个9或5个9的可靠性)。

应用部署策略

Stratos中部署策略就是对所使用部署模式的定义。部署策略支持群组级别或集群级别的部署。全局部署策略是在一处定义了所有子模块(嵌套群组)的部署策略。因此,每个应用只需要一个部署策略,其中包括了所有子部署策略。这样做的好处如下:

同样的应用可以使用不同的部署策略来部署到高可用环境(HA)或者负载均衡环境。

这样确保在部署策略执行后才实际启动VM,而不是,在应用部署后就立即启动。

部署策略总是和应用结合在一起。

在集群级别或群组级别不需要定义多个部署策略。

分区定义细节也可以在部署策略中定义。

部署策略定义中用到的术语如下:

网络分区
    网络分区是在网络boud方式下定义的一个逻辑分区。因此,Stratos将用IaaS的区域(Region)来映射到网络分区。网络分区的缩写是: NP
    示例:
    NP1: EC2-US-WEST
    NP2: EC2-US-EAST
    NP3: OPENSTACK-NY-RegionOne

分区
    分区在网络分区下更细粒度的逻辑分组,分区的缩写是: P
    示例:
    NP1:P1 -> US-WEST -> us-west-1 (N. California)
    NP1:P2 -> US-WEST -> us-west-2 (Oregon)

应用策略
    应用策略包括了应用所使用到的所有网络分区和分区定义。

使用默认激活
    如果设置成“是”,网络分区将作为默认值。如果设置成“否”,网络分区将作为最低优先级别的设置。

子策略
    每个子策略都引用应用策略中的网络分区和相关分区来定义自己的部署模式。注意,如果你通过引用应用群组来定义子策略,那么子集群/群组(cartridge运行时)将继承相同的策略。

最大数量
    一个分区允许的最大实例数。
    在群组中: 表示在一个分区中允许的最大群组成员实例数。
    在集群中:表示在一个分区中可以为集群维持的最大集群成员数。

分区算法
    Stratos支持以下二种分区算法:循环法(round robin)和顺序法(One after another)。分区算法的选择依赖于使用的场景。

例如:图-04中所示,有二个子策略应用在cartridge运行时级别。

子策略: sample1
分区: P1, P2
P1 最大数量 : 4
P2 最大数量 : 3
分区算法: 循环法(Round robin)

子策略 : sample2
分区: P3, P4
P3最大数量: 2
P4最大数量: 3

分区算法: 顺序法(One after another)

元数据服务

组合应用包含一组cartridge,这样有许多cartridge实例需要启动,信息需要在这些cartridge之间共享。元数据服务是Stratos中的一个Web应用,负责在运行时服务间共享信息。元数据服务作为所有cartridge实例相关元数据集中放置区域,cartridge发布元数据给元数据服务,其他对其感兴趣的组件就可以从元数据服务获取其元数据。

在元数据服务中,元数据以键值对(key-value)方式存储,多个值可以关联到一个键上,每个键至少有一个对应的值。当创建了一个应用后,Stratos管理器将建立一个JW (JSON web token) OAuthtoken,其中含有应用的ID,这个token将传入cartridge运行时实例或容器中作为加载用的基础数据。Cartridge代理在和元数据服务交互时,使用这个token进行验证。

可以通过REST API增加、获取和删除元数据服务中的元数据。cartridge的所有实例都调用REST API来发布各自的信息到元数据服务,当在不同的cartridge实例间需要共享信息时,相关的cartridge实例通过调用REST API获取所需要的信息。

元数据客户端

元数据客户端用于第三方Stratos组件(如:云控制器、自动伸缩调度、Stratos管理器)和元数据服务的交互。当然,其他具有JW OAuth token的客户端(如:Cartridge代理)也可以直接和元数据服务交互,而不需要通过元数据客户端。元数据客户端是一个封装了请求和响应传递的Java API。这样,第三方Stratos组件可以通过元数据客户端来增加、获取和删除元数据服务中的元数据。例如:在云控制器中的一个Git资料库URL需要加到元数据表中时,就需要用到元数据客户端。

智能策略

ApacheStratos使用二个智能策略:自动伸缩策略和部署策略。Stratos使用自动伸缩策略和部署策略来调整系统的弹性。自动伸缩和部署策略主要用于平台即服务 (PaaS) 层的SLA,同时也有利于软件即服务 (SaaS) 层应用程序。例如,如果你想要获得五个 9 的可用性 (99.999%),你必须保持最小数量的实例并且将实例运行在不同的云供应商、 不同地区、 不同的区域等。如果在部署策略中进行了定义,可以满足上述要求。

下面小节详细说明这两种智能策略。

自动伸缩策略

自动伸缩策略是一项基于负载阈值来决定进行自动伸缩处理的策略。负载阈值将基于系统处理量、内存消耗和平均负载的要求来确定。自动伸缩器使用上述参数决定是扩张还是收缩。定义自动伸缩策略的JSON 文件的详细信息,请参阅自动伸缩策略资源定义章节。

部署策略

部署策略是一套cartridge部署时使用到的规则。部署策略描述了哪些云分区被服务所使用。单个应用可以有多个兼容的部署策略。每个部署策略定义了可用分区、网络分区,分区算法和每个分区允许的最大实例数。定义部署策略的JSON 文件的详细信息,请参阅部署策略资源定义章节。

时间: 2024-11-08 00:03:54

Apache StratOS 部分功能介绍的相关文章

1.Apache StratOS介绍

关于Apache Stratos ApacheStratos介绍 平台即服务(PaaS)是云计算的一种模式,通过PaaS给开发人员提供平台和环境,使得他们可以通过互联网进行应用开发和构建工作.Apache Stratos是源于Apache社区的PaaS框架,用于解决当前PaaS所面临的不同挑战.同时,也充当多种不同类型PaaS平台的基础,例如:Application PaaS(aPaaS).Integration PaaS(iPaaS)和Data PaaS(dPaaS). Stratos可以部署

Apache StratOS Cartridges 介绍及部署方式

Cartridge 简介 Cartridge是一个基于IaaS 的虚拟机 (VM),其中包含了和Stratos PaaS进行交互的组件.Stratos 提供了在OpenStack和Amazon EC2上开箱即用的PHP,MySQL和Tomcat等cartridge.此外,Strato支持任何可插拔的cartridge,包括以下几类︰数据.负载平衡器.应用框架和应用程序.Cartridg因操作系统 (OS) 和 IaaS 不同而不同,因此,你需要为每个OS 和 IaaS 创建自定义的Cartrid

Apache Commons 工具类介绍及简单使用

Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下面是我这几年做开发过程中自己用过的工具类做简单介绍.   组件 功能介绍 BeanUtils 提供了对于JavaBean进行各种操作,克隆对象,属性等等. Betwixt XML与Java对象之间相互转换. Codec 处理常用的编码方法的工具类包 例如DES.SHA1.MD5.Base64等. Collections java集合框架操作. Compress java提供文件打包 压缩类库. C

Apache Commons 工具集介绍

Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下面是我这几年做开发过程中自己用过的工具类做简单介绍. 组件 功能介绍 BeanUtils 提供了对于JavaBean进行各种操作,克隆对象,属性等等. Betwixt XML与Java对象之间相互转换. Codec 处理常用的编码方法的工具类包 例如DES.SHA1.MD5.Base64等. Collections java集合框架操作. Compress java提供文件打包 压缩类库. Con

Apache Stratos Mock架构及持久化存储卷的映射

Apache Stratos Mock IaaS 简介 Apache Stratos 支持许多基础设施作为服务 (IaaS) 的平台:EC2,OpenStack,vCloud,CloudStack,Docker等.然而,设立IaaS 或购买公共 IaaS 服务对于尝试Stratos来说是额外的开销.此外,设置本地 IaaS 需要大量的硬件资源和购买公有云上的IaaS账户所涉及的成本.这些对尝试Stratos带来了障碍 Stratos. 通过引入Docker/Kubernetes来支持Linux容

httpd协议及其功能介绍

一.http协议 1.http协议的版本: http/0.9: 诞生于1991,仅用于传输html文档,不能包含图片 http/1.0: 引入了MIME,支持多媒体数据的处理,keep-alive(保持连接),有缓存功能 http/1.1: 支持更多的请求方法,更精细的缓存控制,持久连接 http/1.0和http/1.1之所以能够传输多媒体数据,是因为引入了MIME MIME: Multipurpose Internet Mail Extension MIME引入了base64的编码机制,能够

【转】apache开源项目的介绍

Jakarta项目是ASF(The Apache Software Foundation)的一部分.ASF是一个非赢利组织,她鼓励基于开放的软件许可下进行合作.注重实效的开发,并提供各个领域的高质量软件,她涉及到Http服务器,编译工具,类库,开发架构,服务器端Java技术,J2EE容器,数据库工具,日志工具,XML解析等等诸多领域.ASF提供的java项目有一部分在Jakarta中,还有一些成为独立的诸如Tomcat的项目,Jakarta项目则提供了多种多样开源的java解决通用方案. 先介绍

Apache Shiro权限框架理论介绍

Apache Shiro权限管理框架介绍 Apache Shiro的官网地址如下: http://shiro.apache.org/ Apache Shiro是一个简单易用且强大而灵活的开源Java安全框架,以下简称Shiro.它干净利落地处理身份认证.授权以及企业会话管理和加密.Shiro拥有易于理解的API,你可以快速且容易地使用它来保护任何应用程序--从最小的移动应用程序到最大的web和企业应用程序. Shiro权限基础概念: 安全实体:就是被权限系统保护的对象,比如工资数据. 权限:就是

Apache StratOS 云分区

云分区 下面章节详细解释何为云分区: 分区 StratOS的分区可以映射为IaaS的一个逻辑分区.这个逻辑分区可以是以下级别中的一种:Provider级别.Region级别.Zone级别或者Rack级别.一个逻辑分区至少需要定义一个Provider.逻辑分区定义时也可指定区分组.DevOps用户为了实现高可用,可以定义复合区域,将资源实例创建到不同的区域,比如不同的region.zone或者rack.例如如果将资源实例创建到EC2的不同可用ZONE,这样在其中一个ZONE出现问题时部署的应用仍然