
部署应用程序
|
205
部署
它是一个技术术语,指的是在生产环境中使用某个服务新的二进制包的行为。
发布
它是一个业务术语,指的是向用户提供某个指定功能的行为。
大多数时候,部署和发布会发生在同一时间,比方说,通常当你实现某个新功能后,它
会作为部署的一个环节被发布到生产环境中。但是有时候只会发生其中一个行为。例如,
当开发人员在不改变功能的前提下,重构了某段特定的代码,然后将其部署到生产环境
中,我们会认为这是一次无须发布的部署。你还可以添加一个新功能,但是把它隐藏在
一个“开关”后面(请参阅本章后面“功能开关”一节),这种部署也不需要发布。另
一方面,如果某个功能隐藏在某个开关背后,并且不需要重新部署就可以更改该开关,
那么你也可以在不部署的情况下发布一个新的功能。
理解部署和发布是两个相关但又独立的行为,对于创建持续交付的环境至关重要 :它既
让开发团队可以根据需要自由地部署新版本,同时又让产品负责人对给用户使用的功能
进行完全控制。因为它们的确是不同的行为,所以它们需要不同的工具和技术,这是下
一节我们要介绍的重点。
部署应用程序
虽然根据不同的部署平台,某些部署操作会有所不同,但是无论是什么平台,你需要考
虑的问题都是相同的。通常,应用程序的部署会受以下行为的影响。
创建可发布的构件
这个构件是一个包含了应用程序代码(也可能包含配置文件,更多信息请参考本章
后面的“管理配置和敏感信息”一节)的二进制文件,它会被发送到运行应用程序
的计算机上。可发布的构件可以有多种格式(胖
JAR
、
WAR
、
EAR
、
Buildpack ...