Build Your Developer Platform with Humanitec and Cortex
Beginning your journey into the world of platform engineering might not be as straightforward as anticipated. In a landscape teeming with myriad tool options, the process of selecting the right one can swiftly transform into a nightmarish ordeal.
This article attempts to bring clarity to this scenario by shining a spotlight on two specific tools: Cortex’s developer portal, and the Humanitec Platform Orchestrator. We will closely examine the fundamental features of each, explore how they align within the framework of an internal developer platform (IDP) and dig into their integration capabilities. Are you ready to dive in?
As per Gartner’s definition, “internal developer portals serve as the interface through which developers can discover and access internal developer platform capabilities.”
Let’s examine the architecture of an internal developer platform using Humanitec Platform Orchestrator and Cortex Developer Portal.
According to McKinsey’s research presented at PlatformCon 2023 enterprise-grade internal developer platforms consist of five different planes:
- Developer control plane, including a developer portal like Cortex and an open source workload specification such as Score
- Integration and delivery plane, including a platform orchestrator like Humanitec
- Resource plane
- Observability plane
- Security plane
In an AWS cloud setup, it would look like this:
Note: The components and tools referenced above apply to an AWS-based setup. The yellow lines show the CI/CD flow. All tools and components are interchangeable. Similar reference architectures can be implemented for Google Cloud Platform, Azure, OpenShift or any hybrid setup. Use this reference as a starting point, but prioritize incorporating whatever components your setup already has in place.
Humanitec Platform Orchestrator in a Nutshell
A Platform Orchestrator serves as the central component of an internal developer platform (IDP), facilitating dynamic configuration management (DCM) throughout the entirety of the software delivery cycle.
The Humanitec Platform Orchestrator integrates seamlessly with Score, an open source workload specification enabling developers to describe their workloads and dependencies as code. This code can then be executed across various environments, allowing developers to deploy the same workload across entirely different technology stacks, all without necessitating expertise in each specific stack.
Used to build an internal developer platform (IDP), the Platform Orchestrator streamlines a multitude of manual processes.
The platform team defines the rules, and the Platform Orchestrator handles the rest, as it follows a RMCD (read, match, create and deploy) 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.
This means bidding farewell to the headaches associated with configurations, leaving you with ample time to concentrate on the crucial tasks that truly contribute substantial value.
The Role of Developer Portals
As shown in the reference architecture diagram above, placing a developer portal on top of such a platform setup has become very common nowadays. Developer portals usually contain a service catalog, which helps to keep track of already-existing services and comes with a scaffolding feature for standardized Day 1 operations and a higher degree of developer self-service.
Scorecards are another developer portal feature to mention here. They help developers and management to keep track of DORA metrics, operational maturity and migration cases.
While there are open source offerings like Backstage that need a steep learning curve and are not easy to configure, more and more commercial vendors for developer portals are entering the market. Cortex is one of those and has quickly become one of the leading internal developer portals. Its intelligent software catalog automatically aggregates the latest information about all your services and resources from your critical developer tools into a single place.
With Cortex scorecards, teams can then define standards to measure service maturity, deployment readiness, compliance alignment and more, enabling individual developers to know where to focus to drive the most impact. Cortex also enables scaffolding and Day 1 operations that ensure all new services are deployed according to best practices and standards.
Achieving the Optimal Internal Developer Platform Setup
When you build an internal developer platform with Humanitec Platform Orchestrator and use Cortex as the developer portal, use cases for the two tools might look like this:
Cortex and Humanitec in Action
Wondering how Cortex and Humanitec would work as a powerful tandem? So, there you have it. First, the Platform Orchestrator sets the stage, and then you spice things up with DCM. Finally, you top it off with Cortex as an excellent developer experience.
Now, let’s explore how the combination of the Platform Orchestrator and Cortex can work together:
- To get started, you’ll need to configure both Humanitec and Cortex. Cortex requires careful consideration of the software catalog’s data model, encompassing elements such as CI/CD data, API data, resource data, Kubernetes data and more. Additionally, identify a selection of initial self-service actions to offer in the portal.
- Suppose you aim to create a self-service action for provisioning a microservice within Cortex.
- Ensure that the microservice template incorporates a Score file defining workload dependencies.
- Cortex initiates the scaffolding by triggering a GitHub Workflow to execute the service-build process.
- Once the service build is complete, the Platform Orchestrator receives a notification and dynamically generates configuration files tailored to the deployment context. This context can be derived from API calls or tags provided by your CI system.
- Humanitec takes charge of deploying the new service.
- The resulting microservice entity seamlessly integrates into Cortex’s software catalog.
But remember, the journey doesn’t end on Day 1. Managing complex application and infrastructure configurations, along with adding or removing workload-specific resources like databases, DNS and storage for various environments, can be quite challenging.
This is where the Platform Orchestrator and Score come into play.
Alongside the Platform Orchestrator, Humanitec introduces Score files into the workload repository, adhering to an open source workload specification standard. With Score, developers can effortlessly request the resources they need for their workloads or make configuration adjustments to suit the context, such as the specific environment they’re working in. Let’s illustrate this with an example:
- Add the following request to the Score file:
- Initiate a git-push.
- The Orchestrator will detect this request, proceed to update or create the appropriate S3 resources based on the context, configure the application accordingly and inject the necessary secrets. It will conclude by registering the new resource within the portal.
- Resources provisioned by Humanitec based on Score file requests will be displayed in the Cortex service catalog, offering visibility and a graphical overview of available resources.
Boosting Developer Productivity and Reducing Time to Market
In summary, the Humanitec Platform Orchestrator and Cortex make an excellent combination for constructing a highly effective enterprise-level internal developer platform. Wonder where to begin? Start by building your platform around the Platform Orchestrator. This is the key to harnessing the potential of dynamic configuration management (DCM), which streamlines configurations, ensures a clear separation of concerns and elevates your developer experience (DevEx) to new heights.
Next, select your developer abstraction layers. This is where you can employ Cortex as a developer portal atop the platform. Seamlessly integrate these components, and you can anticipate enhanced productivity, improved developer performance and, ultimately, a significant reduction in time-to-market.