Is it possible to have a Development gateway and Production gateway and push changes in a project from development to production while simultaneously also using the new gateway modes to connect to different devices / databases while in each mode?
Not directly. Your Gateways will have no idea the other exists unless you have them configured via Gateway Network, and you’d have no way to “push” project data unless your “Dev” Gateway was operating as an EAM Controller, while your “Prod” Gateway was operating as an Agent.
That being said, you could “easily” use Git to push project changes from a “Dev” Gateway to a repo, then pull those changes down to your “Prod” Gateway, trigger a quick scan with the`/data/api/v1/scan/projects` endpoint (see /openapi#tag/config-management/paths/~1data~1api~1v1~1scan~1projects/post for documentation), and your Prod Gateway should now be using the same content as your Dev Gateway - all while still using whatever Deployment Mode it had to start. None of this will require a restart of the Gateway - though open Perspective sessions may see some issues until they refresh. Vision clients should note a change and inform the user they need to retrieve an update.
To expand a little on Cody's answer - the core of the answer is "yes" - with deployment modes, you can have a single canonical "this is the configuration of X system" representation [1]. One gateway backup can store as many deployment modes as you want, such as "dev" and "production", and it is up to the environment where you deploy to use a specific mode - this is where containerization/orchestration technologies really shine.
With no git ops or any other mechanisms, you could right now do this manually:
- Take a .gwbk from dev
- Restore it to prod
- Update the deployment mode in prod to ensure you're actually using prod
If you use containers, you can omit step 3 by having the environment declare the deployment mode. If you don't need to make changes all that frequently, then you're already set. Version control, Kubernetes/orchestration/etc, the REST API, the external deployment mode - all of that is extra capability that we've layered onto this system that some folks are really going to appreciate, but none of it is required.
currently a full gateway backup is the only way to do that, but there are near future plans to expand on that ↩︎