Hi everyone,
We are planning our migration/implementation workflow under Ignition 8.3, leveraging a Scale-Out Architecture. Our infrastructure consists of:
-
Multiple Frontend Gateways: Handling Perspective and UI.
-
Multiple Backend Gateways: Functionally identical in terms of global logic and scripts, but with distributed/asymmetric devices mapped across them.
To add context, our environments are unbalanced: we have 5 Backend Gateways in PROD (each with unique device connections) and 2 Backend Gateways in TEST (with different, potentially simulated device connections).
As we adopt the new file-system structures and Deployment Modes in 8.3, we are re-evaluating our version control and deployment pipeline. We would highly appreciate the community's feedback on our current questions and our proposed strategy.
1. Repository Structure: Micro-repos vs. Monorepo?
Right now, we are separating everything into independent Git repositories (separate repos for Tag Definitions, UDTs, Global Project, Scripting, and Frontend Perspective).
- Given the new 8.3 architecture, is this highly granular approach still recommended, or is the community moving towards a unified Monorepo per Gateway type (e.g., one Monorepo for Frontends, one Monorepo for Backends) to avoid dependency issues?
2. Deployment Modes in Asymmetric Scale-Out clusters
Since our backends within the same environment are not identical clones (Backend A has different devices than Backend B), a simple "TEST" and "PROD" deployment mode structure doesn't fully cover our needs.
- Can Deployment Modes natively handle hierarchical overrides? (e.g., a Core mode inherited by an Environment mode, which is then inherited by a specific Gateway mode?) Or does this overcomplicate the 8.3 native structure?
3. Strategy Validation: Hybrid Instance-Profiles + OS Env Variables
To solve the asymmetry between our 2 TEST backends and 5 PROD backends, we are designing the following hybrid architecture within a Monorepo, and we want to validate if this is considered a solid best practice:
- Instance-Level Overrides in Git: Instead of environment-wide modes, we create 7 distinct Deployment Modes representing each physical/logical server instance (
prod-backend-1toprod-backend-5, andtest-backend-1totest-backend-2). These folders will exclusively contain the configuration overrides for that specific gateway's local device connections.
Our questions for the experts:
-
Is combining granular, instance-specific Deployment Modes in Git with OS Environment Variables for the network/database layer considered a robust and scalable practice in Ignition 8.3?
-
Are there any hidden pitfalls or performance issues when scaling the number of individual deployment mode folders inside a single repository?
-
Would you manage this differently (e.g., keeping devices entirely out of Git and managing them via EAM/manually)?
We would love to hear your thoughts and experiences managing similar large-scale setups with the new 8.3 features.
Thanks in advance!