最近这个月主要在接触的东西都比较贴近基础架构,感觉有点远离业务了。不过总的来说还是比较有趣的,虽然有的时候在解释和沟通一些事情的时候感觉比较吃力,但CTO感觉还是比较懂的。基本上在这个层面上把事情讲清楚以后后面就都很好推进了。
首先由于公司准备把一部分业务迁移到AWS上再做一些把服务作为Saas再提供出去的事情,去上海参加了一个为期三天的AWS培训。第一天还是相当有干货的,当然后面两天基本上就是Lab和广告时间了。老师包光磊的水平是很不错的,纠正了我之前不少的错误观念。其实事实上大部分人也只是把“云”当做一个托管机房在用而已。启动几个EC2,然后装一个Http服务器在其中一个上面,后面挂几个装了Tomcat的EC2作为HA之类的机制。
当然这是不正确的。正确的打开方式是尽量使用AWS提供的无状态组件将你的整个架构拼装起来,使用诸如ELB,AutoScalingGroup之类的工具,使得整个应用服务器集群能够做到容灾和自动扩展,从而在面对大流量高并发甚至是DDos攻击的时候能真正做到无所畏惧(事实上就算你只需要一个EC2,也是应该用AutoScalingGroup的,想想看为什么)。有个很关键的理解就是AWS是不提供相对一体化的解决方案的,他提供的只是一系列质量稳定、功能完善的模块,由你自己来对整个架构进行组合,这也许就是整个AWS服务的Logo是一个积木群的原因吧。当然还是会有很多最佳实践和范例可供参考的。
另外在试用Vpc功能的时候,发现SDN设计和实现的真的是非常好的,反过来看,一些一天到晚大肆吹嘘SDN的网络设备厂商,至今似乎也没有什么像样的标准化的东西可以拿出来嘛。当然这是题外话,此处就不延伸了。。。
第二件一直在推进的事情就是Docker化。其实我最初提倡这个的原因非常简单就是觉得这样比较环保,因为测试服务器资源有限所以环境经常被开发人员或者部署和测试的人弄得乱七八糟,然后搞虚拟机暂时来看不怎么现实,所以使用Docker是短期看来既省钱又省力还能促进大家改善自己模块化的一个很好的主意。
当然,在推进的过程中也遇到了一些阻力,包括来自一些“消极开发人员”以及希望Docker能做更多事情的高层管理。好在我最近似乎口才不错,说(忽)服(悠 )别人的能力也越来越强了。最终的调整方向还是往我期待的方向进行了。
图片来自 http://www.infoq.com/cn/news/2016/08/sunqing-docker-kubernetes-CICD整个流程是参照这个图进行调整的,当然因为一些自动化测试方面工具链和经验的欠缺,目前我们只是通过Jenkins进行编译然后将Docker启动提供给QA进行测试而已然后不熟悉的人反正可以通过WebUI来进行各种操作。另外目前主要业务都是跑在Tomcat里的Web服务,也没有将镜像保存至仓库的需求(仅仅是挂载war包到Tomcat中就够了)。接下来主要努力的方向是Docker的集群化和一些平台服务的提供(ELK、监控等等 )。
最后一件事是一个来自领导要求的KPI项目,虽然我也有参与但主要是另几位同事在做。主要是提炼项目模板和框架化之类的目的。这种漫无目的过度工程的事情其实我是比较反对的,不过主要是其他几位同事在做,我处于暗中观察的状态。其实我更愿意根据一些开发、部署中遇到的痛点来定位问题,然后再决定是使用第三方工具或是集成到目前的模板里之类的事情的。事实上,我一直觉得框架演进就和团队建设一样,是必定不能通过外力促成的一件事情(相关参考:敏捷有毒)。
至于这件事情最终结果怎么样,从中是否还能做出一点有意义的事情呢。期待下个月小记:)
网友评论