Platform engineering is evolving fast, accompanied by a multitude of tools designed to turbocharge developer efficiency and slash lead times. This means that when building an Internal Developer Platform (IDP), choosing the best tools can be a daunting task. Especially when so many seem to do a similar job.
At Humanitec, we get the importance of picking the right tech to ensure IDP success. So, we’ve written this article to talk you through two platform tools we often get asked about the Humanitec Platform Orchestrator and Backstage, a developer portal. We’ll explore the differences between their categories, functionalities, and the distinct roles they play in building a robust enterprise-grade IDP. Let’s kick off by looking at what exactly a Platform Orchestrator is.
The power of the Platform Orchestrator
At the heart of an IDP is where the Humanitec Platform Orchestrator sits. It plays a key role in facilitating Dynamic Configuration Management (DCM) throughout the entire software delivery process. And it ensures a clear separation of concerns, enabling platform engineers to set standardized and dynamic definitions of how to provision resources. For developers, this wipes the need to manually define and maintain environment-specific configs for their workloads. Instead, they can use an open-source workload specification known as Score to declaratively define the required resources. With each git-push, the Platform Orchestrator automatically determines the essential resources and configs necessary for their workloads to operate seamlessly.
When used to build an IDP, the Platform Orchestrator cuts out a ton of manual tasks. The platform team defines the rules, and the Platform Orchestrator handles the rest, as it follows a “RMCD” execution pattern:
- Read: interpret workload specification and context.
- Match: identify the correct configuration baselines to create application. configurations and identify what resources to resolve or create based on the matching context.
- Create: create application configurations; if necessary, create (infrastructure) resources, fetch credentials and inject credentials as secrets.
- Deploy: deploy the workload into the target environment wired up to its dependencies.
No more config drama, just more time to focus on the tasks that add real value.
The pivotal role of internal developer portals
Before we get stuck in, it’s important to note the difference between a portal and a platform. According to Gartner,
“Internal developer portals serve as the interface through which developers can discover and access internal developer platform capabilities.”
Like the Platform Orchestrator, internal developer portals such as Backstage also play a leading role from a platform perspective. Mainly since it acts as the interface to the platform and enhances the developer experience. That said, the two tools belong to different categories, occupy different planes of a platform’s architecture, and have different primary use cases.
Note: The components and tools referenced below apply to an AWS-based setup, but all are interchangeable. Similar reference architectures can be implemented for GCP, Azure, or any hybrid setup. Use this reference as a starting point, but prioritize incorporating whatever components your setup already has in place.
For example, where the Platform Orchestrator is the centrepiece of an IDP, Backstage acts as the user interface to the platform and provides the core pillars of the developer portal: a software catalog that equips developers with the right information in context, software templates for scaffolding, or a docs-like-code solution.
Same tools or apples and oranges?
You could say comparing the Humanitec Platform Orchestrator and Backstage is like comparing apples and oranges. Both play important roles in building a successful platform. But they're not the same thing at all. The Platform Orchestrator is designed to generate and manage configs. It interprets what resources and configs are needed for a workload to run, creates app and infrastructure configs based on rules defined by the platform team — and executes them. As a result, developers no longer need to worry about dealing with environment-specific configs for their workloads. The Platform Orchestrator handles it all behind the scenes, making life easier for them.
Backstage on the other hand, is like the front door to your platform. It acts as the interface, containing anything you need to keep track of service ownership, recent code changes, or app health.
While Backstage is a valuable open-source tool, it also has certain limitations to consider. Firstly, it was primarily designed for Spotify's specific use case, which may not be the same as your organization's requirements. Setting up and configuring Backstage can also be complex, and it demands ongoing maintenance and coding efforts to keep it running smoothly.
For organizations seeking alternatives that better meet their needs, commercial solutions like Port and Cortex offer robust features and support. Most importantly, both can seamlessly complement Humanitec's offerings — just like Backstage does.
Building an Internal Developer Platform with Backstage and the Humanitec Platform Orchestrator
While Backstage and the Platform Orchestrator support different stages in the application lifecycle, they can be used in tandem to build an enterprise-grade IDP that majorly enhances DevOps productivity.
So, when it comes to the Humanitec Platform Orchestrator and Backstage, it's not about which one you should use. Both can be really valuable tools for your platform. What matters is the order in which you adopt them AND how you integrate them.
Step one should be about getting the foundation right. You should do this by architecting your IDP to drive standardization across the end-to-end software development lifecycle. You should also set it up to establish a clear separation of concerns between developers and platform teams. And the best way to do that is by starting with a Platform Orchestrator like the one from Humanitec. Think of it like the beating heart of your platform.
Next, you can decide what abstraction layers should be exposed to developers in the portal and what self-service actions you need to offer them. For this, you can adopt Backstage as a developer portal on top of the platform.
Backstage and Humanitec in action
Here’s what combining the Humanitec Platform Orchestrator and Backstage could look like:
- First, you’ll need to set up both Humanitec and Backstage and configure your CI.
- You can use the Humanitec plugin for Backstage.
- To scaffold a skeleton for your new project, you need to define a template first.
- Make sure the template includes a Score file which defines the workload dependencies and a CI pipeline configuration.
- Trigger the scaffolding workflow by pushing the create button in the Backstage UI.
- Once the service is built, the Platform Orchestrator is notified and dynamically creates configuration files based on the deployment context. The Platform Orchestrator can derive the context from API calls or from tags passed on by your CI system.
- Humanitec deploys the new service.
- The resulting new microservice deployment entity will appear in Backstage’s service catalog.
Don’t forget about what happens after day one, though. Dealing with complex app and infra configs, and having to add or remove workload-dependent resources (think databases, DNS, storage) for different types of environments can equate to major headaches an much time wasted.
This is where the Platform Orchestrator and Score step in. With Score (an open-source workload specification), developers can easily request resources their workloads need or tweak configs in a really simple way, depending on the context — like what kind of environment they're working with. Let's dive into an example:
1. Add the following request to the Score file
2. Run a git-push
3. The Orchestrator will pick this up and update or create the correct S3 based on the context, create the app configs and inject the secrets.
4. At the end, it will register the new resource in the portal.
5. Resources provisioned by Humanitec based on requests from the Score file will be shown on the Backstage service catalog for visibility and also to enable a graphical overview of the resources.
With this setup, developers can choose which interaction to use for which activity:
Enhance productivity and cut time-to-market
In summary, when it comes to building an efficient enterprise-level IDP, the Humanitec Platform Orchestrator and Backstage are a formidable duo. The best starting point is to build your platform around the Platform Orchestrator, which is the key to unlocking the potential of Dynamic Configuration Management (DCM). Through DCM, you can standardize configs, establish a clear separation of responsibilities, and take developer experience (DevEx) to new heights. Next, consider Backstage, which can serve as a developer portal and service catalog layered on top of the platform. By building your IDP with the Humanitec Platform Orchestrator and a portal like Backstage, you can drive developer satisfaction, enable true developer self-service, boost developer productivity, and, as a result — shorten time to market.