加尔定律曾言:一个运转正常的复杂系统,总是从一个运转正常的简单系统演化而来。纵观如今科技圈动辄有关生态、宇宙的宏大故事,常常不免让人听的云里雾里而忘了根本,如果直接问最基础的技术底座是什么?其实很多人还是会回答,代码。

所谓大道至简,今天我们就从亚马逊云科技这个体量的科技巨头的角度去分析,他们是如何把对底层代码的重视放置到了战略层面?15年成立至今,对API的建设有何总结经验?

近日,亚马逊云科技在其re:Invent 10周年活动上发布了系列新品,并总结了行业五大风向标:自研芯片、大云无疆、数据为王、行业专用、可持续发展。我们可以首先从这些整体的动向了解其宏观架构设计,再回归到代码基层角度仔细探讨。

01 五大风向标:自研芯片、大云无疆、数据为王、行业专用、可持续发展

亚马逊云科技大中华区产品部总经理顾凡在媒体沟通会上介绍,行业五大风向标分别为自研芯片、大云无疆、数据为王、行业专用、可持续发展。

首先,作为最早自研芯片的云厂商,目前亚马逊云科技拥有NitroGraviton、人工智能机器学习自研芯片三条产品线,其中的每一条产品线在近几年都持续推陈出新。

顾凡认为,这些产品,比如Amazon EC2的创新是没有止境的。因为用户对云上的性价比追求永无止境;同时,未来在云上的新型工作负载对于计算创新的要求亦是如此。而发生在底层的创新,往往最具备颠覆性。所以从半导体和芯片层面,这种自研芯片的创新,会是改变云计算游戏规则一个非常重要的能力。

其次,第二个风向标为大云无疆,无限拓展,英文叫做“The Everywhere Cloud”,即进一步阐述了用户对云的需求无边界。据亚马逊云科技大中华区产品部计算与存储总监周舸介绍,计算、存储、数据等相关的服务一步步打破了各种创新的边界。以数据存储为例,原本是存储在本地机房,后来边界拓宽到物联网,再后来又到了偏远地区。

那下一个边界在哪里?

顾凡表示,事实上目前还存在着许多新的约束,比如物理上存储的地域、本地存储的法规、各种地域产生的延时、网络的带宽、连接的稳定性等等问题。

但如今,亚马逊云科技通过技术创新,打破壁垒,其边界已经拓展到了太空,被命名为Ground Station的卫星托管地面站服务正在接收来自地球上任何一个地方发出的API指令,为其提供卫星照片服务。

接下来是第三个风向标,Programmable Cloud:代码即云,万物皆API。在被云计算改变的这些年,应用的开发者已经将底层的基础设施和各种平台资源都看成了可被编程化、代码化的程序。顾凡表示,这也是亚马逊云科技一直以来的"API”文化。

”从2006年Amazon EC2就几个API就可以创建、注销计算资源,到15年后的今天,我们有超过200类的亚马逊云科技的服务,有上千种API在服务于数百万级的客户,每天在自由地在云上构建。而今年re:Invent发布,我们也会继续为这些希望自由构建的构建者带来更加便捷、能够赋予他更强大的创新能力。“

第四个风向标为降低云计算门槛。顾凡坚持认为,”无论是一家初创公司,还是一个体量非常大的科技企业,降低门槛本身就是云计算的一个非常重要的核心价值。“这样的愿景旨在让那些不同岗位的员工,懂技术的、不懂技术的,都能消除对云里面新技术的恐惧,所有人都能参与进来,利用工具去找到数据的洞察、指导员工的行动。

在此基础上,亚马逊云科技研发了针对不同技术基础的人群如开发人员、数据从业者、运维人员、业务人员和行业用户开发了Amplify Studio、CDK、RDS的DevOps Guru,以及四个无服务器的分析服务等等供其选用。

最后一个风向标便是可持续发展。顾凡表示,可持续是亚马逊云科技非常重要的一环。据了解,亚马逊云科技曾推出关于云的安全责任共担模型,如今又抛出了”可持续发展的责任共担模型“,旨在更好地梳理如果要真正实现云上的可持续发展,服务商和用户之间应该各自承担什么责任?

在亚马逊云科技的责任共担模型中,亚马逊云科技负责的是云自身的可持续发展,如数据中心的效率、比自研芯片,以及采用更多的可再生能源;而用户则需要负责在云中的应用可持续发展,如提升代码效率,在设计其应用架构、数据存储时加入可持续发展理念等等。

同时,顾凡还提到,如果用户的应用选择了事件驱动型的应用架构,就意味着用户是可以采用无服务器的技术,而一旦用户采用了无服务器的技术,实际上把一部分可持续发展的责任从用户端转移到了云厂商这端。

02 详解代码即云:15年的API总结

我们注意到,在顾凡的表述中,提到了亚马逊云科技的“API文化

“API文化”是什么?

在这15年的技术创新中,亚马逊云科技为何会如此重视最底层、最朴素,也最没有故事可讲的代码?

亚马逊云科技大中华区产品部数据类产品高级经理王晓野表示,其实今天大家所谈到的这些无边界、无处不在的云,自诞生之日起就代表着一个API,包括计算资源Amazon EC2是一个API,存储资源Amazon S3也是一个API,以及创建网络拓扑、创建数据库的资源、起停关这些都是通过API实现的。

也就是说,API构建了这些服务,还通过权限控制了这些服务,即每一个服务当你在启动资源的时候、关闭资源的时候,都需要经过一个权限的控制,这样的权限控制也是通过IAM这样的服务来实现的,它依旧是一个API。

因此,Capella的CEO才会对全世界的研发人员、构建者喊出,当你和全球的卫星数据只有一个API的距离的时候,你会想做什么?

代码的力量太强大了。

值得关注的是,王晓野还分享了亚马逊全球副总裁、首席技术官Werner Vogels博士关于亚马逊云科技在15年API运营上的六大经验,包括:API是永远的;永远不要破坏向后兼容性;从客户场景出发逆向工作;让API的故障模式有据可查;创建具有明确、特定目的,自描述的API;以及不惜一切代价避免泄露实现细节。


具体来说:第一,亚马逊云科技认为,对于API的构建,API是永远的。”一旦它(API)被发布成为一个公共可用的服务,那么就会有成千上万得到客户不断去调用它。意味着我们对这个API的任何改动都是不明智的,而且是很危险的,我们不能够对原有的API进行删除或者更改。

第二,对云厂商和任何API的设计者来说,最大的挑战其实就是向后兼容。王晓野表示,亚马逊云一直在坚持保持超高的向后兼容性,对于老版本的API他们并不允许被触碰和开发者的协定,也不可以去改变API已有的使用方式,只能在上面增加新的功能,而不会去删除或者改变已有的API。

第三,应该从用户真正的场景出发构建API,找到用户最希望的某种工具或者这个服务想要实现的功能,而不是依赖自身现有何种技术来实现。

第四,让API的故障模式有据可查。一个真正的好的API和服务,不仅仅要让别人知道它工作的时候是什么样,而且要让大家知道,当它不工作的时候,开发者能真正知道它哪里出了问题,然后持续地去对它进行改进。

第五,创建具有明确、特定目的、自描述的API。自描述其实对所有API是一个最基础的原则,但是真正能够保证它足够简洁,让开发者能够理解,需要回到一个最简单的逻辑,即足够简单,且为专门的功能所设计。

第六,对于API和云服务,要不惜一切代价地去隐藏背后的技术实现,以更好聚焦在用户的需求上。如果过早地透露了这些具体的底层实现,可能会导致用户对技术细节关注过多,从而产生技术实现的沟通成本问题,但这一沟通环节事实上对前期的执行并无太大实质性帮助。

总的来说,就要坚持简单两字,因为简单就意味着更容易去创新,对云厂商来说,也更容易规划化和可靠地运维。

03 结语

在物理学上,代码就像一组简单机械,这种简单机械是能够让工作更轻松地一些超级简单、完成目的单一的一组工具,包括斜面、螺旋、楔块、杠杆、轮轴和滑轮。

螺丝可以在基于一个轴上面的斜面上发力,它的最大作用是能把旋转的扭力变成纵向的垂直力,并使这个力通过旋转的方式不断放大,以取得更好的效果;杠杆则可以通过一个梁以及它的支点,帮助我们用很小的力支撑起更大作用的物体;滑轮、轮轴则是除了在平面上运动可以帮助减少摩擦力,还能在轴的直径的不同位置,以同样的作用力起到一个放大的效果。

这些简单机械都有一个共同的特点,就是它们除了简单本身,都能帮助构建一个更复杂的机械或者系统,同时它们又能够将很小的力无限地放大。

比如,一个轮子、一个杠杆、一个轴轮,就可以构建一个手推车,完成了简单机械的组合,实现了一个稍微复杂的机械,甚至再复杂一点,可以创建一个更为复杂的机械,比如汽车。

但谁是真正拥有创造这些复杂机械话语权的人呢?

如今的科技圈似乎偏离了话语权的焦点,越来越多的科技服务商成为了炫酷技术的讲述者。

但亚马逊云科技认为,拥有创造能力的这些创造者和构建者,才是知道如何去解决业务里特定问题的最佳人选。

“所以这些创造者真正需要的,不是一个由云厂商帮他们直接去构建好的、最终的复杂机械而是给他们提供非常简单、低级的基础元素,能够让他们基于此去持续构建。”

万物皆API,信奉的正是最务实的技术基石,也是技术创新的根本。所以,如果再次回到亚马逊云科技的API文化,或许可以说是一种技术极客文化,只有对技术充满敬畏和初心,才有可能创造出更多落地的科技现实。