Skip to content

Latest commit

 

History

History
93 lines (70 loc) · 2.49 KB

File metadata and controls

93 lines (70 loc) · 2.49 KB
title:Architecture
description:Architecture of the Deis application platform (PaaS)

Architecture

Draft Architectural Diagram

Deis consists of 7 components that combine to create a distributed PaaS. Each Deis component is deployed as a :ref:`Container`.

Controller

The :ref:`controller <Controller>` component is a RESTful API server written with Django and Celery. Command-line clients interact with this component.

Database

The database component is a PostgreSQL server used to store durable platform state.

Cache

The cache component uses Redis to:

Builder

The builder component uses a Git server to process :ref:`Application` builds. The builder:

  1. Receives incoming git push requests over SSH
  2. Authenticates the user via SSH key fingerprint
  3. Authorizes the user's access to write to the Git repository
  4. Builds a new Docker image from the updated git repository
  5. Adds the latest :ref:`Config` to the resulting Docker image
  6. Pushes the new Docker image to the platform's :ref:`Registry`
  7. Creates a new :ref:`Release` on the :ref:`Controller`

Once a new :ref:`Release` is generated, a new set of containers is deployed across the platform automatically.

Registry

The registry component hosts Docker images on behalf of the platform. Image data is typically stored on a storage service like Amazon S3 or OpenStack Storage.

Log Server

The log server component uses rsyslog to aggregate log data from across the platform. This data can then be queried by the :ref:`Controller`.

Router

The router component uses Nginx to route traffic to application containers.