Cloud Native Transformation Patterns: Automated Infrastructure

Automated Infrastructure

Got automation?

If your enterprise is going Cloud Native, automation is a core requirement. The Automated Infrastructure pattern leads the way to this major step in the CN migration process.

Perhaps your enterprise manages infrastructure using time-consuming manual processes. Or maybe you’ve “automated” things a bit with a collection of ad hoc scripts strung together as needed, by whoever was around. Both of these are surprisingly common approaches to infrastructure management, even among large companies that should know better. Neither of these need apply to Cloud Native systems.

Two major benefits come with Automated Infrastructure. (Actually, there are loads, but to keep things simple we will focus on the two really major ones). First, when engineers and system administrators automate as many routine tasks as possible, they have more time for actual development work. Second, automation makes the management of complex, diverse environments possible and allows rapid scaling.

There are all kinds of solutions available for automating, customizable to fit unique organisational parameters. You absolutely, positively need to find yours — and get it in place earlier rather than later in the CN transformation process.

What’s the Context?

You have the same operations staff you’ve always had, but the way your organisation operates is changing significantly. When software is built using Modular Architecture and Dynamic Provisioning, the infrastructure overhead expands drastically…

…Which means this “same old” ops team is now responsible for provisioning, not to mention maintaining, a much larger number of VMs plus various other new infrastructure pieces.

Meanwhile, adopting Modular Architecture means you’ve created many independent teams within your company. It also means you’ve given them lots of freedom to choose their own tools and technologies, and to define their own process of development and delivery.

You’ve also implemented Continuous Delivery, which requires full automation of the entire build/test/deploy cycle.

Things get complicated fast.

The Problem to Contend With

When your infrastructure provisioning is still being done manually or semi-automatically, this creates some predictable challenges:

Provisioning infrastructure resources takes much too long

Putting one central operations team in charge of provisioning creates dependency between all teams.

At the same time, you will need to scale up the number of operations engineers to handle the growth in infrastructure demands

When your development teams want to experiment and iterate, they are drastically slowed by their dependency on the already busy operations department.

Development teams require access to newly provisioned resources within minutes, not in days or even weeks.

Forces at Play

Old School rules: Traditional operational teams don’t have much, if any, automation in place.

Stuck in analog: Thanks to the high workload this creates, they have no time to learn new technologies that could actually make this better

You want it when??? Manual requests and handover between development and operations teams is maddeningly slow

There’s an app for that: Public clouds, thankfully, provide full automation for just about any infrastructure resources you require

The Solution

Your Ops engineers hand over repetitive tasks to your cloud provider’s platform — so they can focus on improving the current systems, learning new ones, and solving future challenges. Your developers get to speed up their work too, since they will now have quick access to all the resources they need plus rapid feedback on results when experimenting.

A Brand New Context

Automated Infrastructure in place, your Ops team is now spending significantly less time doing repetitive support tasks and more time in ongoing improvement of your system.

Your developers now spend less time waiting for infrastructure resources and are able to easily iterate changes and run quick experiments. They can also now scale running systems quickly and easily. Remember the seamless scalability advantage conferred by Cloud Native? This is where it comes from!

Related Patterns:

This post appears as part of a series of Cloud Native Transformation Patterns, which begins with Cloud Native Transformation Patterns: Introduction. These are condensed versions of the full patterns appearing the forthcoming book, Cloud Native Patterns: Architecture, Design and Culture, a joint project of Container Solutions and O’Reilly. Complete and in-depth information regarding each pattern, including case studies from real-world Cloud Native enterprise migrations, will be found in the book publishing in Spring 2019!