Preface
- Why Heroku?
- Simplicity
- Age
- Popularity
- Polyglot
- Solid
- Best Practices
Getting Started with Heroku
- Create an Account
- Install the Toolbelt
- Install heroku-accounts
- Project Prerequisites
- Create an Application
- Follow the Required Quickstart Guide
- Push Your Code
- Check it Out
Dynosaurs
- What Are Dynos?
- Understanding Dynos
- Dynos Run Services
- One Procfile to Rule Them All
- Testing Your Procfile
- Scaling Up and Scaling Down Dynos
- Handling Failure
- Calculating Dyno Costs
The Environment
- Best Practices and You
- The Config Command
- Benefits
Take the Pain Away (with Addons)
- What are Addons?
- How do Addons Work?
- The Addon Catalogue
- Adding, Removing, Upgrading, and Downgrading Addons
- Addon Cost
PostgreSQL Patterns
- Why Heroku PostgreSQL?
- Bootstrapping a Database
- Connecting to Your Database
- Destroying a Database
- Creating Read Slaves
- Creating a Duplicate Database
- Promoting a Slave Database to a Master Database
- View Slow Queries
- Backing Up Your Database
- Downloading Your Backups
- Restoring From a Backup
- Final Thoughts
Caching with Memcached
- Why Cache?
- Using Memcached
- Memcached on Heroku
Scheduling Tasks with Cron
- The Scheduler
- Debugging
- Cost
Logging
- Log Types
- Viewing Logs
- Viewing Select Logs
- When to Check Your Logs
- Log Storage Options
Monitoring with New Relic
- Why New Relic?
- Installing New Relic
- The Overview
- A Visual Map of Your Application
- Web Transactions
- Database Monitoring
- External Services
- Dyno Monitoring
- Background Tasks
Talking to the World
- Using Custom Domains
- Updating Your DNS
- Encrypt All the Things! (with SSL)
Managing Releases
- Heroku’s Model
- Viewing Your Releases
- Rolling Back
Working with Others
- Who is the Application Owner?
- Sharing Access
- Sharing Permissions
- Managing Collaborators
- Transferring Ownership
Do Great Things
- Build Services, Not Apps
- Building Service Oriented Applications
- Heroku and Services
- Be Dynamic
References and Further Reading
Special Thanks