产业云化已经是一个不争的趋势,对于用户来说,云计算弹性资源调度、敏捷开发和灵活部署等已成为企业必备之IT能力,若非如此,在互联网+时代企业很容易被时代所抛弃。
企业上云和云原生应用
但是企业如何云化?这并不是容易回答的问题。
首先对于初创企业。“我认为80%以上的初创公司应该选择公有云,道理很简单,初创企业没有更多历史应用的包袱,应用类型也比较轻量级,选择公有云可以节省成本和开支,简化运维。” Pivotal大中华区总经理刘伟光说。
Pivotal大中华区总经理刘伟光
但对于行业高端用户和大型企业客户,无论从安全性,还是从行业管控需求考虑,公有云暂时没有办法满足需求,用户的选择一定是自己建设私有云或者混合云。高端用户构建私有云,从行业应用的角度首先面临应用上云的问题。
“在我们本地服务团队的帮助下,我们已经成功帮助用户把基于Web和面向移动的多种应用迁移到Pivotal Cloud Foundry(PCF)PaaS云平台上,用容器的方式进行部署,实现了应用上云的目标。”刘伟光介绍说。
他表示:为上云而上云,有些问题并没有解决,原因在于这些应用是紧耦合的,因此没有办法实现云原生所具有的持续开发、 持续集成等特点。
“为上云而上元,只是应用从一个地方搬到另外一个地方。尽管如此,这样做还是有必要的,因为较之以往解决了应用的资源弹性调度和部署的问题。”刘伟光说。
刘伟光表示:“我给用户的建议是:当原有应用搬到PaaS云环境上享受到基础的云计算好处后,可以尝试用云原生方法将应用分模块逐步重写。然后比较一下二者之间的区别,用户就会立刻体验到云原生应用的优势和必要性。”
Docker和PCF的区别
如今越来越多的应用开始部署在容器而不是虚拟机上,Docker对这个趋势的推动起到了很重要的作用。其中的原因在于Docker能够提供更好灵活性和使用成本,如果应用不多,并且面向的仅仅是开发者,Docker的容器封装就是一个非常行之有效的技术。
PCF也是基于容器技术的PaaS平台,那么两者的区别在哪呢,刘伟光对此进行了详细的说明:容器和PaaS的关系就好像发动机与整车的关系。Docker是适合车迷DIY的“发动机”,可以自行调校。PaaS则是适合真正客户的“整车”平台。
在核心容器技术的使用上,Docker和PCF都基于同样的Build-To-Ship原则。但是在如何Build上,两者选择了不同的发展哲学。我们看到面向开发者的Docker在社区有成千上万的Build出来的镜像,但这并不是值得炫耀的成绩。因为这些镜像大都缺乏管理,很难直接投产使用。更重要的问题在于,因为Docker的镜像构建过于灵活,初学者经常将系统源码下载编译打包等等步骤都纳入Dockerfile进行镜像构建,以为这样才是正确的自动化Devops方式,结果导致构建镜像时间越来越长,镜像尺寸越来越大,最终无法使用。而PCF则按照构建过程的稳定性、变更责任体和变更频率差别,设计了更符合企业过程的Build抽象。比如变更更少,归属基础架构的OS镜像,PCF称之为Stemcell;比如运行平台环境,JDK和Web服务器的封装,PCF称之为Buildpack。应用真正的交付是打包文件,这个打包过程则应该由Maven、Gradle或者Jenkins这样的CI/CD工具完成。这样的设计,分工界面和管理更加清晰,更加符合企业管理的要求。真正实践过Docker的开发人员,最终也会封装出类似的抽象进行管理。
要构建企业级PaaS,就需要实现分布式容器环境的编排与调度管理。当用户有上百个应用部署,就会有几百个容器需要维护。对如此规模、动态变化的容器环境进行编排、管理,牵涉几十种docker工具。既需要核心编排调度的“动力总成”,如Mesos、Kubernetes、Marathon、Swarm等。还需要友好的用户控制界面,方便用户进行一键式操作,最好还需要支持最流行的Rest API接口。当前Docker生态中,这些能力还在逐步完善3,逐步考虑向企业应用管理成长。但在这个过程当中也有相互的竞争,如Docker Swarm是Docker 公司自己发布的,和Mesos、Kubernetes是有一定的竞争关系。Mesos也看到Docker日益平台化的趋势,自己对容器的支持也更加多样化。企业选择这样的平台,后续很可能面临跑在路上临时更换核心零件的问题
面向应用的PaaS平台更重要的是应用服务能力。Docker生态圈在MySQl、RabbitMQ、Redis、GemFire、Cassandra等核心数据服务,以及ETL、Batch、Sync、Stream等数据微服务、Spring、.NET应用微服务,以及平台级配置管理、还有待成熟;而且,要求企业具备非常强的技术实力,才能依托自己的技术力量构建Docker为基础的PaaS平台。
“对于像Google、Facebook、BAT这样以自主研发为止的企业,采取Docker的技术路线是完全可行的。”刘伟光说。
“但对于传统行业用户来说,企业级用户讲究的是效益、时间、管理和维护成本。如果企业级用户也选择采用Docker技术路线,必须需要通过一组合七八种种不同的Docker生态圈的开源工具来完成企业IT管理开发的需求,其技术水平要求是非常高的,实施的复杂度也是前所未有和从来尝试过的,同时意味着巨大的管理风险。”刘伟光指出。
刘伟光表示:与Docker相比,以Clound Foundry为基础的PCF更适合面向企业的应用。原因在于,PCF开发了大量的商业部件,同时提供PCF PaaS直接安装部署、在线升级、配置的管理工具OpS Manager,实现了大量的企业级功能,以及大量服务,如APM、日志聚合分析、MySQl、RabbitMQ、Redis、GemFire、Cassandra集中管理服务等、SSO服务、Spring微服务等。此外,由Greenplum数据库、GemFire、 SQLFire、GemFire XD、HAWQ和HD共同组成Pivotal的大数据套件,可以和PCF实现非常好的集成。正是这些全面的功能和技术积累,我相信这也是像IBM,HP,GE这些具体企业为什么选择Cloud Foundry的重要原因
在全球,像福特,宝马,奔驰这样的大型汽车制造企业,都在建设基于开放技术的新一代车联网,进一步实现数字化转型, 所有的应用都需要基于新的技术和敏捷开发的方法来构建,在和全球大型企业合作的过程中,Pivotal Lab在软件开发的过程中扮演了重要的角色,给予这些客户提供了敏捷开发的咨询和帮助。通过Pivotal Cloud Foundry来部署多种应用同时将大数据的需求结合进来,新的应用都通过Springcloud来开发部署,真正实现了云原生应用的大规模部署。,
刘伟光表示: Pivotal计划将Pivotal Lab引入中国,作为Pivotal帮助中国高端用户互联网+业务的转型的重要举措。
小结
所谓Docker与PCF PaaS之争,在刘伟光看来:二者之间是一种包容的关系,而不是竞争关系。据介绍,Cloud Foundry基金会有几十个成员,Docker公司也是成员之一,,也在不断关注Cloud Foundry的生态圈的发展。此外Docker和Pivotal以及其他公司正在一起在建立未来容器的新标准RunC,在这个过程中,Pivotal的代码共享占百分之五十,所以说Pivotal和Docker公司一直在紧密的合作。。
“在我看来,Docker和Pivotal Cloud Foundry是两种不同设计发展思路,目前来看,Docker更加适合面向开发者,而PCF PaaS更加适合企业级的大规模应用。”刘伟光说。