In addition to the standard providers powered by Pulumi, Nitric now offers Terraform Providers. These new providers are powerful enhancements to your Terraform toolkit that are designed to streamline and transform the way you manage infrastructure. They address common pain points around maintaining Terraform projects and simplify the deployment process by creating a single source of truth for all Terraform modules.
Dive into the Terraform provider documentation for the technical details.
Why Nitric and Terraform together?
As more teams have discovered Nitric and begun building projects, we’ve heard from many who already use Terraform and want to enhance their workflows with Infrastructure from Code (IfC). The Nitric team sees the value of Terraform as well. Its transparency and control over deployment automation are unmatched, and it unlocks a broad ecosystem of other deployment tooling, from cost estimates to security audits. However, we've also seen the challenges it can pose, particularly when managing multiple projects while ensuring consistency.
The Nitric Terraform Providers build on Terraform’s strengths by adding abstraction, cohesion and modularization, transforming the way Terraform developers work. With Nitric, you can achieve a source of truth for your Terraform modules, eliminating the need for bespoke configurations for every project. This not only streamlines your workflows but also enhances security, reduces maintenance time, and cuts down on communication overhead. Let’s dive deeper into the concepts.
Key concepts of the providers
Source of truth for Terraform Modules
With the Nitric Terraform Providers, you can define Terraform modules that can be reused across multiple projects, accessible as Nitric resources. This approach ensures consistency and reduces the complexity of managing infrastructure. As with all Nitric resources, each Terraform module will be applied automatically at deployment time based on resource usage within the application. These modules include both cloud resources and the roles/policies required to grant the appropriate access.
Automatic infrastructure alignment
Nitric automates the provisioning and management of cloud resources based on your application's code. By automatically generating a requirements specification and mapping it to predefined modules, Nitric cuts out the typical development and communication burden on teams and ensures that resources are provisioned accurately and efficiently. For example, when a new feature requires additional infrastructure, Nitric dynamically adjusts the generated Terraform stack to include the modules that provide that infrastructure.
Change infrastructure without breaking application code
The abstraction layer offered by Nitric extends to Terraform providers. Swap, extend or build new providers when underlying infrastructure requirements change, without rebuilding or breaking your applications. Has AWS released a new service for that better meets your needs for asynchronous messaging? Did another cloud provider become your choice for all new hosting? Just swap out the provider plugin used by Nitric to generate your Terraform stack and deploy to new infrastructure without changing a line of application code.
How Nitric solves IaC pain points
1. Zombie infrastructure
As applications and infrastructure change over time these changes often get out of sync. A common symptom is a resource that is no longer needed continuing to linger in a deployed environments. Perhaps an application no longer uses a queue, bucket, database, etc. but that change wasn't communicated to other people who maintain the Terraform code, resulting is wasted money and potential security issues. Nitric eliminates these problems by usings applications and their resource usage as the source for generating Terraform stacks.
2. Maintenance
Terraform projects require ongoing maintenance. This includes updating configurations to support new application features, fixing bugs, and ensuring compatibility with the latest Terraform versions. This results in significant time and resources being spent on maintenance rather than on developing new features.
With Nitric’s IfC, you define your infrastructure once using reusable modules. Nitric automates the provisioning and management of these resources across multiple projects, reducing the time and effort spent on maintaining individual configurations. This allows your team to focus more on innovation and less on maintenance.
3. Security
Keeping several Terraform projects up-to-date with the latest security patches and best practices is a daunting task. Each project may require individual updates, leading to a fragmented and inconsistent security posture.
Nitric’s Terraform Providers adhere to the principle of least privilege, significantly reducing the risk of vulnerabilities. Each time a resource is required in an application, a version controlled Terraform Module is used to provision or update it. This means that security updates are applied consistently across all applications without having to update and deploy custom Terraform projects for all of your applications.
4. Complexity and comprehension
Terraform configurations can become highly complex, with thousands of lines of code. Understanding and managing these large configurations requires deep knowledge and can be overwhelming, especially for new team members.
Nitric simplifies infrastructure management by creating a single source of truth for all Terraform modules. This highly automated approach reduces complexity and makes configurations more comprehensible and manageable. New team members can quickly get up to speed, reducing the learning curve and increasing productivity.
5. Communication overhead
Coordinating between development and operations teams to ensure that infrastructure requirements are correctly translated into Terraform configurations can be a time-consuming and error-prone process. Miscommunications can lead to incorrect configurations and deployment delays.
Nitric automates the translation of infrastructure requirements into actual resources by reading a simple specification file. This self-service capability allows developers to define their infrastructure needs, which Nitric then provisions automatically. This reduces the communication burden between teams and ensures accurate, timely deployments.
Transform Your Terraform workflow
The Nitric Terraform Providers are designed to simplify and enhance your Terraform workflows by automating the generation and management of Terraform projects. By creating a single source of truth for all Terraform modules and enabling self-service infrastructure, Nitric reduces the communication burden on your team and ensures consistency across all your projects.
Note: The Terraform provider(s) are intended for teams already invested in Terraform, not as a replacement for the standard providers which we still recommend as the entry point to using Nitric.
Check out our Terraform provider documentation to get started and see how Nitric can transform your infrastructure management.
Join the Nitric community to see how others are using Nitric in their infrastructure workflows and to give us feedback about how Nitric can help your use case.
Checkout the latest posts
Hey ops people, you’re doing it wrong. (But we can fix it!)
Challenging operations teams on a commonly made mistake
Cloud SDKs Can Chain You Down
With the right level of abstraction over cloud resources, we can separate the responsibilities and concerns of developers and operations teams.
Polyglot projects made easy with Nitric
Nitric makes building cloud applications in multiple languages a breeze
Get the most out of Nitric
Ship your first app faster with Next-gen infrastructure automation