华为云DevOps系列之 —— 持续部署与发布(八)自动化部署
【摘要】 华为云DevOps系列之 —— 持续部署与发布(八)自动化部署
部署的发展历程
- 手工管理时代
- IP 地址存放在 Excel 表格里
- 用 SSH 连接服务器
- 手工执行,进行部署配置等工作
- 自动化时代
- 数据库方式管理 IP 地址 —— CMDB
- 基于 ssh 或者 agent 分布式脚本执行平台
- 运用自动化工具,用脚本自动化执行
- DevOps 阶段
- 以应用为中心的微服务快速发布的诉求,通过流水线出发部署任务,实现标准化,版本化的部署
- 统一支持开发和运营的交付工作及软件管理工作
传统部署下的矛盾
- 开发人员手动部署,每次需要发布、更新都要远程连接到服务器上,手动地部署更新版本
- 容易出错,效率低
- 依赖人员、耗费大量人力成本
- 流程繁琐、操作复杂
- 对于机器集群部署服务实现困难
- 随着业务的不断扩大、项目迭代速度变快,实现自动化部署极为重要
自动化部署
自动化部署
将可交付产品,快速且安全地交付用户使用的一套系统和工具。系统会自动构建、测试并准备代码变更,以便将其发布到指定环境的过程,包括开发环境
、预发布环境
、生产环境
等- 自动化部署在实际运维场景中会一一对应一个部署任务,比如当每一次软件包更新后,启动应用部署升级,先针对
10%
的主机进行部署,完成更新后触发业务测试,如果验证通过,再针对剩下90%
机器进行部署,这一切都封装在一个部署任务
中,部署的时间和质量都得到了成倍地提升
DevCloud 部署服务
- 部署应用到物理机、虚机、容器
- 支持将应用部署到物理机、虚拟机、容器
- 支持主机有 Agent 或无 Agent 模式提供应用监控数据
- 支持以代理记的方式进行部署
- 支持部署到应用管理平台,纳管容器云集群或客户的私有 K8S 的集群
- 支持多种技术栈应用的部署
- 支持 Tomcat,Sprintboot,Nodejs 等多种技术栈
- 支持 SprintCloud,ServiceComb,Dubbo 等微服务应用部署和治理能力
- 提供通用模板,且支持自定义模板,提供 25+ 原子步骤组装成部署任务
- 支持与流水线,运维管理无缝集成
- 在流水线能关联部署任务
- 通过流水线关联构建、代码检查、测试等服务。实现端到端 DevOps 流程
部署服务的工作原理
云主机部署
:用户通过手动上传、或者编译构建任务,将软件包保存在软件发布库内;部署任务将软件包上传并安装到云主机中
容器部署
:用户通过手动上传、或者编译构建任务,将镜像保存到容器镜像仓中;部署任务将镜像上传到容器镜像集群中
部署服务功能模块
- 自动化部署作为流水线中间的一环,它位于构建任务与发布之间
- Devclou 提供 Ansible 部署框架,基于 Ansible 的部署,目标主机无需安装代理
- 开发、测试、运维人员通过统一平台进行部署,部署环境标准化
- CloudDeploy 服务中包含部署任务执行,部署任务管理,主机管理的模块,部署过程可视
化
部署服务关键特性
系统模板
- 使用系统模板快速创建部署任务:通过 Springboot、Tomcat、CCE 容器应用部署、Docker 应用部署等系统模板快速创建部署任务
- 支持保存自定义模板:可以将组合的部署步骤保存为自定义模板,其他部署任务就可以直接使用模板
批量部署
- 实现批量部署:多个目标主机并行执行部署任务
主机组
:主机组是多台主机的组合。将多个主机添加到某一台主机中,通过该主机组在多台主机上并行执行部署任务环境
:环境是计算、存储、网络等基础设施的集合。环境内部网络互通环境中,通常可以包含主机、集群、数据库、ELB、微服务、引擎等资源。用户通过创建不同的环境实现不同资源的分组管理,如开发环境、测试环境等等
自定义组合部署步骤
- 提供 25+ 部署步骤自由组合任务
支持参数化
- 支持部署任务内容参数化:部署任务支持参数设置并动态执行,通过配置任务参数用户可以根据自定义的参数执行任务
- 通过
${变量}
引用动态的参数
Tomcat 部署步骤示例
部署服务应用场景
简单 Web 应用
- 应用:用户需要开发简单 Web 应用并使用软件开发云编译构建和部署
- 适用场景:适用于 Web 应用程序和微服务的部署,支持 Tomcat、Java、Python、NodeJS、Go、PHP、Ruby 语言
微服务容器部署
- 应用:大型应用软件网站有很多的组件或微服务组合协调,需要软件开发云实现容器化部署
- 适用场景:支持 Linux 下多服务、多组件、多层次的大型应用,用户需要自定义部署模板,定制适合自己应用的部署脚本和部署参数,并应用流水线编排各个组件的统一部署,实现全系统的自动化部署
最后,欢迎大家关注我的个人微信公众号 『小小猿若尘』,获取更多IT技术、干货知识、热点资讯。同时,我在公众号中分享了精心整理的一些视频资料(包括 Python全栈教程、AI教程、前端、数据库等),大家回复相应关键词即可获取网盘视频链接,感谢大家的关注😊
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)