As our web application will be using the Python Flask Framework, the deployment server/service we will be using must support Python Flask applications. To deploy our web application, we could use a server provided by UCL or a cloud service.

  1. If we do use a local server, there are several advantages. Firstly, we do not need to purchase subscriptions for the cloud services, and may have less restrictions.
  2. Heroku is one of the cloud services which we found to support Python Flask web applications. It provides easy deployment methods such as simply pushing from a Git repository, then automatically compiles and run the application.
  3. Similarly, Digital Ocean also supports Python Flask, with their main feature being speed, they supply cloud servers running with solid state drives, so data access would be faster. In addition, they give a choice of a magnitude of Linux distributions to be installed on the server.
  4. Microsoft Azure is another cloud hosting platform which may be considered. One of its features is the access to a large number of APIs, connecting to other services is easier. It also supports “continuous integration”, so pushes to GitHub can be automatically built, tested and deployed.

As our client does not have any prior knowledge of the deployment services available, he requested the group for a summary of the services. We researched on the three services, Heroku, Digtial Ocean and Microsoft Azure and comipled the information into the table below.

Heroku-Free Digital Ocean - 1TB Transfer Microsoft Azure
  • Sleep after 30 minutes of inactivity
  • Must sleep 6 hours in a 24 hour period
  • Custom Domains
  • 512MB Memory
  • Single-core processor
  • 20GB SSD
  • Shared Cores
  • 500MB RAM
  • 1GB Storage
  • 2GB SQL Database
  • At zero cost
  • Great tools for deployment
  • Have control over virtual machine
  • Well-designed tutorials to setup environment
  • Free student version
  • Reliable provider
  • Not available at all times
  • Require user to setup environment
  • Confusing pricing model
https://www.heroku.com/pricing https://www.digitalocean.com/pricing/ https://azure.microsoft.com/en-gb/pricing/
Free £3.32 ($5) per month £5.91 per month

We reach an agreement with our client to select Heroku. We choose Heroku because it offer a Free plan that will reduce the cost required during the development stage. As Heroku also provide a url for the web application deployed on the free plan, our client dose not need to purchase the domain name before INcDb is ready to go live. The restriction of 6 hours of downtime is not critical during the development stage too.