Hands-On Project 2: Development PC in the Cloud

Overview

The purpose of this exercise is to create a fully-functional Linux development computer, identical in functionality to your laptop or desktop, but in the cloud. Here are some reasons why it’s a good idea to do this:

  1. You’re probably used to working on a Windows computer for your main PC. Because Linux is everywhere in the cloud, we’ll take this opportunity to get acquainted with Linux as a desktop computer.
  2. Linux virtual machines are generally less expensive in the cloud than Windows VMs. You can save some serious money working with Linux.
  3. Working with a virtual machine in the cloud, you can get better network speeds for software downloads, working with large data files, and so on.
  4. You won’t mess up your personal computer with a bunch of extra software.
  5. You can have whatever kind of computer you want or need – a specific operating system, application software, and so on.
  6. You can throw away the PC when you’re done with it, or image it to have a template for creating full-loaded development computers with exactly what you need, in minutes.

There are several activities to be completed. Here are the steps involved:

  1. Provision a suitable virtual machine and gain access to it. To run a desktop GUI, you need a little bit more horsepower than just running a small server. To provide this machine, you can either change the size of one of your existing VMs, or provision a new VM from scratch.
  2. Install a desktop GUI and get it working. Consistent with our emphasis on Linux, we will install the Ubuntu Desktop and get it running with BitVise’s Remote Desktop Protocol (RDP) tunneling over SSH.
  3. Install development tools. No development computer is complete without tools. Our goal is to be able to develop in Python on the cloud PC. One good tool is Visual Studio Code with Python plug-ins, and we will use it for this exercise.
  4. Code up an example program in Python that accesses our cloud storage accounts. This is an initial look at the APIs that the providers give us to access our cloud resources from a program we write.
  5. Install a demo application and get it working. The demo app is a partial implementation of an e-commerce web API written in Python and the Django REST framework. In the exercise, we will install all the prerequisite software and get the API working on localhost (on the cloud PC, of course).

To gain full benefit from the project, you will need to do the activities twice: once on Azure and once on Amazon Web Services.

Do the Project on Azure

Here is a series of links to the detailed instructions for doing the project on Azure:

  1. Prepare a Virtual Machine to be a Development PC – Azure
  2. Install Ubuntu Desktop over Ubuntu Server
  3. Install Development Tools on Your Cloud PC
  4. Get Started with Python under Visual Studio Code
  5. Use the Python SDK to Access Cloud Storage – Azure
  6. Deploy a Demo Application to Your Cloud PC

Do the Project on AWS

Here is a series of links to the detailed instructions for doing the project on Amazon Web Services:

  1. Prepare a Virtual Machine to be a Development PC – AWS
  2. Install Ubuntu Desktop over Ubuntu Server
  3. Install Development Tools on Your Cloud PC
  4. Get Started with Python under Visual Studio Code
  5. Use the Python SDK to Access Cloud Storage – AWS
  6. Deploy a Demo Application to Your Cloud PC