在前两篇文章中,我从现实需求、成本与效率的角度,分析了对环境管理者来说最重要的一个问题,即到底需要多少套环境来支撑持续交付。如果你已经从中能掌握了一些环境管理的窍门,那么你基本就可以搞定对环境管理的宏观把控了。
但是,除了宏观的把控和管理外,即使只有一套环境,你还是有可能陷入无穷无尽的细节工作中。因为在日常的环境管理过程中,环境配置才是工作的重头和难点。那么今天,我就来跟你详细说说有关环境配置的问题。
从我的实践经验看,要想把环境配置这件事做好,就是要做到让环境自己能说话。
要做到这点,首先需要定义配置的范围。
从面向的目标来看,环境配置大体上可以分为两大部分:
1. 以环境中每台服务器为对象的运行时配置;
2. 以一个环境为整体目标的独立环境配置。
以一个 Java Web 应用为例,需要哪些运行时配置呢?
- 安装 war 包运行依赖的基础环境,比如 JDK,Tomcat 等。
- 修改 Tomcat 的配置文件,关注点主要包括:应用的日志目录,日志的输出格式,war 包 的存放位置。Tomcat 的 server.xml 配置包括:连接数、 端口、线程池等参数。
- 配置 Java 参数,包括 JVM 堆内存的最大最小方式,GC 方式、参数,JMX 监控开启等。
- 考虑操作系统参数,比较常见的一个配置是 Linux 的文件句柄数,如果应用对网络环境有一 些特殊要求的话,还需要调整系统的 TCP 参数等配置。
经过上面这 4 步,一个简单的运行时环