Out Now! Stacked Up: The IaC Maturity Report Learn More
Out Now! Stacked Up: The IaC Maturity Report Learn More
Out Now! Stacked Up: The IaC Maturity Report Learn More
June 7, 2024 •Kunal Dabir
As a Python developer, you excel at crafting efficient and elegant code, focusing on building robust applications and innovative features. However, when it comes to deploying your Python application to AWS, the intricacies of creating infrastructure as code (IaC) can be a stumbling block. You want to concentrate on what you do best—writing Python code—without getting bogged down in the complexities of provisioning and managing the cloud platform resources that your application depends on. While the cloud offers easier deployment, it often demands infrastructure expertise that can slow you down. Fortunately, there are solutions to help you move faster and keep your focus on development.
You have a few places to start when writing your IaC:
Whether you are using Terraform, Chef, Puppet, Pulumi, Ansible, or others, you'll need to create configuration files that declare your desired state. With Terraform specifically, you'll write your configuration file (`.tf` files), a variable declaration file (`variables.tf` or `variables.tf.json`) to declare input variables, and variable definition files (`terraform.tfvars`) to assign values to the input variables. After running `terraform plan` to confirm your infrastructure and `terraform apply`, you will get a state file (`terraform.tfstate`) that stores information about the managed infrastructure. This process is not easy! It requires extensive knowledge about your infrastructure, security policies, and resource requirements, all beyond how you want your application to run.
Fortunately, DevOps and platform engineers have created templates that can save you time. However, templates present challenges:
You've already spent a lot of time developing your Python application and codifying infrastructure choices. What if you could create your IaC from your application code? Infrastructure from code allows you to do just that.
Infrastructure from Code treats your Python application as the source of truth. It auto-generates IaC from the application code itself, standardizing and streamlining cloud deployments. This approach doesn't require any changes to your application source code. Using infrastructure from code can save you a lot of time, creating IaC that adheres to best practices and policies, including AWS and Azure policies, the AWS Well-Architected Framework, and compliance standards like SOC 2, HIPAA, NIST, CIS, GDPR, and more.
While infrastructure from code is a new approach to IaC generation, it is a streamlined and efficient solution for easier application deployment.
If you have a Python application and want to try infrastructure from code, StackGen offers two ways to get started. The Dev Edition, which is free to use, is a SaaS-based version where you can connect your repos, view your deployment architecture, select AWS policies and compliance standards, and generate your IaC. From there, you can create a pull request and follow your standard CI/CD process. If you don't have a repo to connect, you can use the demo repo made available in the dev edition. If you prefer not to use a UI, you can use the CLI to create your IaC, following a similar process as outlined in the documentation.
Once you’ve set up your free StackGen account by logging in with GitHub, GitLab, or Google, follow these four steps to generate your IaC to deploy your Python application:
Ensure StackGen has access to the repos you use to build your application, whether they're several repos of various microservices or one monolith repo. If you don't see the repos you need listed when you click "Repositories" in the left-hand navigation bar, you'll need to connect the repos to StackGen.
To get the IaC files your application needs, create an appStack. You have two options:
Once you’ve connected your repo, selected the language, cloud, and policies you want to apply, create an appStack. You can then view your architecture and make any necessary changes using the drag-and-drop feature.
After finalizing your architecture, export your IaC and follow your usual deployment process.
Auto-generate your infrastructure as code in minutes instead of days or weeks. You no longer need to be an infrastructure expert and can focus on the development work you were hired to do.
Try StackGen to generate your infrastructure from code.