本指引将展示如何设置持续集成和持续交付(CI/CD)管道,以便将 AWS HealthOmics 上的生物信息学工作流的生命周期自动化。通过将现有的工作流与 Git 等源代码控制系统集成,可以使用 CI/CD 管道高效地开发、测试和部署工作流更新以及对其进行版本管理。每当提交代码更改时,管道都会自动构建、测试和部署新的工作流版本。这种方法简化了工作流程、减少了手动工作,同时在所有受版本控制的工作流中保留了数据来源并保持了一致、可重复的结果。
请注意:[免责声明]
架构图
[架构图描述]
第 1 步
工作流开发人员创建分支并为新的工作流编写代码,或者对 AWS CodeCommit 内的现有工作流存储库进行更改。在语义版本控制过程中,开发人员可以指定主要版本和次要版本。
由于 CodeCommit 支持 Git,开发人员可以利用 Git 操作来推送代码、提交拉取请求以及合并到“主”分支。这样将会运行使用 AWS CodePipeline 配置的持续集成和持续交付(CI/CD)管道。
第 2 步
在 CodePipeline 内,构建过程开始使用 AWS CodeBuild,并从中下载最新的源代码。
第 3 步
预先创建的 AWS Step Functions 状态机导入公共 Docker 映像或者构建新的 Docker 映像,并将它们存储在 Amazon Elastic Container Registry(Amazon ECR)存储库内。
第 4 步
CodeBuild 作业为 AWS HealthOmics 工作流准备构件。它将构件存储在 Amazon Simple Storage Service(Amazon S3)中,并创建 HealthOmics 工作流。此工作流包含用户定义的语义版本和自动更新的补丁版本。
第 5 步
成功构建之后,CodePipeline 运行 Step Functions 状态机,此状态机使用一些预先配置的测试数据测试 HealthOmics 工作流,并等待此操作完成。
第 6 步
成功完成工作流测试之后,工作流管理员审查 Amazon S3 中的工作流测试输出,并使用 CodePipeline 手动批准将工作流部署到生产 AWS 账户。
第 7 步
此批准操作调用 CodeBuild 作业,此作业将准备工作流构件并将它们上传到生产账户的 Amazon S3 存储桶。
第 8 步
CodeBuild 作业更新所有适用的存储库的 Amazon ECR 存储库权限,以便为生产 AWS 账户启用跨账户访问权限。
第 9 步
将工作流构件上传到生产账户的 Amazon S3 存储桶时,会运行 AWS Lambda 函数,此函数将检查必要的文件并启动 CodeBuild 作业。
第 10 步
CodeBuild 作业使用 Amazon S3 中的构件在 HealthOmics 中创建工作流。
第 11 步
现在可以在生产账户中使用 HealthOmics 工作流。
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
为了实现高效、有效的操作,本指引将帮助您使用 CodeBuild 和 CodePipeline 自动执行构建、测试和部署流程。CodeCommit 是另一项支持这些操作的服务;它将代码存储在私有 Git 存储库中,以进行版本控制。您可以跟踪更改、测试新版本,并在必要时进行回滚。您还可以使用 Step Functions 编排自动化测试,以验证部署的质量和可靠性。 最后,您可以在 HealthOmics 中集中管理工作流,以提高可见性和改善监控;HealthOmics 是一项专为医疗保健和生命科学组织构建的托管式服务,可以存储、查询和分析组学数据。
-
安全性
CodeCommit、HealthOmics 和 Amazon ECR 协同工作,以保护您的系统、应用程序和数据免受潜在威胁。具体而言,CodeCommit 利用访问控制、更改跟踪和加密功能,为您的工作流代码提供安全的存储和版本控制。HealthOmics 为您的生物信息学工作流提供隔离、安全、可扩展的处理。Amazon ECR 有助于确保为您的容器映像提供安全的存储和访问控制。此外,通过将 CI/CD 与生产环境隔离、实施最低权限访问和安全地管理构件,您可以为生物信息学工作流实现更高级别的隔离和安全性。
-
可靠性
要构建具有弹性和高可用性并能够承受故障的系统,需要使用 CodePipeline、Step Functions 和 HealthOmics 等服务。CodePipeline 能够自动构建、测试和部署新版本的工作流。Step Functions 在 CI/CD 管道中编排各个步骤,并设置框架,以便能够以具有弹性和容错能力的方式协调和自动重试失败的步骤。HealthOmics 管理底层基础设施和资源管理,并帮助提高工作流处理功能的可靠性和可用性。
-
性能效率
您可以通过 CodeBuild、CodePipeline、Step Functions 和 HealthOmics 优化计算资源的使用,同时最大限度地提高效率。CodeBuild 是一项具有多种功能的服务,支持完全托管式构建和测试工作流,还具有缓存和自动发现等功能。由 CodePipeline 和 Step Functions 提供支持的高效部署流程将性能下降的风险降至最低。 最后,HealthOmics 提供了一项用于运行生物信息学工作流的托管式服务,可处理底层计算资源和存储系统的预置和扩展,以实现最佳工作流性能。
-
成本优化
通过支持跨账户部署,本指引可以帮助您维护安全、隔离的开发、测试和生产环境,并降低无意间使用资源的风险和成本。为此,它会使用 CodeBuild、CodePipeline、Lambda、Amazon ECR 和 HealthOmics。例如,CodeBuild 和 CodePipeline 的自动构建和部署流程只允许预置必要的资源。通过使用 Lambda 执行轻量级任务,可以减少对始终可用的计算资源的需求。此外,通过将您构建的容器映像存储在 Amazon ECR 中,可以在多个工作流部署中重复使用,从而节省时间和计算成本。此外,使用托管式服务 HealthOmics,您无需管理底层基础设施和复杂的配置,还可以降低运营成本。
-
可持续性
使用 CodeBuild、Lambda、Amazon ECR 和 HealthOmics,可以最大限度地减少碳足迹并支持负责任地使用资源。CodeBuild 只预置执行构建和部署任务时所需的计算资源,并根据需要纵向扩展和缩减,因此减少了能耗和相关的环境影响。Lambda 无需预置和管理专用服务器基础设施,并且只在需要时运行,在空闲时关闭。Amazon ECR 为您的容器映像提供集中式、可扩展、持久的存储,而且无需使用额外的容器注册表或存储解决方案,因此减少了整体硬件和能源足迹。借助 HealthOmics,您可以使用这项服务的可扩展无服务器架构来运行生物信息学工作流,并帮助降低整体能耗。
相关内容
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。