当前,我们的产品是一个Web应用程序,具有SQL Server作为DBMS,ASP.NET后端以及经典的HTML / JavaScript / CSS前端。该产品正在积极开发中,每个月我们都必须将其新版本部署到生产中。
在此部署期间,我们更新了上面列出的所有组件(应用了一些SQL脚本,更新二进制文件和客户端文件),但仅部署了增量(自上一发行版以来已更改的文件集)。它具有一些好处,例如我们不重置自定义数据/配置/客户端调整。
现在,我们将在Azure,AWS等云内部迁移。调整产品架构以使其与Docker / Kubernetes兼容,并以SaaS的形式提供产品。
现在的问题是:“建议在云中使用哪种部署方式?”我们可以仅应用增量吗?还是我们必须重新组织流程以始终从头开始部署?
如果我错过了一些Internet资源,请分享。
答案 0 :(得分:0)
这个问题非常广泛,但是也许您可以通过一些澄清将问题引向正确的方向:
在整个SLDC可以投资的工具上,CAN可以大不相同,因此源代码部署(如应用增量)和容器部署是两个非常不同的方向。一些测试管道/产品将重点(或排他性地)放在与另一方的合作上。当然会有一些工具可以处理这两种情况。
他们在尝试解决的问题上也有所不同,并附带了一些优缺点:
源代码部署/应用差异:
Slack对他们的经历here有很好的记录。
容器部署
为了使用Kubernetes,您需要一个容器化的应用程序。这并不意味着您需要在一夜之间将整个产品包装起来。拆分前端以使用cloudfront / s3进行部署,然后对无状态应用程序进行容器化将使您不知所措。
一些关于devops哲学的书籍(在这种过渡中很重要)