从其支持的技术到提供的功能来看,平台即服务工具(PaaS)是针对不同的应用类型和规模,因此,选择正确的工具至关重要。
与所有应用托管平台一样,对企业而言,并没有完美的PaaS;每个工具都有其优点和缺点。不过,所有PaaS供应商都提供某些相似功能,这些功能可以分为两大类:生产效率和稳定性。
生产效率
提高开发人员生产效率是PaaS提供的关键价值主张之一。通过结合低开销的基础设施和以开发人员为中心的工具和服务,PaaS可有效帮助提高应用稳定性以及开发人员生产效率,而只需相对少的投资。
应用开发工具
PaaS供应商提供专用于应用开发的工具。无论这些工具是命令行实用程序还是集成开发环境软件,它们最终的目标都是减少在本地环境PaaS开发的障碍。
Heroku的命令行界面工具就是很好的例子。该工具可让开发人员运行、管理、部署和测试Heroku托管的应用,而无需离开其开发环境。另一方面,谷歌提供针对IntelliJ IDEA的官方插件,让开发人员可直接运行、测试和部署Java后端到谷歌的PaaS产品App Engine。
持续集成
在现代应用开发中,持续集成(CI)实际上是一项要求,但在传统托管环境中设置有效且稳定的持续集成平台可能是挑战。在持续集成平台运行测试套件本身已经很难,而当管理员必须选择持续集成技术、构建管道和管理自动化时,难度会增加。
为了帮助缓解这种压力,很多PaaS供应商提供内置持续集成工具,用户可以最小开销启动这种工具。在某些情况下,持续集成平台是更大生态系统的一部分,例如AWS CodePipeline,管理员可将其与AWS生态系统中的托管平台一起使用,而不只是在Elastic Beanstalk(AWS的PaaS产品)内。在其他情况下,持续集成通常会与应用程序基础设施更紧密结合,例如Heroku CI。
自动部署
持续集成相同,设置部署管道是应用开发中最麻烦的任务之一。并不是说这项任务太困难,而是有很多方法可选择,这可能让企业不知所措。而且,不同的PaaS供应商处理部署的方式各不相同。Engine Yard提供内置自动部署—从应用的Git存储库,而CenturyLink的AppFog可直接整合与供应商无关的第三方服务(例如Jenkins)来实现部署。
协作
在过去几年中,开发人员协作工具显著增加。从ChatOps服务(例如Slack和HipChat)的增加,到开发平台(如GitHub和GitLab)内协作功能的增加,我们看到,沟通和透明度是有效应用开发的关键因素。
有些PaaS供应商提供内置协作工具,例如AWS CodeCommit(具有类似于GitHub协作功能的版本控制系统),而另一些则直接与第三方平台整合以提供透明度和沟通。例如,Heroku通过其ChatOps服务实现这一点,该服务直接与Slack整合,以从团队已经使用的协作工具内提供更易于管理的界面。
稳定性
稳定性是PaaS工具可提供的另一个关键优势。生产效率侧重于让团队更快更高效地编写和部署应用,而稳定性则侧重于保持这些应用的正常运行。
应用管理
大多数PaaS供应商提供应用管理工具来自动扩展和管理应用资源。这些工具通常是基于Web界面的形式,它们可进行管理数据库备份、增加应用负载均衡器后面的服务数量等所有功能。这些应用管理工具的各个功能取决于PaaS提供商提供的具体功能,它们的界面会有很大差异,这可能会极大地影响其易用性。
有些系统的规模可能会导致包含多种选项的复杂工具(例如AWS的命令行实用程序),而其他更具针对性的工具(例如Jelastic)则提供基于Web和命令行工具,可提供PaaS应用管理专用功能。
相关服务
并非每个PaaS提供商都只专注于PaaS,很多提供商还在更大的云生态系统内提供相关服务,让企业可用于增强和支持应用。从数据库到应用监控和部署管道,在技术上,这些服务并不是PaaS产品的一部分,但可直接与PaaS集成以提供更紧密的基础设施。
谷歌云计算平台(GCP)、AWS和微软Azure是这种类型PaaS提供商的很好的例子。他们的PaaS产品只占其提供服务的一小部分,虽然使用他们的额外服务可能会导致供应商锁定,但可显著提高应用稳定性以及减少对第三方的依赖性。
第三方集成
谷歌、AWS和微软等大型云服务提供商提供大规模服务套件来增强其PaaS技术,而较小的提供商会依靠第三方集成来提供这种功能。例如,Heroku拥有广泛的add-on市场,它可整合第三方服务来提供从数据库托管到应用安全等所有功能。虽然对第三方服务的依赖性会增加对更安全开发的需求,这也有助于减少供应商锁定,使其可更容易地经济高效地从一个PaaS提供商转移到另一个PaaS提供商。
信息安全
PaaS的一个优点是管理员只需要确保应用本身安全即可。平台安全和攻击防御等其他一切事情都属于PaaS提供商的范畴。信息安全本身很重要,企业特别需要注意了解所需要的安全级别,很多较大的PaaS供应商(例如AWS和GCP)提供《健康保险可移植性和责任法》以及支付卡行业合规服务-需要支付费用。
重要问题
购买PaaS工具前,重要的是考虑管理员将如何与这些服务进行交互以及这种交互对企业的影响。为此,在评估任何PaaS产品时,你应该问自己这些问题。
它支持哪些开发技术和语言?
技术支持非常重要,如果PaaS提供商不支持你的应用编程语言或技术堆栈,那就不要选择。
我需要担心供应商锁定吗?
供应商锁定会影响应用的可移植性,企业需要衡量PaaS工具的优势是否值得这种牺牲。微软或谷歌等大型提供商通常会有更高的供应商锁定风险,因为他们整合了自己的专有工具来提供优势,你使用他们的云计算越多,离开的难度就越大。
可扩展性、可用性和安全性如何?
你希望你的应用会接收多少流量?安全威胁呢?不同的提供商提供不同级别的可扩展性、可用性和安全性(通常以可用性为代价),你需要确定你的特定需求以便缩小范围找到合适的提供商。Heroku是用户友好型PaaS提供商;然而,当与更复杂的平台(如Elastic Beanstalk)堆栈时,成本可能会更高。
你能否导出数据用于别处?
供应商锁定并不意味着数据锁定,但如果你必须更换提供商或者想要转移到多云模式,该怎么办?你能否导出数据用于别处?这样做容易吗,还是管理员必须调整数据才能导出到不同平台?平台无关的提供商(例如Jelastic)通过鼓励部署非专有开源数据系统(例如MySQL和MongoDB)来避免数据锁定。
对于容器和微服务等新型技术,它有怎样的支持?
你的团队是否具有前瞻性思维?容器、微服务和无服务器是不断改变应用开发面貌的新流行语,但并非每项技术都适用于每个项目。所以,一定要仔细考虑你的技术要求。
是否有低代码/无代码选项?
你是否希望在不需要开发人员干预的情况下随时更改应用?在代码外处理基础设施是PaaS中的功能,但第三方集成或服务呢?Heroku广泛的add-on市场提供对低代码/无代码服务的内置支持,例如CloudBoost—实时JavaScript后端,它可减少构建和管理身份验证和搜索等功能的开销。