We have a product with three (3) components and I am trying to figure out a good way to set up an environment for local development and testing.
Our components are:
- A "Gateway" per customer that runs on CentOS in a VMware VM running in vSphere.
- Many "Agents" per customer that run on Windows and sends data to the Gateway.
- A single remote SaaS that many Gateways send their data too.
For this question I am mostly concerned about setting up and running #1 and #2 in a local environment for programmers who use Macs during development.
What comes to mind is to use Vagrant to create a Windows VM to install an Agent on, and then separately run Docker Desktop for Mac to run CentOS in a Docker container to install a Gateway.
However, that feels very complex. I am wondering if it can be done more simply and/or done with a single tool. I have read this from Mitchell Hashimoto about Vagrant which implies it can do both, but if so I am unclear how to do it.
Basically I am looking for a list of the available options for this use-case, and ideally a detailed "how-to" for each, but minimally a high-level how-to for each.