Concepts
Humanitec concepts
Humanitec is an Internal Developer Platform for Kubernetes based applications. Using Humanitec, developers can self-serve the tech they need in order to deploy and run their apps in fully provisioned environments. Platform or Operations teams configure Humanitec with rules describing how and when to provision resources. This can include fine grained control of how workloads run in Kubernetes through to provisioning out of cluster resources such as databases or DNS.
Humanitec has two broad categories of users: Application Developers and Platform / Operations / SRE teams. To simplify things, we will refer to the former as Developers and the latter as Platform teams. It is common in practice for the same person to perform aspects of both developer and platform team tasks in the course of using Humanitec. We however think it is easier to understand the concepts if we split the concepts into these two different categories. Don't consider these categories as being exclusive!

For developers

Humanitec allows developers to describe their application and its dependencies on resources such as databases and DNS. Developers define Applications which are a collection of related Workloads, Configuration and the Resources that they depend on. Developers can then deploy the application to an Environment. If the environment is new, all the dependent Resources will be provisioned. If an existing Environment is being updated by the deployment, any new dependent Resources will be provisioned. Once everything in the environment is running as expected, all or part of the Workloads and Configuration in the Environment can be promoted to the next Environment.

For platform teams

Platform teams use Humanitec to set baselines for how environments should be provisioned. Platform enable developers to "self-serve" the resources and environments that their applications need. Platform teams create Resource Definitions that describe how different types of Resource are provisioned by Humanitec. This might vary by Application, Type of Environment or other context.