Infrastructure-from-Code (IfC) is a new way of thinking about cloud infrastructure, and represents the next step in a series of innovations that make setting it up easier and more seamless for developers.
Infrastructure-from-Code (IfC) creates, configures, and manages cloud resources by understanding the source code of a software application without explicit description. There are 4 main approaches to Infra-from-Code: SDK-based, code annotation-based, a combination of these two approaches, and a new programming language that defines infrastructure explicitly, Infoq wrote on the topic.
The SDK-based approach allows developers to use their own code, and during deployment, tools analyze how the service’s code uses the SDK and generates the infrastructure. The SDK-based approach makes deriving usage from code more predictable, but the SDK is always a step back in leveraging new cloud features. Examples of SDK-based tools are Ampt and Nitric.
In the annotation and SDK approach, the developer annotates the code, and the tools incorporate those annotations into the framework. The main tools in this category are Encore and Shuttle. These tools can be hosted on the IfC vendor’s platform or can be integrated with third-party cloud service providers such as GCP, AWS, or Azure. Another interesting tool is AWS Chalice, which allows the creation and deployment of applications that use AWS Lambda in python.
Chef, Ansible, Puppet and Terraform are some of the first Infrastructure-as-Code (IaC) tools and have started to enable the creation and management of cloud infrastructures. The second wave of IaC used existing programming languages (Python, Go, TypeScript) to express the same idea as the first wave tools. Puluni and CDK are the tools of this second generation.