本文作者用派的制作过程,举例说明了CaaS和PaaS的区别及各自的特点,形象生动,是一篇浅显易懂的文章。译者认为所谓专家,一定是能把高深和晦涩难懂的概念用简单生动的方法比喻出来,让没有接触过此概念的人都能明白这其中的道理,原文的作者Chip Childers算是一个。我最近有幸接触了两大开源PaaS平台:Pivotal的Cloud Foundry和RedHat的OpenShift,虽然两个平台的实现方法各不相同,但核心理念都是以容器为中心,以应用的快速发布、快速迭代为价值体现。个人认为在今后的云领域中,PaaS具有非常广阔的应用价值和市场价值。
我经常被问到用平台即服务(PaaS)和容器即服务(CaaS)在开发云应用程序时的区别。那么如何去合理的选择它们呢?有一个比喻可以去形容他们之间的区别:那就是看它如何影响你开发的时间和资源,这个过程就像制作一个派(Pie)。
如果你要想得到一个美味的派,首先你必须有一块好的派皮(就是制作派的面团)。决定每个派好不好吃的实际上是派里面的馅不是皮。不过,也许你喜欢自己制作派皮。如果你有时间,你可以自己快乐的烹饪,和面并且切成合适的大小。不过这仅仅是制作派的皮,咱们还没有馅呢!
现在假设你决定要同时烤10个派。一个一个的手工的制作显然是下策,即使你经常自己和面而且手艺不错,那也要从头开始。当然也有些人在当地超市的冷冻食品区出售他们自己制作的派皮。
用CaaS平台去制作派,你不但要制作馅,而且一切都要从头开始,包括制作派皮。你必须在添加馅之前,经历和面,揉面,根据烤盘的大小把面团分割成块。
用多云应用平台的方法比如Cloud Foundry,你不必自制面团,你可以把精力都放在做馅上,因为馅的好坏才是你制作的派区别于其他人的地方。
一个冷冻的派皮实际上就很不错了,一个合格的面粉制造商可以提供一致的、质量合格的皮。跳过那些费时的步骤可以帮助你更快的制作出派。
让我们来说一些在写应用程序时,用CaaS或PaaS(比如:Cloud Foundry)更具体的区别吧。
比如,你用一个你比较熟悉的语言— Java 或者 Python 或者 Ruby去写一个web的应用程序。作为一个CaaS的开发者,首先你得写一些额外的步骤去创建一个空的容器镜像(image),在基础文件系统上,把你的代码放成到你的刚创建容器中。你也许还需要在容器里运行一些编译步骤,这时你就需要下载一些在编译时依赖的库文件等,然后去创建一个容器镜像。一旦你有了你的容器镜像,你就可以把它推送到CaaS平台了。
像Cloud Foundry这样的PaaS平台,它在你开发应用程序时为你做的,就像你制作派时,面粉制造商为你提供派皮一样,不需要你在容器镜像里额外去封装一些其他的软件了。
Cloud Foundry使用的是Linux容器技术,执行一条简单的CF push命令,平台就会为你创建出一个容器。用Cloud Foundry,你仅仅需要关注的是你写的代码,平台就会替你创建对应的容器。
这篇文章还有另外一些内容。除了如何创建容器之外,一个好的PaaS平台还应该做一些事情,帮助你操作软件更加简单。
你在容器平台上有很多的方法可以把日志收集起来。但是像Cloud Foundry这样的系统,这更简单,你只需要把日志打印到屏幕上,平台就会帮你捕捉到它,并且自动的存到共享日志系统里,在这个系统里你可以找到这个应用所有实例化的容器的日志,甚至是跨应用的日志。
PaaS框架能够让开发者把注意力放在代码的编写或者是业务逻辑上,同时帮助开发者处理一些技术细节比如底层架构(plumbing)。你不用分心在如何创建容器或如何收集日志上。一旦把Cloud Foundry部署到你的环境中,它就可以大大简化你软件的安装和管理。
一些企业开发人员想要知道如何设计它们应用程序的底层架构(plumbing)。我知道它的价值并且愿意做这个。然而一些开发者宁愿去解决商业问题,或者从新写一个新的软件。程序底层(plumbing)的重要性不及它实际跟用户直接打交道的部分。
选择CaaS而不是PaaS,是在交换速率以便进行控制(译者注:这句话原文是you’re trading velocity for control)。不管用哪种方法,你都可以写出好的应用程序。用CaaS这种方法就像制作10个派时,从制作10个派皮开始,相比买10个现成的皮而仅仅关注在派的馅上来说,它需要做很多的工作。
本次培训涉及:DevOps、需要解决的问题、回归、微服务那些事儿、Spring Cloud简介、服务发现 Eureka、客户端负载均衡 Ribbon、声明式的客户端 Feign、使用断路器实现微服务容错 Hystrix、微服务网关 Zuul、统一配置管理 Spring Cloud Config、微服务跟踪 Spring Cloud Sleuth、Spring Cloud常见问题总结等,点击下面图片即可查看具体培训内容。