IT盛世下的蝼蚁:每一位开发者都足以改变世界

开发-小明

某互联网公司PHP程序员

毕业已经2年了,从最开始进入互联网公司成为一名开发人员到现在,遇到了各种类型的问题,也处理了很多问题,但总感觉冥冥之中有股黑暗的力量制约着我,直到8月31日我遇到了她之后……

文章最后面的内容,如果您觉得是广告的话可以忽略不看。

上世纪曾经有一句话大家应该都听过:“21世纪不懂计算机和英语就相当于文盲”,前几年还有人说过 “软件正在统治世界”,最近我又听到了一句话 “在未来的人工智能和大数据时代,有且只有一种职业会保留下来—程序员,” 听到这句话后发自内心的谢谢这位兄弟,我为我选择了程序员职业而自豪,我是未来的希望,有我就有未来……

运维-小鸟:“小明,你的程序上线后网站挂了!”

开发-小明:“不可能,我测试好好的!”

……

错过上一期故事的朋友请自行补课《每一位运维都曾是个侠客》

程序员变成了“程序猿”

不知从什么时候开始我们从程序员变成了“程序猿”(码字猴),开发者变成了 “开发狗” ,从人进化到了更高等的物种(会写代码的动物)。还有一个统称 “码农” ,是自嘲,更是无奈。

其实我们每个程序员都有一颗改变世界的心,只是“环境”还不成熟,下面就来讲讲不成熟的因素都有哪些。

此"环境"非彼"环境"

必须承认我们当前的生活环境已经很恶劣了,但在我们开发者的意识中还有个“环境”更恶略——开发环境,不,是 测试环境,呃~~ 预发布环境、生产环境…… 算了,大家都明白了吧。

入职的第一天,我交了一位新基友,从此“他”就一直陪伴着我到现在,记得第一次折腾了一天到下班时候终于把他跑起来了,大家猜对了,这位基友就是上文提到的各种 “环境”。

随着产品项目的进展,程序的运行环境也需要做相应的调整,既然说到这了,我就把昨天事故的后续进展跟大家说说吧:

开发-小明

代码都测过的怎么上线就出问题了?

我哪知道,代码是你写的。

运维-小鸟

开发-小明

对了,我前两天程序中使用了xxx库,你的生产环境没同步吧?

啥?环境有变化?你怎么不早说?

运维-小鸟

开发-小明

你不是有配置管理吗?环境没有同步吗?

配置管理是管理配置的,不是管理环境的,环境一致性管理还没来得及做。

运维-小鸟

开发-小明

哦,好吧,你说的好像有点乱。

你下次有环境方面的改动一定得通知我们,要不然出了事故对大家都不好。

运维-小鸟

开发-小明

恩,好,知道了。

其实我是来改变世界的,我不想让环境问题影响我?

看起来很好的DevOps

DevOps 是一个合成词,是Developer(开发者)和Operations(运维) 取其前三个字母组合而来,是一种强调开发团队、运维团队以及其他团队之间增强协作与沟通,以达到软件产品快速成熟以及安全可控的流程和方法。定义高大上,愿景也很好,但实际能够真正达到DevOps级别的公司并不多。

昨天的事故明显就是没有DevOps。公司整天提这个词,但却没有真正的落实到实处,到底是哪里出问题了呢?管理?方法?还是说DevOps就是个假设的幻想?

现在问题已经很明显了,通过抽丝剥茧我们定位到了2个基本的问题:

1、环境问题

2、沟通问题

或者干脆把这2个问题合二为一,如果环境能够根据代码的变化自动配置岂不是一举两得?

Docker来了

Docker来了,我们不用部署环境了,需要哪些环境直接Pull下来,把代码加载进去就可以用了,做好镜像交给运维,运维直接线上部署。一切是那么的顺畅与自然,公主与王子一起幸福的生活在一起……等等,这不是故事的结局,之后呢?咱得过日子啊,公主和婆婆怎么相处,王子和丈母娘怎么相处,锅锅碗碗没有不碰的…… ~~跑题了,咱们继续说说引入Docker之后的日子。

环境镜像多了如何处理?

一两个环境还好,如果环境多了管理又是个问题,难道真的让我搭建一套镜像和容器管理的服务?

业务代码如何与镜像一起发布?

容器是没有持久化的,如果想持久化存储数据,就需要挂载磁盘,我的代码是和Dockerfle一起发布好呢,还是容器运行的时候挂载目录好呢?运维那边是不是还需要调整?这些问题怎么解决?

镜像环境定制怎么办?

环境也不是永久不变的,当Pull下来的环境不能满足我的要求需要调整时我发现我又被Dockerfile坑了,我需要学会写Dockerfile,不但会写,我还需要学会调试,积累制作Dockerfile的经验,我发现我又跳进了另外一个大坑!

代码即环境

看到这个词大家可能会联想起很多类似套路的词:“所见即所得”、“即插即用”、软件即服务……虽说是套路,但这个“代码即环境”的理念可以从根本上解决上文提到的2个问题:

环境问题

如果能把环境的描述信息放在代码中,环境跟着代码走岂不是从根本上解决了环境问题了吗。(貌似Docker的初衷就是这个) 但如果我只有源代码,不想写Dockefile怎么办?

沟通问题

如果“代码即环境” 的理论可以付诸实践,我们开发和运维的沟通成本会大大降低,环境是什么代码说了算,代码到哪里环境就到哪里。

原文发布于微信公众号 - 好雨云(goodrain-cloud)

原文发表时间:2016-09-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券