Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Heroku: Up and Running
Preface
So, What Is Heroku?
Who This Book Is For
The History of Heroku
The Heroku Culture
Why Would I Want to Learn More About Heroku?
Conventions Used in This Book
Safari® Books Online
How to Contact Us
From the Authors: Neil Middleton
From the Authors: Richard Schneeman
Disclaimer
1. Getting Started with Heroku
The Dawn of Virtual Servers
Enter the Cloud
You New Around Here?
Quick Start
2. How Heroku Works
What Is a Dyno?
HTTP Routing
Request Life Cycle
Long-Running Requests
The Dyno Manager and Dynos
Configuration
Releases
Slug Compilation
Scale Out, Not Up
Erosion Resistance
Workers and Background Processing
Other Services
The Logplex
Databases and Other Add-Ons
Deployment Systems
3. Understanding Performance and Scale
Horizontal Scaling and You
Stateless Architecture
Distributed file stores
Session state
Dyno Manifold
Autoscaling
Estimating Resource Requirements
Request Queuing
Speeding Up Your App
Expires Headers
Faster Page Response with a CDN
Postgres Database Performance
N+1 queries
Queries in need of an index
Explaining Postgres Performance
Caching Expensive Queries
Back that Task Up
Full-Text Search Apps
Performance Testing
In-App Performance Analysis
External Performance Tools: Backend
External Performance Tools: Frontend
Being Fast
4. Heroku Regions
Multiregion or Single?
The Heroku Way
How to Deploy in a New Region
Forking an Application
Constraints
Latency
Read/write architecture
Add-Ons
5. Heroku PostgreSQL
Why PostgreSQL?
Transactional DDL
Concurrent Indexes
Extensibility
Partial Indexing
What Heroku Gives You
Development versus Production
Choosing the Right Plan
Shared Features
Starter Features
Production Features
Getting Started
Importing and Exporting Data
Importing Data
Using pg_restore locally
Exporting Data
Snapshots
CSV Exports
PGBackups
Data Clips
Followers
Fast Database Changeovers
Forking
Other Features
Extension Support
Improved Visibility
JSON Support
Range Type Support
6. Deployment
Timeliness
Backing Out
Testing
How to Deploy, and Deploy Well
Backups
Heroku Releases
Release creation
Rolling back
Performance Testing
Trimming the Fat (Slug Management)
Source Code Management
Branching for environments
Feature branching
Multienvironment Deployment
Consistency
Teams
DNS
Configuration
Apex domains
7. When It Goes Wrong
Dev Center
Heroku Support
Deploy Debugging
Heroku Status Site
Reproducing the Problem
Check for a .slugignore File
Fork and Use a Custom Buildpack
Deploy Taking Too Long?
Runtime Error Detection and Debugging
Deploy Visibility
Test Visibility
Performance Visibility
Exception Visibility
Logging Add-Ons
Admin error pages
Exception Notification
Uptime Visibility
Twitter-Driven Development
Code Reviews and a Branching Workflow
Runtime Error Debugging
Data State Debugging
Asset Debugging
Application State Debugging
8. Buildpacks
Before Buildpacks
Introducing the Buildpack
Detect
Compile
Release
Profile.d Scripts
Leveraging Multiple Buildpacks
Quick and Dirty Binaries in Your App
The Buildpack Recap
About the Authors
Colophon
Copyright
← Prev
Back
Next →
← Prev
Back
Next →