Background: STARZPLAY is the leading OTT provider in the Middle East / North Africa (MENA) region. This means serving millions of concurrent requests simultaneously. The architecture here is cloud-native and has 150+ microservices running together. All this is spread across multiple environments and supports multiple device platforms and technologies, making the deployment process extremely complex.
In order to solve these delivery challenges, coupled with the need to meet SLOs like mean time to market, staying within error budgets, and have a resilient delivery process, the DevOps team came up with a unique solution: declarative pipelines!
Goals: Building declarative pipelines for continuous delivery to multiple environments triggered by Chatbots.
Solution & Results: We use declarative pipelines to capture all the parameters which differentiate services, environments, repositories, container registries, environment variables, deployment types, and associated information and trigger a build and delivery pipeline.
Jenkins served as the single point of integration for various moving parts in the Build-Test-Release-Deploy-Monitor cycle. It allowed federated control and opened up the capability to deliver reliably.
The pipelines are triggered by chatbot integration with Jenkins and help maintain a feedback loop and ease of operation when working in collaboration. Further, the pipelines also have Jenkins integrated with artifact registries and multiple cloud providers using plugins which allows to store artifacts, manage versions and releases, and deploy multi-cloud if needed.
The solution to the challenges of continuous delivery of a heterogeneous set of microservices across heterogeneous environments encompassing a distributed team required a robust delivery tool. Jenkins proved to be the one-stop-shop! My STARZPLAY DevOps team and I set up a unique solution set.
The deployment process turned out to be a great success and put all these moving parts together without Jenkins would have been unimaginable.
Here are the capabilities we relied on most:
Jenkins featured used:
Plugins used:
Our top 5 results are as follows: