Get Latest Final Year ECE/EEE Projects in your Email

Your Email ID:
FYP.in Subs

An Analysis of Heroku and AWS for Growing Startups

Download Project:

Fields with * are mandatory

INTRODUCTION

A local San Luis Obispo startup, PolyRents, aims to streamline the rental housing application process by having both tenant applicants and landlords use a single, organized online platform. They launched their beta with landlords a few weeks ago and plan to have several thousand users in the next year. PolyRents already has a React – based web application running with a Python Django REST API that is deployed on the Heroku cloud – hosting platform.

In preparation for their expansion, PolyRents reached out asking for help with their back – end infrastructure needs. PolyRents wants help exploring cloud – hosting alternatives like Amazon Web Services (Amazon), to learn how to make a robust backend development and deployment pipeline. They would like to know about modern infrastructure techniques to optimize scalability, response times, and to reduce overall cost to the company. PolyRents wants to know at what point the use of an abstracted infrastructure service is no longer worth the cost, and when they should switch to a cheaper alternative.

BACKGROUND

Figure  2 – Cloud Compute Architecture  (Alur) . Load  balancers receive requests from end users and  forward them to different data centers. Then,  Distributed web, application, and  database servers  handle the requests.

Figure 2 – Cloud Compute Architecture (Alur) . Load balancers receive requests from end users and forward them to different data centers. Then, Distributed web, application, and database servers handle the requests.

The cloud – compute model is a combination of IaaS and PaaS. “ Cloud computing is the on  demand delivery of compute power, database storage, applications, and other IT resources through a cloud services platform via the Internet with pay as you go pricing” (Amazon). Each cloud  hosting provider has different hardware and features.

Figure 3 – Web and Application Servers (TutorialsPoint). The client asks the web server for static data in the form of HTTP requests, and the web server makes calls to the application server to access other data stores, like database servers.

Figure 3 – Web and Application Servers (TutorialsPoint). The client asks the web server for static data in the form of HTTP requests, and the web server makes calls to the application server to access other data stores, like database servers.

“A web server stores and delivers the content for a website ” (NGINX). A PolyRents client accesses the website on their web browser, asking for data using HTTP requests. The web server sends the client HTTP responses with data, such as HTML documents or images (Ubuntu). PolyRents uses Gunicorn, a pure – Python HTTP web server, to run their application and take concurrent client requests.

DESCRIPTION

Figure 4 – Project Specification

Figure 4 – Project Specification

To understand the advantages and costs of Heroku and AWS, this project will deploy PolyRents’ application in an Elastic Beanstalk environment and a Heroku environment:

Figure 4 shows the individual components of each PaaS architecture and their handling of web requests. Although similar architecturally, Heroku and AWS provide access to and configuration of different components.

EVALUATION

Metrics

Heroku and AWS will be evaluated on the following metrics:

  • Scalability
  • Total cost
  • Efficiency
  • Availability
  • Response times
  • Error rates
  • Configuration time
  • Deployment time
  • Maintenance time

The last three metrics are of great importance to the CTO of PolyRents – he is concerned that the time required learning, configuring, and maintaining an AWS environment is not worth the potential lesser costs.

CONCLUSION

The project was an incredibly educational experience – I chose the topic of cloud infrastructure and hosting because it is becoming increasingly more important in an expanding IoT and SaaS – based economy. In fact, California Polytechnic State University just announced that it will switch its technologies to use an AWS cloud – hosting environment.

It is important to consider the security of these applications. It is not ethically responsible to let the cloud – hosting platform abstract the infrastructure away to the point that developers cannot control the access permissions of their backend applications and servers. AWS maintains this control by giving users the ability to define clear security rules around every service.

A future direction that is more complex would be finding the best combination of all types of Heroku dynos and AWS components by tweaking configurations. This work would find the optimal combination for growing startups to deploy their applications in a relatively cheap but available and scalable environment.

Source: California Polytechnic State University
Author: Colton Stapper

Download Project

Download Project:

Fields with * are mandatory