Set up a Virtual Environment for Developing Global Applications

This page walks 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

  1. Complete the previous section of the tutorial, Create a Multi-Region Database Schema.

  2. Make sure that you have the following installed on your local machine:

  3. Clone the movr-flask repository. 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.

  1. To set up the demo multi-region cluster, run cockroach demo, with the --nodes and --demo-locality flags. The localities specified below assume GCP region names.

    icon/buttons/copy
    $ 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.

  2. Open another terminal window. In the new window, run the following command to load dbinit.sql to the demo database. This file contains the movr database schema that we covered in Create a Multi-Region Database Schema.

    icon/buttons/copy
    $ cockroach sql --url='postgres://demo:<demo_password>@127.0.0.1:26257?sslmode=require' -f dbinit.sql
    
  3. In the demo cluster terminal, verify that the database schema loaded properly:

    icon/buttons/copy
    > SHOW TABLES;
    
      table_name
    +------------+
      rides
      users
      vehicles
    (3 rows)
    
Note:

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.

  1. Run the following command to initialize the project's virtual environment:

    icon/buttons/copy
    $ pipenv --three
    

    pipenv creates a Pipfile in the current directory, with the requirements needed for the app.

  2. Run the following command to install the packages listed in the Pipfile:

    icon/buttons/copy
    $ pipenv install
    
  3. Activate the virtual environment:

    icon/buttons/copy
    $ 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 .env file. You can exit the shell subprocess at any time with a simple exit command.

  4. To test out the application, you can run the server file:

    icon/buttons/copy
    $ python server.py
    
  5. Navigate to the URL provided to test out the application. By default, this should be http://127.0.0.1:5000/.

Note:

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.

See also

YesYes NoNo