There are multiple ways of marrying developers and Ops to solve your infrastructure provisioning and config management, but broadly speaking here are the two most common approaches:
- Ticket ops: Outsourcing infrastructure creation to another team which involves waiting and exchanging config data that may contain secrets.
- Developers do Ops: Empowering the developers to provision their own infrastructure and config with sandboxes, admin access to the account, etc.
Ticket ops will likely yield more consistent and predictable infrastructure because a dedicated team may have procedures and automation in place to ensure this. With this method, developers must wait for their requests to be fulfilled. As the organization grows, waiting times may stretch and impair development velocity.
Developers do Ops is more attractive for velocity and empowering development teams to experiment. One approach could be to embed a DevOps engineer in every development team that performs infrastructure duties, closely aligned and centrally positioned to follow standards and procedures. Terraform modules, guidelines, guardrails, peer reviews, and templates can be centrally coordinated to follow standards in this mode.
The problem with this approach is that it relies more on teams following best practices. This can be mitigated with guardrails or notifications, but it is hard to cover all cases. It’s also challenging to keep up with updated templating and guidelines, which then introduces cognitive load.
Platform engineering with a focus on self-service solves this problem with standardization by design.
What is standardization by design?
Standardization by design is an approach that seeks to deliver self-service automation. Developers can consume this to create standardized infrastructure resources and config as often as needed for all their workloads.
In this setup, all infrastructure is automatically generated from approved templates and modules, ensuring that it is consistent, secure, and complies with standards and guidelines. A dedicated platform team maintains and updates the templates and modules to remain current and relevant, and development teams can focus on coding and deploying workloads.
Standardization by design is generally delivered by an Internal Developer Platform (IDP) where users can vend resources and generate their configs automatically.
What are the benefits of standardization by design?
- Consistent and predictable infrastructure: All infrastructure is automatically generated from approved templates and modules, ensuring consistency and predictability.
- Self-service implementation: Developers can focus on delivering their applications while the platform team manages the vending process of infrastructure and config. This improves collaboration between developers and Ops and reduces the time required to provision and configure infrastructure, mitigating cognitive load for developers.
- Increased velocity: Automating infrastructure provisioning and config management enables developers to focus on delivering their applications, improving time-to-market (TTM).
- Reduced infrastructure and config sprawl: By standardizing and automating infrastructure provisioning and config management, it becomes easier to enforce standards and minimize the risk of infrastructure sprawl.
- Security and compliance: When developers regularly vend standardized versions of infrastructure and configs, it’s easier to ensure everything remains secure and compliant because human error is minimal.
- Scalable: As the organization grows, having the ability to vend resources minimizes the amount of infrastructure as code (IaC) and configs to manage.
- Maintainable: A platform team can update the provisioner definition and apply it to all future instantiations or upgrades of that resource.
Standardization by design provides a way to standardize and automate infrastructure provisioning and config management while enabling developers to focus on delivering applications. It leads to improved collaboration, increased velocity, and reduced infrastructure sprawl and cognitive load.
By using Humanitec’s Platform Orchestrator to implement Dynamic Configuration Management, platform engineering teams can ensure standardization by design when provisioning resources and generating configs. A developer specifies what they need with one simple workload specification, and the Platform Orchestrator generates everything needed for the deployment. In this sense, platform engineers define the how, not the what, of infrastructure, which is essential for developers to vend resources.
But don’t take our word for it. Book a demo to see how this works and watch Humanitec in action.