Overview¶
The full, Prefect application, is designed in a cloud-native, scalable way.
A full infrastructure stack is required to provide the Prefect API.
Generic Terraform modules are available to provision the base requirements for each cloud as listed below.
Installation of the Prefect application is installed in-cluster through Helm.
Minimum Requirements¶
Each cloud (AWS, GCP, Azure) has a service that provides and implements the main infra requirements. These components are detailed below. Follow the links below for details on each component and service.
- Load Balancer
- L4 or L7 can both be utilized.
- An ingress controller, such as the ingress-nginx controller
- TLS termination (at Load balancer or Ingress Controller)
- Kubernetes Cluster
- Suggested minimum of 3 nodes, with autoscaling enabled
- 8 vCPU / 16 GiB memory recommended node size'
- ingress-nginx controller used as baseline ingress controller
- Storage Class available (csi-ebs, managed-csi, etc. )
- Redis
- Suggested large / memory optimized
- 2 vCPU / 13 GiB minimum recommendation
- Redis / ElastiCache 6.2
- PostgreSQL
- Recommended and Tested with PostgreSQL 14
- Minimum suggested 4 vCPU / 32 GiB memory
- Istio
- Manages Authorization requests
- TLS and mTLS
- URI and Service Routing Rules
- Prefect Services
Cloud Architecture Overview¶
All three major cloud providers are support (AWS, GCP, Azure).
Each cloud offers all the requisite components necessary to implement.
Application Service Overview¶
Auth¶
Prefect Self-Managed currently supports:
- ADFS
- Okta
- Additional auth models are in development
Configuration and implementation is specific to the cloud and mechanism being utilized, and will generally be unique per implementation.
SMTP¶
An SMTP server is (optionally) required for implementation.
The SMTP server is primarily responsible for notifications, through triggers like automations.
The Self-Managed installation can function without an SMTP server, however, the notifications system will be unable to send e-mails.