The client – A Top 10 global grocery and general merchandise retailer
With its scale, our client is processing thousands of transactions per second, supporting delivery of 1,000,000,000+ (that’s 1 billion) items annually, growing its user base with an average 4 new registrations per minute, and having more than £50 billion of revenue every year only in Europe.
The client is on the market for nearly a century now. As for any such organization it also has its history of different hardware technologies, software products, hundreds of third-party vendors, and many duplicated processes across over a dozen countries it is operating in.
VirtusLab’s goal was to help the company drive it’s large scale cloud transformation and it all started with building a centralized deployment platform.
Our goal was to build a centralized deployment platform for production and non-production environments, that is highly available, scalable and secure, freeing up engineering from typical day one activity like setting up infrastructure and integration with enterprise tooling.
With that vision in mind, we started with the initial proof of concept for self-hosted Kubernetes and the infrastructure of CI/CD around it (our experiences resulted in the creation of Jenkins Operator service and open source project, which we donated to the official Jenkins organization).
The project started in 2017/2018 when Kubernetes was full of promise, yet very much lacking in terms of large scale production workload best practices.
From a technical perspective, it included areas like:
- Introduction of immutable infrastructure and automation tools – AWS CloudFormation, CoreOS Container Linux, and Cloud-init.
- Design and implementation of internal Kubernetes distribution in AWS with fully automated infrastructure lifecycle management.
- Networking, including Software Defined Network – container level networking (CNI), as well as the whole AWS network architecture like IP Address Management (IPAM) or VPN connectivity.
- Access Control and Security – centralization of identity management for Kubernetes and AWS cloud, provide secure multi-tenant environments for engineers.
- Monitoring, logging, and alerting – integration with Incident Management workflow.
- …and lots of dev tools written mostly in Golang.
Building a truly Cloud-Native Platform is quite a challenge, especially for the organization of such scale and technical diversity. Still, we have achieved spectacular and very tangible results:
Reduced project kick-off time by an order of magnitude – 10x. Starting a new project took usually weeks, which was reduced to hours. Costs of the project (timewise) are cut by at least 10 man-weeks.
Platform and infrastructure stability brought significant savings for the organization – £100,000+ a month.
Onboarded several dozens of teams and hundreds of developers to the new cloud platform and kept the production workloads intact during the transition period.
Established well-grounded Support and Operations model for the platform and brought standardization to the organization.
Platform and infrastructure performed excellently even under peak load and we survived periods like Black Friday without any significant downtimes which were a plague in past years. This means direct financial benefits in the form of a monetized opportunity that was often previously missed.