Over the past few decades, numerous digital technologies have made our lives easier, mostly by abstracting the underlying complexity. Things like virtualisation and (public) cloud allowed us to respond to the ever increasing need for reliable services. A world of new and exciting possibilities was created by increasingly complex technology like containerisation. With this comes the need for a proper orchestration tool. The most popular one is Kubernetes, and for good reason.
Containerisation and orchestration
A monolithic approach like in the olden days clearly doesn’t cut it in modern times, so now, we see a shift towards a microservices architecture. With this architecture you run a single application as a suite of small services that can be independently planned, coded, built, tested, released, deployed, put into operation and monitored. Those pieces we call microservices: tiny applications that perform only one function, communicate with each other through defined API’s and live in isolated containers where they are guaranteed to work. Together these containers combine into the applications we use on a daily basis.
But there’s a downside too. Splitting up your monolith in microservices and running them reliably in hundreds or even thousands of containers is in itself a daunting task. Unless, of course, you use a proper orchestration tool. There are more ways to do this, but the most popular and effective tool of all is Kubernetes (K8s).
Kubernetes is an open source project. It was originally designed internally by Google (as a cluster manager called Borg), but it is now being maintained and developed by the Cloud Native Computing Foundation (CNCF). CNCF however not only offers a home to Kubernetes. If you look at the immense ecosystem around Kubernetes it’s easy to get lost in all the solutions out there. Their certification program is a tremendous help in selecting the right solutions for a particular job, as CNCF certification guarantees that different solutions comply to certain standards and actually work together. It allows us to weigh different possibilities, features, and the continuity and security aspects of each solution, to create a flexible setup for software release and renewal that fits the purpose of your organisation.
CI/CD and agility
The beauty of working with containers and Kubernetes is that it gives developers a speed and agility that fits in perfectly with a CI/CD (Continuous Integration and Continuous Delivery) way of working. CI/CD requires close cooperation between Development and Operations. This culture, called DevOps, is often challenging to realise within a single organisation, let alone when your Operations is outsourced while Development remains in-house. Solvinity found ways to make this work, called ‘Stretched’ DevSecOps, which also includes Security from the start. Together with CI/CD and an advanced implementation model based on containers and Kubernetes, we call this Integrated Delivery, which is the basis for Solvinity’s Secure Managed IT Services.
As you may have gathered from this story: cutting through complexity like this does not mean that things get necessarily easier. Working with containers (and Kubernetes to rule them all) is an immense improvement over the Waterfall development methods of old. It creates the flexibility you need to build an agile organisation and, together with Integrated Delivery, seriously improves the speed and quality of software development. But it’s not simple. The possibilities are enormous and every day, new projects are started that offer new solutions while raising new questions in the process.
Keeping track of all that, even with help of an organization like CNCF, is a serious challenge. Fortunately, at Solvinity, we love challenges. We visit events like KubeCon, DevOpsDays, follow the seminars and read the documentation so you don’t have to. Want to know what Solvinity could do with Kubernetes for your organization? Feel free to contact us and we gladly tell you all about its possibilities.
Find out more about Solvinity here.