导读:
云上部署相比于传统的RDC部署有哪些不同?
如何修炼云上自动化部署和运维的正确姿势?
如何打造快速、安全、可复制、标准化的DevOps体验?
今天就带大家探秘阿里云云上的运维绝活~
作者 | 吴君印
来源 | 弹性计算百晓生
云上部署和运维的特点
无论是部署还是运维,在云上都有如下四个特点:
首先,可重复。在云上部署相对于传统RDC部署而言更加灵活,只需要编写一次模版就可以随时随地拉起一套环境,做到一键部署。目前有两种类型的环境部署,一种是测试环境、预发环境、生产环境。第二种是在不同地域进行部署,如北京地域、上海地域以及杭州地域。
第二点,多环境保持一致。因为使用的是相同的模版进行部署,所有环境部署出来的结果都一样,这样可以避免人为错误,避免问题排查时的环境影响,环境造成的问题往往是最难排查的问题之一。
第三点,可审计。所有操作均通过API,所有API操作都可以被审计,集成操作审计服务ActionTrail即可。
第四点是DevOps。从环境部署到应用部署都模板化,版本管理使用Git,可以做代码评审、代码回滚。
阿里云针对云上部署和运维特点,推出了两个产品,包括资源编排ROS(Resource Orchestration Service)——解决自动化部署问题,运维编排OOS(Operation Orchestration Service)——解决自动化运维问题。两款编排产品除了支持ECS的实例,还支持其它阿里云的产品,如负载均衡,关系型数据库RDS,对象存储OSS等。
资源编排ROS
资源编排ROS的典型场景
资源编排ROS的典型场景主要有四种:
- 第一种是部署模板,资源编排ROS是通过模板方式达到可以重复部署的目的,使用模板可以在任何时间任何地点拉起一套环境。
- 第二种是MSP、ISV提供自己的部署模板,可以一键开出复杂的业务系统,如SAP HANA等系统,将部署时间缩短为几个小时。由于云上的环境都是标准的,只要有测试通过后的模板就可以在不同的环境、不同的账号中重复部署。
- 第三是解决方案中心,阿里云通过自身多年服务客户和双11的经验,总结了大量的最佳实践,在解决方案中心中提供了很多高质量的模板,支持开箱即用。
- 第四是CI/CD集成,在DevOps开发模式下,只有将部署模板放到CI/CD中才能打造DevOps的开发模式,轻松的做到蓝绿部署,并且支持阿里云云效。
ROS控制台及操作演示
上方对ROS产品进行了简单的介绍;下方是常见的部署架构作为示例模板。下图为:资源编排ROS主页。
ROS产品地址:https://rosnext.console.aliyun.com/
左侧菜单栏中有“我的模板”和“模板示例”,其中我的模板是需要自定义的模板,模板示例中提供了大量常见的部署形式,如Jenkins、Kafka等。解决方案中心中是由阿里云解决方案架构师团队、最佳实践团队、各业务方团队和资源编排团队合作共建,将阿里云多年沉淀的最佳实践和针对各种场景的解决方案沉淀为资编排源模板,用户可以使用这些最佳实践模板使得云上部署更加安全高效。
“资源类型”模块中展示了ROS支持的阿里云云产品。
下面以构建我的模板LNMP-deom-1作为例子,模板以JSON格式表达,也支持YAML格式,最重要的是,还提供了可视化的架构图。
可以发现所有的资源都在VPC内部,包括关系型数据库RDS和ECS实例。图中两个ECS实例挂在负载均衡LoadBalance下面。
接着可以使用此模板创建资源栈,之后通过事件tab知道每一步创建步骤。在资源tab中看到所有被模板创建的资源,只需要点击资源ID,就可以打开实例详情页面。在输出tab在有显示一个网站链接,可以发现此次网站部署成功。参数tab中提供了每次模板的参数。当用户手动修改一些资源,与模板出现不一致时,可以使用检查资源偏差查看不同点。
运维编排OOS
运维编排OOS的典型场景
运维编排OOS的典型场景同样分为四种:
- 首先是批量操作实例和执行远程命令,例如启动、停止等,相比于其它方式无需密码,无需登录,无需使用跳板机,且无需担心安全问题,运维编排使用了阿里云RAM进行控制。
- 第二种场景是定时运维,在固定的时间执行制定的命令,相当于云上Cron服务,并且免托管,分布式。
- 第三种场景是支持报警和事件驱动运维,当某个事件发生时自动触发告警任务。
- 第四是提供大量丰富的公共模,板阿里云总结了大量的典型运维场景,并将总结成果开源到了Github上,欢迎大家贡献优质模板,共同打造运维社区。
OOS控制台及操作演示
左侧菜单栏中有批量操作实例模块,任务类型包含发送进程命令、批量下载文件、实例操作、实例属性修改等。批量管理软件模块中可以批量的给实例下载和安装常见的软件,在我的软件模块可以自行部署和卸载。下图为运维编排OOS主页。
OOS产品地址:https://oos.console.aliyun.com/
定时开关机模块中可以选择在指定的时间关闭、开启或重启实例。在包年包月的服务器情况下,客户需要在固定的时间升级临时宽带,等高峰过去后再下降,以达到节约成本的目的。在创建更新镜像模块中可以基于已有的实例进行更新,也可以基于已有的镜像创建实例,进一步更新,再创建新的镜像。
定时运维模块可以在固定的时间和固定的地域执行指定的任务。告警与事件运维模块中若控制台上显示当某个事件发生时自动触发模板,比如CPU使用率过高时重启实例操作。
所有的模板都提供了可视化视图,提供了更加直观的展示方式,还提供了YAML和JSON两种格式的文本,方便用版本管理软件如Git进行管理。
下图展示的是批量操作实例,发送远程命令,命令内容是发送输出命令。之后选择实例,可以手动选择,可以指定实例标题,也可以指定实例资源组,或者上传csv文件,从ECS实例表中导出csv文件来选择实例。
在高级选项部分可以配置执行模式,如出现错误时继续执行还是暂停实例,设置并发速率,允许的最大错误次数等。
此外还有更加快速的执行实例命令方式,在实例列表模块中选择具体的实例,进入实例详情页后会显示本实例远程命令,显示了历史的执行命令,同时可以发送新的远程命令。其次在实例列表中同时选择多台实例,选择更多,发送远程命令,这时多台实例就可以同时执行命令。
使用ROS、OOS的部分阿里云产品
下图中列出了支持ROS、OOS的常见阿里云产品,包括ACS容器服务、FC函数计算、SLS日志服务、SMC服务迁移中心等等,这与产品本身的部署场景契合。
云产品需要支持多种地域,阿里云有22个地域,使用ROS和OOS可以最大提高部署和运维效率。阿里云对内部系统变更有非常严格的要求,需要提供信息完整的变更单、申请、审批、以及需要为变更过程中可能出现的问题提前准备脚本。因此OOS会预先提供变更模板和回滚模板,从而提供自动化运维程度,降低人工错误。
客户对自动化运维有不同的需要,从下图左侧可以分出运维的几个层次,从最底层的手动运维、到半手工,半自动化运维、再到高度自动化运维、标准化运维以及智能运维(AIOps)、大部分客户的需求集中在中间三层,大部分的公司处于半手工,半自动化运维,异或高度自动化的方式,少部分的公司更加激进的走到了更加标准化运维,享受到了更加DevOps的方式,阿里云自动化部署ROS和自动化运维OOS的主打场景可以满足这三个主要层次的自动化需求。
今天的分享到此结束,感兴趣的同学可持续关注云上自动化部署ROS和运维OOS产品动态。
关注百晓生,笑谈云计算
完整演讲视频地址:https://developer.aliyun.com/live/43815?spm=a2c6h.12873639.0.0.286978a3ecqbrY