区域系统上线记
由于原因种种,本人负责部门中使用用户最大的一个客户系统架构工作,说是架构工作,其实是什么活都干。本人既是架构师又是程序员。
部门是有架构师的,自己最初的想法是,让架构师哥哥去搞搞架构,自己做开发即可。没想到,领导和架构师异口同声,没有搞过这个领域的系统,不太了解,还是你来做架构(自己一进公司,就做这个领域的系统DEMO)吧。于是,自己被推到了前台,成了事实上的架构师。
说实话,从没有做过架构师,对这个项目自己还是有很大担心的。担心什么,担心自己能力不足(后来证明勇气往往比能力更重要)。
第一,系统的用户规模大,用日用户量在10000-20000人左右。
第二,自己以前做的都是面向企业的开发,用户数都是在几百人的规模,从来没有整过这么大用户量的系统呀。
无论有什么样的担心,客观的情况是:要么你离职走人,这样肯定不会再做这个系统了。要么你就硬抗下去,把系统做完做好。
后来,自己捉摸:这是一个挑战,同时是一个机遇,干脆去试试吧。
无论怎样自我安慰,最初还是多少有点不自信。于是在架构选型结束后,自己傻乎乎的跑去请架构师给把把关,可最终的结果是:人家确实挑出了一堆的毛病,但是没有给出一条具体的改进意见。
人的动力和能力都是被逼出来的。国际友人也曾经说过:走自己的路,让别人说去吧!在经历无数次开发反馈磨合后,框架和开发趋于正常和平稳。最终终于迎来了系统上线。
上线时刻,可以说是系统开发过程的关键节点,类似于一个剧集中的大结局部分,各种问题逐渐暴露出来:数据库服务器内存只有4G,内存使用率动不动就达到90%多,CPU使用率更是达到惊人的100%,于是赶快增加内存,并优化数据库配置。还好,经过几天的折腾,CPU和内存的使用率都回到正常水平,平稳运行,总算松了一口气。
可是,还有一个很严重的问题没有解决。那就是一天之中,用户集中访问的几个时间点,例如,早晨8点,中午12点,下午3点,系统都会不定期的出现无法登录的异常,提示HTTP 500错误。靠,这又是一个火烧眉毛的大问题。于是,检查代码、排查网络、IIS配置、IIS日志、系统日志,均无法定位问题根源。几天下来,同事的无奈,客户的期盼,让自己吃不好,睡不好,精神状态也跌落谷底,自己甚至都在埋怨自己:当初为什么不及早抽身?是不是自己的技术选型错了...,各种消极的情绪弥漫在脑海中!但这时候,没有任何一个人可以代替自己,也没有任何一个人可以帮得上自己,自己只能硬抗下去,解决掉问题!
好几次深夜入睡的时候,自己都在思考整件事情,思忖着自己甘心于近一年的开发,却没有品尝过成功的喜悦吗?
就在这骑虎难下,战况焦灼的时刻,新同事的一个建议,给燃烧着的火焰山带来了一丝下雨的气息。改进了代码,随后在系统的日志中果然找到了详细的错误记录,问题也大白于天下,被迎刃而解!随后,更新代码、测试、发布、查询日志,果然再无登录异常提示。
而一个更让人欣喜的收获是:在上线初期,日用户量达10000人左右的规模下(某周记录的每天用户访问量:5983、11804、11263、12728、9644、4352),服务器运行平稳,说明当初的选择没有大问题。(此时,极为开心,极有成就感......)。
从开始的调研,到技术选型,到框架雏形,到中途的倍受打击,到上线时刻的紧急排错,到最终的平稳运行,其中酸甜苦辣,恐怕只有自己清楚。
总结:
1.遇到问题,要想办法去找出根源,而不是一味退缩,回到以前。
2.心态要开放、眼界要宽,不能仅限于眼前自己熟悉的那些东西。