写点什么

eBay 平台自动升级解决方案

作者:Aditya Kulkarni

  • 2023-06-21
    北京
  • 本文字数:1072 字

    阅读完需:约 4 分钟

eBay平台自动升级解决方案

最近,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 的平台演进涉及可重用任务和组件,包括可以跨不同流共享的强化通用任务。平台团队认为,他们基于管道的自动化解决方案将是支持未来基础设施和框架升级的关键能力。


原文链接

https://www.infoq.com/news/2023/06/ebay-platform-upgrade-automation/

2023-06-21 13:163695

评论

发布
暂无评论
发现更多内容

LeetCode-27. 移除元素(java)

bug菌

9月日更 Leet Code 9月月更

信息安全之我见(45/100)

hackstoic

信息安全

你猜 1 行Python代码能干什么呢?神奇的单行 Python 代码

梦想橡皮擦

Python Python. 9月月更

计算机网络的组成

StackOverflow

编程 计算机网络 9月月更

随机生成也是需要有效控制的

zxhtom

9月月更

《小米创业思考》之一:小米历程

郭明

读书笔记

数字化转型和信息化的区别是什么?

雨果

数字化转型 企业信息化

生产环境中使用 Linkerd

CTO技术共享

云原生(三十六) | Kubernetes篇之Harbor入门和安装

Lansonli

云原生 9月月更

致敬经典!这款华为主题能让你的手机秒变“历代Mate”

最新动态

查看k8s的etcd数据

程序员欣宸

Kubernetes 9月月更

真的破防了!在华为主题熄屏显示找到我的第一台Mate

最新动态

自动化测试如何管理测试数据

老张

自动化测试

Java进阶(五)Junit测试

No Silver Bullet

JUnit 测试 单元测试 9月月更

云资源管理概述

阿泽🧸

云资源 9月月更

深入学习SAP UI5框架代码系列之二:UI5 Module的懒加载机制

汪子熙

JavaScript 前端框架 SAP ui5 9月月更

【CSS】 position : static | absolute | relative | fixed | sticky

翼同学

CSS 前端 9月月更

使用 VUE 和 Go 触摸 WebAssembly

devpoint

Go Vue webassembly 9月月更

云原生的学习心得

Geek_e8bfe4

LeetCode-28. 实现strStr()(java)

bug菌

9月日更 Leet Code 9月月更

库调多了,都忘了最基础的概念-《方法篇》

知识浅谈

9月月更

2022-09-04:以下go语言代码输出什么?A:不能编译;B:45;C:45.2;D:45.0。 package main import ( “fmt“ ) func main() {

福大大架构师每日一题

golang 福大大 选择题

【精通内核】Linux内核并发控制原理信号量与P-V原语源码解析

小明Java问道之路

Linux 并发控制 内核 Linux内核 9月月更

YAML管理Kubernetes应用

CTO技术共享

你真的理解C语言中的 “ 数组 ” 吗?(初阶篇)

Albert Edison

数组 C语言 开发语言 二维数组 9月月更

浅述AIOps与DevOps的区别在哪里

穿过生命散发芬芳

DevOps AIOPS 9月月更

Containerd ctr、crictl、nerdctl 实战

CTO技术共享

1分钟了解什么是数据湖?标准的数据湖什么样?

雨果

数据湖

一款开源的电商框架介绍:Spartacus

汪子熙

typescript angular SAP Spartacus 9月月更

[教你做小游戏] 滑动选中!PC端+移动端适配!完美用户体验!斗地主手牌交互示范

HullQin

CSS JavaScript html 前端 9月月更

NFT数字藏品介绍:NFT数字藏品(交易平台)系统开发

开源直播系统源码

区块链 NFT 数字藏品 数字馆藏

eBay平台自动升级解决方案_中间件_InfoQ精选文章