如今是云时代,云计算,大数据,人工智能等新的名词在最近爆火。今天我们来了解一下,云计算与云原生。
在了解云原生之前,我们必须要了解云计算。
云计算
什么是云计算?
在了解云计算之前我们需要先了解一下什么叫做分布式计算。
什么是分布式计算?
在了解分布式计算之前,我们需要先了解一下目前的互联网的一些常识和背景。
随着越来越多的网民开始使用互联网,如今互联网已经几乎进入了全民化的时代。不算国外的人口,中国使用互联网的人数保守有10亿人。有一些很火爆的软件,例如:QQ,微信,淘宝等等。这些软件的并发量可能在某些特定时期会达到上千万。如此大的并发量,一台服务器肯定是无法容纳的,而我们的服务器是有性能瓶颈的,单台服务器的容灾能力就算再强,也是有极限的。因此我们需要做服务器集群,就是把一个应用使用多台服务器来进行处理。
到这里,我们就可以解释什么叫做分布式计算了。
分布式计算就是随着计算机技术的发展,有些任务需要极其强大的算力才可以完成,我们把应用分解成很多小的部分,分配给多台计算机进行处理,也就是集群。
解释清除分布式计算之后,我们直接上结论:
云计算是分布式计算的一种
你可以理解成:
服务器会以某种方式得到大量的数据,这个数据极其大量,导致一台服务器不可能完成解析,因此我们通过多部服务器组成的集群系统进行处理和分析,然后返回结果给用户。多台服务器集群进行处理和分析不就是分布式计算吗
云计算这个词,可以进行拆分。
可以分成云 + 计算。
云按照我的理解其实就是企业的服务器。 你可以把云理解成远端,也就是非本机。就好比我们是站在地上的人,在地上看着天空中的云朵。云朵和我的人是分开的。我这个人就是客户端,云朵就是服务器。其实这个概念很简单。
计算就是分布式计算的过程,把用户的需求进行整合,按需分配,向用户提供个性化的服务。
我的用户需要服务器的某一些资源,服务器给我们整合之后给我们使用。这个其实就是云计算提供的服务类型中的Saas(software as a service)。
我们可以抽象的思考一下云这个概念:云很软,云很有弹性,伸缩性很强,这也正是云计算的特点(一会儿再说)。因此我们以云来称谓。
云是由雨水聚集而成的,是雨水的群组。而云计算只不过是计算机与互联网汇集起来的群组而已。这个群组将一个又一个电脑和服务器连接在一起,形成一个云组,再通过云计算超级强大的算力获取信息。云计算也不仅仅只有计算一种,还有云存储,以及云物联等。
云是一个很有伸缩性和弹性的事物,云计算可以让我们按需所取,按照我们的使用量进行付费,避免浪费。
- 以前需要用水,就自己打井。
- 以前需要计算资源(就是服务器),就自己买服务器。
- 以前水井的水不够用,就需要打新的井。
- 以前计算资源不够用,就需要买新的服务器。
- 现在有个自来水公司,如果需要水,就提供水。可以根据用水量,随时调用水通过水管送达。
- 现在有个XX公司(云计算服务供应商),如果需要计算资源,就提供计算资源。可以根据计算资源需求量,随时调用计算资源通过网络提供。
- 自来水公司从很多的水井、水库、河道取水,然后通过水管提供给很多不同的用户。
- XX公司配备了很多大大小小真实的服务器,然后通过网络远程提供给很多不同的用户。
- 自来水公司通过蓄水池汇集各种水源,统一提供给用户。
- XX公司通过云计算平台系统汇集各种服务器,统一提供给用户。
这个就是我们的按需所取,就像自来水的水管一样,我们需要多少,就打多少水。
先拿软件举例子,我的b站上全是视频,这些视频没有保存在你的手机里面,你想看多少,就直接去看就行了,按需所取,而视频资源太多,整合起来一个服务器肯定是不行的,所以要集群。而b站会根据的爱好去个性化推送,这个就体现了计算这两个字。
我们说了那么多,云计算是给用户提供服务的,那么云计算是提供什么服务呢?
答案是给用户提供软件服务,所以我们必须先认识到什么是软件。
先说说常见的我们自己手头的笔记本电脑。电脑得有电源线、键盘、鼠标、显示器等一系列硬件,组装起来后就形成了一个裸机;裸机上会装操作系统,或者windows或者linux;然后操作系统上,会安装各种应用程序,比方说,QQ、酷狗音乐、office软件;在操作系统和软件之间呢,往往还有一层我们平时接触不到的,那就是数据库或者中间件层。这些硬件上方的都是软件
这些可以与Iaas,Paas,Saas对饮(后面再讲,先插个眼)
至于企业级IT系统架构呢,往往有个机房,机房里会有各种机架、服务器、散热冷却设备等,然后在服务器上会安装操作系统以及各种数据库、应用程序,然后存储这大量的数据。这些都可以拿自己的电脑去做粗略的类比。企业级数据中心大概长成下图这个样子:
那么IT系统组成,大概如下图所示。IT系统共分为9个层次,可以总结浓缩为:基础设施层,平台软件层,应用软件层和数据信息层。
以下段落参考:
很通俗地告诉你什么是云计算 - 知乎
在了解软件和IT系统结构后,云的概念也就很好理解了。传统电脑,你输入一个命令,程序会在你自己的电脑上进行计算,最后输出到你自己的电脑上,比如你用鼠标点击了一个视频,播放器就会自动播放,通过显示器把声音图像显示出来。而云计算是把整个计算资源放在云端,也就是输入输出与计算分离。你输入一个命令通过网络传输到云端计算好后再传回来,这就是通俗云计算的概念。这样的话我们常常听到的三种服务模式IaaS/PaaS/SaaS,以及三种部署模式公有云、私有云及混合云也就很好理解。
如果在云端开放的是基础设施层,也就是你登入云端看到一个虚拟的基础设施(通常带操作系统)就是IaaS(infrastructure as a service),包含计算、存储、网络等。如果开放的是平台软件层(数据库、中间件等)那就是PaaS(platformas a service)。如果开放的是应用软件层就是SaaS(software as a service)。
那么三种部署模式呢?公有云就是云端资源大家一起用,像亚马逊的AWS、微软的Azure以及阿里云提供最多的是公有云服务。私有云就是云端资源你自己单位用,比如在你自己的公司部署一个数据中心,或者托管在别处(如在阿里云,机柜就给自己公司用)。混合云就是两者兼而有之。还有另外一个概念叫社区云,但实际业务中用得不多,这里不再赘述。
以上就是云计算的概念,以及三种服务模式、三种部署模式。那么你可能会问,云计算有什么优势?为什么企业会上云?为什么AWS快超过200亿美元的营收却依然每年超过30%的飞涨,国内的阿里云也是超过100亿人民币的年营收?这是另外的一个话题了。简单说一说,假设自己公司要自建数据中心,那么我们得准备并设计机房,得做好冷却措施(参考美剧硅谷传奇那个服务器的散热量),要布线路,要设计灾备防止数据丢失,要去招标采购服务器,服务器还要运输安装,然后自己安装操作系统及各种软件等等,这一套下来,每个一年半载根本做不完。而云端的资源全是虚拟化的、池化的资源,你可以在几分钟以内就能启动一台虚拟机,并且支持按需付费,只在使用的时候产生费用,不用的时候关掉就可以节约成本。例如双十一时各大购物网站没有宕机,上下班高峰期贡献单车也还很流畅,这里面实际用了云计算的弹性伸缩特性。计算是一种能力,云计算提供可扩展的、无限的这种能力。天猫淘宝部署在阿里云上、摩拜单车由微软的Azure驱动等等,都是云的典型应用模式。可以看到,传统数据中心、服务器销量逐渐下降,被云计算和云端数据中心取代;而现在几乎看不到传统软件的创业公司,软件业大多部署在云端,采用SaaS模式面向市场。
当然,还有另外一个很大的话题。云计算实际上与物联网、工业4.0、人工智能等概念实际上是分不开的。如果放在企业数字化转型这个大话题上,你会发现很多概念间有很多很好的结合点…… 云计算是生产力,大数据是生产资料,各种算法是生产工具。物联网平台需要一个云端,复杂的人工智能大数据引擎需要运行在云端等等。云是下一次工业革命,也就是数字化革命必不可少的一环,也就是为什么近期华为愿意投资15个亿也要做云。
前面我们有提到过云计算是按需所取的,现在我们可以很容易的理解了,按需所取就好比是我这个时候需要开通你的云服务器Iass服务,我可以开,不要的时候我就不开,不需要自己去建立一个机房,浪费极多的成本。如果我需要云数据库等东西,就开启Paas服务就可以了。我需要某一个软件功能,就直接充钱就行了,不需要自己创造这个功能。
我们来几张图方便理解:
大家可以看一看这个博客:
“云”到底是什么?--科普贴_PostTruth的博客-CSDN博客_云到底是什么
总结,云计算就是,以分布式计算的方式,以极高的算力(运行效率),弹性的,按需的提供用户的需求,需求包括基础设施上的,平台上的和应用上的。
说白了,云计算就是一种按照需求通过 Internet 获取计算资源的形态。这些计算资源被包装成为服务,提供给用户。而提供这些服务的主体,我们称之为云服务供应商(Cloud Service Provider)。
比如国内我们熟知的 阿里云,腾讯云等,都有提供 IaaS,PaaS,SaaS 等服务。当然了这些都是公有云,我们也可以搭建自己的私有云,但本质上都是一样的。
云计算目前的应用
有教育云,例如中国大学MOOC。金融云:微信支付,支付宝等
云原生
云原生是离不开云计算的。云原生实际上是云计算服务提供中的Paas,平台服务层。
也就是一个K8s的平台。
由于并发量大导致集群,由集群导致项目部署和维护很困难,因为我有10个服务器,每一个服务器上面跑100个微服务,你是无法进行维护的,因此我们需要一个自动监控的东西,也就是k8s。这个运维的工作就是云原生。那么docker就是让云计算的空间资源分区,容器化,环境之间互不干扰。
云原生就是通过容器化和DevOps,还有微服务架构实现应用弹性伸缩和自动化部署,充分利用云计算资源实现在最少的空间里做最大的事。云原生 = 云+原生。云就是云计算提供的服务,原生就是原生应用,有各种原生应用,不同的应用部署方式和环境不同。而云原生就是用来解决这些问题的。
因此,云计算的概念是比云原生的概念要宏观的。
云计算和云原生为大数据提供数据的存储平台,是基础建设,而大数据的数据量为人工智能提供学习的机会。大概就是这样的一个关系。