# Azure Costing, Resource Quotas & Allocation ## Overview / Current contex Currently, we have multiple different categories of services deployed in production. All services are scheduled by Kubernetes based on their default affinity / taints, quotas & resource limits. These default settings are suboptimal in a production setting as there are services that can `starve out` other services of resources if we are not careful about how we are orchestrating them (which, at the moment, is a rather random process). Additionally, Azure eats up ~2.5 GiB of memory per node for its system to operate. We have the following services & consumption currently: `default namespace` | Service | CPU (Cores)* | Memory (bytes)** | |-|-|-| | db-699b7c5b64-xfgjp | 6 | 686 | | prometheus-prometheus-stack-kube-prom-prometheus-0 | 161 | 638 | | mariadb-58fbbd8c7-tdpfx | 1 | 567 | | ipfs-deployment-6f84d6764c-95x8w | 3 | 321 | | alkemio-server-deployment-6fb74685cd-jw5tn | 1 | 215 | | prometheus-stack-grafana-765868776d-rvbw7 | 2 | 182 | | synapse-deployment-79dfdc9df7-4jnc7 | 3 | 180 | | alkemio-server-deployment-6fb74685cd-rjvnf | 1 | 164 | | alkemio-server-deployment-6fb74685cd-6qs99 | 1 | 153 | | ipfs-deployment-2-57fbfb8965-5sd68 | 4 | 142 | | postgres-974c8d96-xjtf4 | 1 | 134 | | alkemio-rabbitmq-cluster-server-0 | 6 | 132 | | filebeat-beat-filebeat-ngfdk (TEST) | 100 | 97 | | alkemio-wallet-manager-deployment-b48b99f86-mp5dx | 0 | 94 | | filebeat-beat-filebeat-zbqwp (TEST) | 100 | 93 | | alkemio-notifications-deployment-f99b954b6-7bd4s | 0 | 80 | | prometheus-stack-kube-prom-operator-74b6687d79-qhzmd | 1 | 51 | | traefik-5f94f66857-rlnwn | 1 | 40 | | alertmanager-prometheus-stack-kube-prom-alertmanager-0 | 1 | 38 | | kratos-6cbd469f47-r4t6r | 1 | 34 | | prometheus-stack-kube-state-metrics-5c45cffd6b-7zjqc | 1 | 30 | | oathkeeper-d5bd88c4c-g265k | 1 | 25 | | prometheus-stack-prometheus-node-exporter-v92sf | 4 | 24 | | prometheus-stack-prometheus-node-exporter-dvr2z | 1 | 23 | | kratos-courier-0 | 2 | 22 | | prometheus-stack-prometheus-node-exporter-8pbcx | 1 | 21 | | alkemio-web-deployment-655b55ddd4-ww7rc | 0 | 6 | | alkemio-web-deployment-655b55ddd4-5hh8v | 0 | 5 | | alkemio-web-deployment-655b55ddd4-rvh82 | 0 | 5 | | redis-58d8fcdb96-pbm54 | 2 | 3 | | synapse-admin-deployment-b8d9cfbfd-r6lbc | 0 | 3 | | * | | In milli CPU units | |-|-|-| | ** | | In Megabytes | | \*\*\* | | Based on defaults in mysqlcalculator.com | `elk namespace` | Service | CPU (Cores)* | Memory (bytes)** | |-|-|-| | elasticsearch-es-default-0 | 50m | 1548 | | logstash-6b8f4957b5-zw2z6 | 4m | 411 | | kibana-kb-6575f587b9-lchnb | 18m | 398 | We are currently using D2v2 class VMs in Azure in a single node pool. ## Goal The goal of this document is to provide metrics of the current usage, to recommend service classes for the different services and to outline the possible options for node pools in Azure we can take advantage of. ## Service categories, services and recommendations ## VM Instance Types in Azure ###### tags: `DevOps`, `Operations`