Introduction
Terraform maturity stages
While working with our customers, we have identified common patterns of maturity, allowing us to categorize customers into three main stages: Adopt, Standardize, and Scale. Separate HVD documents cover these stages.
| Adopt | Standardize | Scale |
|---|---|---|
| Infrastructure-as-code (IaC), cloud provisioning, secure variables, VCS integration/pipeline, RBAC (team collaboration), observability | Central registry development (policy-as-code, run tasks, modules), image management, day 2 resource management, network infrastructure management | Cost management and optimization, private DC provisioning, self-service workflows, event notification, API integration |
Adopt: These customers have partnered with HashiCorp in recent months and are investing in adopting IaC for their enterprise. These customers lay the groundwork for growth by embracing fundamental use cases (as listed in the preceding table) facilitated by the HCP Terraform platform.
Standardize: These customers have completed the Adopt use cases and are now prioritizing the availability of the platform as a shared service for the entire organization. At this stage of maturity, the platform team focuses on establishing guardrails by implementing policy-as-code and utilizing modules from the private registry and completing the development of an automated onboarding process for internal customers.
Scale: Once the platform is available to the wider organization and the team provisions workloads using an efficient, unified workflow, the platform team needs to address issues such as cost management, optimization, and other related use cases. These measures ensure efficient scaling of operations for the organization over time.
Prerequisites
If you are using Terraform Enterprise, this guide assumes that you have reviewed and implemented the following HVDs:
- Terraform: Solution Design Guide (Self-Managed)
Objectives
You are implementing Terraform Enterprise to achieve your company's business and functional objectives. Realize the goals below after implementing the recommendations detailed in this guide.
Business objectives
- Reduce time to market: This guide assists you in establishing a robust standard workflow for provisioning, configuring, and managing the lifecycle of hybrid/multi cloud infrastructure. When implemented effectively, developers can provision infrastructure more efficiently, reducing the time it takes for your organization to introduce new products and features to the market.
- Mitigate risk: By securing Terraform state, protecting cloud credentials, and implementing RBAC (role-based access control), risk associated with your infrastructure will reduce.
- Consistent compliance: Through policy-as-code, organizations achieve compliant infrastructure, automate audit, address asset lineage concerns, manage against cost expectations, and respond proactively to regulatory change.
- Improve skills and retention: Through infrastructure as code reuse, organizations reduce the cognitive load associated with onboarding new talent and retain that talent longer by improving productivity for team members.
- Optimize cloud cost: By implementing a central shared service for provisioning, you are more able to optimize cloud spend and costs. Standardize and enforcing best practices on visibility into deployments across the organization to enhance this. This guide is a necessary prerequisite towards this goal.
Functional objectives
- Adopt a mature golden workflow for infrastructure provisioning.
- Enhance security posture.
- Improve traceability of actions and ensure audit readiness.
Onboarding/adoption checklist
It is critical to the success of the scale out of your Terraform Enterprise service to operate an automated, end-to-end onboarding process. Having manual tasks required in the onboarding process limits scale-out efficacy and corresponding return on investment.
The time it takes to complete the initial phase varies depending on the complexity of your organization and the level of executive alignment. However, we have found that using HashiCorp Professional Services or partner-provided services accelerates the process.
Project checklist
- Identify key people from the platform team own and operate Terraform. In your organization, the platform team may own the architecture but the day-to-day operations may rely on a production services/support team who have 24/7 staffing arrangements. Both teams are stakeholders in the project from the outset.
- Identify key executives sponsoring this project.
- Establish regular cadences with the HashiCorp account team and participate in quarterly business reviews with sponsoring executives.
- Enablement plan:
- Platform team enablement plan: We recommend that key platform team members attend HashiCorp Academy training. This training also enables the platform team to be able to train trainers for the organization.
- Application team enablement plan: The platform team can train application teams or they can attend free hands-on workshops offered by HashiCorp solution engineers and architects.
- Business unit onboarding schedule: Create a schedule for onboarding business units and application teams. We recommend for the "adopt" phase that you start with one or a handful of business units. (see note below)
- Establish key milestones to track progress. We recommend the following key milestones:
- HCP Terraform onboarding.
- Platform team enablement.
- Application team early adopter enablement.
- Application team early adopter onboarding.
Onboarding checklist
- Establish core integrations:
- VCS
- SSO/IdP
- HCP Terraform agents (optional)
- System logs and metrics (for Terraform Enterprise)
- HCP Terraform agent logs and metrics (optional)
- Audit logs
- Establish a workflow to onboard application teams to HCP Terraform/Enterprise:
- Workflow vending
- Cloud credentials for Terraform
- Test of initial end-to-end command line-driven run.
- Test of end-to-end VCS-driven run.
- Test SSO for the platform team and application teams.
- Initial discussions with first set of early adopter teams regarding user onboarding experience and updates to the project backlog with next step improvements
Adoption checklist
- Determine the consumption model most suited for your organization.
- Establish a GitOps-based workflow for application teams. Map this to your existing organizational git repository standards.
- Branching strategy: Decide on the branching strategy for managing environments.
- Complete an adoption maturity assessment with a HashiCorp solution architect.