BrainBlog for RackN by Eric Newcomer
You want to achieve cloud-like benefits for your self-managed infrastructure, and you want to make sure to protect your investment when you do.
A good way to do this is to leverage the capabilities of a company such as RackN, which specializes in delivering cloud-like benefits for self-managed infrastructure.
An Infrastructure as Code (IaC) platform layer helps protect your investment from the impact of upgrades to hardware, virtual machines, and software systems such as databases, message brokers, and application servers, just as it does for public cloud providers.
The IaC platform consists of declarative configuration data that abstracts and provisions infrastructure dynamically for each application you deploy on your cloud-like self-managed infrastructure, and a set of APIs that execute the configurations.
When you are ready to deploy, the configuration data feeds a series of automated API calls to the infrastructure on behalf of an application, rather than having an operations team manually set up the necessary hardware and software.
Standard DevOps practice builds on such an IaC layer to automate and streamline the process of deploying and managing applications and their infrastructure. This platform not only insulates applications from infrastructure upgrades, it also speeds deployment and improves quality.
Using the IaC Platform Layer
All public cloud providers configure and manage their services using an IaC platform such as the one in the illustration.
The diagram shows that the IaC platform manages infrastructure as a pool of resources that provisions what each application needs. Each resource type exposes its provisioning API, such as compute, storage, or a database.
An automation engine, such as a CI/CD pipeline, invokes the APIs in order using the configuration data from the IaC layer, instead of a series of manually executed operational commands or scripts.
Furthermore, the configuration data abstracts resources in the infrastructure pool to insulate the application from infrastructure changes.
Public cloud providers use an IaC platform to deploy thousands of servers to update and replace hundreds every day. Using this approach, the cloud does not stop for hardware or software upgrades.
You can automatically provision and future-proof your self-managed infrastructure the same way.
Defining the IaC Configuration Data
An IaC platform layer creates a predictable assembly line process for infrastructure provisioning and automated application deployment for self-managed infrastructure, just as it does for cloud providers.
Setting up this IaC platform layer with its associated automation (i.e. a CI/CD pipeline) requires investment in software tooling and skilled resources, but the ROI is usually easy to calculate based on achieving the cloud native benefits of time to market, speed of deployment, reliability, scalability, and future proofing. And because configuration data is standardized, the IaC platform is vendor neutral.
The IaC platform layer not only provisions, controls, and provides visibility into infrastructure resources. It also provides the abstractions to easily adapt any infrastructure automation workflow when the underlying technology changes.
The abstractions make it possible to change the technologies and vendors in your supply chain one by one. Your automation system rapidly adapts to the latest application requirements and technological innovations.
Once the IaC platform and automation layers are in place, the infrastructure and application layers change independently, as long as they stick to the “API contract” defined by the abstraction layer.
The IaC abstraction layer typically uses modular plugins to customize the configuration data for use by the associated set of APIs depending on the hardware resources the application needs (storage, processing, memory, network) and the system software it needs (databases, app servers, web servers, messaging, security, observability, etc.).
A solid vendor independent abstraction layer prevents lock in at the hardware, operating system, and application layers. While many companies deliver this type of solution for virtual environments; few do for bare metal. Both are important and completely within scope of this type of abstraction.
Configuration Data: Ideal Infrastructure Management
Create a configuration data set in an industry standard format (e.g. YAML or JSON) to model and provision with code all the infrastructure resources your application needs.
Store the data in a file in a source code control system (e.g. GitHub) and version it using the application development code management process. Maintain an authoritative copy that everyone uses when updating or modifying the application.
Configuration data is key because it contains instructions for provisioning to specific resource characteristics the application needs, such as the size of the database, number of CPU cores, or memory allocation.
Additional benefits include configuration compliance (i.e. just review the file to be sure the application is using standard infrastructure) and troubleshooting (again start by reviewing the configuration file and the deployment automation output).
CI/CD automation first tests and then deploys the infrastructure templates and tests the systems before releasing them.
Using this process, you can automatically configure and run anything from a single CPU instance to a complex multi-region application that uses multiple different types of software systems.
You can also publish policies and controls for your infrastructure and enforce them proactively, just as you would in the cloud, to ensure your deployment is secure, compliant, and future proof.
The diagram illustrates how you use modular plug-in components to select the types of infrastructure you need for running and managing your application. You can also develop and deploy a custom plugin for automatically provisioning nonstandard resources.
If you need to switch out databases, app servers, or ID management software, for example, update the configuration file first, allow the pipeline to run, and then change the application (if needed).
The Intellyx Take
There’s nothing magic about public cloud infrastructure. You can design, define, provision, and maintain the same approach to infrastructure and achieve the same benefits for a self-managed environment.
It takes some investment – time and effort – but the business benefits of the cloud computing model provide a good return on that investment. Processes designed for cloud-like infrastructure are more resilient, agile, scalable, and responsive.
You can get help from companies such as RackN, which provides a comprehensive set of configuration templates, associated APIs, pipelines, and orchestration flows.
This kind of help simplifies the ROI calculation and ensures future-proofing for your cloud-ike self-managed infrastructure.
Copyright © Intellyx B.V. Intellyx is editorially responsible for this document. No AI bots were used to write this content. At the time of writing, RackN is an Intellyx client.