build and deploy
和 re-deploy
的区别是什么?
当只有一些 HTML
改变而没有 Java
代码改变时,应该做什么?
我应该做一个 build and deploy
还是只做一个 re-deploy
?
build and deploy
和 re-deploy
的区别是什么?
当只有一些 HTML
改变而没有 Java
代码改变时,应该做什么?
我应该做一个 build and deploy
还是只做一个 re-deploy
?
免责声明:定义构建和部署的含义非常主观。
我将从部署开始。 部署应该意味着获取我所有的构件并将它们复制到服务器上,或在服务器上执行它们。 这应该是一个真正简单的过程。
构建的意思是,处理我所有的代码/构件,并为部署做好准备。 意味着编译、生成代码、打包等。
这有帮助吗? 有些人确实将部署视为“构建过程”的一部分,对此我并不太争论,因为通常为了测试或运行,必须将其部署在某个地方。
通常规则是如果是动态代码,则需要进行构建/重新部署。
如果您只是编辑静态html、css、图像等,则可以简单地进行补丁更新(最好还要重启服务器)。
如常“打补丁”存在风险,因为您可能没有部署整个代码库,或者某人可能会做错。
个人喜欢进行完整的构建/重新部署,因为您总是知道与源控件同步。 但是,部署可能出现问题,无论是构建部分还是安装部分。 如果您的构建需要很长时间,或者您不必要地需要部署许多移动部件,则可以考虑将它们拆分为更小的可部署组件,或创建更完整的部署计划。
像往常一样,这里没有银弹。
Build 的意思是编译项目。
Deploy 的意思是编译项目并发布输出。
对于 Web 应用程序,客户端无需部署或执行任何操作,只需要一个简单的带有 URL 的浏览器。 所有 Web 应用程序都仅部署在服务器机器(IIS)上,该应用程序可由所有客户机访问(任何浏览器均可)。
对于桌面应用程序,需要将其部署/安装在要使用该应用程序的系统上。
观看这个部署过程:
------ Build started: Project: AdventureWorks, Configuration: Release ------
Skipping 'belyaev_db.rds'. Item is up to date.
Skipping 'Sales Rep.rdl'. Item is up to date.
Skipping 'Top_10.rsd'. Item is up to date.
Build complete -- 0 errors, 0 warnings
------ Deploy started: Project: AdventureWorks, Configuration: Release ------
Deploying to http://...
Deploying data source '/Data Sources/belyaev_db'.
Warning : ...
Deploying data set '/Datasets/Top_10'.
Warning : ...
Error ...
Deploy complete -- 1 errors, 2 warnings
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
========== Deploy: 0 succeeded, 1 failed, 0 skipped ==========
在这种情况下,我有一些问题,但正如你所看到的 - 第一步是建立 - 验证数据源和报告,只有在此之后才会部署。
要点:
SOURCE DEPLOYMENT MODEL
┌──────────────────────────────────────────────────────────────────────┐
│ │
│ BINARY DEPLOYMENT MODEL │
│ ┌─────────────────────────────────────────────┐ │
│ │ │ │
│ │ │ │
│ ┌────────┐ │ ┌─────────────┐ ┌─────────────┐ │ │
│ │ source │ BUILD │ │ application │ DELIVER │ installed │ │ │
│ │ code ├─────────┼─►│ binary ├──────────►│ application │ │ │
│ └────────┘ │ └─────────────┘ └─────────────┘ │ │
│ │ │ │
│ │ │ │
│ └─────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────┘
为了更好地理解:
BINARY DEPLOYMENT MODEL
┌──────────────────────────────────────────────────────────────────────────────┐
│ │
│ BUILD MACHINE │
│ ( OR FARM ) TARGET MACHINE │
│ ______________________________________ _____________________ │
│ / /│ / /│ │
│ ┌─────────────────────────────────────┐ │ ┌────────────────────┐ │ │
│ │ │ │ │ │ │ │
│ │ ┌────────┐ ┌─────────────┐ │ │ │ ┌─────────────┐ │ │ │
│ │ │ source │ BUILD │ application │ │ │ DELIVER │ │ installed │ │ │ │
│ │ │ code ├─────────►│ binary ├─┼─┼─────────┼──►│ application │ │ │ │
│ │ └────────┘ └─────────────┘ │ │ │ └─────────────┘ │ │ │
│ │ │/ │ │/ │
│ └─────────────────────────────────────┘ └────────────────────┘ │
│ │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
SOURCE DEPLOYMENT MODEL
┌───────────────────────────────────────────────────────────────────────────────┐
│ │
│ BUILD MACHINE │
│ ( OR FARM ) TARGET MACHINE │
│ _______________ _____________________________________________ │
│ / /│ / /│ │
│ ┌──────────────┐ │ ┌────────────────────────────────────────────┐ │ │
│ │ │ │ │ │ │ │
│ │ ┌────────┐ │ │ │ ┌─────────────┐ ┌─────────────┐ │ │ │
│ │ │ source │ │ │ DELIVER │ │ application │ BUILD │ installed │ │ │ │
│ │ │ code ├──┼─┼───────────┼──►│ binary ├────────►│ application │ │ │ │
│ │ └────────┘ │ │ │ └─────────────┘ └─────────────┘ │ │ │
│ │ │/ │ │/ │
│ └──────────────┘ └────────────────────────────────────────────┘ │
│ │
└───────────────────────────────────────────────────────────────────────────────┘