Infrastructure
Overview
This page will outline the specifications for the infrastructure. It is very important that a strong infrastructure is used to facilitate better scalability, better developer experience and a better user experience. Most infrastructure will remain unaccessibleinaccessible to the general publicpublic. The infrastructure will be split up into different "stacks".
Logging/Metrics
Authentication as a ServiceLogging
KeycloakFor logging, the GELF stack will be used to(Graylog, manageelasticsearch, user authentication and authorization between different microservicesmongodb).
Monitoring as a ServiceMetrics
MonitoringFor everythingmetric capturing the GIT stack will be anotherused key(Grafana, componentInfluxDB, toTelegraf)
Identity/Authentication
OpenLDAP and will publish performance metrics to a database. Aggregate syslog will be read by a program such as Graylog and aggregate statistics will be displayed using Grafana or a custom application. This monitoring stack should be kept separate from the main stack.
Secrets as a Service
Step-CAKeycloak will be used for automaticallyboth rotating certificatesauthentication and keys.authorization. CertsAccounts will be validcreated forin 24 hours maxOpenLDAP and not Keycloak in most cases
Database
Postgres will be renewed at the 15hrdatabase mark.of choice for all infrastructure services and application containers. Redis will also be use for caching
Files
File as a Service
storage
Minio will be used for storing and retrieving files. BothIt users and system accounts will be available to use the service.
Automated Build, Test and Deploy
Automated building, testing and deploying will be done to ensure everything stays up to date. Currently, Jenkins seems to be the best solution for this task. Jenkins will be able to build the docker images, run a suite of tests and then publish the images to be deployed. Ideally, this system should be 100% automatic to help align with development goals such as weekly builds. The Gitea service will also assist with managing codebases
User Management
Users will be managed usingis an OpenLDAPS3 servercomplaint andfile thesystem
Messaging Between Services
Apache Kafka will be used to handle messaging between services.