亚马逊AWS官方博客

使用 Amazon Q 加速软件开发生命周期

软件开发团队一直在寻求加速软件开发生命周期(SDLC)的方法,以更快地发布高质量软件。作为一款由生成式人工智能驱动的助手,Amazon Q 可以帮助软件开发团队在 SDLC 的各个阶段中实现更高效的产出。

软件开发团队在分析需求、构建、测试和运维应用程序时,往往会在一些非核心任务上花费大量时间。基于 AWS 17 年相关专业知识进行训练的 Amazon Q ,可以革新您在 AWS 上构建、部署和运维应用程序的方式。通过自动化常规任务,Amazon Q 让开发团队能够把更多时间投入到创新和研发当中。Amazon Q 可以加速新手入门,减少上下文切换,以及加速 AWS 上应用程序的开发。

本文将探讨以开发一个待办事项的 API 接口项目为示例,看如何使用 Amazon Q 来加速 SDLC 的各个阶段。我们将利用 Amazon Q Business 以及 Amazon Q Developer 来帮助实现该项目。我们将介绍 Amazon Q Business 在规划和研究阶段的常见用法,以及 Amazon Q Developer 在研究、设计、开发、测试和维护阶段的应用。

计划

作为产品负责人,您需要花费大量时间进行需求分析和创建用户故事。同时您还需要研究内部文档,如功能规格说明书和业务需求,以了解所需的功能和目标。手动筛选文档是一项耗时的工作。您可以利用 Amazon Q Business 快速从内部文档或 Wiki (如 Confluence)中提取相关信息。Amazon Q Business 可以快速地和您的业务数据、业务信息和业务系统进行连接,让您可以进行定制对话、解决问题、生成内容并采取与业务相关的行动。Amazon Q Business 提供超过 40 个内置连接器,可连接流行的企业应用程序和文档存储库,包括 Amazon S3ConfluenceSalesforce 等,让您只需少量的配置即可创建生成式人工智能的解决方案。Amazon Q Business 还提供了与第三方应用程序交互的插件。这些插件支持读写操作,可帮助提高终端用户的生产力。

因此,您不需要深入研究内部文档,只需使用自然语言向 Amazon Q Business 询问需求,它就会立即为您提供相关信息,并帮助简化任务和加速问题解决。

以我们的待办事项 API 接口项目为例,假设业务需求记录在 Confluence 中,而 Jira 用于任务管理。您可以分别通过 Confluence 连接器和 Jira 插件,使 Amazon Q Business 与Confluence 和 Jira 连接。为了了解需求,您可以询问 Amazon Q Business 关于用例概述、业务驱动因素、非功能性需求等相关问题。Amazon Q Business 会从 Confluence 文档中提取相关细节,并以清晰简洁的方式呈现给您。这样可以节省收集需求的时间,让您更专注于用户故事的开发。

在充分理解需求之后,您可以要求 Amazon Q Business 为您撰写用户故事,甚至直接在 Jira 中为您创建相应的任务票。对于本文的 API 接口项目,Amazon Q Business 会根据需求量身定制生成用户故事,并在 Jira 中为您创建对应的待办事项,为您的团队节省时间,确保项目工作流程高效运转。

研究和设计

假设上述用户故事被分配给您,您需要根据 Confluence 页面中描述的技术栈来实现它。

首先,您可以询问 Amazon Q Business,了解组织开发指南中技术栈的相关信息。Amazon Q Business 会立即从托管在 Confluence 上的内部开发指南文档中为您搜索相关详细信息,并附带参考资料和引用。

作为开发人员,您可以在集成开发环境(IDE)中使用 Amazon Q Developer 协助软件开发,包括代码解释、代码生成以及代码改进(如调试和优化)。Amazon Q Developer 可以提供诸如分析需求、评估不同方法、创建实施计划和示例代码等协助。它还可以研究技术选型、权衡利弊、推荐最佳实践,甚至与您进行头脑风暴来优化设计。

让我们看看 Amazon Q Developer 是如何帮助分析用户故事、设计,并制定实施计划。

让我们在设计中进一步完善非功能性需求,如安全性和性能。

开发和测试

Amazon Q Developer 可以根据您指定的业务和技术需求生成代码片段。您可以审查自动生成的代码,手动复制并粘贴到编辑器中,或使用选项“插入到光标处”直接将其合并到源代码中。这有助于您快速原型化和迭代应用程序的新功能。Amazon Q Developer 使用对话的上下文来指导后续的响应,这使得您可以专注于构建应用程序,无需离开 IDE 即可获得答复和基于特定上下文的编码指导。

Amazon Q Developer 对于回答以下领域的问题特别有用:

  • 在 AWS 上构建的相关问题,包括 AWS 服务的选择、限制和最佳实践。
  • 通用的软件开发概念,包括编程语言语法和应用程序开发。
  • 编写代码,包括解释代码、调试代码和编写单元测试。
  • 使用 Amazon Q Developer Agent for Code Transformation 升级和现代化现有的应用程序代码。

在 Amazon Q Developer 生成的用户故事设计的基础上,您可以要求 Amazon Q Developer 实现 API 接口,并根据其他要求和参数进行完善。让我们与 Amazon Q Developer 合作,将设计变成实现。您可以利用 Amazon Q Developer 的专业知识进行构思、评估选项,并得出最佳解决方案。Amazon Q Developer 可以基于需求进行智能讨论,集思广益,创造新的测试用例。然后,它可以帮助构建实施计划,并高效地添加健壮、全面、以及对边缘例子覆盖度高的测试用例。

让我们要求 Amazon Q Developer 根据设计生成代码。

现在,让我们要求 Amazon Q Developer 实现 AWS Lambda 函数。

Amazon Q Developer 可以提供代码示例和代码片段,展示如何实现设计。您可以审核生成的代码,获得 Amazon Q Developer 的反馈,并无缝地将其集成到项目中。与 Amazon Q Developer 的协作可以让您利用其知识快速迭代和丰富应用程序的功能,从而提高生产力。

Amazon Q Developer 还可以审查代码,并根据性能和其他参数找到改进和优化的空间。让我们要求 Amazon Q Developer 为我们的示例项目找出需要改进的地方。

调试和故障排查

Amazon Q Developer 可以在故障排查和调试方面为您提供协助。对于不熟悉的错误代码或异常类型,您可以要求 Amazon Q Developer 研究其含义以及常见的解决方案。Amazon Q Developer 还可以通过分析应用程序的调试日志,标出任何异常、错误或警告,从而提示潜在的问题。

Amazon Q Developer 可以对由错误配置导致的网络连接问题进行排查,提供简明的问题分析和解决建议。它还可以研究 AWS 最佳实践,识别哪些地方与最佳实践不一致。对于代码问题,它可以在支持的 IDE 中回答问题和进行代码调试。利用其对 AWS 服务及其交互的了解,Amazon Q Developer 可以提供特定 AWS 服务的指导。在 AWS 控制台中,Amazon Q Developer 可以对您在使用 AWS 服务时所收到的错误(如权限不足、配置不正确、超出服务限制)进行故障排查。

让我们使用命令行工具 cURL 通过访问 Amazon API Gateway 的端点对我们的待办事项 API 进行测试。

由于 API Gateway 端点在调用 Lambda 函数在 Amazon DynamoDB 表插入记录时抛出了内部服务器错误,让我们转到 Lambda 控制台进一步排查问题,并通过为 POST 方法创建测试事件直接测试该函数。在 AWS 控制台中,您可以利用 Amazon Q Developer 对不同的控制台错误进行故障排查。对于上述错误,Amazon Q 会分析其问题并帮助找到解决方案。Amazon Q 将直接在控制台上解释如何通过添加 DynamoDB 表名的环境变量来修复此错误。

现在,让我们在 IDE 中要求 Amazon Q Developer 生成代码来修复这个错误。Amazon Q Developer 随后会生成一个代码片段,用于在 AWS CDK 中为 Lambda 函数设置所需的环境变量。

结论

在本文中,您了解到如何利用 Amazon Q Business 和 Amazon Q Developer 来简化软件开发生命周期,从而加快上市时间。凭借对代码和 AWS 资源的深入理解,Amazon Q Developer 使开发团队能够在研究、设计、开发、测试和审查等阶段高效工作。通过自动化常规任务、提供专家指导、生成代码片段、优化实现代码和故障排查,Amazon Q Developer 让开发人员可以将注意力重新集中在推动创新的高质量的工作中。此外,通过Amazon Q Business,团队可以借助生成式人工智能的力量,加快需求规划和研究阶段的进度。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您了解行业前沿技术和发展海外业务选择推介该服务。

Original URL: https://thinkwithwp.com/blogs/devops/accelerate-your-software-development-lifecycle-with-amazon-q/

本篇作者

Chetan Makvana

亚马逊云科技高级解决方案架构师

Suruchi Saxena

亚马逊云科技 Cloud/DevOps 工程师

Venugopalan Vasudevan

亚马逊云科技高级解决方案架构师

校译作者

梁宇

亚马逊云科技专业服务团队 DevOps 顾问,主要负责 DevOps 技术实施。尤为热衷云原生服务及其相关技术。在工作之余,他喜欢运动,以及和家人一起旅游。