简体   繁体   English

ASP.NET 大型应用的 CI/CD

[英]CI/CD for ASP.NET big size application

I am working on an old asp.net 4.0 webform application.我正在处理旧的 asp.net 4.0 webform 应用程序。 There are various modules in the application and their pages (code) are arranged in subdirectories created by the name of the module.应用程序中有各种模块,它们的页面(代码)排列在由模块名称创建的子目录中。 Unfortunately the user documents are also uploaded to these subdirectories and hence making the application size 50-60 gB now and it is increasing day by day.不幸的是,用户文档也被上传到这些子目录,因此现在应用程序大小为 50-60 GB,并且每天都在增加。

Also, there is no version control and hence there are issues and challenges in code merge and manual deployment to production for any change.此外,没有版本控制,因此在代码合并和手动部署到生产以进行任何更改方面存在问题和挑战。 So, I want to implement CI/CD for this application.所以,我想为这个应用程序实现 CI/CD。 Is it a good idea to use GIT for this type of application architecture and how to achieve this?对于这种类型的应用程序架构使用 GIT 是个好主意吗?如何实现?

Using git for version control and CI/CD using Azure DevOps or similar should work fine, but for this to work efficiently you should address the main problems that (other that not using version control, IMO) you have: mixing user data and code deployment.使用 git 进行版本控制,使用 Azure DevOps 或类似的 CI/CD 应该可以正常工作,但是为了有效地工作,您应该解决您遇到的主要问题(其他不使用版本控制,IMO):混合用户数据和代码部署.

You should move out all user generated data (here: user documents) from the site deployment.您应该从站点部署中移出所有用户生成的数据(此处:用户文档)。 Not doing this will make the CD (deployment) part very challenging.不这样做会使 CD(部署)部分非常具有挑战性。 Create an abstraction layer of some sort for uploading and downloading user documents so that you can store that data somewhere else, like blob storage, shared disk or even in a database (not good, but better than inside your deployment).创建某种用于上传和下载用户文档的抽象层,以便您可以将该数据存储在其他地方,例如 blob 存储、共享磁盘甚至数据库中(不好,但比在您的部署中更好)。

Without doing this, you will have a hard time doing proper CI/CD with all the benifits that it will bring.如果不这样做,您将很难进行适当的 CI/CD 以及它带来的所有好处。

As a side effect, this will also bring other benifits:作为副作用,这还会带来其他好处:

  1. It will be possible to scale your application to multiple working processes.可以将您的应用程序扩展到多个工作进程。
  2. It will be possible way easier to spin up new environments with data copied from another environment (eg you can easily make a staging environment with data copied from production).使用从另一个环境复制的数据启动新环境可能会更容易(例如,您可以轻松地使用从生产中复制的数据创建一个临时环境)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM