12 Factor Applications with Docker and Go
12 Factor Applications with Docker and Go (Engineer)
Minimum price
Suggested price
12 Factor Applications with Docker and Go

This book is 95% complete

Last updated on 2018-02-24

About the Book

Using Docker to solve scaling issues, ideally before they occur. Scale your Go service from the start!

About the Author

Tit Petric
Tit Petric

I'm a seasoned veteran of software engineering. Interested in performance optimization and problem solving. High traffic, high availability, virtualization, docker - these are the categories in which I live.


  • PDF

  • EPUB

  • MOBI

  • APP

Minimum price
Suggested price
  • PDF

  • EPUB

  • MOBI

  • APP

Minimum price
Suggested price

Bundles that include this book

API foundations in Go
12 Factor Applications with Docker and Go
Suggested Price
Bundle Price

Table of Contents

  • Introduction
    • About me
    • Who is this book for?
    • How should I study it?
  • Requirements
    • Linux and Docker
    • Additional requirements
  • I. Codebase - One codebase tracked in revision control, many deploys
    • Gogs
    • Multiple deploys
    • Structuring your code
    • Improving deployments
  • II. Dependencies - Explicitly declare and isolate dependencies
    • Vendoring
    • Caveats about vendoring
    • System dependencies
  • III. Config - Store config in the environment
    • Flags
    • godotenv
    • Viper
  • IV. Backing services - Treat backing services as attached resources
    • Data resources
    • Example backing services
  • V. Build, release, run - Strictly separate build and run stages
    • Building Go applications
    • Building Docker images
    • Continuous integration with Codeship
  • VI. Processes - Execute the app as one or more stateless processes
    • Data caching
    • Share-nothing
    • Backing service: Running a highly available Redis instance
    • Realistic example of a stateless application
  • VII. Port binding - Export services via port binding
    • The none network
    • The bridge network
    • Custom bridge network
    • Multi-host network
    • Host networking
    • Exposing your service ports
    • Debugging docker network connectivity
    • Using your own DNS
    • Sending e-mails from docker
  • VIII. Concurrency - Scale out via the process model
    • Basic process management
    • Advanced process management
    • Docker swarm
    • Scaling our service with Docker Swarm
    • Rolling updates for our service
    • Scaling to a 1000 containers!
  • IX. Disposability - Maximize robustness with fast startup and graceful shutdown
    • Disposing of containers
    • Docker Chaos Monkey
    • Health checks
  • X. Dev/prod parity - Keep development, staging, and production as similar as possible
    • It worked on my machine
    • Upgrades and testing
    • Many moving parts
  • XI. Logs - Treat logs as event streams
    • A note on backing services
    • Logging Docker to Papertrail
    • Logging as a backing service
  • XII. Admin processes - Run admin/management tasks as one-off processes
    • Running backups
    • Console access to your containers
    • Orchestrating your management tasks

The Leanpub 45-day 100% Happiness Guarantee

Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

See full terms...

Write and Publish on Leanpub

Authors, publishers and universities use Leanpub to publish amazing in-progress and completed books and courses, just like this one. You can use Leanpub to write, publish and sell your book or course as well! Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks. Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. It really is that easy.

Learn more about writing on Leanpub