Humanitec

Humanitec is a "platform orchestrator" for Kubernetes designed to underpin an organisation's internal developer platform. It's designed to separate out application development from platform engineering, providing a layer of abstraction between runtime environments and their underlying infrastructure.

Concepts

  • Organisations are the root of the configuration, and serve as containers for all other entities.
    • Images are deployable artifacts. CI pipelines can be "connected" via webhooks to notify the platform of newly published versions.
    • Registries are sources of images, and can have credentials for authentication.
    • Environment types allow grouping app-level environments.
  • Resources can represent deployment targets, data stores, means of ingress or arbitrary application dependencies.
    • Cluster resources are either Kubernetes clusters or namespaces.
    • Data stores might be Kubernetes PersistentVolumes, blob storage, caches, or Databases.
    • Routing represent points of ingress for service traffic.
    • Other resources
  • Drivers provision resources.
  • Apps are deployable units that run in one or more environments, comprising one or more workloads.
    • Workload Profiles describe different types of workloads each app may need, e.g. a service deployment or a scheduled task.
  • Environments are locations to which applications are deployed. They're defined per-app.
  • Deployments represent state changes to environments, providing audit history.

Children
  1. Drivers