乐趣区

关于serverless:改变开发的未来-探索无服务器与人工智能的协同效应

近年来,无服务器计算和人工智能粗浅扭转着应用程序的开发方式。

无服务器计算实现无需治理底层基础架构就能构建和运行应用程序,而人工智能则让应用程序根据数据和算例做出智能决策。借助云计算,开发者关上了一个利用程序开发、构建的全新世界的大门,开发人员能够比以往任何时候都更快、更高效地构建智能的和可扩大的应用程序。

利用开发要从计算机编程开始说起。计算机编程通常被视为一门须要逻辑和解决问题技能的技术畛域,但同时编程的创作过程也是一门艺术,程序员能够如艺术家个别,用富裕创造性的精力和产生美好事物的欲望来解决编码。

当艺术和计算机科学联合在一起时,就发明出了独特和美妙的货色。

例如,数字艺术是一门利用计算机程序创立令人惊叹的视觉效果和动画的新兴畛域。游戏开发也是一种艺术和编程交融的畛域,程序员致力于为玩家创立引人入胜的世界和体验。艺术和计算机科学素来都不是毫不相干的两个畛域,事实上,这两个畛域以独特和令人兴奋的形式互相补充。

亚马逊云科技开发者社区为开发者们提供寰球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、流动与比赛等。帮忙中国开发者对接世界最前沿技术,观点,和我的项目,并将中国优良开发者或技术举荐给寰球云社区。如果你还没有关注 / 珍藏,看到这里请肯定不要匆匆划过,点这里让它成为你的技术宝库!

形象是计算机科学的基本概念,是通过被动暗藏不必要的细节而关注于基本特征来简化简单的零碎。应用形象,让咱们能够构建更高效、可扩大且更牢靠的零碎。计算机科学的外围是解决问题。形象为咱们提供了一种将问题合成为更小、更易于治理的办法,这使咱们可能专一于解决问题的特定方面,而不会被不必要的细节绊住脚步。

在计算机编程中,接口 就是一个形象的例子。

接口定义了模型或模块的边界,定义了性能和责任,暗藏了模块的外部实现细节,程序员只须要关怀接口不变,而无需理睬模块外部如何变动,开发者通过接口将各种部署施行的细节抽离进去,而专一于它提供的行为。这个形象帮忙代码更加灵便和适应一直变动的需要。除了接口,现在云计算为开发者提供更高层次的形象。

无服务器计算就是一种更高级别的计算形象。

那为什么会呈现这种计算形象形式,它的呈现为开发者解决了什么问题呢?

咱们通过亚马逊云科技的计算形象的演变过程尝试做个解释:

自 2006 年公布 Amazon EC2(EC2 是基于虚拟机的计算实例)以来,亚马逊云科技始终在减速云计算形象去适应不多拆分的利用和越来越简单的微服务。

2011 年,亚马逊云科技公布了 Elastic Beanstalk,初步实现了利用部署的自动化,包含容量布局、负载平衡和应用程序衰弱监控。这种自动化办法缩小了基础架构部署的复杂性。

2014 年亚马逊云科技公布了两个重要服务,它们是 Amazon ECS,一个容器服务,Amazon Web Services Lambda,无服务器计算服务。

自此,开发人员能够通过三个档次来调用云计算资源:虚拟机、容器和无服务器。咱们认为,无服务器计算比虚拟机和容器提供了更高级别的计算形象,因为它进一步简化了开发人员配置和治理基础架构资源,实现按需主动扩大和资源交付。

尽管无服务器计算的呈现实现了云计算更高级别的形象,进一步缩小了基础架构部署的复杂性,帮忙开发人员更专一于编写业务代码。然而,许多开发人员,特地是那些专一于运维的人员,他们依然在数据库、大数据、机器学习和平安等服务类别的配置和治理上破费大量工夫和精力。他们想要自动化基础架构供给的整个生命周期。因而,亚马逊云科技也继续投入资源于其余云资源的深入形象。

2011 年,亚马逊云科技公布了 CloudFormation,它使开发人员可能以自动化和平安的形式建模和治理基础架构资源。

它反对开发人员应用 JSON 或 YAML 格局的基础架构即代码 (IaC) 模板定义和供给基础架构资源。而后,亚马逊云科技间断推出了 CLI、IDE 工具和 SDK。这些服务形象了 API 的操作,它们反对开发人员应用相熟的编程语言和开发工具治理基础架构资源。

2019 年亚马逊云科技又公布了 Amazon Web Service cloud deployment kit (cdk)。至此,开发人员不仅能够应用相熟的编程语言和开发工具定义基础架构资源,还能够应用命令和代码。

  • JSON:

https://en.wikipedia.org/wiki/JSON?trk=cndc-detail

  • YAML:

https://en.wikipedia.org/wiki/YAML?trk=cndc-detail

  • 基础架构即代码:

https://en.wikipedia.org/wiki/Infrastructure_as_Code?trk=cndc…

咱们认为 CDK 实现了云资源形象的更高级别,它能够实现 3 个级别对资源形象,别离是 cfn 资源、更高级别的形象资源以及模式:

Cfn 资源指的是可亚马逊云科技提供的根底云资源,相似于 CloudFormation 提供根本的资源定义和配置。更高级别的形象资源在 Cfn 资源之上,提供更简洁的定义。

例如,CDK 中的 ec2.Instance 比 Cfn 机器实例提供更简洁的定义。模式利用多个资源提供残缺的解决方案。例如,CDK 中的 AutoScalingGroup 模式可定义具备弹性负载均衡器、主动扩大组、启动配置和相干警报的残缺架构。CDK 通过提供这 3 个档次的资源形象,简化了定义和治理基础架构资源的过程。相比于手动应用 CloudFormation YAML 模板或脚本,CDK 使基础架构即代码变得更简略,从而实现了云资源形象的新高度。

用一个具体的例子具体阐明 cdk 是如何形象资源:

首先,开发人员能够应用 CDK 间接创立 S3 存储桶,这是 Cfn 资源的一种形象。开发人员也能够应用 CDK 为此 S3 存储桶增加事件处理机制,这是操作形象,就像高级编程语言中的对象和办法一样。开发人员还能够应用 CDK 定义一种典型的场景来执行特定性能和实现特定模式。

计算形象的一直演进,以及更多资源的深刻形象,使得利用开发从简单到简略,从沉重到笨重,帮忙开发者去构建一个现代化的利用。于此同时,现代化利用的构建也离不开流程优化和最佳实际。

基于亚马逊云科技开发团队的本身教训,在古代应用程序构建的三个阶段开发者能够借鉴的最佳实际:

1. 构建阶段

  • 构建弹性应用程序体系结构。依据不同的业务场景,抉择将利用容器化革新或构建新的无服务器应用程序;
  • 通过基础架构即代码,将资源管理治理自动化,以实现更高效的操作和保护;
  • 开发过程中设置自动化的公布管道,应用 App Mesh 管制网络流量进行主动利用交付,并确保新性能的安全可靠公布。

2. 程序治理阶段

  • 晋升服务可察看性用于实现微服务的治理。能够应用云托管的 Prometheus 服务,并增加 ADOT 来全面监控零碎经营;
  • 在应用程序被合成为多个微服务时抉择云原生数据库,这有助于实现整体应用程序体系结构的弹性和敏捷性;
  • DevSecOps 对应用程序治理很重要。平安团队应该集成到开发和经营团队中,以避免安全性成为管道中的瓶颈。

3. 构建平台

随着应用程序的继续迭代和优化,咱们发现平台是云原生的根底。因为咱们很少看到有开发团队可能将曾经开始的利用开发过程从头开始。开发者能够应用更多的平台级服务,如数据库、音讯、API 网关、安全性等来作为协调开发的共享服务。开发者也能够应用云上提供的易于应用、企业规范的平台级服务 Shared Services Platform (SSP), Amazon Web Service Application Composer 和 Amazon Codecatelyst。

  • Application Composer,是一个可视化构建器,开发人员可能从 Amazon Web Service 服务组合和配置无服务器应用程序,并反对部署筹备好的基础架构即代码。同时,它也是一个工具,容许用户通过组合预构建的组件或从头开始构建新组件来创立自定义应用程序。
  • Amazon Codecatelyst,是一项集成服务,供采纳继续集成和部署实际的软件开发团队采纳到其软件开发流程中。CodeCatalyst 将开发人员须要的所有工具集中在一处。开发人员能够打算工作、合作编码并应用 CI/CD 管道和工具来构建、测试和部署应用程序,它能够帮忙团队疾速入门,并帮忙开发人员专一于编写业务代码。

编程语言是计算机科学的根底,对于利用开发来说,编程语言的演变是一个引人入胜的旅程。

第一个编程语言 Fortran 于 1950 年由 IBM 开发,用于迷信和工程应用程序。20 世纪 70 年代,Dennis Ritchie 在贝尔实验室开发了 C 语言。C 语言成为宽泛应用的零碎编程语言,至今仍用于操作系统、设施驱动程序和嵌入式零碎。20 世纪 80 年代开发了面向对象编程语言,如 C++。20 世纪 90 年代设计了脚本语言,易于学习,可疾速编写小程序。明天,Java、C# 和 Swift 等编程语言宽泛用于开发桌面和挪动应用程序。Python 在数据迷信和机器学习畛域很风行。

2020 年,人工智能 (AI) 曾经扭转了许多行业,当初它正在扭转咱们编写代码的形式。AI 能够帮忙开发人员更快、更少谬误地编写更好的代码。AI 帮忙程序员的形式之一是通过代码补全。AI 还能够帮忙检测 bug 和优化代码。AI 正在扭转编码的另一种形式是通过代码生成。

对于亚马逊云科技来说,Amazon CodeWhisperer 是一款人工智能编码工具,它能够依据自然语言正文和四周的代码实时在 IDE 中生成整行代码和残缺函数代码倡议,帮忙开发者疾速编写平安的代码。

例如:CodeWhisperer 能够主动依据“解析 csv 文件以提取第二个字段并按降序排序”的提醒,倡议适当的代码和单元测试。CodeWhisperer 能够作为 VS Code 和 IntelliJ 的扩大,并原生在 Amazon Cloud9 和 Amazon Lambda 控制台中应用。

现在,CodeWhisperer 反对 Python、Java、JavaScript、Typescript、C# 和其余 10 种编程语言。CodeWhisperer 也是一个通用的编码工具,并对亚马逊云科技提供的云上服务进行了优化,能够提供高质量的倡议。

人工智能编码工具属于生成式 AI,这是最近最风行的技术之一。生成式 AI 是一种能够创立新内容和新想法的 AI,包含对话、故事、图片、视频和音乐。和所有 AI 一样,生成式 AI 由机器学习模型驱动——十分大的模型,事后在大规模数据集上训练。机器学习的最新进展 (特地是变压器基神经网络架构的创造) 导致蕴含数十亿参数或变量的模型的呈现。生成式 AI 之路漫长,过程中经验了许多冲破和挑战。

2019 年,当尖端机器学习模型大概有 3 亿个参数时,目前最先进的模型有超过 500 亿个参数。换句话说,在短短三年内,机器学习的复杂性减少了 1600 倍。许多开发人员将从事根底模型工作。咱们大多数人不会参加创立根底模型,但咱们可能会参加调优那些根底模型和进行提醒工程。

大型语言和根底模型的训练老本十分高,因为咱们须要大规模、高速互连的专用硬件群集来训练模型。训练老本在十分集中的地位产生,但在推理方面离咱们很近,所以咱们必须钻研如何优化这些模型,并应用专用硬件进行推理以再次降低成本。

根底模型的规模和通用性使其与传统机器学习模型不同。

传统机器学习模型通常执行特定工作,如剖析文本情感、图像分类和趋势预测。对于传统机器学习模型,要实现每个特定工作,使用者须要收集标注的数据,训练模型并部署该模型。对于根底模型,使用者无需为每个模型收集标注的数据和训练多个模型,能够应用同一预训练的根底模型调整各种工作。根底模型也能够应用从头开始训练模型所需的数据和计算量的一小部分,定制执行与其业务不同的特定畛域性能。根底模型的后劲令人十分兴奋。但咱们仍处于十分晚期阶段。尽管 ChatGPT 始终是第一个引起客户留神的宽泛生成式 AI 体验,但大多数钻研生成式 AI 的人很快意识到,几家公司曾经钻研根底模型多年。

提醒工程是为生成式 AI 模型设计和优化提醒或输出查问的过程。这是生成式 AI 模型开发的重要步骤,因为它决定了模型将生成的内容类型。近年来,提醒工程畛域的钻研和开发有很大停顿,当初咱们看到更高级的技术被用来生成高质量内容。一种办法是应用人工反馈来进步生成内容的品质,容许模型从谬误中学习,并随着工夫的推移产生更精确、更相干的内容。提醒工程对用于特定畛域的生成式 AI 模型尤其重要,如医疗保健或金融。通过设计针对这些畛域定制的提醒,开发人员能够确保模型产生精确、与畛域相干的内容。

亚马逊云科技领有全套的生成式 AI 产品,包含:

  • Amazon Bedrock——这是构建和扩大带有 AI21 实验室、Anthropic、Stability AI 和亚马逊 FMs 的生成式 AI 应用程序的最简略办法。Bedrock 为开发人员提供无服务器的生成式 AI 体验。开发者能够轻松找到适合的模型,疾速入门,应用本人的数据私下定制 FMs,并应用相熟的亚马逊云科技提供的云上工具和性能轻松集成和部署到您的应用程序中,无需治理任何基础设施。Bedrock 使用者能够抉择目前可用的一些最尖端的 FMs。这包含 AI21 Labs 的 Jurassic 2、Anthropic 的 Claude、Stability AI 的 Stable Diffusion 和亚马逊的 Titan。
  • Amazon EC2 Trn1n 和 Amazon EC2 Inf2——在云中具备训练和推理的最佳性价比基础设施。当然,亚马逊云科技与 Nvidia 密切合作,为开发人员提供 H100 和 V100 GPU 产品。Titan 是亚马逊的根底模型。这些模型在蕴含来自不同起源的大量信息的数据集上进行预训练,使客户可能融入更宽泛的上下文,并在多个畛域和工作上宽泛推广。咱们最后会有两个模型: 第一个是用于摘要、文本生成 (例如创立博客文章)、分类、开放式问答和信息提取等工作的生成式 LLM。第二个是将文本输出(单词、短语甚至可能是大段文本) 转换为蕴含文本语义含意的数字示意 (称为嵌入) 的嵌入式 LLM。尽管此 LLM 不会生成文本,但对于个性化和搜寻等应用程序很有用,因为通过比拟嵌入,该模型会产生比词匹配更相干、更具上下文的响应。
  • 内置生成式 AI 的服务,如 Amazon CodeWhisperer

咱们一起摸索了利用开发的演进,以及无服务器与人工智能的技术创新。无论您是软件开发人员、解决方案架构师、数据科学家还是 DevOps 工程师,让咱们一起利用新技术去发明开发的将来。

请继续关注 Build On Cloud 微信公众号,理解更多面向开发者的技术分享和云开发动静!

往期举荐

Generative AI 新世界

架构模型最佳实际

GitOps 最佳实际

作者 郑予彬

亚马逊云科技资深开发者布道师,20 年 ICT 行业和数字化转型实际积攒,专一于亚马逊云科技云原生、云平安技术畛域。18 年架构师教训,致力于为金融、教育、制作以及世界 500 强企业用户提供数据中心建设以及软件定义数据核心等解决方案的征询及技术落地。

文章起源:https://dev.amazoncloud.cn/column/article/646482761dcde235220…

退出移动版