Skip to main content

Infrastructure as code (IaC)


Infrastructure as code (IaC) is an approach to software development that treats physical compute, storage and network fabric resources as web services and allows apps to run where they are best suited, based on cost and performance data.

Essentially, IaC negates the need for software engineers to be concerned with the physical location of infrastructure components. Instead, when a software application requests infrastructure to run, available services are located through an automated discovery process and resources are allocated on demand. When an infrastructure resource is no longer required, it is re-appropriated so it can be allocated to another application that needs it.

Examples of IaC tools include AWS CloudFormation, Red Hat Ansible, Chef, Puppet, SaltStack and HashiCorp Terraform. Each of these tools has its own way of defining infrastructure, and each allows an administrator to define a service without having to configure a physical infrastructure. These tools are also able to roll back changes to the code, should an unexpected problem arise when new code is released.

Some IaC tools rely on a domain-specific language (DSL), while others use a standard template format, such as YAML and JSON. When selecting an IaC tool, organizations should consider the target deployment. For example, AWS CloudFormation is designed to provision and manage infrastructure on AWS and works well with other AWS offerings. Alternatively, Chef works with on-premises servers and multiple cloud provider IaC offerings.

IaC can be managed through the same version control and automated testing procedures that developers use to maintain quality assurance (QA) in their continuous integration and continuous delivery (CI/CD) pipelines. As of this writing, there are no agreed-upon standards for implementing IaC and the concept is known by several other names, including composable infrastructure, programmable infrastructure and software-defined infrastructure.

Comments

Popular posts from this blog

Ghosting

Ghosting is to cease communications without notification. The use of the word "ghost" as a verb originated in social media in reference to dating, but the term is now used by employers to describe employees and potential employees who suddenly disappear. Typically, ghosting is used to describe: Job candidates who suddenly stop responding to messages. New hires who fail to show up for their first day of work. Employees who do not show up for a shift. Employees who leave work in the middle of the day and never come back. Some analysts blame ghosting on millennial entitlement. The reasoning is that members of the millennial generation have been brought up to feel they are special -- so special, in fact, that they do not need to follow conventional rules of behavior. Other analysts, however, maintain that ghosting behavior stems from changes in the job market and the phenomenon is simply a reflection of the laws of supply and demand in a healthy jo...

Data deduplication

Data deduplication -- often called intelligent compression or single-instance storage -- is a process that eliminates redundant copies of data and reduces storage overhead. Data deduplication techniques ensure that only one unique instance of data is retained on storage media, such as disk, flash or tape. Redundant data blocks are replaced with a pointer to the unique data copy. In that way, data deduplication closely aligns with incremental backup, which copies only the data that has changed since the previous backup. For example, a typical email system might contain 100 instances of the same 1 megabyte (MB) file attachment. If the email platform is backed up or archived, all 100 instances are saved, requiring 100 MB of storage space. With data deduplication, only one instance of the attachment is stored; each subsequent instance is referenced back to the one saved copy. In this example, a 100 MB storage demand drops to 1 MB. Target vs. source deduplication Data deduplica...

A Graphics Processing Unit (GPU)

A graphics processing unit (GPU) is a computer chip that performs rapid mathematical calculations, primarily for the purpose of rendering images. A GPU may be found integrated with a central processing unit (CPU) on the same circuit, on a graphics card or in the motherboard of a personal computer or server. In the early days of computing, the CPU performed these calculations. As more graphics-intensive applications such as AutoCAD were developed; however, their demands put strain on the CPU and degraded performance. GPUs came about as a way to offload those tasks from CPUs, freeing up their processing power. NVIDIA, AMD, Intel and ARM are some of the major players in the GPU market. GPU vs. CPU A graphics processing unit is able to render images more quickly than a central processing unit because of its parallel processing architecture, which allows it to perform multiple calculations at the same time. A single CPU does not have this capability, although multi...