A workspace is folder containing Salto configuration files, including Salto settings and the NaCl files representing your business apps' configurations.
Workspaces are accessed via Salto-IDE, with NaCl editing features like autocomplete and find references, and an operations panel for executing Salto and Git operations on your workspace content.
Environments are another key aspect of a workspace. Salto operations, like fetchfetch - Syncs your workspace's NaCl files with the current env's services' state or deploydeploy - Deploys the current NaCl files config to the target env's services always run in the context of a specific env.
Multi-env means that a Salto workspace can manage the configuration of multiple environments at the same time, using a specific folder structure and a set of commands. Multi-env was developed to allow you to complete your full development cycle in one place, inspired by software development, where developers use the same Git repository, the same project, to manage a single codebase that is relevant for all environments.
The main use case for envs is testing your changes before delivering them to production. Tests are more reliable the more their setup is similar to production, therefore differences between envs add risk, and so we aspire to minimize differences between test and production environments.
At the same time, some differences between envs will always exist, for many reasons, e.g. services or components that are expensive to replicate, or using different API keys for security reasons.
Salto proposes a balanced solution, with the aspiration to maintain the same configuration files for all envs, thus preventing config "drift", while making it easy to keep configurations different for each env using several different tools, from the ability to move config elements around, to variables that enable surgically extracting small differences like API keys, email addresses, etc.
Want to read more about Multi-env? Try How Multi-env works.
Prefer to jump right into some hands-on learning? Try Getting started with Multi-env.
Ready to try this out with your team? Best to start by reading Collaboration workflows.
Updated 8 months ago