Humanitec is a framework to help you build your own Internal Developer Platform. Think of it like Heroku but on top of your existing tech, tools, and infrastructure. The DevOps team sets up Humanitec to be used by your application developers. Humanitec is made for containerized applications using Kubernetes. It comes as a UI, API, or CLI.
For DevOps teams, an Internal Developer Platform allows you to automate repetitive tasks and make your setup self-serving for your application developers. It also makes your delivery setup easier to maintain through a new way of structuring your application configuration management.
For application developers, an Internal Developer Platform is a single pane of glass that enables them to self-serve the tech they need such as environments and resources.
Orchestrate your Infrastructure. You can define which infrastructure (e.g., Kubernetes clusters, databases, DNS) should be used for which kind of environments (e.g., development, staging, QA, production) through an API, UI, or CLI. The infrastructure that is not part of your Kubernetes setup (e.g., databased) is connected through resource drivers. Humanitec provides a number of resource drivers out-of-the-box but also allows you to write your own. With Humanitec, you can configure static infrastructure (e.g., your production database) as well as dynamic infrastructure (e.g., a new development database for each new development environment created).
Manage application configuration. You can define the baseline configuration against which your application developers can apply changes in a standardized and logged way using the UI, CLI, or API. Humanitec takes those applied changes and the baseline configuration and creates manifests for each deployment. You can export those manifests and use them as needed in your organization's processes.
Manage roles and permissions in a role-based approach (RBAC). You are in full control of who can access your Internal Developer Platform and what each user is allowed to do. This enables you to define who is allowed to deliver code for which applications and environments and to define complex sign-off workflows as needed in your organization.
Always know what is running where. This not only includes information on which particular build of any image is running in which applications and environment. It also allows you to trace things like the path a specific build took through the different environments; and much more.
Configure your applications. You can add or change environment variables, add or remove services from your application (e.g., when testing new ideas), and take code from idea to production without depending on your DevOps team on a daily basis.
Mange environments. You can create new environments for the applications you are working on either from scratch or by cloning another existing environment (or even a specific deployment). This allows you to test new ideas quickly or to do things like verifying that a hotfix is working as expected without interfering with the work of other developers or teams.
Automate deployments. You can work with deployments pretty much as you are already working with your code: you can share them, create diffs, export them, and create patches. You can also automate your delivery flow as needed by for example auto-deploy each new build on your feature branch and trigger a notification in your favorite communication platform once the automated deployment finished.
We love being explicit. So here is what Humanitec is not:
Humanitec is not a Platform-as-a-Service (PaaS). Instead, Humanitec is designed to enable you to build your Internal Developer Platform using the infrastructure (e.g., Kubernetes clusters, databases) you already have in place. This enables you to leverage market-standard infrastructure and benefit from the speed of its technological advancement.
Humanitec is also not a Continuous Integration (CI) tool. Instead, Humanitec easily integrates with your existing CI pipelines. This enables you to keep your working setup (never change a running system) and implement Humanitec on top of it.
Humanitec is also not an Infrastructure-as-Code (IaC) tool. It's true that Humanitec can be easily integrated with IaC setups. However, Humanitec always assumes that the infrastructure to deploy to already exists.
Interested in what's happening under the hood whenever a new environment is deployed? Check out this section for an example.
Do you want to learn more about the specific technical requirements (don't worry there aren't too many) your application and infrastructure need to meet to work with Humanitec? Check out this section.
It is important to understand how Humanitec integrates with your existing infrastructure to build your Internal Developer Platform. Check out this section for more details.
If you are interested in learning more about our pricing and the different editions we are offering then check out this section.