This page guides you through setting up a virtual environment for developing and debugging a global application. It is the third section of the Develop and Deploy a Global Application tutorial. In this section, you will set up a demo CockroachDB cluster, initialize the database, and set up a virtual development environment.
Before you begin
- Complete the previous section of the tutorial, Create a Multi-Region Database Schema. 
- Make sure that you have the following installed on your local machine: 
- Clone the - movr-flaskrepository. We'll reference the source code in this repository throughout the tutorial.
Set up a demo multi-region CockroachDB cluster
For debugging and development purposes, you can use the cockroach demo command. This command starts up a secure, nine-node demo cluster.
- To set up the demo multi-region cluster, run - cockroach demo, with the- --nodesand- --demo-localityflags. The localities specified below assume GCP region names.- $ cockroach demo \ --nodes=9 \ --demo-locality=region=gcp-us-east1:region=gcp-us-east1:region=gcp-us-east1:\ region=gcp-us-west1:region=gcp-us-west1:region=gcp-us-west1:\ region=gcp-europe-west1:region=gcp-europe-west1:region=gcp-europe-west1 \ --empty- Keep this terminal window open. Closing it will shut down the demo cluster. 
- Open another terminal window. In the new window, run the following command to load - dbinit.sqlto the demo database. This file contains the- movrdatabase schema that we covered in Create a Multi-Region Database Schema.- $ cockroach sql --url='postgres://demo:<demo_password>@127.0.0.1:26257?sslmode=require' -f dbinit.sql
- In the demo cluster terminal, verify that the database schema loaded properly: - > SHOW TABLES;- table_name +------------+ rides users vehicles (3 rows)
In production, you want to start a secure CockroachDB cluster, with nodes on machines located in different areas of the world. For instructions on deploying a multi-region CockroachDB cluster for this application, using CockroachDB Dedicated, see Deploy a Global, Serverless Application.
Set up a virtual development environment
For debugging, use pipenv, a tool that manages dependencies with pip and creates virtual environments with virtualenv.
- Run the following command to initialize the project's virtual environment: - $ pipenv --three- pipenvcreates a- Pipfilein the current directory, with the requirements needed for the app.
- Run the following command to install the packages listed in the - Pipfile:- $ pipenv install
- Activate the virtual environment: - $ pipenv shell- From this shell, you can run any Python 3 application with the required dependencies that you listed in the - Pipfile, and the environment variables that you listed in the- .envfile. You can exit the shell subprocess at any time with a simple- exitcommand.
- To test out the application, you can run the server file: - $ python server.py
- Navigate to the URL provided to test out the application. By default, this should be http://127.0.0.1:5000/. 
In production, you want to containerize your application and deploy it with a deployment orchestration tool, like Kubernetes, or with a serverless deployment service, like Google Cloud Run. We cover deploying the application with Google Cloud Run in Deploy a Global Application.
Next steps
Now that you've set up a development environment, you can start developing and debugging the application.