tracymcladdy
2017-03-07 21:30:17 +08:00
罗嗦一点吧。其实楼主提的这些条件一点都不高。
有经验的运维开发搞定真的是分分钟。
有经验的运维开发都会在初期做好日志,监控。各种自动化脚本等。
运维开发真正最难的是根据业务需要,一些产品参数的设置。比如 linux 内核参数的调优,这个 tomcat 该最大给多大内存,一台机器上该上多少个 tomcat , tomcat 用阻塞模式还是非阻塞模式,缓存的最大连接数给多少, nginx 的连接时间给多长, session 是集中在中央缓存管理还是分布到各个容器中管理然后同步等等。都要一个一个用脚本测试,调到最优状态,并且不放过每一个问题。
而且最关键的是这些参数配置是没有任何前人的经验可以直接拿来用的,业务不同,应用不同,环境不同,没有一套固定的标准的。
再比如压力测试时,测试数据开始全部被压到了一个 tomcat 实例中去,感觉集群像没生效一样,但是前台模拟访问,业务请求又会被分配到不同的实例中去,折磨了一天各种找问题后来才知道 nginx 是基于 C 类地址哈希,同一个内网来的压力测试请求,如果基于 ip hash 的 nginx 部署方式,怎么都会在一个容器上,类似的坑,不知道踩过多少。
13 年就是这样一个核心项目的大集群,调这些参数和压力测试我就用了 3 个多星期,还有上线初期的监控和调优。
不过这些其实都还是算值得的,运维就是要把前期工作做足,然后上线了能天天一觉睡到自然醒就是最好的状态。