迄今,云计算已出现了近十年。公有PaaS作为云计算的重要产品之一,也已经历了相当长的时间。随着互联网行业的不断发展,公有PaaS也不断的进行着演变。尤其是Docker的出现,对其也产生了深远的影响。本文介绍了新一代公有PaaS的优势以及为何我们需要公有PaaS。
Point #1:公有PaaS非常便宜,可以极大的降低成本
公有PaaS提供了部署,故障恢复等高端的功能,但是PaaS服务商只收了后台资源的钱。换句话说,使用PaaS的开销跟使用同配置的IaaS(虚机,负载均衡,网络带宽)是一样的。因此,使用PaaS既能够享受类似IaaS那样的按需扩缩,又无需为增值服务付费。如果自行采购硬件设备的话,业务量突增的时候,需要增加机器来应付;半夜或者淡季业务量下降的时候,又不能把硬件退货。使用PaaS能够很好的解决闲置资源的成本占用问题。
公有PaaS把运维成本降低到了极致。无论是自行采购硬件,还是使用IaaS,繁重的运维都是无法避免的。当业务达到一定规模的时候,必须要有一支高效专业的运维团队来支撑,以保证在线业务的质量。这支运维团队负责管理各种软硬件资源、开发部署监控工具、产品上线、执行监控和恢复业务、设计并执行各种备份等等一系列艰苦卓绝的任务。PaaS则大大简化了运维的操作。PaaS自带部署和监控的功能,无需自行开发工具。PaaS还有故障恢复的功能:后台的进程挂了会被重启,后台的虚机挂了也会被重启,甚至后台承载虚机的物理机硬损坏再也起不来了,PaaS也会在新的物理机上新建虚机并部署代码恢复应用。一般一个小型的互联网产品,如果使用PaaS的话,开发团队就可以自行运维。
以上两点相叠加,能够把互联网研发的成本降低至原来的70%到50%,这对于提升企业的竞争力起到了举足轻重的作用。
Point #2:公有PaaS兼具便捷性、安全性与灵活性
传统的公有PaaS无论是使用沙盒技术也好,抑或是直接使用虚机,其灵活性都饱受诟病。且不少PaaS服务商提供的是共享的PaaS服务,其隔离性与安全性都大打折扣。
全新一代的公有PaaS,如百度的BAE专业版,使用虚机+docker的技术对PaaS进行了扩展。由于后台使用的是用户自己的虚机,因此新一代的PaaS与整个公有云的IaaS服务融为一体,存在于VPC之内,对接了IaaS层的所有安全功能,其安全性与隔离性都大大增强。而架在虚机之上的docker则为PaaS的扩展提供了无限的可能。用户想要做定制?那提交一个自己的docker镜像并创建应用即可。
Point #3:公有PaaS拥抱微服务、开源以及持续集成
近年来,微服务的概念如火如荼。全新一代的公有PaaS完全拥抱微服务。PaaS上的每一个应用都支持独立部署,独立扩缩。且同一个用户名下的应用之间可以通过内网互联。
PaaS服务商无法把所有的开源产品都做成服务,比如很多云厂商都没有Cassandra的NoSQL服务。但用户可以在虚机上自行搭建,或者在PaaS平台上使用Cassandra的官方docker镜像来搭建。
持续集成的概念也被越来越多的企业所接受。但是自行搭建并维护多套大体相似但又略有不同的线上线下环境,是非常耗时且极易出错的。新一代的公有PaaS支持同一套代码部署到多个环境中,环境之间的差异通过环境变量来做区分。这使得PaaS能够与公司内部的持续集成系统对接,又一次大大提高了开发效率。
Point #4:公有PaaS是高可用的
一个互联网的服务,很重要的一点就是高可用。高可用意味着好的用户体验,以及相对低的运维成本。这对于提升一个企业的竞争力至关重要。
公有PaaS提供多实例的功能。一个PaaS的应用的构架是一个负载均衡的后面接上多个实例(对于BAE专业版来说,一个实例就相当于一台虚机,而且这些虚机会分散在不同的物理机上。)。只有所有的实例全部宕机,服务才会出现中断,而这个概率是相当小的。普通的一台虚机,可用性一般是99.95%,那么双实例的PaaS应用的理论可用性就是1 - (1 - 99.95%)2 = 99.999975%,8个实例的理论可用性是 1 -(1 - 99.95%)8 = (二十几个9)。就算实际情况比理论值差一些,那可用性也比单点的情况要好上太多了。
公有PaaS提供了故障恢复的功能。一个拥有4个实例的PaaS应用,宕掉一两个实例之后,这些实例还会自动在几分钟之内被重启。万一重启失败,PaaS平台还会新建实例(并且部署代码),并且把重启失败的实例删除。PaaS平台尽一切可能维持实例数量不变,尽一切可能保证高可用。
使用公有PaaS且开启多实例,您的服务就相当于一只千足虫,断一两条腿并没有什么影响,而且这断掉的腿还会迅速自动再长出来。
结论
随着docker的出现,公有PaaS也渐渐向着容器的方向进化。新一代的PaaS,在便捷性、安全性、灵活性和可用性方面都大大提升。使用新一代的PaaS,例如百度BAE专业版,可以让企业脱离繁重的运维,专注在自己的业务逻辑上,大大降低企业的成本,提高企业的竞争力。