什么是软件部署?
- 3 分钟
软件部署包括使软件系统可供使用的所有活动。 常规部署过程由多个相关活动组成,它们之间可能存在转换。 每个软件系统都是独一无二的,因此部署是一个常规过程,必须根据特定的要求或特征进行自定义。
有些人将“部署”和“安装”这两个术语互换使用,但是软件安装仅是软件部署过程的一部分。 部署涉及更多内容。 部署活动可以包括:
- 安装和排列一台服务器。
- 将一个更新的软件部署在该服务器上。
- 使用脚本和基础结构之类的代码。
- 甚至在办公室中携带 U 盘来回走动,在计算机上手动安装软件。
手动部署软件是劳动密集型软件,无法很好地扩展。 在整个组织中推送新软件或更新现有软件时,自动化可以更轻松地、更经济高效地确保一致性。
此学习路径侧重于如何为可靠性最好地部署软件。 本模块不仅将解决软件部署,还将解决云基础结构的部署。 zh-CN: 对于部署服务或解决方案,参考内容可能常常包括部署软件、云基础设施、配置,以及确保软件系统可靠可用所需的所有元素。
场景:史诗式部署
“史诗”一词的意思是“宏伟、不朽或浩瀚”。但在本文的上下文中,这不是一件好事。 Jez Humble 和 David Farley 在其书《 持续交付:可靠软件发布通过生成、测试和部署自动化 》中使用该术语,因为它代表了一项大规模(且具有重大破坏性)的承诺。 下面是一个示例,说明它通常如何发生:
- 组织开发与销售相关的应用程序。 该应用程序每年正好更新两次。
- 在这些更新期间,将部署所有新功能、bug 修复(重要和次要)以及依赖项更新。
- 该年度的第一次部署计划在劳动节周末进行,第二次部署在感恩节之后的周末进行。
- 每次更新都是“全员出动”的情况。 应用程序团队、支持团队、基础结构团队和管理都参与了部署。
- 部署正在进行时,各服务暂时处于脱机状态。
- 历史记录显示,部署始终充满问题、手动工程、故障排除和配置管理更改。
- 它很少进展顺利,而当它完成时,通常觉得以一种无法重现的方式拼凑在一起。
这不是很好的部署情况。 史诗式部署方法是一项繁重的手动任务,它带来了许多问题:
- 复杂。
- 压力大。
- 有风险。
- 速度慢。
- 由于所有步骤复杂,此方法不可重现。
- 它通常需要多个专家才能完成部署。
由于此过程漫长而艰巨,因此必须安排在对用户生产力影响最小的时间,这意味着时间可能会在对部署团队不方便的时段,如周末和假期。
团队成员可能会急于在此时限内完成庞大的操作,从而导致出现错误配置。 同样,两次部署之间的长时间间隔可能会让你无法准确记起工作细节。
部署困境
软件部署是一项复杂的任务,当你“保存”多个重大更改、修复和新增功能以便一次性部署所有功能时,你会增加复杂性,从而提高出错的几率。 此外,当出错时,这种复杂性使得更难以准确地找出导致问题的原因。
复杂性还可能会给最终用户带来问题,因为他们可能不得不同时学习许多新功能和更改,更不用说史诗式部署的复杂性所引入的任何 bug 了。
应该有一个更好的方法,确实有。 好消息是,传统的史诗部署策略并不是唯一的选择。 在下一单元中,你将了解此过程的更好方法。