Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Automating Platform Upgrades at eBay

Automating Platform Upgrades at eBay

eBay recently provided insights into their adoption of a pipeline-driven automation solution, enabling them to achieve continuous updates to their framework and infrastructure. The solution architecture has the potential to become more versatile as it adopts a pluggable and loosely coupled approach, allowing for easier extensibility.

eBay's platform comprises two key components: the framework serving as the foundation for the application code, and the cloud-based infrastructure responsible for hosting the application. By leveraging the automation solution, eBay streamlines the preparation, execution, and validation of jobs, resulting in a notable boost in productivity.

Within the expansive and intricate marketplace, there exist various types of upgrades, such as framework upgrades, framework migrations, and cloud migrations. Due to the scale and intricacy of the platform, these upgrades occur in a continuous manner, reflecting the ongoing evolution and enhancement of eBay's systems.

For example, let's consider a specific case of cloud migration. This process entails transitioning the cloud infrastructure from openstratus, which relies on virtual machines, to Kubernetes, which operates with container-based technology. This migration has an impact on the application development lifecycle, as it involves transitioning from a library-based manifest approach to an image-based manifest approach. Accomplishing this type of migration typically follows a defined sequence of tasks, including metadata collection, configuring workloads, migrating network topology and traffic, creating new instances, implementing monitoring, and finally decommissioning the previous virtual machine-based pools.

Relying solely on isolated scripts or tools for automation may not be adequate to ensure the quality of platform-level changes. Hence, the eBay team envisioned specific features for their automation solution. These include the requirement for each workflow to encompass multiple tasks, with each task seamlessly interacting with the ecosystem to execute necessary actions. Additionally, there is a need for efficient management and orchestration of workflow tasks to ensure smooth operations within the automation framework.

The proposed architecture is shown in the below diagram:

Source: eBay’s Common Automation Solution for Platform Evolution

The architecture comprises of two primary components: the orchestrator and the pluggable pipeline. The orchestrator is responsible for determining the appropriate flow based on the input and executing predefined tasks accordingly. When running a specific flow, the orchestrator ensures that the task context remains persistent, allowing for its restoration before the next task execution. The tasks are then processed sequentially by the orchestrator, utilizing Quartz as the task scheduling engine.

During the startup of the orchestrator, a flow manager is present to preload the flow definitions and activate task listeners responsible for orchestrating task execution. Additionally, the flow manager facilitates features such as task retrying or skipping specific tasks when necessary. The internal functioning of the orchestrator can be illustrated as follows:

Source: eBay’s Common Automation Solution for Platform Evolution

eBay was recently in the news as they started using contract testing to help safely evolve their internal APIs and support the client team’s requirements.

Platform evolution programs at eBay involve reusable tasks and components, including hardened generic tasks that can be shared across different flows. The team believes their pipeline-based automation solution will be a key capability for supporting future infrastructure and framework upgrades.

About the Author

Rate this Article