Build portals that provide value
Internal Developer Platforms are the sum of all the tech and tools a platform engineering team binds into a golden path to drive standardization and enable developer self-service along the entire life-cycle of an application. Portals are the user interfaces into those platforms. They visualize service catalogues, API catalogues, running microservice and their status, logs and other business logic. Portals are only as good as their underlying platform.
While many users enjoy using User Interfaces the general acceptance in the developer community is mediocre. Which is why platform engineering teams add in a code-based interaction method between developers and the platform. Humanitec’s product Score (OSS) is the most commonly used approach.
Humanitec’s Platform Orchestrator is often used as the “Backend” to portals. It receives the request to create “something”, executes this based on the defaults provided by the platform team and then manages the life-cycle of this “thing” as well as storing it in the service catalogue for continuity.
But there is way more than just “a system that executes my Terraform files”. The “magic sauce” is our approach to configuration management called “Dynamic Configuration Management”. The idea: developers tell the platform in an abstract format how their workload relate to other workloads and their dependent resources (databases, DNS, filestorage, clusters etc). The platform regenerates all app- and infrastructure configurations with every deployment. This has a wild impact on standardization and consistency and ultimately slashes the organizations lead time.
Start with what you have
The reality of any engineering organization is that it inherits legacy systems. Rarely does one ever start from scratch. There are numerous tools and resources in the cloud and on-premises, and a wide range of applications to manage. The trick to building great platforms is to integrate, rather than throwing away existing systems.
Humanitec's products excel in this area. Take the example of a platform with a diverse array of tools integrated by the Platform Orchestrator. The primary interface to this platform is code-based, utilizing our product "Score". This enables developers to remain in their familiar workflow and never leave the version control system.
By integrating legacy systems and tools, Humanitec's products help engineering organizations streamline their workflows and increase productivity.
Integrate & build golden paths with Humanitec’s products
The main challenge in platforming is how to effectively align developer requests with the platform team's response. Mediocre platforms rely on pre-packaged solutions called "service catalogues". These catalogues provide templates for "fresh" microservices that rely on specific configurations, such as PostgresDB. Once developers use these templates, the platform team is "off the hook" and developers must handle everything on their own.
However, platforms that use proper orchestration and Dynamic Configuration Management treat each deployment as day 0. This means generating a full representation of the app and infrastructure configurations with every single deployment. This approach has several advantages, including:
- Significant impact on standardization and maintainability
- 95% reduction in configuration files
- High rate of developer self-service and reduction in repetitive requests to operations teams
- Lower change failure rate and significant drop in security incidents
By using proper orchestration and configuration management, we can drastically reduce lead time and time to market.
How developers interface
We strongly believe that the interaction method between developers and their platforms should be primarily code-based. This not only simplifies the adoption process but also meets developers where they are. Our belief is further reinforced by the fact that developers prefer to use reusable industry standards instead of learning new quirky YAML formats developed by organizations.
To address this issue, we have developed Score, which has been adopted by hundreds of teams. It is a way for developers to express their workload dependencies in a generalized manner. For instance, a Score file may show dependency on a resource DB of Postgres (not a specific RDS DB for instance, just in general a Postgres).
With Score, you only need one Score file per workload repository, as it replaces all other configuration formats and works across all environments. Score optimally integrates with developer portals as it’s packages as code.
The Score file is sent through your CI pipelines and reaches the Platform Orchestrator. The Orchestrator follows an RMCD pattern, which stands for Read, Match, Create, and Deploy.Firstly, the Orchestrator reads your abstract request, matches the context (such as deploying to a staging environment) with the resource definitions and default configurations provided by the platform engineering team.
Next, it creates app and infrastructure-configurations just in time with the deployment. The Orchestrator can create, update, wire the infrastructure, and perform the deployment of the image. It can also be used in combination with a CD engine.
This deployment process is identical whether you’re deploying to dev, launching a new service, environment, or moving towards production. The only difference is the context of the deployment, all of which is handled by a single file.
“Teach” the Orchestrator the rules of your platform
The Orchestrator is a powerful tool that can be configured to perform a range of tasks, from deploying workloads to executing web-hooks and creating resources. To make the most of this tool, it is essential to provide clear instructions on what it should do and when.
One of the easiest ways to achieve this is by using the Humanitec Terraform Provider. This tool enables users to configure the Orchestrator for specific situations and define the resources it should create or update. With this provider, users can create both app and infrastructure configurations, allowing for maximum flexibility and control.
In summary, the Orchestrator is a versatile tool that can be tailored to meet the needs of any project. By using the Humanitec Terraform Provider, users can configure this tool to perform specific tasks, ensuring that it operates efficiently and effectively.
Get your first version of a platform in a day with our reference architectures
After helping a large number of teams build their Internal Developer Platforms we started to identify common patterns. We have summarised our learnings in reference architecture tailored to your preferred cloud- or on-prem environment. Check them out, we hope they will do you good service!