作者:Rostislav Markov 和 Matt Noyce,发表于2023年3月24日,来源于 ,,,,,,,,
在基因组研究中,自动化基准测试可以帮助识别更快、更便宜的工作流程。通过准确的资源规划和成本透明,企业可以有效评估工作流程性能。此外,自动系统减轻了开发和运行基准测试的负担。
运行 可能需要数小时,涉及大规模的计算实例处理数据,规模达到 PB级别。基准测试()可以帮助你评估工作流程的性能,发现更快更便宜的运行方式。
然而,实际中由于基准测试的工作量大,性能评估往往不规律。因此,我们在本博客中讨论如何使生命科学研究团队能够自动化这些评估。
实施自动化基准测试解决方案带来的好处包括:
益处 | 描述 |
---|---|
更准确的企业资源规划 | 通过历史数据分析,提高资源规划的准确性。 |
降低企业成本 | 通过比较不同资源类型的性能,帮助企业降低运营成本。 |
成本透明度 | 量化定期的费用分摊,提高成本透明度。 |
我们已使用自动化基准测试比较不同服务的处理时间,包括 (Amazon EC2)、、、 (Amazon EKS) 和本地的 HPC集群。科学家、金融家、技术领导者和其他利益相关者可以根据消费者、工作流程类型和时间段,生成报表和仪表板来比较消耗数据。
我们的自动化基准测试解决方案在两个维度上测量性能:
该解决方案还可以扩展到其他性能指标,如每秒迭代次数或计算节点上的进程/线程分布。
我们的要求包括:
我们选择了无服务器设计模式,使用 进行编排,应用 执行代码,并利用 跟踪工作流程启动 ID 和状态(如在 中所述)。假设基因组工作流程运行在 上,并且基因组数据存储在 中(在 中有提到)。AWS Step Functions 允许我们将处理过程细分为更小的步骤,避免单体应用代码。我们的评估过程分为四个步骤:
图1可视化这些步骤。
图1. 自动化基准测试基因组工作流程
AWS Step Functions 可靠地编排我们的基准测试工作流程,使我们的应用代码易于维护。图2总结了我们将要描述的状态机转换。
图2. AWS Step Functions 状态机的自动化基准测试
将 DynamoDB 流视图类型配置为 New image 以便在改变后完整传递整个项。我们设置了一个 ,与 的 DynamoDB 流作为 。我们的事件筛选器使用 处理状态为 COMPLETE 的记录,但没有成本条目,以避免无限循环。一旦我们的状态机更新了 DynamoDB 项目中的工作流程价格,DynamoDB流中的结果记录将不会通过我们的事件筛选器。
我们的事件筛选的语法如下:
`json { "dynamodb": { "NewImage": { "status": { "S": 来简化后续解析,去除事件中的不必要元数据。
流记录中消耗的资源包括 AWS Batch 的自动扩展组 ID 和 Amazon FSx for Lustre 的卷 ID。我们使用
( 在 Boto3 中) 来确定使用了哪些计算资源。如果响应是 EC2 实例的列表,我们将查找消费信息,包括使用的开始时间和结束时间,使用 ( 在 Boto3 中) 分别获取每个计算节点的信息。我们使用
对识别出来的 EC2 实例加以过滤,以获得 (AmazonEBS) 卷的大小和类型。
另一个 Lambda 函数可通过 的 请求获取所有消耗资源的单位价格,并解析出 pricePerUnit 值。对于现货实例,我们使用
在 Boto3 中指定的时间范围和实例类型来接收价格。
工作流程启动价格的计算基于以下因素:
我们的基于 Python 的 Lambda 函数计算总成本,向上取整,并以以下格式返回价格明细:
total_cost: str, instance_cost: str, volume_cost: str, filesystem_cost: str
最后,我们通过 Amazon States 语言直接使用 UpdateItem 将价格明细更新到 DynamoDB 表中。
请注意,AWS 信贷和企业折扣可能不会在 的响应中反映,除非特定应用到此 AWS 账户。这通常被视为符合最小权限原则的最佳实践。
在之前的实践中,我们也使用了 来代替 。AWS Cost Explorer 的数据每24小时至少更新一次。你可以在 DynamoDB 表项中标记待定价格状态,并使用 状态来延迟计算过程。
所提出的解决方案也可以扩展到其他计算服务,如 (Amazon EKS)。对于 Amazon EKS,事件通过来自 DynamoDB 表的集群 ID 进行丰富,价格计算还应包括控制平面的成本。
生命科学研究团队利用
来比较工作流程性能,指导架构决策。这类评估工作量较大,因此进行的频率较低。
在本博客中,我们展示了生命科学研究团队如何对科学工作流程进行自动化基准测试。通过自动化基准测试,团队获得的洞见表明了持续优化的机会,比如调整计算节点的配置。评估数据也可以按需用于其他目的,包括费用分摊。
请继续关注我们的下一篇文章,我们将展示如何利用历史基准测试数据进行未来工作流程启动的价格估算。
标签:
Rostislav 是 AWS 专业服务的首席架构师。在 AWS 行业担任技术领导,他与 AWS客户和合作伙伴合作进行云转型项目。在工作之外,他喜欢与家人在户外活动,打网球和滑雪。
Matt Noyce 是一名高级应用架构师,主要与 AWS专业服务中的医疗和生命科学客户合作。他与客户共同构建、架构和设计满足他们业务需求的解决方案。在闲暇时间,Matt 喜欢跑步、徒步旅行和探索新城市与地方。
Leave a Reply