As collaboration between teams becomes more complex in scaling organizations, it is vital to enable autonomy for development teams and reduce bottlenecks in platform teams. And this is why the self-service approach is a game-changer.
We will cover:
Self-service enhances development teams’ autonomy by giving them tools and processes to create and maintain the infrastructure resources they rely on. A dedicated team manages these tools and processes through a service (usually a web service). As Matthew Skelton and Manuel Pais describe in their book, Team Topologies, this platform team works to deliver reusable components to stream-aligned teams so they can deliver business value to the customer.
Self-service infrastructure extends the self-service approach to cover all aspects of infrastructure management, creating a process in which the platform team “sells” their services to the development teams by providing the internal Infrastructure management SaaS platform that all the development teams need to function.
It can be used for the most simple to the most complex use cases — everything from defining the database cluster to creating an entire development process with a Git repository, CI/CD pipeline template, service in the cloud, and monitoring systems.
Read more: What is Developer Self-Service?
Establishing a self-service culture is not easy, but the benefits repay the effort in a very short time. As the organization scales, a strong self-service culture makes it easier to cooperate and improve the quality of delivered solutions to both internal and external clients.
Here are the main benefits:
- Organizational lens
- Increase autonomy. The team (i.e. development team) decides what infrastructure should be created. Their decision is based on available templates, guidelines and collaboration with the self-service infrastructure team (i.e. platform team).
- Decrease waiting times. The development team is not waiting for infrastructure resources.
- Increase productivity. With increased autonomy and decreased waiting times, the development team is able to reduce waste during work.
- Leverage knowledge-sharing. By enabling teams with self-service, the organization can share best practices and standards more widely.
- Respond to shortage of infrastructure, network, system, SRE, or DevOps engineers. IT talent is in high demand. Having a structured and organized team of experts who act as a platform team helps the organizations to avoid over-hiring and allows them to better manage people and resources.
- Processes and engineering lens
- Control and decrease the costs of infrastructure
- Unify stacks and used technologies
- Implement and control security throughout the whole organization
- Control integrations, i.e. authentication services
Spacelift is an orchestrator and CI/CD tool for Infrastructure as Code (IaC) that meets the requirements for self-service infrastructure we’ve discussed above. It delivers all the features the platform team may need to provide their services to internal and external development teams.
1. Maximizes reusability
A key benefit of self-service infrastructure is the potential to use predefined, widely available templates for different use cases. Spacelift implements this functionality through Blueprints.
The platform team defines the blueprints and uses Spaces and Policies to allow other teams to use them. These blueprints can be as simple as creating an EC2 instance in AWS or as complicated as setting up a network using a virtual private cloud (VPC) and connecting it to other existing networks through a transit gateway or virtual private network (VPN).
With parametrization of blueprints through Inputs, platform teams receive a very powerful toolset to deliver flexible solutions tailored to business needs that are fully in their control.
2. Prioritizes security
One of the benefits of self-service is enhanced security. Allowing multiple teams to use a vulnerable infrastructure template creates unacceptable risk. However, expecting every team to create and deploy their own infrastructure leaves you open to deploying vulnerable infrastructure.
You can mitigate both risks by implementing the Spacelift platform using a self-service approach. The platform team designs and prepares Blueprints, which should be subject to extensive testing before publishing.
Spaces help to ensure that the blueprints will be deployed on permitted environments only. For example, if the organization uses a CI/CD account, all templates related to CI/CD should be deployed there, not in the Production account. Spaces can be used to represent the cloud setup, for example accounts, subscriptions, or environments.
Another layer of securing blueprints are policies. Policies can be attached and enforced in published blueprints, so the platform team can ensure specific behavior and specific use of the templates.
3. Enhances efficiency
Blueprints are also a key concept to remove the blockers that can make teams less efficient. The development team doesn’t need to focus on acquiring additional skills within the team, such as expertise on Terraform, cloud infrastructure deployments, etc. Instead, they can use Blueprints to deploy specific infrastructure to specific environments.
4. Enables CLI and API
The ability to use CLI tools (or API calls) facilitates the building of wider solutions, where a specific component is triggered by an overarching service. This might happen when the platform team delivers not only self-service infrastructure but also more complex solutions.
Spacelift offers a CLI called spacectl. The flexible tool is easy to install. We also provide the GitHub Action to install and configure it inside the CI/CD pipeline.
But that’s not all! Many engineers prefer to use APIs in certain cases. Spacelift offers the GraphQL API, which allows users to interact with a service in a programmatic way.
5. Boosts usability
Creating the best possible approach to self-service infrastructure often raises a dilemma. Cloud setup in modern organizations is complicated and crafted exactly for specific needs. Use of templates reduces this adaptability, so the platform team has two options: Create complex templates and push teams to use the single solution, or create many small templates and ensure that teams are able to construct complicated solutions with them. The latter requires the team to have at least an understanding of IaC and self-service technologies.
Spacelift solves this dilemma with stack dependencies. This approach allows platform teams to deliver well-designed, single-purpose solutions. Their clients select the blueprints that best fit their needs and connect them into logical chains, using stack dependencies.
6. Enforces best practices
One of the purposes of platform teams is to implement and enforce best practices. This remains true when you apply a self-service infrastructure approach. By combining Spaces, Blueprints, policies, and the module registry with a modern self-service approach to manage the dependencies between stacks, it becomes easier to ensure best practices are followed.
A compelling feature of Spacelift is the way you can manage the entire platform setup. Spacelift has published its own Terraform provider, which means the process of managing the platform governs all processes in the organization, such as infrastructure coding (and creation), version control, CI/CD, security scans, governance, etc. This approach allows the organization to achieve next-level quality and cooperation.
Check out our next article – Self-Service Infrastructure with Spacelift, where we explore examples of self-service infrastructure, the problems it solved, and the improvements Spacelift can add.
Spacelift’s platform aligns with all the criteria for a self-service infrastructure approach. It allows the organizations to create, manage, and use the infrastructure in a modern way while prioritizing security, scalability, and reusability.
From the platform team’s perspective, Spacelift offers all the tools needed to launch and manage the self-service infrastructure and control how it is used by the organization. Development teams can be onboarded easily and start using the self-service infrastructure in no time. And when help is needed, the platform team is there to simply check the status, logs and behavior of the problematic stack and quickly provide guidance.
Our approach to self-service infrastructure delivers all the features you need to build a robust self-service culture for enhanced cooperation and superior solution delivery. Find out how you can benefit from this approach with a free trial or book a demo with our engineering team to discuss your options in more detail.
The Most Flexible CI/CD Automation Tool
Spacelift is an alternative to using homegrown solutions on top of a generic CI. It helps overcome common state management issues and adds several must-have capabilities for infrastructure management.