5.5 部署交付

一句话讲明白

软件写好不等于能用,部署交付解决的是"怎么把软件安全、快速、可回退地送到用户手里,并且之后还能一天上线几十次"。

生活类比

开连锁餐厅:

正经定义

软件部署是软件生命周期中的一个重要环节,属于软件开发的后期活动,即通过配置、安装和激活等活动来保障软件产品的后续运行。持续交付是一系列开发实践方法,用来确保代码能够快速、安全地部署到生产环境中,是一个完全自动化的过程,业务开发完成时可做到一键部署。

拆解与流程

一、软件部署要点

模式 适用场景
面向单机软件的部署 运行在操作系统之上的单机软件(安装、配置、卸载)
集中式服务器应用部署 用户访问量500 人以下、硬件要求不高(中小组织、高校在线学习/实训平台)
基于微服务的分布式部署 用户访问量大、并发要求高的云原生应用,通常借助容器和 DevOps 持续部署与集成

二、传统软件交付的困境

传统流程:业务人员提想法 → 开发人员做成产品 → 测试后交付用户 → 运维后期维护。问题:需求文档沟通效率低、变更频繁;测试工作量随进度递增而自动化程度低;运维排期被挤占、手工运维质量难保。

三、持续交付的做法与优势

四、持续部署

蓝绿部署 金丝雀部署
做法 准备新旧两个版本,通过域名解析切换把用户切到新版本 先让少量用户使用新版本,观察是否有问题
出问题 快速切回旧版本,再修复调整新版本 及时处理并重新发布
正常 — 稳步适配给所有用户

五、新趋势(3 个方面)

① 工作职责和人员分工转变(运维从手工作业转为开发自动化部署脚本,逐步并入开发人员);② 大数据和云计算基础设施普及带来新飞跃(计算机可自动化创建和回收,部署脱离具体机器和机房,可远端进行);③ 研发运维融合。

考试怎么考

易混辨析

对比 持续集成 持续交付 持续部署
做到哪一步 频繁地将代码集成到主干并自动构建、自动测试 在持续集成基础上,保证代码随时可部署到生产环境(交付仍需人为触发) 通过自动化直接部署到生产环境
关键词 集成 + 自动构建测试 一键可部署 自动上线

一秒记忆

"集 成 交 付 部 署 三 级 跳;部 署 三 步 Build-Ship-Run;蓝 绿 切 域 名,金 丝 雀 放 少 量。"

相关