Migrate an Application

A step-by-step reference guide to migrate your Application.

Migrating your Application(s) to Humanitec’s Internal Developer Platform offers significant benefits for both your DevOps team and developers. This guide explains the recommended steps to migrate an Application to Humanitec based on feedback from hundreds of teams.

Plan your infrastructure

Before starting the migration, map your Application’s infrastructure requirements. The recommended steps are:

  1. List all of your Application’s workloads (deployments, services, etc.).

  2. Identify all dependencies for each workload (databases, endpoints, sidecars, etc.).

  3. Create a table listing all environment types (dev, staging, prod, etc.) and their dependencies. Some dependencies may be external resources in Humanitec, while others are workload-specific.

  4. Decide which infrastructure to use for each environment type (e.g. GKE for Kubernetes, CloudSQL for databases). Note any existing infrastructure and infrastructure that needs to be created.

  5. Contact Humanitec support for help planning or validating your infrastructure. We can help ensure Humanitec supports your requirements.

Set up a development Environment

After planning your infrastructure, set up a development environment in Humanitec to test the migration. The steps are:

  1. Connect your CI pipelines to make workload images available in Humanitec.

  2. Connect required infrastructure (especially Kubernetes clusters and databases). You may mock some workloads initially, depending on your Application’s structure.

  3. Assign connected infrastructure to the “development” environment type. Though “development” is the default, explicitly connecting the infrastructure is recommended.

  4. Create your Application in Humanitec and add all required workloads.

  5. Configure all workloads with environment variables, secrets, dependencies, etc.

  6. Run an initial deployment and ensure everything functions as expected.

Externalize configuration

To allow developers to easily create new environments, externalize all environment-specific configuration. This ensures new environments are fully independent.

This step often requires input from workload owners but enables quick progress afterward.

Deploy all Environments

With your Application fully externalized, deploy all other environments. For each:

  1. Add required infrastructure and define the environment type.

  2. Clone an existing environment and apply the new environment type.

  3. Test to ensure everything functions properly.

Migrating production is the most significant step. We recommend first cloning production, testing thoroughly, and then performing a data migration.

Invite your team

With your Application running in Humanitec, invite developers to test their daily workflows.

For more information see, Gaining Access.