Can automation cure all infrastructure and IT woes? We’re finding automation is much harder than we’d like to admit. Perhaps that’s because we don’t consider the four types of automation.
Why is Automation Difficult?
Why does using automation to perform ordinary operations feel like running into a wall? Repeatable tasks such as building clusters, configuring operating systems, and coordinating security keys should be easy problems to solve. So why are they so difficult to continuously automate?
Making automation repeatable is hard because automation is not just one thing. In fact, infrastructure automation is a combination of at least four distinctly different types of automation: provisioning, configuration, monitoring, and orchestration.
The different types of automation intermix to build an infrastructure pipeline. Building IT infrastructure means doing different types of automations back to back. However, this is done in small incremental steps, switching between the automation modes.
Fluidity in Automation
Let’s consider the automation that is required to build a system.
First, Provision the machine.
Next, configure the machine with security tokens and network configurations. Also build out the server to a certain scope.
Coordinate the machine with the cluster. This is to acquire credentials and certifications and security tokens.
Next, set up networking, topology, and certificates.
Finally, build DNS infrastructures and names and open firewall ports.
To successfully automate the build of a system these actions are executed as a coordinated set of actions. This requires a degree of orchestration and coordination for pipelining.
Building infrastructure pipelines requires using different automation types from different contexts. The ability to shift contexts is incredibly hard. This context switching requires the system to be aware of actions happening inside a system, on the infrastructure layer, within the cluster boundaries, or even being shuttled out to a database for monitoring.
The context of those actions must shift along with the type of automation:
During provisioning, actions must happen outside of the machine in order to talk to the control plane of your infrastructure.
During configuration actions happen inside the machine. Configurations actions must communicate with the operating systems with the correct level of privilege. An important communication is how that machine will be configured. Will it be a web server, virtualization server, database server, etc.? These communications must happen within that very restricted environment, it can’t be done remotely or externally.
The monitoring context involves database activities, sometimes real time series information. Data is collected and stored in a structured way. This ensures that the configurations match the expectations for that server.
Orchestration changes into a totally different type of automation. It becomes critical to have awareness of cross systems and information as secure, sensitive data may be shared between multiple systems. It is vital to understand roles in that environment and give the right information to the right systems without giving too much information to each because that would violate security and cause problems.
The space of building an infrastructure pipeline is more than just any one of those four types of automation. The infrastructure pipeline is the glue that connects those operations in the right sequence, with the right information, across that whole workflow. As we build infrastructure pipelines it is important to be aware that different tools have sweet spots, information requirements, and contexts.
Digital Rebar is unique for its ability to shift contacts during a pipeline execution. We created Infrastructure as Code reusable modules to accomplish that effectively. These modules are reusable, and they contribute to best practices across any customer environment.
The next several blog posts will drill into more specifics about these different types of automation. Hopefully looking at them as an integrated system that has to coordinate activities across the infrastructure pipeline gives you the context to build an automation pipeline.