Infrastructure
Application infrastructure – servers, load balancers, name servers, and more – can be one of the biggest barriers to fast, agile delivery. But it also has the potential to be your biggest enabler, and it’s one of the most important areas to focus on getting right.
Infrastructure’s come a long way
Setting up infrastructure used to involve screwdrivers and typing commands using a keyboard attached to a serial port in a noisy, cold data centre. The processes were slow, expensive, and very prone to human error. Updates and patches had to be applied manually, to each individual machine, and this effort required dedicated teams. The manual aspect to all this also made it incredibly easy to end up with ‘snowflake servers’ – servers that are unique, irreplaceable, and a liability.
Innovation has shaken things up
Over the past decade the industry has made incredible progress. Virtual Machines (VMs) and Virtual Networks brought the dawn of cloud computing, which grew to a full offering of Infrastructure as a Service (IaaS). Think VMs, Virtual Networks, block storage, firewalls, load balancers, gateways, and more. The key innovation was that IaaS had an API. We could suddenly write programs to build infrastructure, resulting in the practice known as Infrastructure as Code (IaC).
Tools like Terraform make the process of setting things up fully repeatable and allow us to have development and production environments that are nearly identical. In turn, this helps catch issues earlier in the process and enables various kinds of testing (performance, penetration, etc.) to be done outside the production environment.
Containers and cluster orchestration are changing the game
The next leap in infrastructure came with containers – an Operating System level virtualisation. Container technology (the most popular being Docker) made it possible to package software written in various languages in a uniform, portable way. It also made it possible to deploy multiple containers onto a single VM. This meant better utilisation, and improvements in the time taken to deploy or scale up an application.
The next big leap forwards in the infrastructure space is happening right now. Cluster orchestration software, such as Kubernetes, solves the problems that emerge when you run lots of containers on a cluster of virtual machines – from orchestrating zero downtime deployments to handling machine failures. This creates a reliable, self-healing, easy-to-scale runtime surface. With this in place, application teams can focus more energy on delivering application features and customer value.
Smart infrastructure will serve you
Infrastructure is a key area of strategic investment for organisations. The focus should be on reusable solutions that enable continuous delivery and increase autonomy of teams as much as possible.
The latest generation of infrastructure tools and technologies makes this easier than ever.