英文原文:Cloud Platforms and Open APIs: The new application stack
应用程序层叠的说法未免稍显落伍,时髦的说法是切片。得益于开放式 APIs 的飞速发展,我们正迎来应用开发的新时代。比方说是基础服务 APIs,例如:邮件,FTP,监控管理等,这些服务越来越多地以切片的形式来交付,帮助开发者减少了本地开发部署的时间,从而能把精力更多地集中到应用程序本身。此外,远程调用,脸部识别,社交数据挖掘等新技术新服务,我们都可以快速拥有并运用到实际当中。所以,简单来说,现代应用开发更偏向是 APIs 的组合运用,而不是单纯的代码编写。
传统的程序开发层叠模式
传统模式是这样的:
不论你是使用 LAMP,RoR 还是 Java,对此模式应该都不会陌生。应用层,Web/App 服务器层,数据库,操作系统。而随着 IaaS 和 PaaS 的引入,它转变成下面的样子:
在云环境中,操作系统和数据存储通常都被模糊看作是一个单一 Iaas 层。Web/App 服务器是一个 PaaS 层。这是现在常见的结构,除非 PaaS 另作他用,如虚拟化,弹性层等。
开放式 API
然而,开放式 APIs 的出现仿佛让一切推倒重来。我们来看看一个传统应用中的普通构成:
一个 Web 应用通常被认为是一个 UI 层,一个商业逻辑层,一个数据层,以及一个负责认证和审核工作的安全层的综合。由于 JavaScript 的广泛使用,采用 REST API 把 UI 层独立出来的做法变得普遍,这使得数据可在表示层完成处理并展示。商业逻辑层和安全层由于地位特殊,目前尚保持稳定。越来越多的开发者投进了开放式 APIs 的怀抱—第三方服务—或引入新功能,或创建更丰富的数据集。将近 5000 个 APIs 可供选择,成为开发者得力的左膀右臂,我们把这部分定义为“整合”,因此传统的构成最终转变成这样:
切片化的应用程序
新型模式中另外一个特点是,越来越多的功能层将可在程序外来完成整合,数据层甚至是安全层的实现现在都可交由第三方服务来完成。或许将来我们再分析应用的构成时,会看到类似下图的 APIs 呈现百家争鸣模式。
对于开发者来说,这是个多么美妙的时刻。PaaS 是下一代的平台,开放式 APIs 提供了切片化功能。诚然程序的性能对于这样的改变需要付出一定代价,比方说是数据和程序间的通讯延迟,但在发达的网络环境下,类似的问题容易解决。此外,很多新特性越来越倾向于以简单拖拽释放的方式来进行,这对开发平台易用性也提出了更高的要求。所以,如果有好的开发想法,不妨马上去实践,而不用困扰于开发门槛过高的问题了。