Whether you love or hate using your tools' graphical user interfaces, they are undeniably the best way to present complex data structures in an easy-to-digest form. That’s why we have been working on a new UI for Resource Graphs in the Humanitec Portal, which aims to simplify reasoning about infrastructure intricacies.
Resource Graphs in Humanitec Portal
In Humanitec Platform Orchestrator, Resource Graphs represent interdependencies between workloads and resources. The blog post, “Understand Humanitec’s Resource Graph in detail” provides a comprehensive explanation of Resource Graphs with examples, so this one will focus on why they are important and how you can work with them in the Humanitec Portal.
Scope of Resource Graph
The Resource Graph available in the Humanitec Portal shows the dependencies between workload and resources used by the latest deployment in a selected environment. You can access it from the Environment overview page by clicking on the Last Deployment comment and choosing the Resource dependency graph tab.
The above graph represents the “workload requests HTTP routing and DNS entry” example from the previous blog post. This organization's platform team has configured it so that an Ingress resource and a TLS certificate are automatically provisioned with any DNS entry, and this is reflected in the graph.Â
Clicking on any node provides additional context on the resource, such as its ID, provisioning time, a link to the specific Resource Definition used to provision it, or outputs from other resources like in the example above - the route resource showing the DNS hostname.Â
This overview and available details allow users to validate the correctness of provisioned infrastructure and quickly identify issues, like missing resources or incorrectly defined dependencies.
Power of visualization
Imagine having to read through thousands of lines of code or config files that were used to provision an advanced setup with dozens of interdependent workloads and their resources, like the example below, to find some specific information on just one of those workloads and its dependencies.
A visual representation of such complex infrastructure already makes it easier to understand the topology at first glance, and the Humanitec Portal functionalities simplify accessing important information even further.Â
Let’s say you want to determine what resources the auto-deployment-worker workload depends on. Color coding and icons simplify finding the workload node type, and clicking on it highlights the connections to the dependent resources.Â
While highlighting already helps identify relevant dependencies, the “Focus selection” option makes the answer even more evident.
It brings the selected subsection of a graph to the front and hides all the other notes and connections for better clarity. When you’re done, simply use the “Back to full graph” option to return to the initial view.Â
The focused view is equally helpful in reasoning in the other direction, e.g., finding all workloads that depend on a chosen resource. For example, let’s find out which workloads are using the shared.auto-deploy-db Postgres database. To do that, we can simply click on the node representing that database and use the Focus selection option. The view will change to show only the selected database and all workloads that depend on it.
Identifying services impacted by a database upgrade becomes much easier with a tool like this.Â
The Dream
Although the Humanitec Portal currently supports only Resource Graphs within an Environment context, imagine the possibilities of visualizing an entire infrastructure estate.
No more mysterious resources costing your organization a fortune (because no one knows if it’s safe to de-provision them) or issues with tracking down owners of services impacted by the next update. Every resource is linked back to Services within specific Applications and updated at every deployment.Â
As discussed, seeing the data represented in a graph form is already helpful, but what would be even better is having the possibility to get relevant information back easily. For example, getting contact details to owners of all outdated redis instances in staging environments to warn them about an incoming update:
How would having always up-to-date data on the infrastructure estate, across your entire organization, with functionality that makes finding relevant information easy, impact your platform engineering initiative?
Share your story with us by reaching out to our our platform architects or get started right away with the Humanitec Minimum Viable Platform program.