美文网首页
后现代主义的编程时代(三)

后现代主义的编程时代(三)

作者: _CHARSET | 来源:发表于2017-09-02 15:34 被阅读0次

    于是那个曾在回春之血中沐浴的女伯爵,被活埋了……她那曾发生过罄竹难书残酷行径的城堡,轰然坍塌成了废墟。在被遗忘的荒野中,只剩下了一座孤零零的高塔,矗立在埋葬的地牢之上,如昭示着邪恶的象征。

    “解耦……一定要解耦……”女伯爵意识有些模糊了,“社会分工……导致,软件开发……一定是……解耦的……”她躺在玫瑰花瓣那样红的鲜血澡盆里,返老回童的仪式已经过半,过不了几个小时,她会年轻20年,直接变成一个细胞。

    1. 代码编写

    现在国内的开发生态基本上是以JAVA为主。比如笔者工作的地方,项目有60%以上都是。正所谓天下软件,合久必分,分久必合。分有分的美,合有合的帅。试看DOCKER虚拟化技术,为了达到自动化的目标,会要求我们在代码编写和软件开发中,做哪些事情。

    抛开操作系统这样的硬杠杠不说,很多我们的软件依赖于Java的虚拟机环境。那么JVM是必不可少的,而我们规范使用的JSDK也就几种。可见JVM环境可以做成一个DOCKER映像库。同理,WEBLOGIC,MQ/AQ,TOMCAT等也是可以做成规范使用的映像库。

    另外我们的代码库,如果已经上收到规范的版本库如IBM Clear Case,而且支持自动化编译的支持如Maven、Ant,或者能更激进一些使用Jenkins,自动化构建整个运行平台,是多么美妙的事情。你想,开发的小哥做完单元测试,把代码一提交,和组长说,楼下妹子请他喝茶支付,于是组长撇了眼进度表,眉毛一扬,“GO AHEAD!”自动构建平台就抓代码,咕噜咕噜的编译好,然后自动化测试平台把JVM、运行工程、数据库组件、日志收集组件等咔嚓一组合,模拟前端向测试组件咕噜咕噜的吐数据,日志收集组件把所有回归服务全部跑了一遍,最后在测试APP上把结果通知给测试组姐姐。小哥也看到结果,心潮澎湃,忍不住吻了楼下妹子一口,然后和楼下妹子商定明天下午去民政局。这是多么功德无量的事情啊……(即使被拒绝也可以后天去啊!)

    【本文对其他语言如C#/C/C++同样适用。本文不对语言的好坏生态作过多的评论和引导。本文无意于引起语言之争。如果要笔者表态,笔者表示PHP是世界上最好的语言,没有之一。(虽然PHP很烂。)】

    2. 数据库和缓存

    试想你申请完虚拟机,要去求数据库管理员装数据库。正常一点的数据库管理员会强迫虚拟机管理员事先装好几种数据库的版本虚机,交付的时候直接随着虚拟机一起给你。但是新建实例,调试数据库性能参数,甚至导入导出,字符集的事情,会让你和DBA的关系变得特别微妙。你所要的仅仅是一个干净的实例数据库而已,对吧?

    3. 配置文件

    是什么让软件配置变得像多头蛇海德拉那样令人生厌?你永远不知道上线的时候你还漏了那个参数文件。答案还是在于社会分工。工程师们肯定思考的是自己生产的组件能够适应多种环境下运行,所以为他的组件配置了复杂的参数。不幸的是,由于配置文件受到种种因素特别是文化、个性以及宇宙射线的影响比较大,配置文件的位置比一粒沙子中包含的宇宙还多。特别是如果工程师还引用了其他工程师组件,你在纷繁复杂的工程文件中寻找特定配置项目的时候,你开始祈祷无论如何也要让叉状闪电击中你自己。

    【作者所在的工作地点开始倡导配置项存放在数据库中,并且是一个自上而下的动作。可喜可贺啊!】

    我上次去五金店买一个锤子,结果打开包装还发现了一本500页的使用说明。

    4. 日志输出

    运维MM觊觎你的日志文件很久了,她认为你不配合做标准化日志输出是针对她个人的。她甚至准备找机会和你的组长聊聊,并且准备好了四十袋纸巾来容纳她的眼泪。当然你的组长比你更了解这个项目。项目采用了好几个闭源组件,你不给人家额外的钱,人家怎么会乐意给你改呢。所以组长使用了他的高屋建瓴的做法劝回了运维MM。

    如果我们的运维和开发要解耦,日志和运行程序就需要解耦。除了常规的运行日志,还要有精彩的光声电。除了能支持日志文件输出位置的配置,还能支持异步日志和远程日志。

    “解耦……解耦……”女伯爵的声音逐渐变尖起来,她应该已经回到童声期了。


    我们是这么想的。

    如果能把“代码”、“配置”、“数据库”、“日志”等组件解耦,那么至少在容器环境下的自动化运维和自动化无人工值守测试场景中,可以解放无数双手和时间,提高工作的生产效率。

    为不同的配置、数据库和日志做好规范,然后形成固定的DOCKER镜像。

    为代码做好自动构建环境,目标代码放入DOCKER容器,与上述几个镜像的容器对接。

    访问DOCKER内部的网络来进行交互。服务处理完的日志可以卸载后再处理。处理的结果可以对接报告环境形成通告。

    我们会有大把时间去做更多的活儿,比如思考人参啊,参加单身派对啊,写写技术文档啊。总之,比你二十个小时没有睡觉颤颤巍巍的看着屏幕上的“rm -rf *”,犹豫着拍下回车键然后后悔一辈子强。

    科技真美妙。

    相关文章

      网友评论

          本文标题:后现代主义的编程时代(三)

          本文链接:https://www.haomeiwen.com/subject/imnljxtx.html