基因、容器和上帝-4008云顶国际网站

发表于 2019/04/18 14:18:53 2019/04/18
【摘要】 搞云计算多年,什么容器、虚拟机、网络虚拟化都玩了个遍,近来恰好又因为容器技术接触到基因测序领域,发现所有这些技术其实有个一些共通点。于是总结下从程序猿角度看到的云计算和基因与上帝的关系。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发展已经看到,这个跟打造用的技术无关,不管用什么技术都是照着原来的世界去模拟而已。

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


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

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

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

 

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

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

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


【4008云顶国际集团的版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。