Developer Experience (DevX), Developer Platform, and the Backstage framework

The developer experience (DevX) is in evidence for many reasons.

DevX aims to measure how developers interact with the resources needed to do their job in the best possible way: building, maintaining, testing, deploying, and analyzing software.

According to a study conducted by Forrester Consulting in 2022 with 650 decision-makers, most otf them recognize that the developer experience can affect the execution of the business strategy, the competitiveness of the organization, and the satisfaction of the customers.

Furthermore, if the quality of experience of software development teams is not adequate, it will directly affect the motivation, productivity, and the deliverable quality of people working on a specific project.

  • Motivation. When tools facilitate work, engagement is more significant. It certainly helps to retain talent and reduce turnover in teams.
  • Productivity. Most developers like to be involved in more complex or challenging work and activities. A development experience that allows more straightforward tasks to be completed efficiently will lead to more agile and value-added development cycles.
  • Quality. When development teams have access to tools that help with documentation, code debugging, and detailed testing, the resulting code will have fewer bugs, greater security, better performance, and better stability

Currently, there are many metrics used to measure the developer experience (DevX), and they help to identify areas where improvements can be applied, in addition to enabling the monitoring of the evolution of the experience over time

Some examples of metrics are:

  • Developer Satisfaction. This metric measures developers’ satisfaction with the development tools, processes, and environment. Developer satisfaction is measured using, for example, surveys or feedback.
  • Lead Time. This metric measures the time required from the start of the project to the deployment of new features or bug fixes in the production environment. A shorter time indicates that the development process is efficient and streamlined.
  • Code Quality. Code quality is vital as it affects the overall quality of the software. High-quality code is easy to read, maintain, and test. Using tools that control code reviews and perform automated tests will help improve code quality.

Many other metrics can be associated with DevX. The important thing is to understand that the starting point for improving DevX is using metrics.

In addition to metrics, a developer platform plays a crucial role in improving DevX.

An Internal Developer Platform (IDP) is formed by the tools used by developers, such as:

  • Integrated Development Environments (IDE) like VSCode, JetBrains, etc.
  • Version Control Systems (VCS) like GitHub, GitLab, etc.
  • Resources like containers, databases, storage, compute, transit, etc.
  • Kubernetes orchestrator
  • Observability tools
  • Security tools
  • CI tools like CircleCI, GitHub Actions, and Bitbucket
  • GitOps tools and CD controllers, like Argo CD
  • Infrastructure as Code tools, like Ansible and Terraform

By definition, an Internal Developer Portal is a single portal for developers capable of bringing together all the tools and technologies available and used in software development.

In addition to the examples of platform tools described above, an Internal Developer Portal also includes documentation, tutorials, sample code, API documentation, and other resources that help developers understand how to use a product or service.

Therefore, the quality of a developer portal can have a significant impact on DevX.

A well-designed and comprehensive developer portal can make it easier for developers to find the necessary tools and information and troubleshoot issues. It will lead to a more positive experience.

However, a poorly designed or incomplete portal can lead to frustration and wasted time. It can negatively affect DevX and hamper developer productivity.

Gartner’s “Innovation Insight for Internal Developer Portals” report summarizes well the integration capabilities that an Internal Developer Portal must have, as shown in the figure below:

For all these reasons, there is a movement in the market to define frameworks and tools capable of building portals for developers.

One of the main player in this area is Backstage, an open-source platform.

Backstage was an internal project launched in 2016 to build Spotify’s internal developer portal, and it reduced the onboarding time for Spotify’s developers by 55 percent.

The project began as an incubation in the Cloud Native Computing Foundation Sandbox in September 2020, moved from the Sandbox to the official incubation stage in March 2022, and the Official GA was released on March 2022.

Backstage unifies all your infrastructure tooling, services, and documentation to create a streamlined development environment from end to end.

Backstage is not a finished product. Instead, Backstage is a collection of tools and libraries used to create your Developer Portal.

The Backstage architecture consists of 03 layers, as shown in the figure below:

  • Backstage Core: the layer the Backstage team maintains and releases as open source.
  • App: basically, this is the layer that will be made available for developers to use, that is, the portal itself. The app ties together core functionality with additional plugins.
  • Plugins: additional functionality to make your Backstage app useful for your company. Plugins can be specific to a company or open-sourced and reusable. Backstage is a single-page application composed of a set of plugins. Even basic functionality is abstracted as a plugin and included in a Catalog

The Backstage open-source community is very active, and the ecosystem has about 180 ready-made plugins like:

  • Agile management, like Jira
  • Source code management, like GitHub Pull Requests, GitHub Insights
  • Quality, like SonarQube, Google Lighthouse
  • Discovery, like API Docs, Harbor, Home, Tech Radar, TODO, Cost Insights
  • CI/CD, like ArgoCD, Azure Pipelines, CircleCI, GitHub Actions, GitLab, Jenkins, Travis CI
  • Monitoring, like Datadog, Grafana, Kafka, New Relic, PagerDuty, Prometheus
  • Security, like Snyk, Security Insights
  • Infrastructure, like AWS CloudFormation, AWS Lambda

Additionally, Backstage offers five core functionalities: a software catalog, software templates, a documentation generator, a Kubernetes cluster visualizer, and cross-ecosystem search capabilities

The Service Catalog is the essential element. Its objective is to map all software assets in your organization, including websites, APIs, libraries, and resources, in a centralized directory.

In the Service Catalog the developer should be able to find all relevant information about the organization’s services: owner, lifecycle, runtime, version, slack channel, last deployment link, and more.

Backstage’s Service Catalog is a unified metadata source and ownership information for all team software. You can track your services, apps, pipelines, and more in one unified view. The catalog uses metadata YAML files stored with the application code.

As this post is just an introduction to the subject, For more information about Backstage core functionalities, I recommend the following Free Linux Foundation Training: Linux Foundation LFS142 – Introduction to Backstage:

https://training.linuxfoundation.org/training/introduction-to-backstage-developer-portals-made-easy-lfs142x/

Backstage is being adopted as a standard framework in industry by some DevOps platforms such as VMware Tanzu and Red Hat Openshift.

The VMware Tanzu Application Platform is natively based on Backstage. And it even adds additional functionality that was built on top of Backstage’s flexible plugin architecture.

  • Workload visibility: Dynamic view of the application after deployment, including detailed information about objects at each level of the resource tree, such as Knative Service, Kubernetes Deployment, ReplicaSet, Pods, etc., with one-click access to the app via Knative Route.
  • App Live View: Graphical display of the app’s health status based on the Spring Boot app’s Actuator mechanism, real-time monitoring of CPU/memory, details of recent HTTP requests, dynamic adjustment of log levels, and more.
  • App Accelerator: A predefined project template made available to the development team. It automatically generates the overall project directory structure and essential configuration files to meet enterprise technology standards and architecture specifications, making it easy for the project team to get started quickly.
  • Supply chain visibility: Graphical display of the supply chain execution path and status, allowing further viewing of the execution details of each step.

For more information, refer to these links:

https://tanzu.vmware.com/content/blog/tanzu-application-platform-backstage-developer-portal-improve-devx

https://tanzu.vmware.com/content/videos/better-developer-productivity-on-tap-backstage-in-the-tanzu-application-platform-gui

The Red Hat OpenShift is also moving towards integration with Backstage. Last year Red Hat joined the Backstage.io community.

As a first step, Red Hat is making available a Helm chart that gets Backstage up and running in both an OpenShift deployment and a vanilla K8s environment. What starts with a small step is the beginning of bringing Backstage into the OpenShift ecosystem and on a collaborative path to an enterprise-supported developer platform for OpenShift developers.

For more information, refer to these links:

https://developers.redhat.com/articles/2022/10/24/red-hat-joins-backstageio-community

https://github.com/janus-idp/helm-backstage

I hope this post was helpful!

======================

Additional References:

https://backstage.io/

https://tanzu.vmware.com/content/blog/forrester-report-elevating-developer-experience

https://www.configure8.io/blog/internal-developer-portal-vs-internal-developer-platform-whats-the-difference-and-why-both-matter

https://www.getport.io/blog/backstage-all-you-need-to-know-about-this-developer-portal


Discover more from CloudnRoll

Subscribe to get the latest posts sent to your email.

You may also like...

Discover more from CloudnRoll

Subscribe now to keep reading and get access to the full archive.

Continue reading