{"value":"**近日,亚马逊云科技宣布推出 Amazon CodeCatalyst 的预览版。Amazon CodeCatalyst 是统一的软件开发和交付服务,可让软件开发团队在亚马逊云科技上快速轻松地规划、开发、协作、构建和交付应用程序,从而减少整个开发生命周期中产生的冲突。**\n\n\n\n构建一个非常酷的产品,将想法变为现实,这是让我们开发人员感到非常兴奋的事情,但新项目的起步往往是一个复杂而缓慢的过程。我们的开发团队需要使用工具、库和编程框架来更新本地开发环境或全新的机器。我们必须创建源代码存储库并设置其他共享工具,例如 Jira、Confluence 或 Jenkins,同时配置构建管道和其他自动化工作流程,创建测试环境等。开发和构建环境的日常维护占用了大量宝贵的团队开发周期和精力。团队之间的协作也需要付出努力,因为没有可共享信息和提供单一事实来源的工具。项目之间的上下文切换以及处理这些项目中相互冲突的依赖关系,例如,项目 X 的 Python 3.6 和项目 Y 的 Python 2.7。尤其是在我们只有一台机器执行处理时,这会进一步增加负担。这些困境似乎让研发的境况永远无法好转! \n\n\n\n如今,我们经常能听到开发人员讨论工作体验时觉得现代开发变得更加复杂了。这是因为他们不得不选择和配置一组更广泛的现代框架和库、工具、云服务、持续集成和交付管道,以及选择许多其他选项,所有这些工作都需要共同付出努力,才能交付良好的应用程序体验。过去可由一位开发人员在一台机器上管理的内容,现在变成庞大、动态、复杂的决策和权衡网络,并且由于需要在分散的团队中协调所有这些工作,因此变得更具挑战性。\n\n\n#### **项目功能**\n\n\n\n为了研究团队和个人开发人员在构建云端软件时通常会遇到的挑战,负责开发 Amazon CodeCatalyst 的团队收集并审查了亚马逊云科技新老开发人员和服务团队的反馈,根据反馈,他们着手创建统一的工具,以消除不必要地减慢软件交付速度的未完善之处,同时加入一些功能,让团队更加轻松地合作和协作。Amazon CodeCatalyst 中用于应对这些挑战的功能包括:\n\n- 设置项目资源的蓝图 — 其中不仅有新项目的框架,还包含支持软件交付和部署所需的资源。\n- 基于云的按需开发环境,可让您或团队轻松地复制一致的开发环境。\n- 问题管理,可跟踪提交、拉取请求和部署之间的更改。\n- 使用灵活的托管构建基础设施的自动化构建和发布 (CI/CD) 管道。\n- 用于显示项目活动(例如提交、拉取请求和测试报告)的控制面板。\n- 能够仅通过一封电子邮件即可邀请其他人就项目进行协作。\n- 统一的搜索,可以轻松地在用户、问题、代码和其他项目资源中找到所查找的内容。\n\n在本篇文章中,我们不过多介绍 Amazon CodeCatalyst,主要将简要介绍一些特定的功能,例如蓝图、开发环境和项目协作。我们将在未来的文章中介绍 Amazon Code Catalyst的其他功能。\n\n\n\n#### **项目蓝图**\n\n\n\n蓝图的功能,初次听起来像是为项目编写一些初始框架代码的功能。但是,蓝图的作用远不止于此!借助参数化应用程序蓝图,您可在几分钟内设置共享项目资源以支持应用程序开发生命周期和团队协作,而不仅仅是创建应用程序的初始入门代码。蓝图为项目创建的资源包括源代码存储库、完整的初始示例代码和适用于常用应用程序模式的亚马逊云科技服务配置,这些资源默认遵循亚马逊云科技的最佳实践。如果愿意,可以改用外部 Git 存储库,例如 GitHub。蓝图还可以添加问题跟踪器,但也可以使用 Jira 等外部跟踪器。然后,蓝图为 CI/CD 添加构建和发布管道(稍后将介绍该管道)以及其他集成工具。\n\n\n\n借助使用蓝图设置的项目资源和集成工具,包括 CI/CD 管道和用于托管应用程序的亚马逊云科技资源,您只需按下“部署”按钮即可在几分钟内得到正常运行的示例代码,从而能够直接投入开发并开始处理特定的业务逻辑。\n\n![image.png](https://dev-media.amazoncloud.cn/808d6d8983774758bbbe2514d0d74348_image.png)\n\n\n启动项目时,客户可以从带有 Typescript、Python、Java、.NET、用于各种语言的 Javascript 以及 React、Angular 和 Vue 框架的蓝图中进行选择,未来还会推出更多蓝图。并且,您不需要以蓝图为起点。可以使用可在任何适用于 Linux 和 Windows 操作系统的设备上运行的工作流程来构建项目。\n\n#### **基于云的开发环境**\n\n\n\n开发团队经常会遇到“环境漂移”问题,即一个团队成员的工具链或库版本与其他成员或测试环境略有不同。这可能会引入一些在一段时间内被忽视的细微错误。开发环境规格以及蓝图创建的其他共享资源有助于确保没有不必要的差异,并且团队中的每位成员都可获得相同的设置,从而在开发人员之间提供一致、可重复的开发体验。\n\n\n\nAmazon CodeCatalyst 使用 devfile 来定义基于云的按需开发环境配置,该环境目前支持四个可调整规模的实例大小选项,包括 2、4、8 或 16 个 vCPU。devfile 定义和配置针对给定项目编码、测试和调试所需的所有资源,从而最大程度地减少开发团队成员在创建和维护本地开发环境上花费的时间。如果需要,也可以修改由所选蓝图添加到源代码存储库的 devfile。使用开发环境,项目间的上下文切换开销会有所减少 — 只需单击一次,就可以切换到不同的环境,然后就可开始开发。这意味着您可以轻松地在多个代码库上同时开展工作,而无需重新配置。由于采用按需配置,开发人员也可以根据需要暂停、重新启动或删除开发环境。以下是引导开发环境的 devfile 示例。\n\n```\nschemaVersion: 2.0.0\nmetadata:\n name: aws-universal\n version: 1.0.1\n displayName: AWS Universal\n description: Stack with AWS Universal Tooling\n tags:\n - aws\n - a12\n projectType: aws\ncommands:\n - id: npm_install\n exec:\n component: aws-runtime\n commandLine: \"npm install\"\n workingDir: /projects/spa-app\nevents:\n postStart:\n - npm_install\ncomponents:\n - name: aws-runtime\n container:\n image: public.ecr.aws/aws-mde/universal-image:latest\n mountSources: true\n volumeMounts:\n - name: docker-store\n path: /var/lib/docker\n - name: docker-store\n volume:\n size: 16Gi\n```\n\n在 Amazon CodeCatalyst 预置的云端开发环境中工作的开发人员可以使用 Amazon Cloud9 作为 IDE。但是,他们可以在本地计算机上从其他 IDE 轻松使用 Amazon CodeCatalyst,例如 JetBrains IntelliJ IDEA Ultimate、PyCharm Pro、GoLand 和 Visual Studio Code。开发人员还可以在自己的 IDE 中创建开发环境,例如 Visual Studio Code,或者使用 JetBrains Gateway 应用程序为 JetBrains 创建开发环境。在下文中,我们使用 JetBrains IntelliJ。\n\n![image.png](https://dev-media.amazoncloud.cn/8b0f886b01624f60918a8551c50ec932_image.png)\n\n\n#### **构建和发布管道**\n\n\n\n蓝图创建的构建和发布管道在灵活的托管基础设施上运行。管道可以使用按需计算或预置构建,包括选择机器规模,并且可以引入自己的容器环境。可以纳入内置或合作伙伴提供的构建操作(例如,提供软件组合分析构建操作的 Mend),也可以纳入 GitHub Actions 来编写全自动管道。可以使用可视化编辑器或 YAML 文件配置管道。\n\n\n\n借助构建和发布管道,可以部署到流行的亚马逊云科技服务,包括 Amazon Elastic Container Service (Amazon ECS)、Amazon Lambda 和 Amazon Elastic Compute Cloud (Amazon EC2)。借助 Amazon CodeCatalyst,您可轻松地设置测试和生产环境,以及使用管道部署到一个或多个区域(甚至多个账户)来实现安全性。\n\n\n![image.png](https://dev-media.amazoncloud.cn/87a4803c63d141c199571c7d5238c5e5_image.png)\n\n#### **项目协作**\n\n\n\n作为统一的软件开发服务,Amazon CodeCatalyst 不仅可让您更轻松地开始在亚马逊云科技上构建和交付应用程序,还可以通过单一的共享项目空间和事实来源,帮助各级开发人员在项目上进行协作。只需一封电子邮件即可邀请开发人员进行协作。接受邀请后,开发人员可以看到完整的项目上下文,并且可以使用项目的开发环境立即开始开发工作,而无需花时间使用所需的工具、库或其他先决条件更新或重新配置本地计算机。\n\n可以邀请 Amazon CodeCatalyst 空间的现有成员或使用其电子邮件的新成员协作开发项目:\n\n\n![image.png](https://dev-media.amazoncloud.cn/bb031aa5b3044cdeb8269e7bd89edd1e_image.png)\n\n每位成员都会收到一封邀请电子邮件,其中包含标题为**接受邀请**的链接,单击该链接会打开浏览器选项卡进行登录。登录后,他们可以查看 Amazon CodeCatalyst 空间中受邀加入的所有项目,还可以快速切换到身为拥有者或受邀加入的其他空间。\n\n\n![image.png](https://dev-media.amazoncloud.cn/633e7f8897644c289b912c9cd330bd89_image.png)\n\n从中,他们可以选择一个项目并立即了解开发现状,例如,最近工作流的状态、任何未完成的拉取请求和可用的开发环境。\n\n![image.png](https://dev-media.amazoncloud.cn/aea5ab2885d7424bbe361bd6f10c96d6_image.png)\n\n在问题板上,团队成员可以查看需要处理的问题,选择一个问题并开始处理。\n\n![image.png](https://dev-media.amazoncloud.cn/cdde11bcb9894064a1ff02390f3793fb_image.png)\n\n能够立即查看项目上下文,有权访问基于云的按需开发环境,所有这些功能都有助于成员更快地开始做出贡献,并且避免设置工作带来的延迟。\n\n新发布的 Amazon CodeCatalyst 预览版中提供了支持应用程序开发和部署、问题跟踪、电子邮件邀请协作、自动化工作流等方面的蓝图,可帮助您加快推进云开发和交付工作。您可以在 Amazon CodeCatalyst 用户指南中了解更多信息。","render":"<p><strong>近日,亚马逊云科技宣布推出 Amazon CodeCatalyst 的预览版。Amazon CodeCatalyst 是统一的软件开发和交付服务,可让软件开发团队在亚马逊云科技上快速轻松地规划、开发、协作、构建和交付应用程序,从而减少整个开发生命周期中产生的冲突。</strong></p>\n<p>构建一个非常酷的产品,将想法变为现实,这是让我们开发人员感到非常兴奋的事情,但新项目的起步往往是一个复杂而缓慢的过程。我们的开发团队需要使用工具、库和编程框架来更新本地开发环境或全新的机器。我们必须创建源代码存储库并设置其他共享工具,例如 Jira、Confluence 或 Jenkins,同时配置构建管道和其他自动化工作流程,创建测试环境等。开发和构建环境的日常维护占用了大量宝贵的团队开发周期和精力。团队之间的协作也需要付出努力,因为没有可共享信息和提供单一事实来源的工具。项目之间的上下文切换以及处理这些项目中相互冲突的依赖关系,例如,项目 X 的 Python 3.6 和项目 Y 的 Python 2.7。尤其是在我们只有一台机器执行处理时,这会进一步增加负担。这些困境似乎让研发的境况永远无法好转!</p>\n<p>如今,我们经常能听到开发人员讨论工作体验时觉得现代开发变得更加复杂了。这是因为他们不得不选择和配置一组更广泛的现代框架和库、工具、云服务、持续集成和交付管道,以及选择许多其他选项,所有这些工作都需要共同付出努力,才能交付良好的应用程序体验。过去可由一位开发人员在一台机器上管理的内容,现在变成庞大、动态、复杂的决策和权衡网络,并且由于需要在分散的团队中协调所有这些工作,因此变得更具挑战性。</p>\n<h4><a id=\"_11\"></a><strong>项目功能</strong></h4>\n<p>为了研究团队和个人开发人员在构建云端软件时通常会遇到的挑战,负责开发 Amazon CodeCatalyst 的团队收集并审查了亚马逊云科技新老开发人员和服务团队的反馈,根据反馈,他们着手创建统一的工具,以消除不必要地减慢软件交付速度的未完善之处,同时加入一些功能,让团队更加轻松地合作和协作。Amazon CodeCatalyst 中用于应对这些挑战的功能包括:</p>\n<ul>\n<li>设置项目资源的蓝图 — 其中不仅有新项目的框架,还包含支持软件交付和部署所需的资源。</li>\n<li>基于云的按需开发环境,可让您或团队轻松地复制一致的开发环境。</li>\n<li>问题管理,可跟踪提交、拉取请求和部署之间的更改。</li>\n<li>使用灵活的托管构建基础设施的自动化构建和发布 (CI/CD) 管道。</li>\n<li>用于显示项目活动(例如提交、拉取请求和测试报告)的控制面板。</li>\n<li>能够仅通过一封电子邮件即可邀请其他人就项目进行协作。</li>\n<li>统一的搜索,可以轻松地在用户、问题、代码和其他项目资源中找到所查找的内容。</li>\n</ul>\n<p>在本篇文章中,我们不过多介绍 Amazon CodeCatalyst,主要将简要介绍一些特定的功能,例如蓝图、开发环境和项目协作。我们将在未来的文章中介绍 Amazon Code Catalyst的其他功能。</p>\n<h4><a id=\"_29\"></a><strong>项目蓝图</strong></h4>\n<p>蓝图的功能,初次听起来像是为项目编写一些初始框架代码的功能。但是,蓝图的作用远不止于此!借助参数化应用程序蓝图,您可在几分钟内设置共享项目资源以支持应用程序开发生命周期和团队协作,而不仅仅是创建应用程序的初始入门代码。蓝图为项目创建的资源包括源代码存储库、完整的初始示例代码和适用于常用应用程序模式的亚马逊云科技服务配置,这些资源默认遵循亚马逊云科技的最佳实践。如果愿意,可以改用外部 Git 存储库,例如 GitHub。蓝图还可以添加问题跟踪器,但也可以使用 Jira 等外部跟踪器。然后,蓝图为 CI/CD 添加构建和发布管道(稍后将介绍该管道)以及其他集成工具。</p>\n<p>借助使用蓝图设置的项目资源和集成工具,包括 CI/CD 管道和用于托管应用程序的亚马逊云科技资源,您只需按下“部署”按钮即可在几分钟内得到正常运行的示例代码,从而能够直接投入开发并开始处理特定的业务逻辑。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/808d6d8983774758bbbe2514d0d74348_image.png\" alt=\"image.png\" /></p>\n<p>启动项目时,客户可以从带有 Typescript、Python、Java、.NET、用于各种语言的 Javascript 以及 React、Angular 和 Vue 框架的蓝图中进行选择,未来还会推出更多蓝图。并且,您不需要以蓝图为起点。可以使用可在任何适用于 Linux 和 Windows 操作系统的设备上运行的工作流程来构建项目。</p>\n<h4><a id=\"_44\"></a><strong>基于云的开发环境</strong></h4>\n<p>开发团队经常会遇到“环境漂移”问题,即一个团队成员的工具链或库版本与其他成员或测试环境略有不同。这可能会引入一些在一段时间内被忽视的细微错误。开发环境规格以及蓝图创建的其他共享资源有助于确保没有不必要的差异,并且团队中的每位成员都可获得相同的设置,从而在开发人员之间提供一致、可重复的开发体验。</p>\n<p>Amazon CodeCatalyst 使用 devfile 来定义基于云的按需开发环境配置,该环境目前支持四个可调整规模的实例大小选项,包括 2、4、8 或 16 个 vCPU。devfile 定义和配置针对给定项目编码、测试和调试所需的所有资源,从而最大程度地减少开发团队成员在创建和维护本地开发环境上花费的时间。如果需要,也可以修改由所选蓝图添加到源代码存储库的 devfile。使用开发环境,项目间的上下文切换开销会有所减少 — 只需单击一次,就可以切换到不同的环境,然后就可开始开发。这意味着您可以轻松地在多个代码库上同时开展工作,而无需重新配置。由于采用按需配置,开发人员也可以根据需要暂停、重新启动或删除开发环境。以下是引导开发环境的 devfile 示例。</p>\n<pre><code class=\"lang-\">schemaVersion: 2.0.0\nmetadata:\n name: aws-universal\n version: 1.0.1\n displayName: AWS Universal\n description: Stack with AWS Universal Tooling\n tags:\n - aws\n - a12\n projectType: aws\ncommands:\n - id: npm_install\n exec:\n component: aws-runtime\n commandLine: "npm install"\n workingDir: /projects/spa-app\nevents:\n postStart:\n - npm_install\ncomponents:\n - name: aws-runtime\n container:\n image: public.ecr.aws/aws-mde/universal-image:latest\n mountSources: true\n volumeMounts:\n - name: docker-store\n path: /var/lib/docker\n - name: docker-store\n volume:\n size: 16Gi\n</code></pre>\n<p>在 Amazon CodeCatalyst 预置的云端开发环境中工作的开发人员可以使用 Amazon Cloud9 作为 IDE。但是,他们可以在本地计算机上从其他 IDE 轻松使用 Amazon CodeCatalyst,例如 JetBrains IntelliJ IDEA Ultimate、PyCharm Pro、GoLand 和 Visual Studio Code。开发人员还可以在自己的 IDE 中创建开发环境,例如 Visual Studio Code,或者使用 JetBrains Gateway 应用程序为 JetBrains 创建开发环境。在下文中,我们使用 JetBrains IntelliJ。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/8b0f886b01624f60918a8551c50ec932_image.png\" alt=\"image.png\" /></p>\n<h4><a id=\"_92\"></a><strong>构建和发布管道</strong></h4>\n<p>蓝图创建的构建和发布管道在灵活的托管基础设施上运行。管道可以使用按需计算或预置构建,包括选择机器规模,并且可以引入自己的容器环境。可以纳入内置或合作伙伴提供的构建操作(例如,提供软件组合分析构建操作的 Mend),也可以纳入 GitHub Actions 来编写全自动管道。可以使用可视化编辑器或 YAML 文件配置管道。</p>\n<p>借助构建和发布管道,可以部署到流行的亚马逊云科技服务,包括 Amazon Elastic Container Service (Amazon ECS)、Amazon Lambda 和 Amazon Elastic Compute Cloud (Amazon EC2)。借助 Amazon CodeCatalyst,您可轻松地设置测试和生产环境,以及使用管道部署到一个或多个区域(甚至多个账户)来实现安全性。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/87a4803c63d141c199571c7d5238c5e5_image.png\" alt=\"image.png\" /></p>\n<h4><a id=\"_105\"></a><strong>项目协作</strong></h4>\n<p>作为统一的软件开发服务,Amazon CodeCatalyst 不仅可让您更轻松地开始在亚马逊云科技上构建和交付应用程序,还可以通过单一的共享项目空间和事实来源,帮助各级开发人员在项目上进行协作。只需一封电子邮件即可邀请开发人员进行协作。接受邀请后,开发人员可以看到完整的项目上下文,并且可以使用项目的开发环境立即开始开发工作,而无需花时间使用所需的工具、库或其他先决条件更新或重新配置本地计算机。</p>\n<p>可以邀请 Amazon CodeCatalyst 空间的现有成员或使用其电子邮件的新成员协作开发项目:</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/bb031aa5b3044cdeb8269e7bd89edd1e_image.png\" alt=\"image.png\" /></p>\n<p>每位成员都会收到一封邀请电子邮件,其中包含标题为<strong>接受邀请</strong>的链接,单击该链接会打开浏览器选项卡进行登录。登录后,他们可以查看 Amazon CodeCatalyst 空间中受邀加入的所有项目,还可以快速切换到身为拥有者或受邀加入的其他空间。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/633e7f8897644c289b912c9cd330bd89_image.png\" alt=\"image.png\" /></p>\n<p>从中,他们可以选择一个项目并立即了解开发现状,例如,最近工作流的状态、任何未完成的拉取请求和可用的开发环境。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/aea5ab2885d7424bbe361bd6f10c96d6_image.png\" alt=\"image.png\" /></p>\n<p>在问题板上,团队成员可以查看需要处理的问题,选择一个问题并开始处理。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/cdde11bcb9894064a1ff02390f3793fb_image.png\" alt=\"image.png\" /></p>\n<p>能够立即查看项目上下文,有权访问基于云的按需开发环境,所有这些功能都有助于成员更快地开始做出贡献,并且避免设置工作带来的延迟。</p>\n<p>新发布的 Amazon CodeCatalyst 预览版中提供了支持应用程序开发和部署、问题跟踪、电子邮件邀请协作、自动化工作流等方面的蓝图,可帮助您加快推进云开发和交付工作。您可以在 Amazon CodeCatalyst 用户指南中了解更多信息。</p>\n"}