你们(公司)如何管理所构建的应用程序/系统的配置文件?让我告诉你我们是如何做的,以及存在的问题。
我在一家有15名开发人员的公司工作,我们开发部署在托管服务提供商处的业务Web应用程序。我们主要应用包括一个网站和大约10个WCF服务,其中一些服务互相连接。
我不知道这算是一个大型系统还是小型系统,但我认为在不同环境(测试、验证和生产)中启动和运行这些应用程序需要花费太长时间了。
我们的Visual Studio项目中有每个环境的配置文件,例如web.test.config、web.acc.config、web.prod.config和开发环境下的web.config。它们都有相同的键,但其值可以根据所针对的环境而不同。
如果我快速统计一下Web应用程序的web.config文件中的appsettings,我会数到32个,并且有5个端点。我们有四个环境(开发、测试、验证和生产),这意味着对于一个Web应用程序,总共有128个appsettings和20个端点。我们很容易犯错,尤其是在截止日期逼近时。
我们都是人,任何人都可能出现以下情况:
- 我们更改了某个配置文件,但在构建和部署之前忘记提交。 - 或者我们在Web服务器上进行更改,但忘记相应更新其他四个web.config文件。 - 或者我们只更改了其中的三个配置文件等等。
然后我们有托管服务提供商的基础设施。默认情况下,每个端口都关闭。因此,如果WCF服务之一需要与位于不同服务器上的另一个WCF服务通信,则必须打开受防火墙保护的端口。
我在一家有15名开发人员的公司工作,我们开发部署在托管服务提供商处的业务Web应用程序。我们主要应用包括一个网站和大约10个WCF服务,其中一些服务互相连接。
我不知道这算是一个大型系统还是小型系统,但我认为在不同环境(测试、验证和生产)中启动和运行这些应用程序需要花费太长时间了。
我们的Visual Studio项目中有每个环境的配置文件,例如web.test.config、web.acc.config、web.prod.config和开发环境下的web.config。它们都有相同的键,但其值可以根据所针对的环境而不同。
如果我快速统计一下Web应用程序的web.config文件中的appsettings,我会数到32个,并且有5个端点。我们有四个环境(开发、测试、验证和生产),这意味着对于一个Web应用程序,总共有128个appsettings和20个端点。我们很容易犯错,尤其是在截止日期逼近时。
我们都是人,任何人都可能出现以下情况:
- 我们更改了某个配置文件,但在构建和部署之前忘记提交。 - 或者我们在Web服务器上进行更改,但忘记相应更新其他四个web.config文件。 - 或者我们只更改了其中的三个配置文件等等。
然后我们有托管服务提供商的基础设施。默认情况下,每个端口都关闭。因此,如果WCF服务之一需要与位于不同服务器上的另一个WCF服务通信,则必须打开受防火墙保护的端口。
我们在测试环境中做了这个,但在验收环境中我们不得不再次执行,而且我们已经忘记了哪些端口必须打开,所以更像是试错:哦,我的服务无法连接到数据库,可能是端口关闭了。同样的问题也可能发生在生产环境中。
根据服务等级协议,我们的托管提供商可能需要几天时间来打开防火墙中的端口,因此这很快就变成一个相当漫长的过程。最终,测试、验收和生产环境的启动大约需要两个月的时间。
因此,我的问题是:您如何管理配置、基础设施以及周围的流程?