gpt4 book ai didi

.net - 如何实现.NET Deployment Nirvana?

转载 作者:行者123 更新时间:2023-12-04 18:54:32 25 4
gpt4 key购买 nike

我们公司的“上线”日期(以及质量保证部门的日期)已经接近尾声,我正在尝试定义正确的操作流程来支持这一点。我的一个重要考虑是如何避免不可避免地发生的部署/配置 hell 。你们中有没有人找到一个好的解决方案,可以将构建移交给非程序员,以便他们可以在QA,登台和生产环境中成功安装和配置它?

对我们来说,一个完整的环境由异构计划任务,Windows服务和网站组成,所有这些都可以通过并行部署进行扩展。幸运的是,配置方式是一致的。不幸的是,所有这些都通过.NET web/app.config文件进行管理。以我的经验,质量检查和操作人员总是在尝试修改它们时搞砸了(XML对于大多数人来说很难处理!)

这是我正在考虑的选项:

使用machine.config文件

这是我实际上没有做过的事情,但看起来很有希望。如果我们创建一个machine.config模板,其中包含每个应用程序的每个设置(可能会随环境而变化),则这将允许管理员对一个文件进行所有更改并将其部署到环境中的每台计算机上。

优点:
这潜在地减少了部署系统所需的步骤数
缺点:
必须以某种方式记录配置模式更改
未知数:
我们利用自定义配置节和其他引用程序集的配置扩展。这会要求我们在计算机的GAC中安装.NET程序集吗?

在构建过程中执行配置文件操作

如果我们设置了QA,暂存和生产环境,使其看起来与我们的软件(虚拟服务器和LAN等)相同,则QA应该能够在不进行配置更改的情况下直接将准备就绪的软件过渡到暂存环境,并逐步过渡到生产环境。通过此设置,从理论上讲,我们可以将没有人需要接触的QA预先配置的foo.config文件移交给QA。

优点:
工程人员将更擅长确保配置文件有效
缺点:
工程人员了解生产配置可能被认为是不良的安全实践(一个不好的说法,恕我直言)

拥有以网络为中心的设置存储库

这个对我来说似乎没有吸引力,因为我尝试了三种最终失败的方法:

  • 在以前的公司中,我们在数据库中拥有配置设置,但是当然不能将它们全部放在其中,因为您需要配置与该数据库的连接字符串。同样,确保在部署之前正确更新数据库也很困难。
  • 我们尝试过的另一种方法是拥有一个网络服务,该服务可以用作集中式注册表。这几乎可行,但是本地缓存始终存在问题,请确保正确配置了配置服务器的URL,当然还要配置配置服务器。
  • Active Directory? w!需要我多说?

  • 有什么想法吗?

    使用我正在考虑的选项,您的成功程度如何?除了这些之外,还有其他替代方法对您来说效果很好吗?

    最佳答案

    我们有一个自定义exe,可以在我们使用的生成后运行。

    我们的项目有4个配置文件

    web.config-开发(本地框)
    web.integration.config-Alpha测试(在我们的Alpha服务器上运行)
    web.staging.config-Beta测试(在我们的Beta服务器上运行)
    web.production.config-生产(在我们的生产服务器上运行)

    exe只会删除除所需文件以外的所有文件,然后将其重命名为web.config ...

    我们不允许非开发人员(QA,DBA等)操纵配置文件,因为它们可能会更改为生产值(邮件服务器,SQL服务器)并引起一些严重的问题...

    对我们来说效果很好

    关于.net - 如何实现.NET Deployment Nirvana?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/997878/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com