席卷全球的云计算大潮,在给千行百业带来深刻变革的同时,也让云计算开发者成为了炙手可热的技术人才。
那么问题就来了:作为一名云计算开发者,要想更快更好地构建应用程序,需要具备怎样的自我修养?
作为全球云计算技术的开创者和引领者,亚马逊云科技在近日召开的2022亚马逊云科技中国峰会Dev Day开发者日上,向广大开发者分享了自己在云计算之旅中对技术之美的心得体会。
大咖云集的Dev Day开发者日
2022亚马逊云科技中国峰会第二天的下午,是Dev Day开发者日的主题演讲,同时也是本届峰会备受云计算开发者关注的重要环节。
作为一项以开发者为中心的活动,亚马逊云科技Dev Day的足迹遍布了全球各地。通过邀请云计算行业大咖在活动上分享前沿技术与云上最佳实践,并提供动手环节,Dev Day可以让开发者更加沉浸地体验云计算的技术、方案和魅力,从而让开发者能够更好地了解云计算,更成功地构建应用程序。
这是一场群星荟萃大咖云集的云计算开发者行业盛宴:亚马逊云科技大中华区解决方案架构部总监代闻,UCCA尤伦斯当代艺术中心副馆长、UCCA集团艺术总监尤洋,Mobvista技术副总裁&首席架构师、亚马逊云科技Hero蔡超,亚马逊云科技大中华区开发者关系总监王宇博,亚马逊云科技资深开发者运营专家郭悦,亚马逊云科技Hero SphereEx联合创始人兼CTO潘娟,亚马逊云科技Community Builder、Juniper中国区创新事业部资深架构师范桂飓,亚马逊云科技User Group Leader、永乐拾光创始人李欣,Zilliz合伙人兼技术总监、LF AI & Data基金会技术咨询委员会成员栾小凡等诸多行业大咖齐聚一堂,各抒己见,让本届峰会的Dev Day开发者日显得热闹非凡。
在Dev Day开发者日上,亚马逊云科技大中华区解决方案架构部总监代闻发表了《技术之美成就自由构建》主题演讲,分享了亚马逊云科技开发云原生应用的理念和方法,帮助开发者最大化利用云技术之美,实现自由构建,简化开发和运维工作。而作为亚马逊云科技邀请的嘉宾,UCCA尤伦斯当代艺术中心副馆长、UCCA集团艺术总监尤洋也在现场与广大开发者分享了艺术、抽象、美学与技术的关系问题,启发人们思考信息技术的抽象、简化与架构之美。
技术之美成就自由构建
“谈到美,许多人的第一反应往往都不是想到技术,而是会想到艺术,但其实艺术与技术有很多相同之处。”在《技术之美成就自由构建》主题演讲的开场白中,代闻如是表示。
一、艺术之美往往需要通过抽象来呈现,抽象也呈现技术之美
代闻指出,说到抽象对于技术之美的重要性,我们不妨借鉴一下禅宗理念的相关描述:简单的优于复杂的,幽静的优于喧闹的,轻巧的优于笨重的,稀少的优于繁杂的。事实上,计算机硬件软件的发展历程,其实也是一段通过抽象追求技术之美的历程。从控制通断的01开始,计算机软硬件的抽象,从二进制的机器语言,发展到支持语义的汇编语言,再到真正为开发者提供高效率构建基础的编程语言,再加上各类精妙的算法,才有了我们工作生活里的各类应用程序。这是一个不断抽象的旅程,也是一个从繁到简、从笨重到轻巧、追求技术之美的旅程。
二、云计算是对复杂、繁琐、笨重的IT基础设施进行抽象
16年前的2006年3月14日,伴随着世界上第一个云存储服务Amazon Simple Storage Service(简称Amazon S3)的横空出世,亚马逊云科技应运而生。当年亚马逊云科技推出的三个云服务,分别是对象存储Amazon S3、虚拟主机服务Amazon EC2和消息队列服务Amazon SQS。正如当年的Amazon Web Services的Logo所展示的那样,亚马逊云科技将存储、计算和中间件抽象成了网络服务,并以API的方式提供给了开发者。
三、抽象成就技术之美
不断抽象的成就,是技术之美在云资源管理旅程的最好体现。随着亚马逊云科技服务的不断丰富,云资源管理的抽象也变成了一个新的课题。针对云上计算环境的抽象和云上资源的抽象,亚马逊云科技推出了两类对应的代码(抽象):一类应用代码(Application Code),另一类是管理代码(Infrastructure as Code)。
1、云上计算环境的抽象历程(应用代码):从2006年发布虚拟主机服务Amazon EC2至今,亚马逊云科技一直都在推动计算环境的不断抽象,简化底层复杂性,让应用开发者专注在业务价值构建。截至目前为止,云上计算环境主要有服务器、容器、无服务器三个层级的逐步抽象,逐步减少基础设施的感知和适配工作。其中以Amazon Lambda为代表的无服务器计算服务的发展,更是凸显了亚马逊云科技对于云服务的长远考虑。Amazon Lambda发布之初,许多业界人士对其并不看好,但是亚马逊云科技前瞻性地看到了客户抽象计算环境的诉求,因而决定提前投入。如今7年多的时间过去,无服务器计算正在成为云原生的下一个发展方向,早已成为了业界共识。其化繁为简的理念特性,以及在灵活性、弹性、成本节省方面的卓越表现,都大幅提升了云原生的技术之美。
2、云上资源的抽象(管理代码):在过去的16年里,亚马逊云科技提供的服务种类,已经从最开始的3个增长到了200多个。即使应用程序的计算环境不断抽象,开发者尤其是运维领域的开发者依然需要管理数据库、大数据、机器学习、安全等诸多服务类别,解决资源生命周期各个环节的自动化。这部分实现自动化的代码就是管理代码(Infrastructure as Code)。为了让开发者更加方便灵活地管理代码和第三方资源,2019年,能够自动转换代码的亚马逊云科技Cloud Development Kit(CDK)发布,开发者既可以使用自己熟悉的编程语言,又可以用Imperative命令式编程的方式编写管理代码,极大地提升了对云资源管理的编程友好度。2021年,亚马逊云科技发布Cloud Control API,开发者可以采用自定义API的方式灵活管理亚马逊云科技和合作伙伴的第三方服务。与此同时,为了让开发者可以在开源社区中自由交流云资源管理的代码,亚马逊云科技还发布了开源构建库Construct Hub,同样获得了好评如潮。
技术之美的三个方面
代闻指出,技术之美包括三个方面,分别是架构典范之美、组件抽象之美和流程灵动之美。
一、架构典范之美
一个好的架构应该有颠扑不破的原则、精心设计的模型以及广泛应用的验证。而对于应用架构,亚马逊云科技有着第一手的实践经验。代闻透露,在2001年前,亚马逊电商采用的还是单体架构,结果导致在业务快速增长的过程中遭遇了严重瓶颈。于是从2002年开始,亚马逊云科技在技术、流程、组织等多个方面为服务化进行了改造,如今已经成为微服务架构的典范。据统计,2020年亚马逊电商内部已经有10万多个微服务在运行。
针对微服务和API设计,亚马逊CTO Werner Vogels在亚马逊云科技2021 re:Invent全球大会上,曾经有过一个非常经典的总结:
1、API永远存在;
2、永远不要破坏向后兼容性;
3、从客户场景出发,逆向工作 ;
4、创建具有显式有据可查故障模式的API ;
5、创建服务于明确目标的自描述API;
6、不惜一切代价避免泄露实现细节。
二、组件抽象之美
代闻指出,随着云计算成为新常态,一个优良的架构在云上落地有了多种选择,云原生架构理念也开始兴起。云原生应用的架构充分利用按需交付、全球部署、弹性和更高级别的云服务,可以显著提高开发者的工作效率、业务敏捷性、可扩展性、可用性、资源利用率和成本优化。
“云原生是一个相对的概念,因为云服务本身就在不断演进,在一个时间点上如何选用合适的组件,是云原生架构落地最基础的一步。”代闻表示,“虚拟机、容器、无服务器是计算环境抽象的三个层次。亚马逊云科技在基础设施服务的三个层面都有良好的服务支撑,如今更是让三个抽象层次的计算能力渗透到了各个服务类别中,各个服务自身的云原生都已经完成。这使得开发者不仅可以选择自己的应用代码运行环境的抽象层次,而且还可以根据业务场景选择需要调用不同抽象层次的云资源,实现真正的自由构建。”
三、流程灵动之美
对于云计算开发者来说,简洁而灵活的开发和运维流程,是支撑应用持续迭代、保持生命力的基础。也正因为如此,即便是有了好的架构和适合的组件,要想让应用顺利落地并保持持久生命力,灵动的开发流程也依然不可或缺。为此亚马逊云科技提供了一系列的服务和工具,让开发者可以从构建、治理、迭代三个阶段顺利实现云原生应用落地之旅:在构建阶段快速搭建和验证架构,快速交付MVP;在治理阶段可以保持良好的可观测性,方便地管理数据和应用安全策略;在应用落地、进入到持续迭代阶段,可以实现自动化部署,更多地实现组件服务化、运维自动化和智能化。
“开发者群体在亚马逊云科技的眼中有着特殊的分量。亚马逊云科技能够取得如此快速的发展,最初的支持就是来自广大的开发者。我们举办Dev Day开发者日的初衷,就是提供一个让广大开发者彼此学习、分享、成长的平台,让开发者可以更好地了解云计算,更成功地构建应用程序。”代闻说道。