8000 GitHub - devzero-inc/self-hosted
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

devzero-inc/self-hosted

Repository files navigation

License: CC BY-NC 4.0

DevZero Self-Hosted

Welcome to the self-hosted repository. This repository contains all the necessary components for setting up and managing a self-hosted environment, including infrastructure as code, deployment configurations, and custom tooling.

DevZero Self-Hosted Architecture

Flow of the Architecture

  1. User Interaction

    • Users interact with the DevZero environment through two interfaces:
      • DZ CLI: A command-line interface for managing DevZero resources.
      • Browser: A web-based interface to access the DevZero dashboard and workspaces.
  2. DNS Resolution

    • Both the DZ CLI and Browser requests are routed through the DNS (Domain Name System).
    • The DNS resolves the requests to the appropriate endpoints within the cloud infrastructure.
  3. Cloud Provider Infrastructure

    • The environment is hosted on a cloud provider such as AWS, GCP, or Azure.
    • The cloud provider manages the underlying infrastructure, including networking and resource allocation.
  4. Control Plane

    • After DNS resolution, user requests are routed to the Control Plane, which operates on a Kubernetes cluster within the cloud provider.
    • The Control Plane consists of:
      • Website (Dashboard): A user-friendly web interface for managing DevZero projects, monitoring activities, and configuring resources.
      • API Gateway: Facilitates secure and efficient communication between the front-end (Dashboard/DZ CLI) and backend services.
      • Various Backend Services: Handle core business logic, authentication, data processing, and manage communication with the Data Plane.
  5. Data Plane

    • The Control Plane communicates with the Data Plane, which includes:
      • DevZero Cluster: A Kubernetes cluster.
      • DevZero Workspace: A microVM-based environment built from a recipe.

Repository Structure

self-hosted/
├── kata/
├── terraform/
├── charts/
├── dz_installer/
└── README.md

kata/

terraform/

charts/

  • Contains Helm charts used to package, configure, and deploy the DevZero Control Plane and Data Plane.
  • Utilise Helm to streamline Kubernetes application deployments, ensuring consistent and repeatable configurations.
  • Check out charts/README.md to know more.
  • View Running Pipeline

dz_installer/

  • A Python CLI tool designed for easy requirement checks, installation, and validation of DevZero self-hosted environments based on user-specific requirements.
  • Simplify the setup process by automating environment validation and installation workflows through interactive user inputs.
  • Check out dz_installer/README.md to learn more.

How They Fit Together

  • kata builds the custom AMIs required for Kubernetes nodes, optimised with Kata Containers as the default runtime.
  • terraform provisions the infrastructure across different cloud providers to support both the Control Plane and Data Plane of DevZero.
  • charts deploys the DevZero Control Plane and Data Plane onto the infrastructure provisioned by Terraform.
  • dz_installer ensures seamless installation and validation of the self-hosted setup, guiding users through configuration and deployment steps.

Getting Started

  1. Build AMIs:

    • Use the kata/ directory to create the AMIs required for Kubernetes nodes. If you prefer to skip building custom Kata AMIs, you can proceed directly to provisioning infrastructure. The Terraform scripts are configured to use the public Kata AMIs created by DevZero.
  2. Provision Infrastructure:

    • Navigate to the terraform/ folder and follow the instructions to deploy the necessary cloud infrastructure.
  3. Deploy Applications:

    • Deploy the DevZero Control Plane and Data Plane using Helm charts from the charts/ directory.
  4. Automate Setup:

    • Leverage the dz_installer/ Python CLI to check prerequisites, install components, and validate the environment.

For detailed instructions, refer to the specific README files within each folder.

How to Contribute

We welcome contributions! Please review our CONTRIBUTING.md for guidelines on how to get started.

Code of conduct

This project has a Code of Conduct.

License

The contents of this repository are licensed under CC BY-NC 4.0. For more information, see LICENSE.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 9

0