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