The MAP Sandbox Environment


Once an app development team completes creating an app locally from the WBM Starter Kits, obtain accounts to the Sandbox Active Directory, they then deploy their containers to the VA External Cloud Mobile Application Program (VAEC-MAP) Sandbox.

The Sandbox is identical to the later MAP environment except that, for safety, it is not part of the VA network. Developers test their apps to see how they would work if they were on the VA network. They also gather all the compliance artifacts they need to pass Verification and Validation (V&V). In particular, an app cannot deploy to staging until it has an approved System/Service Design Document (SRVDD/SDD).

Deploying and working in the Sandbox is similar to the local development Docker-Kubernetes environment configuration. The main difference is that the build and deploy scripts run on a Jenkins build automation server. Deploying to the MAP Sandbox has the following advantages:

  • Reduces environment dependency: Reduce the dependency that development teams have on any one particular environment by providing the capability to launch and terminate them at will.
  • Better resource utilization: By terminating environments that are no longer being used, capacity is freed up for other development teams.
  • Knowledge transfer: When team members know that their environments will be terminated at specific times, automation becomes the only solution to the institutional knowledge of how the environment gets configured.

These are some of the functions developers can add to their apps once they reach the Sandbox:

  • Create namespaces with the "create-namespace" Jenkins job
  • Manage Consul and Vault values for testing
  • Create Kubernetes pods
  • Connect without VA VPN access
  • Run builds
  • Deploy apps
  • Create databases (MongoDB, Oracle)
  • View application logs in Kibana
  • Integrate with mock VA services to control test scenarios and data (the Sandbox has no connection to real VA services)

Sandbox Requirements

Deploying to the Sandbox environment confirms that the development team has tested for the following issues:

  • Application automation works (including automated testing)
  • Application environment is created properly
  • Jenkins file is created properly
  • Product configuration is accurate
  • Dev branch should build & deploy in Sandbox
  • Release branch should build & deploy in Sandbox

Deploying to the Staging Environment

Once an app has deployed successfully in the Sandbox environment, it automatically deploys to the Staging environment. If any issues occur in Staging, OCC may require the app to return to the Sandbox to fix the issues.