Until very recently, it was common for big retailers in all sectors to use large, monolithic applications to get their businesses online. These applications would often start off small, but as more and more features were bolted on they would quickly turn into large, difficult, unmanageable beasts. This causes drawbacks on a number of fronts.
First, teams spend more of their time maintaining and supporting the existing solution rather than creating new features that address new demands. Second, releasing new features into production is cumbersome, expensive and risky. While high-performing digital businesses deploy new code multiple times a day without disrupting business, many organizations still struggle to deploy new features once a quarter, often requiring the system to go offline for a period of time. Third, peaks in traffic due to new product launches, holidays or even a pandemic-induced lockdown, can cause severe service disruption and lead to frustrated customers and lost revenue.
In this article, we’ll be exploring what Kubernetes is and how it can help to address these challenges as part of modern e-commerce infrastructure. If microservices and containers are the instruments, Kubernetes is the conductor that makes them play together in harmony.
But first, let’s set the scene.
Digital transformation has been high on retailers’ agenda for at least the past decade or more, but the global health crisis of 2020 put renewed pressure on businesses to master e-commerce. Of all retail sectors, grocers arguably experienced the most sudden shift in demand. As nations around the world went into lockdown, people spent their money at supermarkets instead of restaurants. In addition to the dramatic increase in demand, grocers also had to cope with sudden changes in consumer behavior, buying habits and preferred sales channels. Prior to the pandemic, online grocery sales were slowly increasing and were expected to form a core part of the sector’s future, but still only accounted for around 2.3% of overall sales. Following the pandemic and its associated lockdowns, however, that figure is set to reach a staggering 55% by the end of 2024.
The pandemic has served as a catalyst for changing customer behavior permanently. It’s also exposed the shortcomings of a monolithic, hard-to-scale software architecture. Everything that plagues monolithic architecture was suddenly a show for all to see: sudden peaks, rapidly growing order throughput and unprecedented page views caused unavoidable downtime. We also saw rising demand for new features that needed to be delivered today rather than six months down the line. Kubernetes may not solve all of these problems on its own but it has an integral part to play.
To summarize containerization very briefly, containers are a form of ‘digital packaging’ which allows developers to deploy small software modules - known as microservices - to any operating system. Each container holds everything it needs to host a particular microservice, including code libraries and other dependencies. Hundreds of microservices can be deployed simultaneously in their own self-contained ‘containers’ or ‘bubbles’, which can be linked through APIs to function as a whole.
Containers can be run in a variety of ways. A business could choose Amazon Web Services, Azure or Google Cloud, some of which might come with pre-defined Docker images to help manage containers. Or, like the vast majority of developers working in e-commerce, a company can choose Kubernetes.
If we think of a modern, microservice-based architecture as an orchestra, Kubernetes would be the conductor. Containers and microservices each have a specific role to play, and when and how they’re deployed is important in the overall running of a digital business. That’s where Kubernetes comes in. It’s an open-source system, originally developed by Google, which allows businesses to manage complex deployments of containers and continuously optimize load while monitoring health and container lifecycles. A range of containers can function together in a ‘Kubernetes cluster’, which can then be assigned an endpoint API to talk to another cluster. It’s incredibly flexible, and the opportunities are seemingly limitless.
As a result, Kubernetes has become indispensable for many businesses considering containerization. In fact, Kubernetes has an almost 80% share of the containerization market.
When it comes to containerization and agile deployment, there are several reasons the majority of developers choose Kubernetes - all of which are hugely beneficial to online retailers and e-commerce in general.
The events of 2020 demonstrated perfectly the need to be able to scale up with demand quickly and easily. Kubernetes can easily scale the number of containers in use depending on the needs of an application. Elastic up and downscaling is one of the hallmarks of a cloud-native offering and distinguishes it from solutions (often monoliths) hosted in the cloud that can’t offer this.
With a 24-hour service operating across several channels, all of which are frequently updated, retailers are more likely than other industries to benefit from rolling deployments and are more likely than other retail sectors to benefit from rolling deployments. With Kubernetes, whenever a new feature or update is rolled out a backup of the old image is automatically created. This backup is only destroyed once the new image is fully operational.
Kubernetes has the ability to determine which ‘worker nodes’ a set of containers should run on depending on what is required and the resources available. While old, monolithic applications would be resource-hungry no matter the workload, Kubernetes and microservice-based architecture will only deploy and use what is currently needed. In this way, retailers will find it easy to scale up their operations at a moment’s notice, safe in the knowledge that they’re only spending that extra computing resource when they need to.
Kubernetes makes systems more scalable, easier to maintain and to support, and will give retailers peace of mind when the next holiday season, product launch or feature update comes around. Kubernetes is supported by all major cloud vendors and is therefore universally available. In an age where digital agility is crucial to the success of businesses, all retailers should consider cloud-native solutions that fully utilize Kubernetes.
To find out more about Kubernetes, containerization and the benefits of microservice-based applications, get in touch with us here.