#中国IDC圈#终于有人把云计算、大数据和人工智能讲明白了( 五 )


通用的应用不用安装:所谓通用的应用 , 一般指一些复杂性比较高 , 但大家都在用的 , 例如数据库 。 几乎所有的应用都会用数据库 , 但数据库软件是标准的 , 虽然安装和维护比较复杂 , 但无论谁安装都是一样 。 这样的应用可以变成标准的PaaS层的应用放在云平台的界面上 。 当用户需要一个数据库时 , 一点就出来了 , 用户就可以直接用了 。 有人问 , 既然谁安装都一个样 , 那我自己来好了 , 不需要花钱在云平台上买 。 当然不是 , 数据库是一个非常难的东西 , 光Oracle这家公司 , 靠数据库就能赚这么多钱 。 买Oracle也是要花很多钱的 。
然而大多数云平台会提供MySQL这样的开源数据库 , 又是开源 , 钱不需要花这么多了 。 但维护这个数据库 , 却需要专门招一个很大的团队 , 如果这个数据库能够优化到能够支撑双十一 , 也不是一年两年能够搞定的 。
比如您是一个做单车的 , 当然没必要招一个非常大的数据库团队来干这件事情 , 成本太高了 , 应该交给云平台来做这件事情 , 专业的事情专业的人来做 , 云平台专门养了几百人维护这套系统 , 您只要专注于您的单车应用就可以了 。
要么是自动部署 , 要么是不用部署 , 总的来说就是应用层你也要少操心 , 这就是PaaS层的重要作用 。
#中国IDC圈#终于有人把云计算、大数据和人工智能讲明白了
文章图片
虽说脚本的方式能够解决自己的应用的部署问题 , 然而不同的环境千差万别 , 一个脚本往往在一个环境上运行正确 , 到另一个环境就不正确了 。
而容器是能更好地解决这个问题 。
#中国IDC圈#终于有人把云计算、大数据和人工智能讲明白了
文章图片
容器是Container , Container另一个意思是集装箱 , 其实容器的思想就是要变成软件交付的集装箱 。 集装箱的特点:一是封装 , 二是标准 。
#中国IDC圈#终于有人把云计算、大数据和人工智能讲明白了
文章图片
在没有集装箱的时代 , 假设将货物从A运到B , 中间要经过三个码头、换三次船 。 每次都要将货物卸下船来 , 摆得七零八落 , 然后搬上船重新整齐摆好 。 因此在没有集装箱时 , 每次换船 , 船员们都要在岸上待几天才能走 。
#中国IDC圈#终于有人把云计算、大数据和人工智能讲明白了
文章图片
有了集装箱以后 , 所有的货物都打包在一起了 , 并且集装箱的尺寸全部一致 , 所以每次换船时 , 一个箱子整体搬过去就行了 , 小时级别就能完成 , 船员再也不用上岸长时间耽搁了 。
这是集装箱“封装”、“标准”两大特点在生活中的应用 。
#中国IDC圈#终于有人把云计算、大数据和人工智能讲明白了
文章图片
那么容器如何对应用打包呢?还是要学习集装箱 。 首先要有个封闭的环境 , 将货物封装起来 , 让货物之间互不干扰、互相隔离 , 这样装货卸货才方便 。 好在Ubuntu中的LXC技术早就能做到这一点 。
封闭的环境主要使用了两种技术 , 一种是看起来是隔离的技术 , 称为Namespace , 也即每个Namespace中的应用看到的是不同的IP地址、用户空间、程号等 。 另一种是用起来是隔离的技术 , 称为Cgroups , 也即明明整台机器有很多的CPU、内存 , 而一个应用只能用其中的一部分 。
所谓的镜像 , 就是将你焊好集装箱的那一刻 , 将集装箱的状态保存下来 , 就像孙悟空说:“定” , 集装箱里面就定在了那一刻 , 然后将这一刻的状态保存成一系列文件 。 这些文件的格式是标准的 , 谁看到这些文件都能还原当时定住的那个时刻 。 将镜像还原成运行时的过程(就是读取镜像文件 , 还原那个时刻的过程)就是容器运行的过程 。