Skip to content

How it works

Miget is a streamlined deployment system that leverages Git and Kubernetes to manage and automate the deployment of applications. This system is particularly effective for teams looking to integrate continuous deployment practices into their development workflow. By using Miget, developers can push their code changes directly to a builder, which then handles the complex process of building and deploying the application within a Kubernetes environment.

How does it work?

The Miget deployment process is designed to be simple and efficient. Here’s how it typically works:

  1. Git Push to Builder

    • The deployment process starts when a developer makes changes to the codebase and commits those changes to a Git repository.
    • Once the changes are committed, the developer executes a git push miget command. This action sends the latest code to Miget’s builder service, which is configured to listen to the repository for any new changes.
  2. Code Building Process

    • Upon receiving the pushed code, the builder initiates the build process. The builder is responsible for compiling the code, running tests, and packaging the application into a container image. This image is then stored in a container registry.
  3. Updating Kubernetes Deployment

    • Once the builder successfully creates the new container image, Miget triggers an update to the Kubernetes deployment object. This involves updating the deployment’s image tag with the latest version.
    • Kubernetes, being a robust container orchestration platform, handles the rollout of the new image. It ensures that the new version of the application is deployed across the specified number of pods, replacing the old version with no downtime.
  4. Deployment Verification

    • After the new image is deployed, Kubernetes monitors the health of the updated pods. Miget can be configured to include health checks that validate the successful deployment.
    • If any issues are detected during the deployment process, Kubernetes will halt the deployment and prevent the new image from being rolled out, ensuring that the existing stable version remains active and the application's availability is not compromised.