(c)iStock.com/Sjoerd van der Wal
Opinion It’d be fantastic if developers could write one piece of code on their machine and have full confidence it could run on any server without a glitch.
This is far from the norm as the technical headaches of pushing code on to different servers and environments can have profound consequences for any organisation. This can undermine confidence and slow down the roll-out of new apps and amendments to them.
Things are changing though, as the technology supporting cloud infrastructures matures. We’ve seen this with the largely universal acceptance of open source container solution Docker, which is helping standardise code for cloud environments.
This has now been enhanced by the arrival of Kubernetes, a platform used for automating deployment and scaling, as well as the operations of application containers across clusters of hosts.
High level control in cloud environments
The layer of abstraction that Kubernetes provides means we now only need to talk to one technology to gain a higher level of control over everything at a lower level. It also means we can take a cloud infrastructure built in one cloud environment, such as AWS, and move it into another environment, including Azure or Google Cloud.
This really is the next generation of cloud, with lots of big name organisations already jumping on the bandwagon and embracing Kubernetes. However, this move will not be as simple for everyone. Many companies will need to undergo a major cultural shift before this is possible.
To appreciate the benefits of Kubernetes, of which there are many, organisations first need to embrace the DevOps philosophy that places a clear focus on small scale continuous change to an organisation’s infrastructure. This approach is one that concentrates on deploying a microservice architecture and away from a huge code base that will become brittle as its scales.
Scaling up with confidence
When developers focus on one component of an app at a time, the risk of things being broken elsewhere is reduced. Developers can concentrate on making enhancements to one area of a cloud infrastructure without having to worry about the implications their actions are having elsewhere.
An eCommerce site, for example, will have a separate app for every component – be that user sign-up and login management or for processing orders. Kubernetes allows microservices performing different tasks to be deployed and scaled individually. Along with this, it ensures these separate services can still talk to each other.
This approach is allowing organisations to scale their cloud infrastructure in a more sustainable way – allowing features to be added quicker and with greater reliability. There is little doubt that the benefits, particularly when considering the current lack of alternatives, means Kubernetes will become the de facto tool for scaling up infrastructures as cloud computing matures.
It’s important to recognise, however, that this not about writing code in a new way, it’s about working in a new way and facilitating continuous change.