Become a Heroku Rails Ninja: Expert Level Deployment Tools

Deploy your Ruby on Rails Apps to Heroku like an Expert. Save time and money applying the techniques explained here.
4.7 (32 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
6,851 students enrolled
$50
Take This Course
  • Lectures 30
  • Contents Video: 8.5 hours
  • Skill Level Intermediate Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 2/2014 English

Course Description

Many startup non-technical founders are learning how to code their prototypes to get some quick feedback from potential users and pitch investors.

However... once you learn how to code, deploying your app can be a challenge. You need to know how to configure web servers, database servers, automate installation of gems, git repositories synchronization, etc... all just to have your app up and running on the web.

Luckily we have providers like Heroku that make it extremely easy to get your app deployed in minutes, without configuring any servers at all. These are known as Platform as a Service (PaaS) providers.

The basic deployment of a Rails app to Heroku is simple and quick, and most "learn how to code" courses cover it in just a few minutes. But if you chose to stay on Heroku for the long term, you should spend some time understanding how it works and how to optimize your app to get the most out of the resources provided by the platform and how it compares to going directly to cloud providers like Amazon or Rackspace.

This course covers all you need to know to get your first basic deployment up and how to gradually expand features and functionalities with the help of ruby gems and Heroku third-party add-ons.

By getting to know the platform you will:

  • Reduce costs by understanding that some times it's not just about "adding more dynos!", but to simply apply basic optimizations to your code.

  • Learn how to get full visibility of your app performance and real time logs so you can debug and fix issues faster.

  • Design your app so that it gets the most out of Heroku's architectural design.

  • Set a professional deployment architecture with identical staging and production servers so you can test new features before those go live.

What are the requirements?

  • Ruby on Rails development environment on your local machine
  • Basic Ruby on Rails development knowledge

What am I going to get from this course?

  • Basic deployment of a Ruby on Rails app to Heroku
  • Understanding how Heroku works and how to tweak its basic behavior
  • Understanding how Add-ons work and experiment setting up the most essential ones for your application
  • Learn to diagnose and remove bottlenecks that slow down your app and don't allow it to scale
  • Once you are done, you'll save more money on your Heroku bill than what you paid for the course

What is the target audience?

  • Non-technical startup founders who are learning how to code in Rails and want to be able to deploy their work to the cloud
  • Ruby on Rails developers who don't have any DevOps or server configuration knowledge/skills
  • SysAdmins and DevOps professionals who want to improve their own architectures by replicating how Platform as a Service (PaaS) providers like Heroku organize their service
  • Any person currently using Heroku as their provider and want to improve their scalability and get more bang for their buck

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: The Basics
19:18

Course Introduction
On this session we cover the reasons behind creating this course, why its somethings that you should care about if you are learning how to code, if you are already a proficient Rails developer and even if you are an amazing server/sysadmin.

We discuss how the course is structured, what you will learn and the 'learn by doing' methodology for the rest of the sessions.

Make sure you have these ready these before you dive into the course

  1. Ruby on Rails development environment
  2. Command Line Terminal for your OS
  3. Database manager like Postgres, MySQL or SQLite
  4. Text Editor like TextMate or Sublime text
  5. A web browser with developer tools on it (optional)


Not familiar with Rails?
If you are not familiar with Ruby on Rails or learned it a while ago and need to refresh some concepts I recommend you check one of these resources:

- Ruby on Rails Tutorial - by Michael Hartl
- RailsCasts - by Ryan Bates
- The Startup's Guide to Web Development with Ruby on Rails udemy course - by Alex Yang

31:21

This is our first technical session, covering the basic topics on how to start and deploy a basic Ruby on Rails app to Heroku.

We will be developing a new Ruby on Rails 4 application from scratch to use it as an example for deployment to Heroku and constant development of new features along with continuous deployment.

Session Goals:
By the end of this session you will accomplish these goals:

- Create an account and an application on Heroku
- Install Heroku Toolbelt on your development environment
- Start a new Rails 4 application
- Deploy your first application to Heroku


Not familiar with Rails?
If you are not familiar with Ruby on Rails or learned it a while ago and need to refresh some concepts I recommend you check one of these resources:

- Ruby on Rails Tutorial - by Michael Hartl
- RailsCasts - by Ryan Bates
- The Startup's Guide to Web Development with Ruby on Rails udemy course - by Alex Yang

20:32

We start this session with our first app already deployed to Heroku. Now we continue adding features to the application so we get used to pushing new code using git.

Also we introduce the concept of adding team members to the application so more than one developer can push code to the repository on Heroku.

We will work with github to create a repository for our project, this will help us collaborate with our team members, work on different branches and merge the code before we are ready to push it to Heroku for deployment.

Session Goals:
By the end of this session you will accomplish these goals:

- Add more developers to you Heroku application
- Work with additional repositories (with github) to use on your day to day development tasks, not only for deployment
- Have access to the releases history on Heroku, being able to rollback to any previous version of your app.
- Work with basic access to the application logs on Heroku to debug errors after a deployment.

15:26

Session Goals:
By the end of this session you will accomplish these goals:

- Continue to deploy changes to your application
- Install gems on your rails app and update the bundle up in Heroku with the deployments
- Create a Twitter app and communicate with it using the twitter gem
- Work with initializer files to add configuration keys for gems
- Learn how to use the rails console on your local environment

21:05

Session Goals:
By the end of this session you will accomplish these goals:

- Run database migrations on Heroku to add more fields and tables to our database
- Start using the 'heroku ps' command to check the processes that we have running our app on Heroku
- Identify errors by looking at the application logs

25:52

Session Goals:
By the end of this session you will accomplish these goals:

- Learn about the Add-ons market on Heroku
- Provision add-ons on your application
- Learn how to add custom Rake tasks on your Rails app
- Learn how to define a scheduled tasks to run your rake tasks every set amount of time
- Explore the account billing reports to check how you get charged for the different add-ons and resources

09:40

Session Goals:
By the end of this session you will accomplish these goals:

- Have access to the live logs and search for a specific keyword in them
- Provision more add-ons for your application
- Get better access to the logs with Papertrail

23:25

Session Goals:
By the end of this session you will accomplish these goals:

- Work with Heroku's dev documentation to install add-ons that require some setup and config files
- Check the content of the config variables on your Heroku app
- General overview of New Relic and the information it reports about app performance and response times
- Install New Relic on your app and confirm it's working and capturing data

Getting multiple concurrent web processes out of each dyno
Preview
13:43
Upgrading the Database for more capacity
14:05
Section 2: Getting ready for Production
Refactoring for faster response
12:11
Config Variables for Sensitive Information
14:02
Heroku's Read-Only File System and Dyno Isolation
08:20
File storage using amazon S3 or any other provider
21:42
Generate Thumbnails for your Carrierwave Uploads
12:31
Adding some design with the Rails Asset Pipeline and Bootstrap
18:05
Move static assets to cloud storage with Asset Sync
10:56
Basic Domain Names configuration for your apps
15:55
PointDNS Add-On for easier domain settings
09:16
Set good looking Error and Maintenance pages
10:19
Section 3: Optimizations and Tips
Identifying bottlenecks at scale
Preview
26:05
Implement Memcachier to support more traffic
Preview
33:03
Load testing your app
15:45
Cache pages that receive params
19:11
Production databases and pg:extras
22:06
Run queries on your database and set replication
12:12
Improving query times on production databases
09:38
Super dynos (2x), deep view on how memory is allocated per dyno
29:09
Console timeouts and connectivity issues
Preview
05:09
Manage multiple heroku accounts from the command line with heroku:accounts
04:27

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Alejandro Corpeño, Web Developer & Entrepreneur

Lead Platform Architect at the startup that powers photo manipulation mobile apps such as The Walking Dead Dead Yourself app, which has been the #1 app on the iTunes AppStore and has surpassed 8 million downloads. The platform runs completely on Heroku and has been able to support intense traffic and load spikes.

Over the last 15 years I have worked on a variety of projects as a consultant, developing web applications for large companies and small startups. I also have developed several personal projects and prototypes for startup ideas of my own, most of which I host on Heroku as well.

I have been developing dynamic database driven web applications since 1999, initially with PHP & MySQL and since 2006 started working with Ruby On Rails.

Ready to start learning?
Take This Course