Docker Or PaaS

背景

PaaS作为云计算的三种服务形式之一,似乎一直不温不火,裹足不前。Docker的出现似乎又带来了一种新的选择,而且对于开发者来说更加灵活、便捷、易用。既然用户可以直接在Docker上运行,PaaS是否还有应用场景?面对企业繁杂的应用环境,用Docker作为PaaS的替代方案是否完美无缺?

PaaS是企业的刚需?

Docker是容器
PaaS是服务
从概念上来看PaaS是完美的解决方案,从深远的战略考虑也是更优秀的选择,并且PaaS模式现在更多的是融合了容器技术。
PaaS虽然已经成熟,但是成熟和普及直接仍然有一道鸿沟。我相信中国的互联网发展水平已经非常领先,但是大部分的企业及公司并不具备形成PaaS完整生态链的条件,以及成百上千足够复杂的应用场景,包括PaaS服务的成本等。这也是为什么Docker炙手可热,而PaaS不温不火的原因。当然两者面向的客户和目标也是不同的。

后面的文章会继续探索利用Docker来构建微服务,我相信这是大部分互联网公司选择的解决方案。

平台先行

  当一个企业IT足够强大,将IT视为其生命力时,IT部门往往会先于业务部门考虑业务创新,对企业发展起主导作用。通过吸收更多来自新兴技术的想法,拥抱优秀的开源技术,计划如何构建云计算、大数据平台等技术手段,应对未来可能出现的爆发型增长需求。这也就是“平台先行”的路径。

  平台先行带来的好处在于构建统一的IaaS和PaaS平台后,企业所有的硬件资源和工具软件资源被整合到一起,底层数据实现统一融合。这样不仅简化了维护的复杂度,缩短程序的开发成本周期,实现了多种应用开发部署平台的统一,也提高了企业内部人员的响应速度,提高生产效率,同时降低了维护成本云经济效应逐渐凸显。

应用先行

  但我们所看到的中国绝大部分企业还是走了应用先行的路线。 移动互联网的崛起使企业应用开发不得不忙于追赶市场趋势的脚步,这在造成软件开发成本和硬件资源消耗急剧上升的同时,今天几乎所有的企业的应用系统建设的脚步都在加快,传统应用的升级换代仍在进行,新的移动应用层出不穷,开发模式不同带来的挑战,应用的管理和维护的复杂度提高趋势越来越明显。这时候云计算到了必须推动其变革的阶段。在PaaS的层面带来的益处恰好就是实现DevOps是最为行之有效的办法,它能让整个开发设计测试部署的周期变得缩短,有效降低了管理维护难度,提高了系统面向市场压力的产品更新速度。

满足PaaS的场景

应用足够复杂

包括历史遗留的应用,还有新型待开发的应用

虚拟化即IaaS无法解决

由于多种应用产生的多种数据源即将部署的各种开源的大数据技术体系在企业的传统系统建设情况分析,从应用到WebServer,运行时到数据库最后到主机网络和存储,通常呈现“烟囱式”的形态,多种烟囱并存几乎是所以企业今天面临的共同难题,而且它也绝不是单单通过虚拟化能解决的。IaaS的工作就是把在开发时企业所关注的一系列底层的资源隔离出来,进行抽象管理,实现硬件资源的横向打通和统一调度,而不再需要某一个特定的环境。

PaaS区别于虚拟化技术对硬件资源的管理和整合,它实现对软件资源的调度、伸缩和管理,会涉及到很多的中间件、容器、数据库、监控管理,任务调度等等。PaaS通过提供统一管理Dashboard,可以让用户直观地看到上面成百上千应用的运行状态、资源使用情况、灵活调配资源,系统自动实现调度资源、管理资源、发布应用,而且新应用很容易在上面进行发布、管理,降低整个使用周期。这对过去IT系统开发运维是一个根本性变革。

Docker和PaaS间的抉择

  Docker通过将应用程序打包成Docker文件或者镜象,发布在整个容器当中,能够实现应用环境的快速迁移,屏蔽了很多开发者在管理上的复杂度。
  
  目前来看,Docker容器虽然开发者众多,但在企业应用所最看重的稳定性上仍然不能让人放心。就需要管理构建成百上千个Docker,这是非常复杂的。Docker的编排与管理一直有所缺失,所以在其之上已经发展出众多容器生态参与者,如 Mesos、Kubernetes、Marathon、Swarm等,都在帮助Docker成长。但是这个生态圈在发展的过程当中也不能避免相互之间的竞争。企业追求的是时间和效力,对于如何选择、组合使用这些Docker编排和调度工具,对企业来说不仅非常困难,也大大增加管理和维护成本。
  
  PaaS,目标一定是解决大规模复杂应用的需求。
  
  PaaS 平台的原则是“app-centric”,以应用为中心,而不是容器为中心。企业PaaS平台容器服务如果管理成百上千个应用,就需要再支持应用层面的持续发布、持续集成、安全服务、路由管理、灰度管理、配置管理等等功能,目前这个Docker生态体系仍然没有任何一家的功能可以满足这些需求,要选择五到八种工具去手工打造组合成这样的功能。同时支持这些功能的平台,自身的升级、扩容、容灾备份机制又会变成企业的又一道难题。

  当然,Docker的进步非常快,在不断解决各种问题。Docker和Pivotal同是OCI容器标准的成员,未来的容器技术一定会走向统一的标准runC,就如同当年J2EE的标准一样。Cloud Foundry就已经支持使用Docker镜像。而Cloud Foundry作为主流的开源PaaS,已经在多个大型企业的关键生产应用中经过验证。

两者的关系

  PCF是Pivotal基于开源PaaS平台Cloud Foundry打造的商业版软件,致力于通过定义PaaS功能规范,为企业带来开箱即用的企业级PaaS服务。“Docker和Cloud Foundry的关系应该是包容,而不是竞争。Cloud Foundry基金会有几十个成员,Docker公司也是成员之一,也在不断关注Cloud Foundry的生态圈的发展。Pivotal也在和IBM、Google、Amazon等公司一起建立OCI(Open Container Initiative),制定整个Docker容器未来的标准。

  PCF通过构建以容器为核心,面向数据的企业级的PaaS平台,使企业既满足使用Docker的需求,又能实现Pivotal CloudFoundry提供的易用的企业级安全管理、应用管理、数据服务的特点。PCF只将容器作为平台当中的一层服务,在这个容器层当中有一条线,叫作“价值链”,在它下面是容器的管理、编排、镜像、文件、容器仓库等;上面是面向企业级的应用,如Jenkins等持续集成、持续发布等服务,对 DevOps提供直接的支持。

  当然Pivotal Cloud Foundry未来研发的方向会向Docker生态圈工具有所倾斜。

  Pivotal将战略主题定位于“植根于中国市场,发力于高端企业”。并已经开始为平安科技、招商银行、TSMC、中信证券,首都在线,国家超级计算中心,北京电视台多几十家大型企业客户提供PaaS解决方案。

DevOps与微服务

  两者都面向DevOps,改变传统的开发,测试,运维的模式。借助于容器技术,把应用开发速度和运营效率结合起来,充分体现DevOps模式的高效性。
  随着越来越多的工作负载向云迁移。在未来,混合云结构会成型,其中一部分是我们传统的架构,此外还有私有云、公有云两大组成部分。
  容器技术备受关注。因为容器技术具备高敏捷性、灵活性,并且它的效率非常高。
  微服务架构。把过去一套服务分隔成微小的服务单元,这样能够大大增加服务的灵活性和灵敏度。

猜你喜欢

转载自blog.csdn.net/rickey17/article/details/72811516