E-book details

Heroku Cloud Application Development. A comprehensive guide to help you build, deploy, and troubleshoot cloud applications seamlessly using Heroku

Heroku Cloud Application Development. A comprehensive guide to help you build, deploy, and troubleshoot cloud applications seamlessly using Heroku

Anubhav Hanjura

Ebook
  • Heroku Cloud Application Development
    • Table of Contents
    • Heroku Cloud Application Development
    • Credits
    • About the Author
    • About the Reviewers
    • www.PacktPub.com
      • Support files, eBooks, discount offers and more
        • Why Subscribe?
        • Free Access for Packt account holders
    • Preface
      • What this book covers
      • What you need for this book
      • Who this book is for
      • Conventions
      • Reader feedback
      • Customer support
        • Errata
        • Piracy
        • Questions
    • 1. Hello Heroku
      • What is cloud computing?
      • Cloud service models
      • What is cloud application development?
      • Key advantages of cloud application development
      • Introducing Heroku
      • Walking down the memory lane
      • An overview of Herokus architecture
        • Process management
        • Logging
        • HTTP routing
        • Heroku interfaces
      • The Heroku feature set
        • Let's play Heroku
          • Getting ready for the ride the prerequisites
          • Signing up
          • Installing the Heroku toolbelt
          • Logging in and generating a new SSH key
      • Test driving Heroku
      • Summary
    • 2. Inside Heroku
      • The Heroku platform stack
        • The Celadon Cedar stack
      • Request routing in Heroku
        • The execution environment - dynos and the dyno manifold
      • Heroku's logging infrastructure the Logplex system
      • The Heroku add-on architecture
      • Programmatically consuming Heroku services
        • The Heroku Platform API
          • Security
          • Schema
          • Data
        • Accessing the API
          • API clients
          • Calling the API
          • Response
          • Limits on API calls
      • The Heroku process architecture
        • Procfile
        • Declaring process types
        • The Procfile format
          • A sample Procfile
        • Adding Procfile to Heroku
      • Running applications locally
      • Setting local environment variables
      • Process formation
        • Process scaling
        • Stopping a process type
        • Checking on your processes
          • Process logs
      • Running a one-off process
      • Running anything
      • Summary
    • 3. Building Heroku Applications
      • Heroku's guiding influence the Twelve-Factor App methodology
        • A codebase is always versioned and it can have multiple deploys
        • Declare and isolate dependencies explicitly (always)
        • Configuration should be stored in the environment
        • Backend services should be treated as attached (loosely-coupled) resources
        • Strict separation of the build, release, and run stages of an app
        • An app in execution is a process or many processes
        • Services should be exported through port binding
        • An app should scale out through its process model
        • Faster startup and graceful shutdown is the way to app agility and scalability
        • Development and production (and everything in between) should be as similar as possible
        • The app should just log the event not manage it
        • App's administrative or management task should be run as a one-off process
      • Creating a Heroku application
      • Configuring your Heroku application
        • The Heroku application configuration API
        • Examples of using application configuration
          • The persistence of configuration variables
          • Accessing configuration variables at runtime
          • Limits on configuration data
          • Using the Heroku config plugin
      • Introducing buildpacks
        • Using a custom buildpack
        • Specifying a custom buildpack at the app creation stage
        • Third-party buildpacks
        • The buildpack API
        • Components of a buildpack API
          • The bin/detect script
          • The bin/compile script
          • The bin/release script
        • Writing a buildpack
      • The slug compiler
        • Optimizing the slug
        • Size limits
      • Summary
    • 4. Deploying Heroku Applications
      • Deployment on Heroku
      • Getting a Heroku account
      • Installing the toolbelt client kit
      • Logging into the Heroku account
        • Setting up SSH
      • Writing your application
      • Pushing your application to Heroku
      • The Git vocabulary
        • Getting started with Git
          • Tracking a new project
          • Using an existing Git project
          • The life cycle of an artifact in Git
          • Tracking files in a Git project
          • When you don't need Git to track your files
          • The git diff command knowing what changed
          • Committing your changes
          • Deleting a file
          • Moving a file
          • Viewing commit history
          • Undoing a change
          • You can use some Git help
        • The local repository
          • Remote repositories
      • Creating a Heroku remote
      • Renaming an application
      • Sending code to Heroku
      • Optimizing slug size
      • Cloning existing Heroku applications
      • Forking an application
        • Side effects of forking an application
      • Transferring Apps
      • Optimizing deployments
      • The choice of a region
      • Tracking application changes
        • Setting up Deploy Hooks
          • Basecamp
          • Campfire
          • E-mail
          • HTTP
          • IRC
      • Release management
        • Checking installed releases
        • Verifying the new release
        • Rolling back the release
      • Summary
    • 5. Running Heroku Applications
      • The Heroku app lifecycle
      • The Heroku CLI
        • How to get the Heroku client tool
        • Verifying the tool
        • How to get the latest Heroku client tool
        • Where is the Heroku client stored?
          • What if my client installation is corrupted or not working?
        • The Heroku CLI commands
        • Heroku CLI commands by function
        • Extending the Heroku CLI
        • The Heroku CLI and add-ons
        • A note on Heroku CLI and security
      • Running your cloud apps locally
        • Using Foreman to check Procfiles
        • Using Foreman to run apps directly
        • Running one-off commands
        • Foreman command-line options
      • The Apps page
        • The Resources tab
        • Managing resources
        • The Activity tab
        • The Access tab
        • The Settings tab
        • The Run Production Check tab
        • Heroku support
      • Summary
    • 6. Putting It All Together
      • Heroku's support for Java
        • General support for Java
        • Database support for Java apps
        • Environment configuration
      • Integrating Eclipse with Heroku
        • Prerequisites
        • Configuring Heroku in Eclipse
        • Installing the Eclipse plugin for Heroku
        • Setting up Heroku for development
        • Setting up SSH support
        • Creating a new Heroku Java app in Eclipse
        • Using an existing Heroku application
        • Pushing code to Heroku
        • Pushing code to the Git repository
      • Managing Heroku apps in Eclipse
        • Viewing your Heroku application
          • Getting to the application's details
          • Reviewing the application's details
          • Going deeper into the application information
        • Adding collaborators to the application
        • Changing the environment variables
        • Heroku's process management in Eclipse
        • Scaling your app dynos
        • Restarting your web app
      • Summary
    • 7. Heroku Best Practices
      • The One Cloud development platform
        • Introducing the Cloud 9 IDE
          • The C9 user interface
          • The C9 project view
          • Setting up preferences in the C9 IDE environment
        • Deploying on Heroku
        • Performing Git operations using the C9 IDE
      • Heroku and the data store
      • Creating a Heroku Postgres database
        • Logging in to the database
        • Creating more databases the fork
        • Synchronizing databases via database followers
        • Checking database logs
        • Performance and the Heroku Postgres database
      • Disaster recovery in Heroku PostgreSQL
        • Importing data into Postgres
        • Deleting a Heroku Postgres database
        • Accessing Heroku Postgres externally
        • Accessing the database credentials
        • Connecting from outside of Heroku
      • High availability Postgres
        • Choosing the right plan
      • When does Heroku Postgres failover?
        • Effect of the failover
          • Checking the availability status after failover
      • Configuring domains the right way
        • Overview of DNS
        • Working with DNS in Heroku
          • Configuring your domain
          • Domain addition rules
        • Adding a custom domain to Heroku
        • Configuring domain DNS
        • Checking DNS configuration
        • Removing Heroku custom subdomains
        • Other domain-related considerations
      • Optimizing applications
        • The 2X dyno effect
        • When do I need the 2X dynos?
        • Checking whether you need 2X dynos
        • What if I use 2X dynos?
        • Now some examples...
        • Notes on 2X dynos
      • Managing your app dynos
      • Using the Heroku scheduler
      • Using NewRelic to keep the dyno alive
      • Summary
    • 8. Heroku Security
      • Overview
      • Communication between the developer's machine and the Heroku platform
        • General concepts of security
        • Security of developer communication with Heroku
        • A look inside the SSH protocol
          • Client authentication
        • App security and the Heroku dashboard
          • Your Heroku account and the dashboard
        • Security of applications and data resident on Heroku and third-party servers
          • Heroku security practices
          • Source code security
          • Build and deploy security
          • Application security
          • Data security
          • Configuration and metadata
          • Infrastructure security
          • Security in add-ons
          • Securing the logging infrastructure
          • Network security
          • Security standards and compliance
          • Securing web requests
          • Piggyback SSL
          • SSL for a custom domain
      • Application security tools
        • wwwhisper
          • A sample wwwhisper app
          • Getting wwwhisper
          • Removing wwwhisper
          • Enabling wwwhisper in your application
            • For other Rack-based applications
          • Post wwwhisper enablement
          • Local setup for wwwhisper
          • Using wwwhisper locally
          • Disabling wwwhisper in a local environment
        • Tinfoil website security scanner
          • Upgrading the add-on
          • The TINFOILSECURITY_SCAN_SCHEDULE configuration parameter
        • The Tinfoil security scanner dashboard
        • The scanning process
      • Summary
    • 9. Troubleshooting Heroku Applications
      • The need for troubleshooting
      • Your window to the running app the logs
        • A little more about Logplex Heroku's logging system
          • Sources and drains
          • The message limit
        • Retrieving Heroku logs
          • Getting last 'n' log messages
          • Getting live log messages
          • Setting up logging levels
          • Dissecting the Heroku log message
        • Log message types
        • Log filters
          • Examples of log filtering
        • Getting more from logging other logging tools
      • Techniques for troubleshooting your app
        • Troubleshooting application downtime
        • Debugging HTTP requests and APIs
        • Validating your process formation
        • Checking your database
        • When everything else fails
        • Production check
      • A recommended Heroku configuration
        • The stack
        • The process formation
        • Database service
        • Domain and security considerations
        • Proactive health monitoring
      • Maintenance windows
        • Checking the maintenance status
        • Enabling the maintenance mode
        • Disabling the maintenance mode
        • The maintenance window behind the scenes
        • Customizing site content
        • Customizing error pages
        • Testing custom maintenance and error pages
        • When requests time out
      • Error classification in Heroku
      • Summary
    • 10. Advanced Heroku Usage
      • Experimenting with Heroku Labs
        • Using Heroku Labs features
          • Seamless deployment using pipelines
          • Enabling the pipelines feature
          • Performance monitoring
          • Switching on monitoring
          • Log snapshot
          • Watching your app closely using the Request ID
          • Supporting the Request ID
      • Introducing Websockets
        • Websocket versus HTTP
        • Websocket is not HTTP
        • Websocket use cases
        • Typical apps using Websockets
        • Supporting Websockets in your app
        • Establishing a Websocket connection
        • Disadvantages of using Websockets
      • Heroku and Websockets
        • Switching on Websocket support
        • Turning Websockets off
        • The Websockets example
          • The server code
          • The client code
      • Your first Heroku Platform API call
        • Before we get started
        • Supported API methods
        • Sample uses of the platform API
        • Creating an application
          • Create an application API response
          • Retrieving application information
          • Modifying application information
          • Deleting an application
        • Interpreting an API response
          • Error operations
          • Error format
          • An example error response
          • Warnings
      • Sharing your app on Heroku
        • Prerequisites for collaboration
          • Adding app collaborators to the Heroku dashboard
          • Deleting a collaborator
        • Adding collaborators via the Heroku CLI
          • Listing collaborators
          • Removing a collaborator
        • Collaborator actions
          • Working on the app
          • Viewing the app
      • Summary
    • Index
  • Title: Heroku Cloud Application Development. A comprehensive guide to help you build, deploy, and troubleshoot cloud applications seamlessly using Heroku
  • Author: Anubhav Hanjura
  • Original title: Heroku Cloud Application Development. A comprehensive guide to help you build, deploy, and troubleshoot cloud applications seamlessly using Heroku.
  • ISBN: 9781783550982, 9781783550982
  • Date of issue: 2014-04-24
  • Format: Ebook
  • Item ID: e_3bdk
  • Publisher: Packt Publishing