本文首发于我的公众号 Linux云计算网络(id: cloud_dev),专注于干货分享,号内有 10T 书籍和视频资源,后台回复 「1024」 即可领取,欢迎大家关注,二维码文末可以扫。
云计算的发展历史
我们主要从用户对云计算的认知角度来谈云计算的发展史,至于它从提出到发扬光大的那些大事件,网上搜下就知道了,而且我觉得去谈那些发展事件意义也不大,倒不如说说我们对云计算的一个认知变化过程,我觉得任何事物存在必有其可循的迹象,可能在很久以前这东西就存在了,只不过在当时的情境下不叫这个名字而已,随着技术的发展和环境的变化,自然就演变成今天的样子。
就云计算这个话题,我就拿我们个人来举个例子,假设一个开发者闭关数日,不分白天与黑夜,倾心 Coding,终于开发出一款自认为很牛逼的产品,准备上线了,但是苦于没有服务器(资源)来承载他的产品,于是他勒紧裤腰带买了一台。上线没几天,这款产品出人意料的火爆,完全超出这名开发者的预想,于是,为了支撑流量的上涨,他又买了更多的服务器,为了维护这些服务器集群,他又开始自建机房,自己部署业务系统并运维。看着眼前这小有成就的一切,这名开发者却漏出了难色,这些支离破碎的机房运维管理工作搞得人焦头烂额,都没有心思 Coding 了。这个时候他听说有一些 IDC (Internet Data Center)运营商可以帮助企业或个人托管服务器资源,于是便当机立断把自己的服务器集群转移到 IDC 托管。正当他准备撸起袖子 Coding 之时,想到要定期去采购设备,还要跟 IDC 那边交接托管的事情就头大。这时,他又听朋友说云计算可以解决他这个问题,于是他又跑到一家云计算厂商,租用了一些资源就把这一切都搞定了。忙活了一通,终于可以安心 Coding 了。=
上面这个小故事是我杜撰的,或许能在一定程度上帮助你了解云计算的一个发展历史,从自建机房,到 IDC 托管,再到云计算,整体经历过这么三个阶段。当然,从技术的角度来说,云计算的思想也是早已有之,从早期的网格计算,分布式计算,再到虚拟化技术,无不跟云计算息息相关。云计算的出现,离不开人们的需求日益变化和技术人对技术的倾心专研。
云计算服务类型
最终,云计算反过来为人们提供更好的服务。从人们的需求来看,云计算总体上提供三类服务:IaaS、PaaS 和 SaaS。
关于这三类服务,我在前文中也说了一些,在这里总结一下,IaaS 主要提供的是底层的资源服务,比如服务器、存储、网络,企业或个人租用了这些资源之后,可以根据自己的需求定制自身的业务系统,如采用什么部署环境,开发环境等,这种一般比较适合于中大规模企业。
PaaS 则是在此基础上事先构建好了所有和开发、测试、运维等相关的环境,个人或企业可以专注在自身的业务逻辑上,不必去关心底层的运行环境,因为它一般能给你提供一个高可用,高可靠,可扩展的环境,这种一般适合于个人或小规模的企业。
SaaS 就更直接一些,提供的是现成的软件或应用的服务,如 email 服务等,这种比较具有普适性,不管是个人,还是任何规模的企业,都有使用现成的各类软件的需求。
云计算的分层架构
上面科普完了,下面从技术的角度简要说说云计算的架构。任何技术,总少不了会采用分层的架构(貌似是这样的~),这也验证了某位科学先驱所说的,任何问题,都可以通过增加一个间接的中间层来解决。云计算的分层架构可以从技术和使用者,也就是租户的角度,分为两种不同的架构,如下图,左边是技术视角架构,右边租户视角架构。
从技术视角看,计算、存储、网络等底层基础设施构成硬件资源层,虚拟化层通过虚拟化技术,并根据上层应用需求分配、编排和管理着这些资源,为了让资源具备高可用、高可靠,以及可扩展等特性,增加相应的中间层来支持,最上层则提供 Web 等友好控制台给用户,以 RESTful API 的方式展示资源,提高用户体验。
而从租户视角来看,租户根据自身业务的需求,如高可用,和所属业务领域,如游戏,依据不同的业务逻辑,来申请使用资源。这种方式能够很好隔离资源的提供者和使用者,提高了灵活性,让资源能够得到最大化的利用。
本文的目的是希望对云计算形成一个总体的认识,因为我觉得学习任何知识,按照总-分-总这条路线来进行的话,对后面深入学习会有很大的帮助,但是这得花一些时间去整理、总结,才能比较好的输出,但你们很幸运,可以直接看我总结好的,为了鼓励我更好的输出给你们,动动手指给我个赞吧,另外,由于能力有限,难免会有错误,还望留言给我指出。
公众号后台回复“加群”,带你进入高手如云交流群
我的公众号 「Linux云计算网络」(id: cloud_dev) ,号内有 10T 书籍和视频资源,后台回复 「1024」 即可领取,分享的内容包括但不限于 Linux、网络、云计算虚拟化、容器Docker、OpenStack、Kubernetes、工具、SDN、OVS、DPDK、Go、Python、C/C++编程技术等内容,欢迎大家关注。