Do you like shopping? For some it may be a chore but the advent of online shopping does make life easier, especially for the savvy shopper and not only in everyday life, but also when Christmas is coming. One can barely think of a gift idea which would not be available within a few clicks.
Have you ever wondered, from an IT perspective, what level of expertise is required for this? It is our natural expectation that web shops run smoothly during promotions or in busy shopping periods, but just a few years ago that a half-day online promotion could quite possibly crash the entire web site.
Today, this issue has become relatively easy to solve.
Professionals have found the answer to the problem of how to make the performance of computer systems load adaptively and dynamically, with the least possible human interaction. They have long ago given up the concept of building a giant, powerful computer to achieve optimal performance – which is called vertical scaling – because after a while this machine’s capacity became limited and it just was not worth it economically. Instead, they combine lots of everyday PCs’ performance to optimise resource usage. This latter solution, which is called horizontal scaling, is cheaper and more flexible.
This method can be utilised by containerisation technology, too.
This means that different applications can be handled simultaneously, in packages. They are delivered in containers and the containers themselves are run by a platform created specifically for this task. The developer inserts the program they made into a container: the cluster built of many small machines, which is an ’infinitely’ scalable resource set and only has to be prepared to run containers.
Why is containerisation revolutionary? It takes several minutes for a traditional virtualisation to launch a virtual machine, by using containerisation it is a question of milliseconds. Let’s imagine the resource demands say at a Christmas promotion launch, when the webshop is flooded by more than 100,000 users who all start shopping. In the times of traditional old tools, the system administrator got a red light, so they began to plug in new machines. This required waiting. Visitors got annoyed at error messages. But with the help of containerisation, today customers are not experiencing any of this. The whole process is automated. A sensor monitors the workload and as soon as it reaches the threshold, new sources are mobilised. Without any human intervention, the system is adapting itself to resource requirements.
A few years ago, Google made some open source software from a potential support tool for containerisation and horizontal scaling. Thousands of programmers contributed to its development with their pro bono work.
It is called Kubernetes.
From the Greek word for “navigator” from which the word ’cybernetics’ also comes. In ancient times, sailors needed to be bold and resourceful. Travelling across the seas without maps or navigating tools, independent thinking was a constant need for them. It is likely that the same goes for the professionals at Google, who a few years ago created this development for accelerating operations and simplifying container management tool. By using it, software developers need less time to manage infrastructure, while they have more time to develop applications.
And this is also necessary.
Today, more and more web shops announce promotions that only run for a few hours where their products can be bought for an incredibly low price. On these occasions the traffic may be vastly increased for a short time. Whether it was the availability of the technology that prompted these campaigns or the demand from customers that made the developers work harder is unknown, but it is a fact that today providing this kind of technology for such shopping sprees not a problem anymore.
Meanwhile in the background, the developer can make Kubernetes run from a certain application, say, in at least three to ten instances, depending on the traffic. The system then will automatically decide that out of a pool of 100 machines which ones will run the applications.
In the meantime, the developers are catching their breath. Which they will use as an opportunity.
Many of them will grab the occasion to improve tools like that.
(The 2nd part of this article is to read here.)