Scaling
Ensuring proper availability, redundancy, and performance across USC services requires thoughtful scaling strategies. Below are general guidelines and configuration recommendations, along with specific application examples, to help you scale USC effectively.
General scaling guidelines
Horizontal Scaling: Adjust the replicaCount to scale critical components horizontally across multiple nodes for improved availability and load distribution.
Stateful Applications: Components like databases, caches, and storage (e.g., Redis, MinIO) have specific scaling requirements and may not benefit from simple replica scaling due to their need for data consistency and high availability.
Stateless Applications: Backends and APIs can generally be scaled horizontally as they are designed to handle load across replicas without state dependencies.
The following configurations outline which PODs are suitable for scaling, with critical services recommended for multiple replicas to ensure robustness.
Note: These recommendations do not specify exact scaling configurations but serve as general guidelines.
Key components recommended for scaling
Mail Service
Configuration:
values_files/values-mail-service.yamlExample:
replicaCount: 2
PORTAL
Portal
Configuration:
values_files/values-portal.yamlExample:
admin: replicaCount: 2 backend: replicaCount: 2 client: replicaCount: 2Notes: Scale all components
(admin, backend, client)the same.
Portal Analytics Adapter
Configuration:
values_files/portal-analytics-adapter.yamlExample:
replicaCount: 2
Portal KCenter Service Connector Adapter
Configuration: values_files/values-portal-kcsc-adapter.yaml
Example:
replicaCount: 2
Portal Search Adapter
Configuration:
values_files/portal-search-adapter.yamlExample:
replicaCount: 2
Portal USM Adapter
Configuration:
values_files/portal-usm-adapter.yamlExample:
replicaCount: 2
USU SERVICE MANAGEMENT
USM
Configuration:
values_files/values-usm.yamlExample:
replicaCount: 2
USM Mobile
Configuration:
values_files/values-usm-mobile.yamlExample:
replicaCount: 2
USU Analytics
Configuration:
values_files/values-ua-analytics.yamlExample:
replicaCount: 2
Critical note:
The application may fail to start with
replicaCount: 2due to database locking conflicts (e.g.,ObjectOptimisticLockingFailureException).Solution: Deploy one replica first, wait for it to initialize fully, then scale to 2 replicas.
VMX
VMX Server
Configuration:
values_files/values-vmx-server.yamlExample:
replicaCount: 2
VMX Web UI
Configuration:
values_files/values-vmx-web-ui.yamlExample:
angular-base: deployment: replicaCount: 2
ShopX
Admin UI
Configuration:
values_files/values-shopx-admin-ui.yamlExample:
angular-base: deployment: replicaCount: 2
UI
Configuration:
values_files/values-shopx-ui.yamlExample:
angular-base: deployment: replicaCount: 2
Localization
Configuration:
values_files/values-ulm.yamlScaling Recommendation:
Scale both
backendandfrontendfor improved availability.
Example:
backend: replicaCount: 2 frontend: deployment: replicaCount: 2
USER MANAGEMENT
Account UI
Configuration:
values_files/values-uum-account-ui.yamlExample:
uum-account-ui: um-ui-base: deployment: replicaCount: 2
Admin UI
Configuration:
values_files/values-uum-admin-ui.yamlExample:
uum-admin-ui: um-ui-base: deployment: replicaCount: 2
MinIO
Configuration:
values_files/values-usu-minio.yamlScaling requirements:
Must run in distributed mode with an even
replicaCount(minimum 4).
Example:
mode: distributed statefulset: replicaCount: 4
Keycloak
Configuration:
values_files/values-uum-keycloak-bitnami.yamlExample:
replicaCount: 2
Non-scalable or non-scaling-required applications
Explicitly Unsupported
Lima
Orchestra
UAS
UDO
ULM
USM
USM AI
VMX
VMX App Manager
VMX Greenmail: Testing tool
VMX Roundcube: Testing tool
Unconfirmed/Unknown/TBD
KCenter: Might be added in the future.
KBot: Might be added in the future.
KFirst: Might be added in the future.
ChatGptConnector: Might be added in the future.
ShopX Service: Scaling capability unverified.
Partially Supported
USU-Help: Should be scalable, but isn't needed.
Configuration:
values_files/values-usu-help.yamlExample:
replicaCount: 2
Note: This application is PWA (Progressive Web App) designed to retrieve data from the main server only once. As a result, scaling up is not required, as it is already optimized for performance. Additionally, it provides the functionality to be installed in offline mode, complete with automatic local installation.
VMX:
vmx-mail-in-service: Should be scalable, but isn't needed.
vmx-file-service: Should be scalable, but isn't needed.
USU-Mongo: Should be scalable, but isn't needed.
Configuration: Use the Bitnami MongoDB Helm chart.
USU-Vault: Should be scalable, but isn't needed.
Notes:
External Vault can be used.
BankVaults Helm chart is used (instead of Bitnami) to support automatic unsealing.
Scaling Vault requires backend storage adjustments (e.g., MariaDB).