应用与参数分离,一套程序直通测试与生产环境
阅读引导:
1、应用程序不应依赖于环境,才能做到快速扩展,一套程序打天下,杜绝投产版本问题。
2、maven虽然提供了profile环境配置参数,但是尽量不要使用。
3、为自己工作,为自己的系统工作,做自己的老板,形成正循环:打磨当前工作的核心关键能力——>高效能工作——>更多时间打磨自己的系统——>更高效能工作——>打磨下个层次工作的核心关键能力……
4、核心竞争力,是指你拥有的(独特的)知识经验组合,经过你思维逻辑的组织梳理,在实践中产生无可替代的价值。打造自己的TMS系统(T:专业技术;M:沟通管理、S:行业解决方案),利用复利效应,让系统为自己工作。
如果你在一个管理流程严格,对于系统运行稳定性要求很高的公司,例如银行等大公司工作,甚至都有可能对于生产变更的窗口、变更有严格的考核,有可能在“封板”时间之后,就无法向生产SVN或者仓库等地方提交生产介质了。
对于系统的投产介质,要求比较高,这样程序介质的变动,技术上没多大问题,但是管理流程上就会比较麻烦。
为了杜绝因为参数引起的生产介质版本问题,需要将应用与参数分离,使一套程序从SIT流动到UAT,再到VT,再到版本。
实际上,开发过程中,有一个重要的相关方:运维人员。
如何通过技术手段减少运维人员的工作量,降低运维风险?这也是我们可以通过技术解决的问题。
尤其是环境参数,maven提供了profile配置,很多人配置了不动的环境:dev\sit\uat\vt\生产。
通过打包命令来区分不同的版本程序。例如pom.xml中配置:
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- 日志 -->
<logLevel>debug</logLevel>
<defLogHome>/home/weblogic/log</defLogHome>
</properties>
</profile>
<profile>
<id>sit</id>