Build and Manage a Self-Service Developer Platform with Weave GitOps
Lack of developer autonomy is a challenge to software delivery. Self-service developer platforms, enabled by Weave GitOps, empowers developers with much-needed autonomy.
Software organizations’ three core business aspirations are application quality, team productivity, and cost optimization. This led them away from the waterfall style of software development towards DevOps - something that began about a decade ago. This move added significant value to software delivery by breaking silos between developers and IT operations teams. DevOps has become widely popular, but there’s a flip side to it. While DevOps aspired to meet the mantra ‘you build it, you run it’, this wasn’t the case. In reality, developers ended up relying on Ops to manually provision and maintain infrastructure. In the process, the software development lifecycle has become increasingly fragmented with numerous tools - source code repositories, container management tools, service meshes, monitoring and scanning tools and more. This combination of unclear ownership and a tool sprawl has resulted in slowing release cycles and has exposed the other side of DevOps.
A developer self-service platform can overcome this roadblock. Gartner predicted in 2019 that ‘by 2023, 90% of the organizations will fail to scale DevOps without self-service platforms.’ But what are self-service platforms, and how can organizations better meet their development goals using such a platform? Let’s take a look.
What does a self-service developer platform mean?
DevOps involves the usage of a comprehensive list of cloud services, cloud-native tools, and processes to automate software delivery processes. A self-service developer platform standardizes the provisioning of these various resources along with infrastructure configuration, design patterns, and governance policies. Instead of coordinating manually with the Ops team, developers have all the components and documentation for building an application readily available and whitelisted for them to make use of. A self-service platform streamlines and automates cloud provisioning for development teams to accelerate their software development process.
Traditionally, developers raise a ticket for the operations team to provide them with the required infrastructure and resources to run the applications they build. On receiving the ticket, the operations team gets approvals to assign the necessary resources in a process that generally lasts days. There are many bottlenecks and back-and-forths, leading to exhaustion and frustration. With a self-service developer platform, however, your development team can spin up the environments and resources they need on demand. This is made possible by the Ops team (or more accurately, the Platform team) which makes a set of frequently used resources and configurations readily available for the development team’s consumption.
The DORA (DevOps Research and Assessments) identified five metrics at which successful and mature DevOps teams perform well. The metrics are deployment frequency, mean time to recovery, lead time for changes, change failure rate, and reliability. Its 2022 State of DevOps report stated that adopting the platform model for infrastructure provisioning is critical in accelerating software shipping.
According to the report, 63% of the organizations have adopted internal platforms that led to greater developer autonomy, while the platform team can focus on continuous deployment.
Figure: The 5 key DORA metrics
Benefits of the self-service developer platform
The benefits of a self-service developer platform run both ways, impacting both Dev and Ops teams. Let’s look at some of the significant advantages of adopting the platform model.
Developers are empowered and autonomous
A self-service platform allows developers to pick and choose cloud vendors, repository managers, and testing tools of their choice. It helps developers to work with great independence and without conflict between teams.
Streamline security and governance across the pipeline
You can implement security and compliance policies across the development lifecycle by standardizing resources and configurations. It allows you to set security checks and limit developers from using pre-approved container images or registries.
Accelerate the development process from commit to deploy
By automating the infrastructure and resource provisioning, you reduce delay significantly. This allows for an increased pace from commit to deployment resulting in faster feature releases.
Productivity across teams is improved
Doing away with ticket-based provisioning allows developers to focus on coding, while the operations team can work on improving system performance without having to worry about managing tickets.
Kubernetes and cloud-native technologies add necessary complexities to the application development pipeline, which self-service platforms solve quickly. GitOps is the best approach for your team to adopt the self-service practice efficiently.
GitOps as a way to build self-service developer platforms
GitOps helps you tackle the operational challenges of infrastructure management, offering a self-service developer experience and baking in compliance within the process. Since everything from code to cluster configuration is defined in Git, it significantly reduces user errors and gives teams the confidence of knowing that what they defined in Git is running in production.
Your operations team can create GitOps templates for infrastructure configuration in the form of YAML files that are stored in Git. You can implement compliance and governance regulations by setting restrictions and privileges on how the templates can be customized. This process enables developers to access the resources they require in minutes, not days. Only if your customization needs are not met due to the limitations of the template do you involve the platform team.
Navigating through the complexities of Kubernetes is challenging and requires a robust tool to deploy, maintain and upgrade clusters on-premises or on any cloud. One ideal tool is Weave GitOps Enterprise (WGE).
Weave GitOps Enterprise empowers developers with a self-service approach
Weave GitOps Enterprise is based on the principle of GitOps as outlined by the OpenGitOps project. Powered by the CNCF-graduated project, Flux, Weave GitOps Enterprise is the easiest and most elegant solution to practice declarative operations in a cloud-native Kubernetes environment.
Weave GitOps Enterprise enables you to automate Kubernetes cluster creation and management across multiple clouds providing a GitOps framework and policy management. It automates and simplifies building a self-service platform by launching repeatable cluster stacks across Kubernetes environments. It allows you to stick to your corporate guidelines while enabling self-service cluster management.
Figure: Weave GitOps Dashboard
Weave GitOps Enterprise Key Features
While Flux brings vital GitOps agent functionality, it takes more than the vitals to make GitOps a reality in an organization. Weave GitOps Enterprise goes beyond Flux to add in enterprise-friendly features around team collaboration, improved automation, and trusted application delivery using policy as code. Let’s look into these features.
Continuous application delivery
With Weave GitOps Enterprise, you can use pull requests to deploy applications to any cluster while automating the new versions through a CD pipeline and employing progressive delivery for safe deployments.
Progressive delivery is the idea of deploying a software release in a phased manner starting with a small subset of users and then finally to all users. Examples of progressive delivery include canary releasing and blue-green deployments. The goal of progressive delivery is to restrict the impact of failures during releases. With lower stakes teams are confident to practice continuous application delivery.
Weave GitOps Enterprise leverages Flagger, an open source tool that is now part of Flux, that manages progressive delivery. Flagger integrates with a service mesh tool like Istio or Linkerd to implement policies from a YAML file. These YAML files make it easy to declare and edit configuration for progressive delivery at any time. Additionally, WGE reports on the status and progress of a deployment in real-time, giving you deep visibility into the entire process.
Self-service templates and profiles
Weave GitOps Enterprise enables you to define component profiles to deploy standardized services, ensuring consistency across the organization. It also enables you to use the latest version of the component in your production systems.
Cluster lifecycle management
Manage clusters with zero downtime as you implement security patches and upgrade cluster extensions to create repeatable clusters across multiple environments. If any update fails, you can easily roll back the change to a previous funcional version of the application. All this is made extremely simple with W.
With an intuitive and user-friendly dashboard, you can gain a one-point view of your provisioned clusters, application catalog, cluster template library, and alerts. Weave GitOps Enterprise brings you end-to-end visibility into every aspect of your application delivery.
Trusted application delivery
You can ensure the highest level of security for your applications by adding policy-as-code to GitOps along with Weave Policy Engine to ensure proper security checkpoints are set up before deployment. This is what we call Trusted Application Delivery.
Self-service platforms help accelerate your development by eliminating the tussle between developers and IT operators. It streamlines the process by empowering developers to use the necessary resources and infrastructure configuration without the assistance of the operations team. On the other hand, the operations team can stop worrying about resource provisioning and fine-tune system performance for application stability. However, a self-service platform can only enable seamless application development if built on a developer-friendly platform like Weave GitOps Enterprise, which leverages GitOps best practices for solving complexities of configuration management.
To learn more about how Weave GitOps Enterprise can work for your organization, request a demo.