Kubernetes

Kubernetes directs containers like an orchestra: you use it to manage rollout, scaling, recovery, and load balancing across clusters, so software stays predictable even when a node drops out briefly or you scale up.

  • Crashes are recovered automatically, and your downtime shrinks a lot as a result.

  • It runs on every cloud and on your own servers too.

  • It is now the most used platform for professional environments.

Kubernetes in practice

Starting from the basics

A good technical foundation helps you extend and scale software later. Glossary · In briefcontainerA container is an isolated application process with the files and settings it needs. Containers on the same machine usually share the operating system kernel.Read more support this by packaging the software together with the components it needs.

What is containerization?

Getting software onto a server seems like an easy task; but when you consider all of the things that have to be aligned for this to happen (OS version, multiple servers communicating with each other, correct versions of config files, etc.) and you throw switching to a different Glossary · In briefcloudThe cloud is a collective term for computing power, storage, databases and software available over a network, usually from an external provider's data centres.Read more service into the mix; containerizing software is a strong solution. All of your application's source code, along with its needed Glossary · In brieflibraryA library is a collection of reusable software code for a defined task. An application can call that code to use existing functionality.Read more and operating system, plus any configurations can be packaged into a single "container" which will run uniformly and consistently across whatever infrastructure you choose.

Clarity about development

Containers let the development team agree in advance on the tools and settings an application needs. We install a new tool in the container so it travels with the application. This makes it easier to move software from a development computer to a test or production environment.

Containers in a grid

The role of Kubernetes

'Kubernetes' is essentially a term that roughly translates to "koo-ber-net-ees." That is what manages those containers. In practice, a large application usually divides itself up into multiple small, independent functions or pieces of functionality, all packaged in their own individual containers. Kubernetes will provide you with one location to manage/automate them as well as their abilities. Kubernetes will also allow your containers to communicate with each other. Additionally, Kubernetes removes an enormous amount of time consuming repetition from your plate. While there are certainly alternative tools available to accomplish similar things - such as ECS and Docker Swarm - Kubernetes is the leading tool in this area and has been for many years.

Efficient automation

Kubernetes can also automate scaling and traffic distribution. When a website gets many more visitors, Kubernetes can start extra containers and distribute traffic across them. This helps the application handle peaks in usage.

Scaling with containers

Where Kubernetes really shines is in Glossary · In briefscalabilityScalability is the extent to which software, infrastructure or a process can handle more or less work without major rebuilding or unacceptable performance loss.Read more. All your workloads run in small, isolated containers, separate units you upgrade or patch live while they still handle active traffic. You can update the components that need changes individually. Kubernetes also supports horizontal scaling by distributing application containers across multiple servers.

Saving server capacity with Knative

There are ways that it could be even better. With many application systems (or portions thereof) sitting idle, there will always be less server resources required to support them at all times. For this reason we use 'Knative'. The main difference with Knative compared to how most applications run in the back ground by default is, Knative does not make the server resource available until a real requests come into an application. So they do not run unless you need to utilize them. Using both Knative and Kubernetes ensures we are wasting no server resources or server space.

Where Kubernetes has practical value

In public cases such as iPhoned and SGI Compliance, Kubernetes appears in environments where fast Glossary · In briefreleaseA release is an identifiable software version prepared to be made available to users. It brings together one or more checked changes.Read more and stability are both required. We use it there for controlled Glossary · In briefdeploymentA deployment is the process of installing and starting a chosen software version in a target environment so it can be tested or used there.Read more, scaling under Glossary · In briefpeak loadPeak load is the temporarily high demand on a system when many users, requests or tasks need capacity at the same time.Read more, and faster releases, often together with Review Apps and Glossary · In briefCI/CDCI/CD is a way of working in which teams frequently merge software changes, check them automatically and use a defined sequence of steps to prepare or deploy them to production.Read more.

Not every project needs Kubernetes straight away. If an environment stays small and the operational model remains simple, a lighter approach can fit better. That is exactly why we treat Kubernetes as a deliberate infrastructure choice, not as the default answer to every container question.


Key takeaways

  • Containers make software easier to move between environments.

  • Automatic scaling helps match server capacity to usage.

  • If a container crashes, Kubernetes can automatically start a new one to limit downtime.

  • Your application needs to be cloud native to work with this software, but we are of course happy to help you with that!

CONTACT

Get in touch with us

Have a question or want to discuss your software? Leave your details and we will get back to you soon.