为了说清楚这些问题,但又不希望你们被更多专业IT术语绕得更晕。(IT界造词能力真的强~)我们决定努力一把,尽量大白话加上灵魂配图,从以下三个角度展开说:1、追溯一下企业级IT的历史,看看CMP云管平台和云原生平台诞生的土壤;2、放眼当下,看看多云平台常见的五种使用场景,你就明白多云平台关心的重点是什么了;3、强行对比一波,多云平台和多云管理平台的相同点和不同点。中间绕不过去的一些专业概念,比如中间件啊、虚拟化啊、容器啊、抽象啊,我们都来一波灵魂版科普~~为了便于理解,我们把世界分为两种,一种是传统企业级IT世界,一种是云原生IT世界。传统企业级IT世界长这样,由应用,中间件,DB数据库,OS操作系统,本地硬件资源组成。中间件这个词最早1968年就出现了,但是到1990年才算是在传统企业级IT世界里扎根下来,成为坚实的一部分。所以可以说这个世界在1990年正式成形,到现在已经快30年。
这里面可能会让人有点费解的就是中间件了,从名字完全看不出来是干嘛的。现在被广泛认可的定义是:位于操作系统和应用之间的就是中间件。中间件出现之前,应用跟操作系统是一对一直连的。这造成的麻烦是:不同应用之间互相隔离,各自为政,形成下图左边这种多筒仓式结构。应用无法在不同平台或OS环境中移植,而这会造成大量重复工作及效率低下不灵活。
而像右图,中间件提供了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件就几乎不需任何修改。
(然而,随着中间件发展得越来越庞大而复杂,不同中间件提供商经常使用专有的API和专有协议,不同厂家之间无法互通,或者有些中间件只支持某些平台,中间件本身的使用也变得很复杂,这些就都是别的坑了。。。。)在这个世界里还有一个延伸主体存在:IT咨询公司,主要提供BPM(商业流程管理)服务。说白了,就是有一批聪明人意识到,所有的数据背后所代表的都是业务流程中的某个步骤。而一个业务流程是由系统和人共同完成的,咨询公司就负责帮公司找出这个过程中效率低下的地方,由IT人员把那些可以自动化的事情自动化,确保信息在正确的时间流向正确的地方,同时对人进行监控和管理,确保人和系统共同达成业务目标。
Hypervisor一种运行在基础物理服务器和操作系统之间的中间软件层。物理机时代,需要把很多不同应用堆在一台服务器上,这些应用如果不能和睦相处就会造成装了这个搞死那个的情况。而虚拟化的思路是,用hypervisor软件欺骗操作系统,让他们以为自己是在独立的硬件上,其实他们看到的所有硬件设备都是经过hypervisor封装过的“虚拟”设备。
然后,你只需要为不同的应用申请不同的“虚拟机”就行了。
虚拟化到一定规模,就出现了私有云,对外开放服务就有了公有云。许多公司逐渐发现自己要处理许多云管理工具,有些管私有云的,有些是管公有云的,有些负责A功能,有些负责B功能,他们之间也都互相隔离,造成很多重复工作和麻烦。这就引发了一个新需求:一个帮助企业统一集中管理这些云管理工具的平台,为IT管理提供便利。
标志性事件是2013年Docker 的出现,容器技术的成熟标志着技术新纪元的开启,使原有的基于虚拟机的云主机应用,彻底转变为更加灵活和轻量的“容器+编排调度”的云平台应用。Docker 提供了让开发工程师可以将应用和依赖封装到一个可移植的容器中的能力。容器技术通过操作系统提供的各种隔离机制,让进程误以为在一个独立的空间内运行,从而实现了既能共享内核又能避免冲突。因此,在容器时代,虚拟化已经不那么重要,容器的隔离机制已经一定程度上替代了虚拟化的作用。经过十几年的发展,公有云平台已经足够成熟,能够提供灵活快速的集成能力,同时提供中间件云服务工具,DB,满足企业级用户的需求。不同于传统IT世界,在这个世界里,企业应用与底层资源之间的距离大大缩短。
最开始更常见的一般是在云上做测试/开发,在本地进行生产。但有时候可能颠倒过来,因为你可能需要云的多区域能力或者像CloudFront CDN这种高级功能来为生产环境加速。
参考:我们之前做的全球公有云地域分布图
本地资源一般不可能按峰值需求采购。所以在资源不足时,需要云上资源来对本地资源进行弹性补充。
在一朵云上跑一个生产系统的应用,同时在另一朵云上备份一个同样的应用,并保持数据同步。最大程度确保数据安全。
多云环境既可以让你在多个云上跑完全不同的应用,也能让你同时跑单个应用。同一个应用的不同组件分别在不同云上同时运行,如果一朵云出了问题,任务是有可能完全不受影响的,让损失降到最低。
多云能让工作任务被动态地部署在多云环境里,始终利用性价比最高的资源。
相同点就一条,两者都能对本地以及多个公有云资源进行纳管,都能对底层资源进行抽象。
云管平台是从水平层面实现对用户底层资源进行全面集中管理,大而全。我们是从用户的应用层面往下,考虑整个业务的运行优化,完成对底层资源的调度和管理。呃,抽象的意思就是我基于底下的功能或资源抽象出一个池子,你不用管我怎么实现,你告诉池子你要啥,你要干嘛就得了。
扫下图二维码添加小F微信(ID:imfastone)云资源中的低成本战斗机——竞价实例,AWS、阿里云等六家云厂商完全用户使用指南
非容器化应用怎么玩多云?Kubernetes不管我们管啊
全球半导体行业上云格局一览和十个上云实践问题的解答
2019.7数据 | 15个数字看最新多云和云原生技术趋势
3秒即得最低价,速石上线「多云成本计算器」,来算一下?