Infrastructure as Software: The Next Step in Cloud Management

Infrastructure as Code (IaC) is now a widely adopted practice. With IaC, you describe your infrastructure programmatically using a tool that provides its own domain-specific language (DSL). IaC is a huge improvement over earlier ways of managing infrastructure, such as using a web console or having a collection of batch scripts. With IaC, you can apply many of the best engineering practices, which you already use with application software, to your infrastructure. Some best practices include:

  • Versioning
  • Tracking changes all the way from code commit to deployment
  • Encouraging collaboration among developers

Is IaC Keeping Up?

These are great benefits but changes in how businesses want to use the cloud are making it necessary that the tools you use evolve to keep pace. Here are a few of those changes.

Sophisticated Architectures

After organizations migrate to the cloud and gain some experience, they tend to look for ways to deliver value faster. They might adopt more sophisticated technologies such as serverless, containers and Kubernetes. Creating and maintaining these environments can be complicated.

Ephemeral Architectures

Cloud architectures are changing from being long lasting to being ephemeral, which means that there are frequent infrastructure changes. Today, many teams manage thousands or tens of thousands of resources that change daily or even hourly.

Increasing Velocity

Developers are always looking for ways to deploy their applications as quickly as possible. How quickly you can provision an architecture and make sure it’s working can affect release times.

Infrastructure as Software

Infrastructure as Software (IaS) is the next step in managing your cloud environments. The biggest difference between IaC and IaS is that while an IaC tool requires you to learn its DSL, IaS allows you to program in a standard language, one that you already know. For example, if you’re a Python programmer, that’s the language you use. If you’re a Go programmer, then that’s what you use to create and manage your infrastructure. Once you adopt a platform that supports IaS, you gain a host of benefits.

Shorter learning curve

With IaS, you don’t have to learn a new language. You can concentrate on creating and managing your infrastructure. You’ll also be able to use the same IDE that you use for other development projects and take advantage of its features such as autocompletion and the ability to look up methods and their parameters.

More powerful programming techniques

DSLs tend to be limited. They often don’t support standard programming constructs. With IaS, the full functionality of your chosen programming language is available. For instance, you can use conditionals and for loops. In other words, you’ll be able to program your infrastructure just as you do your applications.

Reusability

IaS allows you to generalize your code so you can build and share reusable components. You’ll be able to use standard package managers to distribute those components.

Advanced orchestration

IaS allows you to incorporate data from monitoring services such as Prometheus into your deployments. That means you can check metrics to make sure everything is healthy before you deploy to production.

Test-driven infrastructure

Most DSLs have few resources for testing your infrastructure. Of course, with IaS, you can use the frameworks and techniques you already know to make sure your infrastructure is behaving as it should. You should also be able to do blackbox testing because you can mimic the requests and responses that come from your cloud provider.

More Automation

IaS broadens your ability to automate tasks. A good IaS platform lets you automate many jobs, such as secrets management and security audits with just a few commands.

Multi-cloud infrastructure

With IaS, you can use a common API to create an infrastructure that will work for multiple cloud providers. Your IaS platform should hide the details and low-level functionality so that you can concentrate on operating consistently and reliably on any provider you choose.

Learn More

Pulumi is the leading platform for Infrastructure a Software. It supports multiple languages, multiple cloud providers, and has many other features such as built-in secrets management. Want to learn more? Visit pulumi.com or get started for free today.

Get started today

Pulumi is open source and free to get started. Deploy your first stack today.