技术之美成就自由构建

10 月 14 日至 15 日,以“自由构建探索无限”为主题的 2022 亚马逊云科技中国峰会召开。大会特设亚马逊云科技 Dev Day 活动,以开发者为中心,分享前沿技术和云上最佳实践,并提供动手环节,让开发者更加沉浸地体验云计算的技术、方案和魅力,更好地了解云计算,更成功地构建应用程序。

本次 Dev Day 演讲环节,亚马逊云科技邀请了 UCCA 尤伦斯当代艺术中心副馆长、UCCA 集团艺术总监尤洋跟广大开发者分享艺术、抽象、美学与技术的关系问题,启发人们思考信息技术的抽象、简化与架构之美。亚马逊云科技大中华区解决方案架构部总监代闻分享了亚马逊云科技开发云原生应用的理念和方法,帮助开发者最大化利用云技术之美,实现自由构建,简化开发和运维工作。

以下是亚马逊云科技大中华区解决方案架构部总监代闻的分享实录:

技术之美成就自由构建

谈到美,第一反应一般不会是技术,而是艺术。然而艺术和技术有很多相同之处。

艺术之美往往需要通过抽象来呈现,抽象也呈现技术之美。

禅宗理念也可以用来描述抽象对于技术之美的重要性:简单的优于复杂的,幽静的优于喧闹的,轻巧的优于笨重的,稀少的优于繁杂的。

计算机硬件软件的发展历程,就是通过抽象追求技术之美的历程。从控制通断的01开始,计算机软硬件的抽象,从二进制的机器语言,发展到支持语义的汇编语言,再到真正为开发者提供高效率构建基础的编程语言,再加上各类精妙的算法,才有了我们工作生活里的各类应用程序。这一个旅程是一个不断抽象的旅程,也是一个从繁到简、从笨重到轻巧实现技术之美的旅程。

云计算是对复杂、繁琐、笨重的IT基础设施进行抽象。

2006年3月14日,亚马逊云科技应运而生,当年的三个服务是对象存储 Amazon S3、虚拟主机服务 Amazon EC2和消息队列服务Amazon SQS。当年的Amazon Web Services Logo所示,亚马逊云科技把存储、计算和中间件抽象成网络服务,以API的方式提供给开发者。

抽象成就技术之美

随着亚马逊云科技服务的不断丰富,云资源管理的抽象变成一个新的课题。针对云上计算环境的抽象和云上资源的抽象,亚马逊云科技推出了两类对应的代码(抽象):一类应用代码(Application Code),一类是管理代码(Infrastructure as Code)。

  • 云上计算环境的抽象历程(应用代码)

2006年发布基于虚拟机的计算实例服务Amazon EC2,亚马逊云科技一直再推动计算环境的不断抽象,简化底层复杂性,让应用开发者专注在业务价值构建。截至现在,云上的计算环境有服务器、容器、以及无服务器三个层级的逐步抽象,逐步减少基础设施的感知和适配工作。

以Amazon Lambda为代表的无服务器计算服务的发展,是凸显亚马逊云科技长远考虑的一个服务。Amazon Lambda于2014年11月底发布,2015 年正式商用。当时,大家对于Amazon Lambda 这样看起来很美、但限制也很多的服务表示不看好,亚马逊云科技看到了客户抽象计算环境的诉求,决定提前投入。7年多过去了,现在无服务器计算是大家共识的云原生方向,灵活性、弹性、成本节省都非常显著,而且最大限度地减少了 繁琐、复杂的底层适配,大幅度地提升了云原生的技术之美。

在过去7年多的时间里,亚马逊云科技的无服务器计算主要在三个方面投入:首先,作为核心产品服务,Amazon Lambda的功能和性能不断增强,从底层计算平台的优化到更灵活的用户资源分配,从开发环境优化到部署方式简化,Amazon Lambda的优良性能和细致功能现在是业界标杆;第二,Amazon Lambda 在亚马逊云科技内部推动其他服务的发展,并与其他服务集成,构成无服务时代新的应用范式; 第三,已有服务如安全服务Amazon IAM、存储服务Amazon EFS等不断演进,增强对以Amazon Lambda 为代表的无服务器服务的支持,让无服务器的架构更安全、更方便地实现。

  • 云上资源的抽象(管理代码)

经过16年的发展,亚马逊云科技的服务种类已经从3个增长到200多种全功能的服务。那么,即使应用程序的计算环境不断抽象,开发者尤其是运维领域的开发者,依然需要管理数据库、大数据、机器学习、安全等诸多服务类别,解决资源生命周期各个环节的自动化。这部分实现自动化的代码就是管理代码(Infrastructure as Code)。

2019年,亚马云科技的Cloud Development Kit(CDK)重磅发布,开发者不仅可以使用熟悉的编程语言,而且可以使用Imperative 命令式编程的方式编写管理代码,CDK 自动把代码转化为Amazon  CloudForamtion去执行。目前,CDK 支持的语言有:JavaScript, TypeScript, Python, Java, C#, 和 Go 语言,对于云资源管理的编程友好度达到了新的高度。亚马逊云科技还让开发者以友好、灵活的方式管理第三方资源。去年,亚马逊云科技重磅发布Cloud Control API,可以让开发者采用自定义 API 的方式,灵活管理亚马逊云科技和合作伙伴的第三方服务,还发布了 Construct Hub,目标是建设一个开源社区,让大家可以自由交流云资源管理的代码。

不断抽象的成就,是技术之美在云资源管理旅程的最好体现。

技术之美成就自由构建

技术之美有三个方面:

第一,架构典范之美。一个好的架构应该有颠扑不破的原则、精心设计的模型,以及广泛应用的验证。

亚马逊对应用架构有着第一手的实践经验。亚马逊电商2001年前采用单体架构,在业务快速增长的过程中遇到了明显瓶颈。从2002年开始,亚马逊着手为服务化改造,设计技术、流程、组织等多个方面,现在已经成为微服务架构的典范。 2020年,亚马逊电商内部已经有10万多个微服务在运行。

在亚马逊云科技2021 re:Invent全球大会上,亚马逊CTO Werner Vogels对微服务和API设计有一个经典的总结。

  • 第一,API 永远存在 
  • 第二,永远不要破坏向后兼容性
  • 第三,从客户场景出发,逆向工作
  • 第四,创建具有显式有据可查故障模式的 API 
  • 第五,创建服务于明确目标的自描述 API
  • 第六,不惜一切代价避免泄露实现细节

第二,组件抽象之美。随着云计算成为新常态,一个优良的架构在云上落地有多种选择。这时,云原生架构的理念开始兴起。云原生应用的架构充分利用按需交付、全球部署、弹性和更高级别的云服务。它们大大提高了开发人员的工作效率、业务敏捷性、可扩展性、可用性、资源利用率和成本优化。云原生是一个相对的概念,因为云服务本身就在不断演进中。在一个时间点上如何选用合适的组件,就是云原生架构落地最基础的一步。

这张图的纵轴是计算环境抽象的三个层次。如前所说,亚马逊云科技在基础设施服务的三个层面都有良好的服务支撑。经过多年的发展,亚马逊云科技已经让三个抽象层次的计算能力渗透到了各个服务类别中,各个服务自身的云原生已经完成,从而让开发者不仅可以选择自己的应用代码运行环境的抽象层次,而且可以根据业务场景选择需要调用的云资源的抽象层次。例如,开发一款游戏,决定使用无服务器的Amazon Lambda运行业务代码,可以调用无服务器数据库 Amazon DynamoDB 完成游戏任务属性存取的模块,也可以调用基于Amazon EMR on EKS容器化部署的大数据服务,这让开发者自由选择代码运行的抽象层级,并能够提供不同抽象层级的云资源,彼此调用没有阻碍,实现真正的自由构建。

第三,流程灵动之美。对于开发者,简洁而灵活的开发和运维流程是支撑应用持续迭代、保持生命力的基础。

有了好的架构、适合的组件,让应用顺利落地、并保持持久生命力,灵动的开发流程不可或缺。亚马逊云科技提供了一系列的服务和工具,让开发者从构建、治理、迭代三个阶段顺利实现云原生应用落地之旅。在构建阶段,可以快速搭建和验证架构,快速交付MVP;在治理阶段,可以保持良好的可观测性,方便地管理数据和应用安全策略;在应用落地、进入到持续迭代阶段,可以实现自动化部署,更多地实现组件服务化、运维自动化和智能化。

印度国防部自研 Maya OS,全面替代 Windows Redis 7.2.0 发布,影响最深远的版本 7-Zip 官网被百度认定为恶意网站 Go 2 永远不会给 Go 1 带去破坏性变化 小米发布 CyberDog 2,超 80% 开源率 ChatGPT 每日成本约 70 万美元,OpenAI 或已在破产边缘 凝思软件将上市,由“中国 Linux 第一人”创办 Apache Doris 2.0.0 版本正式发布:盲测性能 10 倍提升,更统一多样的极速分析体验 Linux 内核第一版 (v0.01) 开源代码解读 Chrome 116 正式发布
{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/4489239/blog/5585045