Share this post:
Infrastructure as code
Software engineering has delivered goodness that the world relies on every day. Gone are the days of software that crashes frequently. Software is now reliable, and changes made to software are seldom disruptive. Software vendors quickly adapt to new features in operating systems and hardware. This is due to a confluence of factors, which includes a high level of change management. Source control platforms coupled with organizational procedures to review and monitor changes to software ensures a high level of quality in software.
This level of control that benefits software development has only recently become possible with IT infrastructure, through infrastructure as code (IaC). IaC is a paradigm that makes a high level of discipline and governance possible for servers, storage, and networking. IaC allows the settings and features of infrastructure to be created with a descriptive yet powerful configuration language. Shown below is an example of IaC.
IaC is made possible with IBM Power Systems through PowerVC, IBM’s implementation of OpenStack, an open source cloud management platform.
Many vendors use OpenStack to add cloud management on top of their virtualization platforms. PowerVC adds cloud management to IBM Power Systems virtualization technology, PowerVM. As one of only eight platinum board members of the OpenStack foundation, IBM helps set the direction for OpenStack.
PowerVC provides an easy-to-use web-based interface that can be used to provision PowerVM Dynamic Logical Partitions (DLPARS), and manage the resources for DLPARS. PowerVC can also manage IBM Storage products like the IBM Storwize family of products and a wide variety of storage products from other storage vendors.
Beyond the web-based interface, PowerVC can be controlled programmatically with an application programming interface (API). This is how PowerVC makes IaC possible for IBM Power customers. With the PowerVC API, IaC can set all of the resources available in a DLPAR programmatically. This includes:
- The type and amount of storage for a DLPAR.
- Number of processor cores for a DLPAR.
- Amount of memory for a DLPAR.
- Software to be Installed on DLPAR.
IaC provides the capability to rapidly provision a large number of servers in a short period of time. With the PowerVC API, it is possible to achieve IaC with code developed in a programming language like Python. A simpler method is to use a platform designed specifically for IaC like Vendita Master Automation Sequencer (MAS). With Vendita MAS, IBM Power customers can use prepackaged IaC scripts to create servers, or develop their own with a graphical user interface.
The changes needed in an organization to achieve IaC from a technical standpoint are nominal. Most organizations use source control platforms. Most organizations have strategies for managing code migrations from design to testing to production. These consist of a “tollgate” approach, where changes to code must be reviewed at each phase: development, testing and production. The diagram below illustrates this process.
By far the biggest change for many companies adopting IaC will be cultural. Traditionally, making rapid changes to infrastructure was viewed as reckless. But to carry out a full, detailed review with servers, storage, networking and possibly data management is slow and bureaucratic. Fortunately, with IaC, there are full opportunities to review changes to infrastructure, at a pace that does not impede commerce or innovation.
With IaC, server infrastructure is no longer comprised of unique, customized environments. Now it can be defined by code. With IaC, server provisioning and infrastructure management now has the same level of discipline as software engineering.