kubeedge架构与核心设计
今天是kubeedge的第一节课,今天主要带大家回顾一下云原生和边缘计算的发展历程
然后我们会重点介绍一下kubeedge这个项目,他的设计背景和核心理念与我们整体的架构
首先是我们来简单回归一下云原生的发展历程
云原生可以借助一张经典的时间线回顾
从早期的2000年,大家在部署或者当你需要去上线一个网站的时候,往往是需要购买一台物理的服务器的
在物理的服务器上去安装操作系统,然后在部署你的软件和你的网站,当你的网站需要扩容的时候
或者说你要上线新的应用的时候,你要去购买新的应用
那么在2001年的时候出现了虚拟化的技术,
主要是vmware引领了虚拟化的浪潮,
那么给大家带来的利好就是,你不需要再去扩新的服务器,你可以在服务器上,通过虚拟化技术,去切出一些小型的虚拟机,
然后在这些不同的虚拟机中,有一个干净的环境去部署新的应用,这个时间持续的比较久,一直到2006年,
出现了云计算的产品,早期的产品就是我们所说的iaas,这里面的代表是aws,aws他的重大的进步是,把虚拟化的技术云化,
然后提供给用户,这个阶段,用户虽然用上了虚拟化,但是还是要去购置一定数量的服务器作为你的资源池,
你上了iaas,上了公有云之后,你不在需要投入成本去维护你的物理的资源池,
可以直接通过公有云的平台去租用一个虚拟机,那么实际上你的这个基础设施,这个颗粒度从原来的物理服务器变成了这个虚拟机
然后到2009年的这个时候是heroku这个私有云的团队的pass平台的出现,那他又把这个资源扩容的颗粒度,往前推了一步,
他提供是基于buildpack的来做的,从云源码到应用的一个部署,也就是说你也不再需要去通过申请虚拟机,然后再来安装应用,
已经相关的环境依赖,来部署你的新的网站了或者所其他的应用,你只需要将你的源码提交,他就会自动将你的应用拉起。
然后到2010年,其实是在基础的云原生上开源的方向演进,这里出现了openstack这个项目,他主要还是从这个颗粒度来看,他的资源扩容的资源还是虚拟机。但因为开源技术的出现,云原生变得容易获得,企业如果要部署自己的云,使用openstack就可以了。或者也有厂商基于openstack来提供公有云的服务。
那么2011年cloudfoundry,实际上是将pass这个云提供了开源的实现,那么他依然采用的是buildpack的服务,从源码到应用的线上部署,然后到2013年,docker容器技术的出现,
真正将云的热度推上了一个新的高度,因为他是通过容器分层的技术,将你的应用以及你对环境的依赖大包,并且通过dockerhub,整个容器镜像分发的标准,让所有人的应用他中间的层次,比如说你这些网站的基础层,你可能说有这个数据库,中间的控制层,上面的视图层,都变得更容易分享,大家可以在现有的基础上做少量的定制开发就可以实现你自己的一个web应用,然后容器技术的出现,实际上或者说docker更多的解决的是在单机上去运行容器,他简化的是单机上部署容器的这个过程,一直到15年,k8s这个项目的出现才真正的把容器技术推上了公有云,或者说是在一个很大的资源池的情况下,可以非常轻松的去部署管理你的应用,可以配置自动的扩缩容的策略也不是基于buildpack从源码到应用的过程,这个透明度过低的情况。而造成一些调试,以及后期二次开发上的困难,容器整体上来说,在这个颗粒度上找到了很好的平衡点,从这个时间上来看,我们这里有几个核心的要素,第一个就是我们这个应用,扩容的单元,从原来的物理服务器,到虚拟机,到中间的快速到buildpacks,一直到后面又回到容器,从这个隔离单元,或者说是资源分配的颗粒度上来说,从原来非常重的服务器,一直到如今广泛的容器,资源也精确到0.1个核或者100M内存或者更小的颗粒度,整个端到端的上线来说也从原来的服务器采购上线的几个月,到如今端到端的秒极扩缩,是一个非常大的改进,实际上在使用体验上的类比是从一个宠物到牛的对比,过去你是像养一个宠物一样,既要精心照料你所有的基础设施,你的应用的配置,到如今更像是一头牛,你只要指挥他去干活进行。
同时在这里的一个变化就是从原来商业上单一的供应商到开源供应商的模式,
开源技术的流行,让厂商开源更加流行的提供这种通用性的服务,那么对于用户来说,他可以在更多的厂商之间选择合适自己的不管是从架构还是配套上,实际上2015年,只是云原生的开启之年,然后k8s从16年到19年一直都持续的火热,他也进3,4年来最火热的开源项目之一,同时,
还出现了其他开源项目,但是还是没有K8s来的猛,现在的话,用户在这个使用,开源技术,用户往往会选择容器,容器已经成为了一个大趋势,另外我们也是成立了一个云原生基金会,整个基金会的版图也是不断的在扩张,整个基金会从早期的实际上只有k8s一个核心的项目,大家可以看到很多项目出现,现在提供的厂商也非常多,类别也非常多,有非常多选择的工具或者产品
接下来我们看一下什么是边缘计算,首先我们来看一下章鱼,章鱼有一个特点,他的40%的神经元是在头部,其他60%的神经元是在触角上,那么这个分布有一个特别的好处就是,他处理问题,是直接在末端就进行思考处理了也就是他的腿来完成,从生物上角度来说,他最大的好处来说,就是减轻了他大脑的功耗,大家知道,生物的算力还是很强的,但是大脑可以维持在一个低功耗的水平,就是因为有大量的神经元树突分布在末端处理,那么边缘计算的兴起,主要是因为万物互链的到来,边缘上的设备是爆发式的增长,但是我们基础上的能力的发展跟不上这样的速度,比如说我们这个网络接入或者我们网络的数据中心,他的时延和带宽是跟不上边缘爆发式的增长的,所有这就会出现一个问题,这个时延就是一个很大的问题,如果你全部接入数据中心处理,那么你的带宽或者能耗都是非常有限的,另外一个还是就是数据隐私上需要必要不必要的数据产出来保护我们用户的隐私,这里我们借助业界的一个实际的图