Saturday, April 23, 2016

Ninth Week of LITG Prorgam

So far in the LITG program I have coded the pyquora package and pushed it into the Python Package Index. I have also coded QuserAPI which uses the pyquora package to return Quora user profile information in json format via REST calls. Information related to all these steps are included in the blog posts written thus far. Now the final bit left is to deploy this API onto the Heroku platform and test its functionalities. Therefore this week is dedicated to finding out about Heroku and acquiring a basic understanding. After that during the next week I will be moving onto deploying the API on Heroku platform. My learning about the Heroku platform is summarized in this blog post. 


The Heroku Platform

Simply put, Heroku provides a cloud based platform(Platform as a Service - PaaS) for deploying and running modern apps. It is completely free and only charges the developers as they grow. It is based on a managed container system. A smart container also known as a dyno is an instance of the application running and responding to requests. Heroku provides one dyno for free. Heroku also has integrated data services. Developers do not have to worry about discovering how to optimally provision a database through trial and error. They already have immediate access to a scalable, highly available database with rollback, one that supports their apps and development style. Heroku is also embedded with a powerful ecosystem. 

The platform relieves the developers from the infrastructure headaches and lets them focus on developing great apps. The objective of the Heroku platform is to make the process of deploying, configuring, scaling, tuning, and managing apps as simple and straightforward as possible. This makes the Heroku developer experience an app-centric one for software delivery integrated with the most popular developer tools and workflows today. There are three key important facts regarding the Heroku platform. They are mentioned below. 

Heroku Runtime

As mentioned before Heroku runs all apps inside dynos which are smart containers on a reliable, fully managed runtime environment. Developers can deploy their code written in Node, Ruby, Java, PHP, Python, Go, Scala, or Clojure. This runtime keeps apps running without any manual intervention.

Heroku Developer Experience

The Heroku Developer Experience refers to an app-centric approach to software delivery. Therefore developers can focus only on creating and continuously delivering applications, without worrying about servers or the underlying infrastructure. Developers can deploy directly from popular tools like Git, GitHub or Continuous Integration (CI) systems. There is also a web-based Heroku Dashboard which makes it much easier to manage the app and gain insight into the performance of the app.

Data Services and Ecosystem

Heroku Elements provide the facility for the developers to extend their apps with Add-ons and customize their application stack with Buildpacks. Add-ons are 3rd party cloud services that developers can use to immediately extend their apps with a range of functionality such as data stores, logging, monitoring and much more. Heroku provides two fully-managed data service Add-ons namely Heroku Postgres and Heroku Redis.

With this basic understanding gained I am looking forward to deploy QuserAPI on Heroku during the next week. When deploying there will be several other requirements such as the Procfile and the requirements.txt file which will be discussed in detail in the blog post of the coming week. 

No comments:

Post a Comment