Who Uses Heroku And Why?
Heroku is a Platform as a Service(PaaS) in which you can easily create free account and can start deploying your applications. Heroku allows you to deploy quickly, forget about the infrastructure, and just focus on improving your app.
Heroku is also great for beginners since its free tier of service covers everything newbies need. You can deploy as many apps as you like on Heroku, so long as they’re not too large (in terms of the associated data you’re hosting) and you don’t mind the possibility that Heroku might randomly take them offline for what it calls “unscheduled downtime.”
I’m currently hosting five different apps on Heroku and they are working fine without any maintainance.You can host front-end websites as well as back-end websites.It also provides command line interface through which you can easily deploy an application just in minutes.
How Heroku Works
When you create an app on Heroku, it deploys to the Cedar Stack, an online runtime environment that supports apps built in Java, Node.js, Scala, Clojure, Python and PHP—all the programming languages that Heroku supports.
The current version of the Cedar Stack is Celadon Cedar. It supports hundreds of thousands of developer apps. When you deploy a new app, Heroku assigns it a unique name based on a natural theme, like “calm-springs3345” or “desolate-cliffs1221.”
When it comes to your app, think of Heroku as home to a vast array of virtual computers, or “instances,” that can be powered up and down. Heroku calls these instances dynos; these are lightweight containers that each run a single command for your app. In my experience as a beginner building apps that only perform one action, I’ve never had more than one dyno per app.
Heroku And Git
One of the reasons Heroku is easy for people to use is that it relies on a widely used revision control system—that is, a way of managing the program code for your app—called Git. If you’re not already familiar with Git, you might want to review ReadWrite’s beginner tutorial for Git and GitHub.
Signing Up For Heroku
Interested in trying Heroku out for yourself? Signing up is easy, with one caveat.
To create your Heroku account, all you need is an email and password. But if you want to do anything with your Heroku-hosted app, like take advantage of one of the many useful free addons, you need to put in a credit card number. Heroku says it’s for account verification. Though it obviously makes it easier for Heroku to tempt you with paid services as well.
Create the app
- Go to your dashboard
- Select “Create new app” (top right)
- Name your app something (only letters, numbers, and dashes)
- Click “Create App”
Tracking your app in git
Before you can push an app to Heroku, you’ll need to initialize a local Git repository and commit your files to it. For example, if you have an app in a directory, myapp, then create a new repository for it:
$ cd myapp
$ git init
Initialized empty Git repository in .git/
$ git add .
$ git commit -m "my first commit"
Created initial commit 5df2d09: my first commit
44 files changed, 8393 insertions(+), 0 deletions(-)
create mode 100644 README
create mode 100644 Procfile
create mode 100644 app/controllers/source_file
...
This is a local repository, now residing inside the
.git
directory. Nothing has been sent anywhere yet; you’ll need to create a remote and do a push to deploy your code to Heroku.Creating a Heroku remote
Git remotes are references to remote repositories. You can have any number of these, but for now we’ll focus on just the remote to Heroku. The
heroku create
command creates a new application on Heroku – along with a git remote that must be used to receive your application source.$ heroku create
Creating falling-wind-1624... done, stack is cedar-14
http://falling-wind-1624.herokuapp.com/ | https://git.heroku.com/falling-wind-1624.git
Git remote heroku added
By default, Heroku configures HTTP as the Git transport. The Heroku CLI will automatically place credentials in the
.netrc
file on heroku login
. The Git client uses cURL when interacting with HTTP remotes, and cURL will use the credentials from the .netrc
file. See the Authentication section and the CLI authentication article for details.
You can verify the remote in your git configuration as well:
$ git remote -v
heroku https://git.heroku.com/falling-wind-1624.git (fetch)
heroku https://git.heroku.com/falling-wind-1624.git (push)
You can also take an existing Git repository and add a remote using the git URL provided when you created your app. You may need to do this to associate a Git repository with an existing application. The
heroku git:remote
command will add this remote for you based on your applications git url.$ heroku git:remote -a falling-wind-1624
Git remote heroku added.
The remote is named
heroku
in this example, but you can name the remote anything you want by passing -r other_remote_name
. You may find it easier to follow the examples if you stick to using the heroku
remote rather than using one with a different name.
There is one special remote name:
origin
, which is the default for pushes. Using origin as the remote name will allow you to type just git push
instead of git push heroku
, but we recommend using an explicitly named remote.Deploying code
Your Heroku app starts with a blank repository – it has no branches and no code. So the first time you deploy, you’ll need to specify a remote branch to push to. You can do your first push:
$ git push heroku master
Initializing repository, done.
updating 'refs/heads/master'
...
This will push your code to the
heroku
remote, created earlier. Use this whenever you want to deploy the latest code committed in Git to Heroku.
During the start of your first build,
Initializing repository
will be displayed while your app’s repository is created on Heroku. On subsequent builds, Fetching repository
will be displayed while your app’s repository is fetched and prepared to accept your push.
Branches pushed to Heroku other than
master
will be ignored by this command. If you’re working out of another branch locally, you can either merge to master before pushing, or specify that you want to push your local branch to a remote master.
Kool, take control of my P C!!
ReplyDelete