開發與維運

云上部署环境(基础设施)的正确姿势——使用资源编排ROS进行基础设施的部署

image.png

常见的部署问题

  1. 多环境部署。根据实际开发的需要,一般至少需要准备3个环境:日常测试环境,部署预发环境,部署生产环境。
  2. 多地域部署。对于云产品还需要支持多地域部署,部署北京地域,部署上海地域,部署杭州地域,……,部署美国,部署欧洲。截止到今天(2019-06-17),阿里公共云一共有19个地域,如果您的云产品需要AZ粒度的,那将是56个AZ。而这些数字还在快速增长。
  3. 不同环境之前经常出现偏差。某个环境的http端口是80,另一个环境却变成了8080。因为环境偏差出现的问题最难排查,因为你日常的开发测试环境和出现问题的环境不同,甚至你都无法在日常环境重现问题,最后不得不冒着巨大的风险直接在生产环境里面排查。
  4. 想用蓝绿部署(Blue/Green Deployment)却无从下手。蓝绿部署是业界一个常见的部署方式,有诸多优点。然而想使用蓝绿部署却缺乏有效的部署手段。

或者您还有更多的部署问题,这些问题的存在严重地影响了业务的开发和演进,提高了运维成本,打击了开发人员的积极性。阿里云的资源编排服务(ROS)就是为了解决这些问题而推出的。

什么是资源编排服务?

阿里云资源编排服务(Resource Orchestration Service,简称 ROS)是一款帮助阿里云用户简化云资源创建,更新和删除的自动化服务。您只需要创建一个描述阿里云资源(如 ECS 实例、 RDS 数据库实例等)的模板,然后ROS将自动地为您创建并配置这些资源。实现基础设施即代码(Infrastructure as Code)的理念。资源编排模板也是一种标准化的资源和环境交付方式。

资源编排服务是通过资源栈 (Stack) 这种逻辑集合来统一管理一组云资源(一个资源栈即为一组阿里云资源),所以,对于云资源的创建、删除、克隆等操作,都可以以资源栈为单位来完成。在 DevOps 实践中,可以轻松地克隆开发、测试、线上环境。同时,也可以更容易实现应用的整体迁移和扩容。

image.png

产品优势

基础设施即代码(Infrastructure as Code)

ROS是阿里云官方提供的基础设施即代码(Infrastructure as Code,简称IaC)的云产品,使用ROS可以帮助您最快速地实践DevOps中关于IaC的理念。

全自动托管服务

ROS产品为全托管服务,您无需购买维护IaC模板本身执行所使用的资源,您只需要关注您的业务所需要使用的资源,即模板中定义的资源。尤其您需要创建多个项目(对应多个堆栈)时,全托管的自动化可以帮助您更快地完成任务。建议您使用Git或SVN等源代码版本管理软件同步管理模板,再通过ROS OpenAPI进行堆栈的维护。

可重复部署

无论您是需要部署的环境是开发,测试和生产环境,您都可以使用同一套模板进行创建。指定不同的参数可以满足环境的差异化,如测试环境的ECS实例数是2台,而生产环境的ECS实例数是20台。亦或是您需要进行多地域的部署,使用同一套模板可以进行重复的部署,从而提高部署多地域的效率。

标准化部署

在实践中,不同环境的细微差异往往带来非常复杂的管理成本,延长了问题诊断的时间,从而影响了业务的正常运转。通过使用ROS重复部署,可以将部署环境标准化,减少不同环境的差异,将环境的配置沉淀到模板中。再通过类似代码的严格管理流程,从而保证部署的标准性。

统一的身份认证、安全和审计

和其他的同类产品对比,阿里云官方出品的ROS和其他阿里云产品有着最好的集成。集成资源访问管理(RAM)提供了统一的身份认证,而无需为单独建立用户认证体系。所有的云产品操作都通过OpenAPI调用,意味着您可以使用操作审计服务(ActionTrail)来审查所有的运维操作,包括ROS本身。

产品FAQ

1,ROS是什么?

阿里云资源编排服务(Resource Orchestration Service,简称 ROS)是一款帮助阿里云用户简化云计算资源管理和自动化更新的服务。您只需要创建一个描述阿里云资源(如 ECS 实例、 RDS 数据库实例等)的模板,然后ROS将根据模板,自动创建和配置这些资源。实现基础设施即代码(Infrastructure as Code)的理念。资源编排模板也是一种标准化的资源和应用交付方式。

2,如何编写ROS的模板?

整个模板都是JSON/YAML格式,描述各类资源及它们之间的依赖关系。
模板主要分成Parameters、Resources、Outputs这三个部分。
Parameters增强了模板的灵活性,让您根据需要不同的需要传入不同的参数,实现了可复用的模板
Outputs定义了执行模板后需要返回的值,例如创建了ECS实例,则可以输出ECS实例ID,或ECS实例的公网IP。


3,ROS提供控制台了吗?

阿里云提供了ROS控制台。
ROS控制台提供了一种易用、直观的方式执行ROS模板。您只需要加载模板,再输入参数,即可按需创建相应资源。
执行过程中您可以看到各个资源的创建过程。
执行过程中如果出错,ROS控制台能够直观地展示错误事件,方便定位。


4,ROS有OpenAPI和SDK吗?
当然有,ROS的API请参考:https://help.aliyun.com/document_detail/131032.html
ROS的SDK信息请参考:https://help.aliyun.com/document_detail/28928.html

5,ALIYUN CLI支持ROS吗?
当然支持,请先安装ALIYUN CLI https://help.aliyun.com/product/29991.html,然后运行aliyun ros help命令获得使用帮助。

6,ROS是否提供了示例模板?
ROS提供了场景示例模板,参见控制台 https://rosnext.console.aliyun.com/ 左侧菜单“模板”>“我的模板”。

7,使用ROS过程中有问题如何获得帮助?
推荐您首先阅读文档,或在阿里云开发者社区,云栖搜索“资源编排”或“ROS”。
或加钉钉群联系我们:11783495

8,我需要某个云产品下的某个资源,但是ROS还不支持怎么办?
请第一时间联系我们,钉钉群联系我们:11783495,我们将尽快满足您的要求。

9,ROS都支持哪些云产品?
常见的云产品如ECS,RDS,OSS,SLB,FC等都支持,请参考 https://help.aliyun.com/document_detail/61459.html ,左侧“资源类型”下面。如果您需要某云产品的某资源不在其中,请第一时间联系我们,钉钉群联系我们:11783495,我们将尽快满足您的要求。

Leave a Reply

Your email address will not be published. Required fields are marked *