云社区 博客 博客详情
云社区 博客 博客详情

基因、容器和上帝

tsjsdbd 发表于 2019-04-18 14:18:53 04-18 14:18
tsjsdbd 发表于 2019-04-18 14:18:53 2019/04/18
1
3

【摘要】 搞云计算多年,什么容器、虚拟机、网络虚拟化都玩了个遍,近来恰好又因为容器技术接触到基因测序领域,发现所有这些技术其实有个一些共通点。于是总结下从程序猿角度看到的云计算和基因与上帝的关系。Ps:仅供茶余饭后讨论,不必较真,主要还是帮助大家更深入的理解云计算。


作为程序猿,不敢保证上帝一定存在。但是if他存在,他应该是个程序猿。

上帝编码蛋白质合成

    从孟德尔种植豌豆开始,人类就一直在探寻遗传因子,并且也证实了DNA就是控制遗传信息(即基因)的载体。然而有一个问题,一直困扰着人们:就大象和老鼠2个长得差不多的基因怎么会被翻译为完全不同的2种动物呢。说程序猿理解的话:好比2个编译好的二进制程序,看着都是2进制文件嘛,怎么跑起来行为完全不一致呢?注:基因是一种4进制编码

这就得提到后面发现的信使RNA了,整个过程大概这样:DNA→信使RNA→蛋白质。蛋白质才是大家长得不一样的表现,比如同一个人的按理细胞基因都一样,但是眼睛和鼻子却长得不一样,就是合成的蛋白质不一样。

顺便提一下,历史上发现信使RNA的过程非常有意思,有兴趣的可以搜一搜:-)


让我们回到这个神奇的mRNA翻译蛋白质的过程。

首先,蛋白质由一个或多个由氨基酸组成的。已发现氨基酸种类大概是20多种。

其次,基因是4进制(ATCG),如果每2位作为氨基酸编码。那么应该有 4*4 = 16 种氨基酸(而实际氨基酸有20多种,说明2位编码不够)。


如果3个编码为一组对应一种氨基酸,则有 4*4*4 = 64种,比较符合实际发现。事实也是这样,3位基因编码,定义了一种氨基酸。并且还有一个编码表,一一对应这个翻译顺序。这就神奇了,这不就是我们代码时,提前定义写好的map表么~

 

通过提前定义好的map表,控制二进制程序(实际是4进制)怎么运行。至少,我们可以推断上帝应该是个程序猿。

Ps:二进制怎么执行,我们知道了。但是二进制怎么编译出来的呢?这个我认为上帝还有一个“模型 => 二进制的编译器”,他不可能直接写二进制代码,鉴于篇幅,留待想象吧。


现实的再现 - 造物者视角

最早接触虚拟机VM没有什么特别的感觉,就是觉得对物理机的仿真嘛,模拟出了一个看着像物理机一样的东西,使得剩余的CPU能力可以充分利用。然而在接触到Docker容器技术之后,我发现这个事情并没有那么简单。

因为,Docker容器技术和VM虚拟机从技术原理上看,是完全不同的路线,连实现思路都不一样。但是,它们所达成的效果或者说是目标确是惊人的一致:即模拟一台看着像物理机一样的东西。那是不是我们可以推断:如果未来再出现一种虚拟化技术,它的目标依然还是创建一个看着像物理机一样的东西。好比现在的网络虚拟化,也是照着物理网络使劲的去模拟。

那么问题来了,如果你是上帝,那么你会如何创造新的世界?我想你也是照着自己所在的世界来打造的吧。因为从上面VMDocker发展已经看到,这个跟打造用的技术无关,不管用什么技术都是照着原来的世界去模拟而已。

所以如果上帝存在,我们的世界和他的世界大概率是一样的。


一切都是虚幻 - 宠物的视角

我们再回到Docker容器和VM虚拟机里面,首先问个问题:一个程序自己是否知道自己是运行在VM里面,还是物理机里面?答案是基本无法感知。

也就是不管虚拟化的技术如何,最终运行的程序都是无法感知自己到底是跑在容器里面,或者是跑在VM虚机里面。因为它(指一个app程序)看到的一切都好像是真的, CPU、内存以及网络,尽管这些是使用各种不一样的技术组装起来的。意思是一个好的云计算,是不应该让程序感知到自己的世界是如何被创造的。

那么问题来了,当你环顾四周,你能判断出自己的世界是被上帝虚拟出来的,还是原本就是真实的吗?答案还是不能(莫非大侠你能找到内核bug,然后突破guest系统,跑到Host上面去捣乱?)。

 

云世界的上帝

那么如果上帝是存在的,跟我们程序猿又有什么关系呢,因为也许我们只是他创造的众多虚拟时空中的一个而已(平行宇宙?)。其实也不用那么悲观,我们经常会看到Docker-In-Docker或者Docker-In-VM这种技术,意思是就算你本身在VM里面了,你还是可以继续创建VM或者Docker容器的,你拥有这个Docker容器的完整控制权利。

所以作为云计算从业者,我们自己就是云世界里的上帝。如何打造一个好的虚拟机网络或者容器网络,使它能够可以模拟各种复杂的物理组网,来满足APP的需求,就是我们的首要目标。

你看云计算里面,计算是假的(VM),存储是假的(Volume),网络也是假的,所有看到的统统都是假的。然而程序它却跑的很欢,因为它的所有原来的知识栈都不用做任何改变。一个好的“世界”就是这样,让你的“宠物”安静地按照原来世界的方式运行着。最后,希望你能成为一个好的上帝,别让你的程序发现你:-)


登录后可下载附件,请登录或者注册

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:huaweicloud.bbs@huawei.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
评论文章 //点赞 收藏 3
点赞
分享文章到微博
分享文章到朋友圈

评论 (1)


高晓云

1楼2019-04-18 14:48:29
唐老师融会贯通,厉害了呀!
0/1000
评论

登录后可评论,请 登录注册

评论

您还没有写博客的权限!

温馨提示

您确认删除评论吗?

确定
取消
温馨提示

您确认删除评论吗?

删除操作无法恢复,请谨慎操作。

确定
取消
温馨提示

您确认删除博客吗?

确定
取消

确认删除

您确认删除博客吗?

确认删除

您确认删除评论吗?

温馨提示

登录超时或用户已下线,请重新登录!!!

确定
取消