Infrastructure From Code (IfC) is a relatively new trend in Cloud DevOps automation aiming at the automatic generation of cloud deployment templates directly from the application code. There are already several solutions primarily focused on the TypeScript programming language. This talk is about what could be done for the Python ecosystem.
Infrastructure as Code - the use of repeatable scripts or SDKs to configure the cloud environment for an application - has expanded the possibilities of Serverless with Continuous Delivery. However, there are fundamental issues with IaC: it is a time-consuming and tedious process to prepare the scripts, the activity requires the involvement of DevSecOps experts, and the scripts are only loosely related to the application code. For any non-trivial application, these scripts grow very quickly in complexity and size. Applying IaC to optimize the configuration of the test, staging, and production environments only exacerbates these issues.
Infrastructure from Code is a recent advancement over IaC that addresses these obstacles. IfC interprets a mainstream programming language code and automatically generates the specifications needed to configure a cloud environment. So far, the most advanced solutions, such as [ServerlessCloud](https://www.serverless.com/cloud), [Ampt](https://getampt.com/), or [Nitric](https://nitric.io/), were proposed for the TypeScript ecosystem. While, for Python, [AWS Chalice](https://aws.github.io/chalice/index) is a cloud-vendor-specific solution and offers a relatively limited feature set.
In this talk, I'm going to clarify the IaC paradigm and its limitations, analyze the exact problems that IfC is supposed to solve, compare recent IfC offerings, and propose what could and, in my opinion, should be done for the Python ecosystem. I will also share my personal experience of implementing such a system, code-named [Cloud AI Operating System (CAIOS)](https://www.caios.io/home): what went well, what still needs to be resolved, and where, in my view, the Python community could contribute in making Python as the number one choice for cloud programming language.