专栏首页博文视点Broadview为什么会有Kubernetes?

为什么会有Kubernetes?

Kubernetes可以说是云计算PaaS领域的集大成者,它借助了最好的帮助,并且在最适当的时间推出,从而得到了最多的关注。那么Kubernetes是怎样应运而生的呢?

1

云计算大潮

云计算(Cloud Computing)作为一个新兴领域,它是多种技术混合演进的结果,在许多大公司和初创企业的共同推动下,发展极为迅速并且持续火热,带来了新一轮的IT变革。云计算带给企业的创新能力和发展空间是不可想象的,我们所有人都正处于云计算大潮中。

云计算从狭义上讲,指IT基础设施的交付和使用模式,即通过网络以按需、易扩展的方式获取所需资源。广义上则指服务的交付和使用模式,通过网络以按需、易扩展的方式获取所需服务。提供资源的网络被形象地比喻成“云”,其计算能力通常是由分布式的大规模集群和虚拟化技术提供的。而“云”中的计算资源在用户看来是可以扩展,并且可以随时获取、按需使用的。

云计算彻底改变了人们对计算资源的使用方式,有一个形象的比喻说明了云计算革命性的影响:“云”好比一个发电厂,互联网好比是输电线路,只不过这个发电厂对外提供的是IT服务,这种服务将通过互联网传输到千家万户。云计算实现了计算资源从单台发电机供电模式向电厂集中供电模式的转变。

业界根据云计算提供服务资源的类型将其划分为三大类:基础设施即服务(Infrastructure-as-a-Service,IaaS)、平台即服务(Platform-as-a-Service,Paas)和软件即服务(Software-as-a-Service,SaaS),如图所示。

  • —基础设施即服务

基础设施即服务(IaaS)通过虚拟化和分布式存储等技术,实现了对包括服务器、存储设备、网络设备等各种物理资源的抽象,从而形成了一个可扩展、可按需分配的虚拟资源池。IaaS对外呈现的服务是各种基础设置,例如虚拟机、磁盘以及主机互联而成的网络,这些虚拟机中可以运行Windows系统,也可以运行Linux系统,在用户看来,它与一台真实的物理机是没有区别的。目前最具代表性的IaaS产品有AmazonAWS,其提供了虚拟机EC2和云存储S3等服务。

  • —平台即服务

平台即服务(PaaS)为开发者提供了应用的开发环境和运行环境,将开发者从烦琐的IT环境管理中解放出来。自动化应用的部署和运维,使开发者能够集中精力于应用业务开发,极大地提升了应用的开发效率。可以说,PaaS主要面向的是软件专业人员,Google的GAE是PaaS的鼻祖,而Kubernetes可以说是在PaaS的定义范畴内。

  • —软件即服务

软件即服务(SaaS)主要面向使用软件的终端用户。一般来说,SaaS将软件功能以特定的接口形式发布,终端用户通过网络浏览器就可以使用软件功能。终端用户将只关注软件业务的使用,除此之外的工作,如软件的升级和云端实现,对终端用户来说都是透明的。SaaS是应用最广的云计算模式,比如我们在线使用的邮箱系统和各种管理系统都可以认为是SaaS的范畴。

综上所述,可以简单地概括为:SaaS通过网络运行,为最终用户提供应用服务;PaaS是一套工具服务,可以为编码和部署应用程序提供快速、高效的服务;IaaS包括硬件和软件,例如服务器、存储、网络和操作系统。

与SaaS相比,PaaS和IaaS的概念和技术相对较新,下图比较了传统IT、IaaS和PaaS。假设现在要上线一项新业务,传统IT的做法就是自下而上地搭建部署、购置硬件、配置网络、安装操作系统、部署中间件系统,到最后业务上线。使用IaaS的客户则无须关心操作系统以下的实现,Paas更进一步封装操作系统、中间件和运行时,形成标准式的业务发布平台,提供智能化运维能力。这是一种递进式的演化,一步一步地将技术栈分层分级,将资源进行整合管理,可极大提高效率。

正是由于云计算的强大优势,越来越多的公司进入这波潮流中,形成了百家齐放的场面。在云计算的不同层次,在各个行业的不同领域,都涌现出一大批云计算产品,整个云计算市场正在高速发展。

2

不温不火的PaaS

在SaaS的成熟和IaaS的高速发展催生下,特别是在Amazon、Google、Salesforce、Microsoft等公司的推动下,PaaS得到了长足的发展,越来越多的人开始谈论和关注PaaS,包括运营商、互联网巨头、传统IT厂商、咨询和集成商、IT技术媒体等。但是PaaS的发展可以说是一波三折,可以分为三个阶段。

  • —第一代PaaS

比如GAE(Google AppEngine)、SAE(Sina AppEngine)。这是早期的PaaS,当时并没有PaaS这个概念,现在看来是包含在PaaS范围内的。

  • —第二代PaaS

比如Cloud Foundry、Openshift。这是各大IaaS(如Amazon AWS、OpenStack)流行之后,顺势推出的PaaS,并且发展迅速。其中Cloud Foundry是VMware于2011年推出的业界第一个开源PaaS云平台,后来分拆出Pivotal公司进行接管,2014创立Cloud Foundry基金会进行运作。技术和模式相比第一代PaaS都有一定的提高,在云计算大潮中引领了PaaS的发展,一时成为PaaS的代表。华为云、IBM BlueMix、HP Cloud和Dell云服务都采用了Cloud Foundry作为基础。

但是这个阶段的PaaS不管是在市场份额,还是提升速度上都处于弱势,用户对PaaS的兴趣似乎也不大。同时,随着各种云服务之间界限的逐步模糊,一部分人甚至认为PaaS将最终消亡或成为IaaS或者SaaS的一个功能,PaaS处于不温不火的尴尬位置。

  • 第三代PaaS

在Docker火爆之后,利用Docker的特性构建出许多PaaS,比如Kubernetes。这些PaaS更加灵活,更加适应企业,逐渐成为PaaS的主力

3

Docker的逆袭

Docker是一种Linux容器工具集,它是为构建(Build)、交付(Ship)和运行(Run)分布式应用而设计的。作为DotCloud公司的开源项目,其首发版本的时间是2013年3月。该项目很快就受到欢迎,这也使得DotCloud公司将其品牌改为Docker,并最终将其原有的PaaS业务出售而专注在Docker上,Docker完成了华丽的逆袭。

Docker设计理论来自集装箱,假设交付运行环境如同海运,操作系统如同一艘货轮,每一个在操作系统基础上运行的软件都如同一个集装箱,用户可以通过标准化手段自由组装运行环境,同时集装箱的内容可以由用户自定义,也可以由专业人员制造。这样,交付一个软件,就是一系列标准化组件的集合的交付,如同搭建乐高积木,用户只需选择合适的积木组合,并且在顶端署上自己的名字,最后这个标准化组件就是用户的应用。

基于这个理念,在技术实现上,Docker利用容器(Container)来实现类似虚拟机的功能,从而利用更加节省的硬件资源提供给用户更多的计算资源。同虚拟机的方式不同,容器并不是一套硬件虚拟化方法,也无法归属到全虚拟化、部分虚拟化和半虚拟化中的任意一个,而是一个操作系统级虚拟化方法。

Docker容器技术的优势有以下几点。

—一次构建,到处运行

当将容器固化成镜像后,可以快速地加载到任何环境中部署运行。而构建出来的镜像打包了应用运行所需的程序、依赖和运行环境,这是一个完整可用的应用集装箱,在任何环境下都能保证环境的一致性。

—容器的快速轻量

容器的启动、停止和销毁都是以秒或毫秒为单位的,并且相比传统的虚拟化技术,使用容器在CPU、内存,网络I/O等资源上的性能损耗都有同样水平甚至更优的表现。

—完整的生态链

容器技术并不是Docker首创,但是以往的容器实现只关注于如何运行,而Docker站在巨人的肩膀上进行了整合和创新,特别是Docker镜像的设计,完美地为容器从构建、交付到运行提供了完整的生态链支持。

Docker 1.0在2014年6月发布,而且延续了之前每月发布一个版本的节奏。其1.0版本标志着Docker公司认为Docker平台已经足够成熟,并可以被应用到生产环境中。每月的版本更新显示出该项目正在快速发展,比如增加新的特性,解决发现的问题等。

Docker的持续火热是有着坚实的基础来支撑的。Docker吸引了业界众多知名大牌厂家的支持,其中包括Amazon、Canonical、CenturyLink、Google、IBM、Microsoft、New Relic、Pivotal、Red Hat和VMware,这使得只要在有Linux的地方,Docker就几乎随处可用。除了这些大厂,许多初创企业也围绕着Docker来发展,或是将他们的发展方向和Docker更好地结合起来。所有这些合作伙伴都驱动着Docker核心项目和周边生态系统的快速发展。

更重要的是Docker的流行和标准化,激活了一直不温不火的PaaS,随之而来的是各类Micro-PaaS的出现,Kubernetes是其中最具代表性的一员。

——本文选自《Kubernetes实战》

本文分享自微信公众号 - 博文视点Broadview(bvbooks)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-04-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 张金明:一本Apple Watch开发参考书

    近些年,随着政府着力推进“互联网+”战略,国内互联网的发展进入了新的里程。移动互联网、宽带互联、物联网、智能硬件等相关的创业公司如雨后春笋般出现,并表现出了极强...

    博文视点Broadview
  • 快速了解Druid——实时大数据分析软件

    本问介绍的Druid 是一个分布式的支持实时分析的数据存储系统(Data Store)。美国广告技术公司MetaMarkets 于2011 年创建了Druid ...

    博文视点Broadview
  • 主流 PaaS 平台架构:谷歌GAE、AEB、Cloud Foundry、Heroku

    公有 PaaS 平台并没有达成共识,没有统一应用的 PaaS 服务 API,因此不便于应用在各平台之间移植。谷歌、亚马逊与微软三大巨头在 PaaS 领域分庭对立...

    博文视点Broadview
  • 通俗了解IaaS,PaaS,SaaS

    【IT168 评论】云服务已经被大众所熟知,但对于刚接触云计算的朋友来说,仍然是云里雾里的绕着,今天小编就为你解读一下云计算的几种服务模式,IaaS,PaaS,...

    企鹅号小编
  • Docker容器实战(一) - 封神Server端技术

    即使在当时最热门的PaaS项目Cloud Foundry中,容器也只是其最底层、最没人关注的那一部分。

    JavaEdge
  • 什么是paas?

    最近公司有一个项目是要将原有的项目部署到paas 上面,需要研发配合, 由于公司之前用的都是阿里的东西,然后现在的paas平台的一套东西用的是腾讯的,然后现在就...

    居士
  • Go语言学习——如何实现一个过滤器

      做业务的时候我们经常要使用过滤器或者拦截器(听这口音就是从Java过来的)。常见的场景如一个HTTP请求,需要经过鉴权过滤器、白名单校验过滤、参数验证过滤器...

    JackieZheng
  • 吃火锅,秒懂云计算!

    科技让生活更智能,当今云计算,大数据 箭步般无声息的来到我们身边今天小编就以一种轻松有趣的方式给各位老板解释一下什么是云计算 ? 用火锅解释云计算最形象不过了 ...

    企鹅号小编
  • Redis源码解析——Zipmap

            本文介绍的是Redis中Zipmap的原理和实现。(转载请指明出于breaksoftware的csdn博客)

    方亮
  • 深入理解volatile的内存语义内存可见性禁止重排序

    一旦一个共享变量(类的成员变量、 类的静态成员变量) 被 volatile 修饰之后, 那么就具备了两层语义:

    desperate633

扫码关注云+社区

领取腾讯云代金券