最近,ebay 分享了他们在采用管道驱动的自动化解决方案方面的进展。该解决方案让他们能够实现对其框架和基础设施的持续更新。该解决方案的架构有可能变得更加通用,因为它采用了可插拔和松散耦合的方式,提供了良好的可扩展性。
ebay 的平台包括两个关键组件:作为应用程序代码基础的框架和负责托管应用程序的云基础设施。通过利用自动化解决方案,ebay 简化了作业的准备、执行和验证过程,从而显著提高了生产率。
在这个庞大而复杂的市场中,存在各种类型的升级,例如框架升级、框架迁移和云迁移。由于平台的规模和复杂性,这些升级在持续地发生,这也说明了 ebay 系统在不断演化和增强。
我们以一个特定的云迁移案例为例。在这个案例中,我们需要将云基础设施从依赖虚拟机的 openstratus 迁移到基于容器技术的 kubernetes。这个迁移对应用程序开发生命周期有所影响,因为它涉及从基于库的清单方法到基于镜像的清单方法的转换。要完成这种类型的迁移,通常需要完成定义好的一系列任务,包括元数据收集、配置工作负载、迁移网络拓扑和流量、创建新实例、实现监控,以及停用以前基于虚拟机的资源池。
只依赖单独的脚本或自动化工具可能不足以确保平台级变更的质量。因此,ebay 团队为他们的自动化解决方案设想了一些特定的功能,包括要求每个工作流包含多个任务,每个任务与生态系统进行无缝交互以执行必要的操作。此外,还需要对工作流任务进行有效的管理和编排,确保自动化框架里的操作能够顺利执行。
该解决方案的架构如下图所示:
图片来源:https://tech.ebayinc.com/engineering/ebays-common-automation-solution-for-platform-evolution/
架构包含了两个主要组件:编排器和可插拔管道。编排器负责根据输入来确定流,并相应地执行预定义任务。在执行流时,编排器确保任务上下文的持久化,可以在下一个任务执行之前对其进行恢复。然后,编排器利用 quartz 作为任务调度引擎对任务进行顺序处理。
在编排器启动期间,会有一个流管理器来预加载流定义并激活负责编排任务执行的任务监听器。此外,流管理器还支持任务重试或在必要时跳过特定任务等功能。编排器的内部功能如下所示:
图片来源:https://tech.ebayinc.com/engineering/ebays-common-automation-solution-for-platform-evolution/
之前已经报道了 ebay 开始使用契约测试来安全地演化内部 api 和满足客户端团队的需求。
ebay 的平台演进涉及可重用任务和组件,包括可以跨不同流共享的强化通用任务。平台团队认为,他们基于管道的自动化解决方案将是支持未来基础设施和框架升级的关键能力。
什么是RDRAM
中国移动正在叩开智能家居的大门!
关于RFID与NFC的关联和区别浅析
苹果设计之魂乔纳森的下一城:年过半百决定创业
固定频率升压型DC-DC转换器LT3579
eBay的平台自动升级解决方案
半导体行业关键技术ALD:这家公司是龙头!
国产操作系统之光-麒麟操作系统
吴恩达:机器学习和人工智能的未来
5962-8759101LX 模数转换器
北京团队首次实现开放式架构双场量子密钥分发系统
比特币是如何扰乱整个金融机构的
经纬恒润首个国产化4G T-BOX已获客户定点
嵌入式电源
多电量变送器在消防巡检设备中的应用
借助机器学习的适应性来巩固人类的想象力和创造力
CASAIM 与ABB 达成三维数字化测量技术合作,CASAIM 国有专业尺寸检测实验室助力机器人轨道检测
小米10至尊版原生10bit面板详解,色彩是此前手机的64倍
智能机器人站上“风口”!国产机器人增速放缓
pcb设计需要遵循哪一些规范要求