我现在工作的公司还没有实现持续交付。我们仍然手动将项目逐个文件部署到服务器。最佳做法是:为每个部署手动部署一个项目工件,还是继续逐个文件进行部署?
我现在工作的公司还没有实现持续交付。我们仍然手动将项目逐个文件部署到服务器。最佳做法是:为每个部署手动部署一个项目工件,还是继续逐个文件进行部署?
Answers:
哪个是最佳做法?在每个部署中手动部署一个项目工件还是继续逐个文件部署文件?
都不行
最佳实践是完全专有地自动化您的部署。这意味着没有人可以手动将任何东西放到服务器上。
“总结摘要的摘要:人是问题。” (道格拉斯·亚当斯)
人们会犯错误。如果您忘记复制的文件之一是已被广泛更改的共享“库”,则可以使整个Production网站崩溃。
手动步骤需要花费很多精力并且存在风险:您可能会忘记必要的文件。也许不是团队中的每个人都知道需要复制哪些文件。所有这些问题使部署变得庞大,艰巨而罕见,这完全是不必要的。自动化解决了这些问题。
即使最简单的自动化步骤也可以带来很大的好处,因为部署变得微不足道。通过(S)FTP或Rsync或其他技术复制文件或工件的脚本是一个很好的第一步。以后,您可以扩展该脚本以在服务器上自动执行部署前和部署后步骤,例如重新启动服务。
最佳实践是实施某种自动化过程。
请谨慎检查是否没有特殊原因需要采用“逐个文件”方法。
最佳实践是对特定公司的特定部署进行成本/收益分析。
普遍的回答是“不要手动做事,要自动化”。对于一般类型的公司来说,这通常是正确的答案。您收到的答案的一致性应表明社区认为这是最佳做法的强烈程度。如果您的公司认为自动化不是正确的工具,那么他们应该对自动化的独特之处有所了解。唯一性应纳入您的决策过程。当样本集为1时,没有“最佳实践”。
诸如“多少文件”,“多长时间更新一次内容”,“破坏内容的后果是什么”以及“多快可以回滚一次不良更改”之类的问题是需要回答的重要问题。如果实现自动化,这些问题中的许多问题将变得不重要,但是对于正确分配手动更新过程的成本和收益来说,这些问题至关重要。
它取决于您使用的软件技术(或堆栈)(解释语言,编译语言,桌面应用程序,移动设备等)是否为软件。开发。部门政策,如果您具有使之自动化的工具,那么您的应用程序有多重要,需要考虑的重要一件事就是软件体系结构(应用程序的设计方式)。这就是为什么您在这里有不同的答案。根据经验,最好的方法是减少对部署任务的人工干预,以免出错。良好的做法是在部署之前测试QA服务器中的所有内容(如果预算有限,请考虑使用虚拟服务器),并在灾难发生时采用反向过程将其还原到以前的版本(始终有备份)。