Production Deployment
The Ed-Fi ODS / API supports a wide variety of deployment models for a production environment, including on-premises and cloud-based deployments, virtualized deployments, load-balanced deployments, and so on.
This section of the documentation covers the key concepts API platform hosts should understand before deploying to a production environment, along with details about specific configurations.
Production System Components
There are several websites and databases that work together to provide primary and supporting functions for a Production instance:
- Websites
- Ed-Fi ODS API. The REST endpoint for client applications.
- Databases
EdFi_ODS.*. A database that stores data for the Ed-Fi ODS / API.EdFi_Admin. A database containing authentication information for API clients.EdFi_Security. A database containing authorization information for API clients.
Of particular note: production deployments should not include the Swagger
Documentation UI, Sandbox Administration UI, or the EdFi_ODS_* databases.
Those components are included by default in the code distribution — and are
appropriate for a Sandbox instance of the ODS / API — but should not be deployed
to production.
Configuration
Beyond changes to database connection strings, the Ed-Fi ODS / API is configurable using application feature flags and mode.
API provides feature on/off flags for several built in features. Also the system can be extended by creating a feature service and registering the service by creating an Autofac module class that inherits from ConditionalModule class. See Adding Custom ODS / API Features for more information on customizing the application.
Changes to the processing pipelines, caching mechanisms, data repository, and many other considerations can be adapted by changing the corresponding Autofac modules called from the Startup class when the website is loaded.
API provides database partitioning strategy options, which is configurable via the 'ApiSettings:Mode'