Self-Hosted installation requirements
Mia-Platform Console Self Hosted installation implies that the customer has already installed in its systems all the required software and tools.
Self-Hosted installation architecture
The following picture shows the high-level architecture for a Self-Hosted Mia-Platform Console installation. The communication between the components must be allowed as shown in the architecture.
The following software and hardware recommendations are for installing Mia-Platform Console On-Premises.
Architectural prerequisites
Blanks cell in the following table are for tools that do not require a specific version or a minimum of RAM and CPU.
Tool | Version | Minimum CPU | Minimum RAM | |
---|---|---|---|---|
Auth Provider | Okta | SaaS | ||
GitLab | > 14.x | |||
GitHub | > 3.x | |||
Microsoft | SaaS | |||
Azure AD B2C | SaaS | |||
Bitbucket Server | > 8.x | 2 cores | 3 GB | |
Keycloak | SaaS | |||
Git Provider | GitLab | > 14.x | 4 cores | 4 GB |
GitHub | > 3.x | 4 cores | 32 GB | |
Azure Repos | SaaS | |||
Bitbucket Server | > 8.x | 2 cores | 3 GB | |
Secret Manager | GitLab | SaaS | ||
Vault | SaaS | |||
CI/CD Tool | GitLab CI Runners | > 14.x | 1 core | 2 GB |
GitHub Actions | SaaS | |||
Azure Pipelines | SaaS | |||
Jenkins | SaaS | |||
NoSQL database | MongoDB Enterprise | > 5 <= 7 | 2 cores | 2 GB |
Redis Cache | Redis | >= 6 <= 7 | 2 cores | 2 GB |
Runtime | Kubernetes | >= 1.21 <= 1.30 | 2 CPU requests | 4 GiB Memory requests |
Container image registry | Any container image registry | SaaS | ||
Object Storage | Google Cloud Storage | SaaS | ||
S3-Compatible Object Storages | SaaS | |||
MongoDB | SaaS | |||
Key Management Service | Google Cloud Platform | SaaS | ||
Local Key | SaaS |
Suggested resource allocation per tool
The following is an example architecture for a proper installation of the Mia-Platform Console supporting ~500 users and ~200 projects:
Tool | Version | Nodes | CPU | RAM | Storage |
---|---|---|---|---|---|
Okta | SaaS | ||||
GitLab | 14 | 1 | 8 core | 32 GB | 200 GB |
GitLab CI Runners | 14 | 2 | 1 core | 2 GB | 25 GB |
MongoDB Enterprise | 5 | 3 | 2 core | 8 GB | 20 GB |
Redis | 7 | 1 GB | 1 GB | ||
Google Kubernetes Engine | 1.28 | 2 worker nodes | 4 core | 8 GB | |
Google Container Registry | SaaS | ||||
Google Cloud Storage | SaaS | ||||
Google Cloud Platform KMS | SaaS |
Runtime requirements
Applications developed with Mia-Platform Console will run in a Kubernetes environment. This Kubernetes runtime environment is managed and monitored by Mia-Platform Console.
In order to do this, the following requirements must be fulfilled for a self-hosted installation.
Self-Hosted runtime installation prerequisites
The following tools will be installed in your runtime Kubernetes clusters if desired:
- (Optional) Mia Monitoring stack
- (Optional) Mia Logging stack
- (Optional) Traefik Ingress Controller
- (Optional) Velero for Disaster Recovery
These are minimum requirements for your cluster. These requirements have a scale factor that must be taken in account when estimating your cluster size.
Tool | Namespace CPU limits | Namespace RAM limits | Scales with |
---|---|---|---|
Monitoring stack | 1 core | 3 GiB | Number of cluster nodes, number of metrics |
Logging stack | 0.5 core | 1 GiB | Number of cluster nodes, number of applications logs, traffic |
Traefik Ingress Controller | 0.3 core | 300 MiB | Traffic |
Velero for Disaster Recovery | 0.2 core | 400 MiB | - |
In total, the minimum requirements in order to host all the above tools in the Kubernetes cluster are about 4 cores and 8 GiB of memory. Above values will scale with the number of nodes, traffic, applications.
Velero, in addition, needs a S3-like bucket storage for keeping the Kubernetes cluster backup.
Suggested resource allocation for your runtime
The following requirements are just an approximate reference. For a more accurate estimate, an assessment of your application and architecture is needed.
To size your cluster you should reserve a minimum of 3 cores for Operations tools and minimum 2 cores for each Runtime Environment managed by Mia-Platform. A Project can managed one or more Runtime Environment.
Cluster sizing examples:
- 3 Mia-Platform Project with 3 Runtime Environments: 12 worker nodes (2 cores, 4 GiB RAM each). 5 cores for Operations tools and 19 cores for your applications
- 5 Mia-Platform Project with 3 Runtime Environments: 18 worker nodes (2 cores, 4 GiB RAM each). 6 cores for Operations tools and 30 cores for your applications