Part 1 of a 2-Part Series
Managing IT infrastructure has been historically problematic. In most cases, accomplishing common tasks, such as providing a developer with a sandbox environment, provisioning and configuring servers, managing network devices, or deploying applications, requires effort from numerous individuals and teams. Whether managing the coordination of tasks and manual effort is at a small startup or at an enterprise scale, managing IT infrastructure becomes time-consuming and competes for time better served elsewhere. Infrastructure as Code (IaC) was introduced to solve this issue.
IaC is a modern and practical approach to managing an organization’s IT infrastructure by automating the management and configuration of infrastructure. With IaC, infrastructure components are managed with code instead of scripts and manual processes.
We recently implemented IaC processes for a customer who had challenges provisioning WebSphere services along with deploying applications. The deployment process required deploying the applications to WebSphere and updating the A10 load balancers to direct traffic to other WebSphere instances while changes are applied. Before implementing automation, apply changes required by three individuals over the course of a week. Now, the process completes in less than two hours and only requires someone to start the process. Using a 30-hour workweek (c’mon, no one works eight hours a day), that’s a 98% reduction in time and almost a 100% reduction in the manual effort every time the process runs.
So how did we approach our customer’s need to implement automation? After speaking with the customer, it was clear that the Declarative approach was the best fit. The Declarative approach leverages a platform and focuses on describing the end state of the infrastructure (the “what”). We didn’t need to write brittle scripts using the Declarative approach to handle every corner case and permutation of configuration. Now we could automate the process faster, with greater efficiency and reliability -- not to mention a scalable process absent of brittle scripts.
Before and After
We’ve worked with numerous customers to leverage IaC to manage infrastructure components.
Gaining Software Development Life Cycle (SDLC) Efficiency: Since IaC shifts the power into the developer’s hand, developers can focus on application development more and not worry about the infrastructure side.
Decreasing Manual Effort: Since the description and details of the infrastructure are in the configuration file, we do not need to create them manually. We use automation tools like Red Hat Ansible® to automate infrastructure provisioning in our environment using the configuration files.
Redeploying Instead of Repairing: Sometimes accidents can happen. Imagine if a system administrator wants to configure some changes in a device and messes it up. With the help of IaC, we can redeploy the machine to its previous state instead of wasting time trying to repair it. The redeploying of machines is easy, fast, and efficient when implementing IaC.
Reducing Risk: There is minimal cost on disaster recovery when an organization implements IaC. Using templates and configuration files, provisioning a backup environment is simpler and enables reducing standby infrastructure.
How it works
Previously, deploying infrastructure or applications was daunting because the effort required collaborating with operations, testing, database administrators, system administrators, and developers to deploy an application. But, with IaC, it is possible to enable developers to complete tasks without additional infrastructure teams.
The simple, basic steps to implement IaC in an organization are:
Administrators define the infrastructure end state and create configuration files and templates,
store configuration files in a version control system,
use the configuration files to provide automation and self-service, and
provide ephemeral infrastructure to reduce ongoing infrastructure costs.
In my experience, IaC dramatically impacts how organizations manage infrastructure components and team utilization. We consistently observe an increase in transparency and collaboration, reduced overhead cost to manage infrastructure, decreased delivery lead time, and increased infrastructure security.
In my next blog, “Implementing Infrastructure As Code Best Practice” I will explore how incorporating IaC methodologies increase the security posture of infrastructure and the best practices.
Red Hat® and Red Hat Ansible® are a trademark of Red Hat, Inc., registered in the United States and other countries.