Ed-Fi Docker Compose Architecture

Ed-Fi Docker Compose Architecture

This content is archived.

Overview

This page provides information on the components used in the out-of-the-box Ed-Fi Docker Compose configuration, as well as brief descriptions and diagrams of configurations supported by the Ed-Fi Docker solution.

Components

The Ed-Fi Docker solution contains images to support the following components. All images are built on the Alpine Linux distribution. Custom images are distributed via the edfialliance account on Docker Hub.

Image Name

Application

Purpose

Image Name

Application

Purpose

ods-api-web-gateway

NGiNX​ 1.25.1

Reverse proxy web server that provides:

  1. Single point of entry for HTTPS traffic into the Docker network, serving routes for:

    1. Web API

    2. Admin Api

  2. SSL termination

  3. (Potential) load balancing for multiple Web API instances

  4. (Potential) traffic logging

"Potential" means that the container can be reconfigured to support these features.

ods-api-web-gateway-sandbox

NGiNX 1.25.1

Similar to ods-api-web-gateway, except serving routes for:

  • Web API

  • Sandbox Admin Web

  • Swagger UI

ods-api-web-api

Ed-Fi Web API

Hosts the core Ed-Fi Web API web service. Sections below describe various configuration options. Configured for use with PostgreSQL databases.

ods-api-web-api:<TAG>-mssql

Ed-Fi Web API

Hosts the core Ed-Fi Web API web service. Sections below describe various configuration options. Configured for use with Microsoft SQL Server databases.

ods-api-web-swaggerui

Ed-Fi SwaggerUI

Hosts a web-based user interface for documenting the API and allowing users with client credentials to interact with the API.

ods-api-web-sandbox-admin

Ed-Fi Sandbox Admin

Hosts the Ed-Fi Sandbox web application, used for configuring new sandboxes used for client testing. Configured for use with PostgreSQL databases.

ods-api-web-sandbox-admin:<TAG>-mssql

Ed-Fi Sandbox Admin

Hosts the Ed-Fi Sandbox web application, used for configuring new sandboxes used for client testing. Configured for use with Microsoft SQL Server databases.

ods-api-db-ods

PostgreSQL 13.12

Pre-configured PostgreSQL database containing the ODS database, with both the Ed-Fi core data model and the Teacher Preparation Data Model (TPDM). Loaded with the "minimal template" that provides a default set of Descriptors and no other data.

ods-api-db-sandbox

PostgreSQL 13.12

Like the ods-api-db-ods, but using the "populated template" that contains a small set of sample data representing the fictional Grand Bend school district.

ods-api-db-admin

PostgreSQL 13.12

Pre-configured PostgreSQL server with two database: EdFi_Admin and EdFi_Security.

ods-admin-api

Ed-Fi ODS Admin Api

Hosts the Ed-Fi ODS Admin Api web application, configured for use with PostgreSQL databases, and configurable for Single Tenant and Single Tenant with ODS Contexts.

ods-admin-api-db

PostgreSQL 13.12

Pre-configured PostgreSQL server with two database: EdFi_Admin with Admin Api specific tables and EdFi_Security.

PgBouncer

PgBouncer latest (1.20.0)

Lightweight PostgreSQL connection pooler that improves application scalability through connection pooling.

Additional Images

These Ed-Fi Alliance maintained images are not included in the configurations described below, and therefore must be deployed separately.

Image Name

Application

Purpose

data-import

Ed-Fi Data Import

Hosts the Ed-Fi Data Import web application, configured for use with PostgreSQL as a backing database.

See Docker Deployment for Data Import for usage instructions

analytics-middle-tier

Ed-Fi Analytics Middle Tier

Distribution of the Analytics Middle Tier command line installation tool.

Configuration Options

The following configurations are supported out of the box. In the diagrams below, the dashed line represents the internal Docker network, and all rectangles represent separate containers. Cylinders represent data that should be stored in volumes that are mapped outside of the Docker network for permanency.

Sandbox Configuration 

A Sandbox environment is generally used to support API client developers in developing client applications. It is not intended to be a staging environment for the platform host. Includes the following web applications:

  • Ed-Fi Web API

  • Ed-Fi Sandbox Admin

  • SwaggerUI


 PostgreSQL

 SQL Server

SingleTenant Configuration 

This configuration shows a basic example of a single tenant configuration where a single ODS database serves all data going through the API. While this example has one ODS for demonstration purpose, single tenant deployments can support separate ODS per school years and districts. See API Client and ODS Instance Configuration for more information.

Includes the following web applications:

  • Ed-Fi Web API

  • Ed-FI ODS Admin Api

 PostgreSQL

 SQL Server

SingleTenant with ODS Context Configuration 

This configuration shows a basic example of explicit data segmentation strategy based on school year, i.e. school year becomes a required part of the API route segments. See Context-Based Routing for Year-Specific ODS for more information.