<<< Previous speaker next speaker >>>

Michael T. Nygard, Author of "Release It!"

 Michael T.  Nygard
Michael Nygard strives to raise the bar and ease the pain for developers across the country. He shares his passion and energy for improvement with everyone he meets, sometimes even with their permission. Living with systems in production taught Michael about the importance of operations and writing production-ready software. Highly-available, highly-scalable commerce systems are his forte.

Michael has written and co-authored several books, including "97 Things Every Software Architect Should Know" and the best seller "Release It!", a book about building software that survives the real world.

Blog: http://www.michaelnygard.com/blog
Book: Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)

Presentation: "Reliability Engineering Matters, Except When It Doesn't"

Time: Thursday 10:35 - 11:35

Location: Metropolitan Ballroom II & III


You can't build a "system that never stops" by luck. You do it one of two ways: either you suffer a whole lot of failures, patching the boat as it springs more leaks; or you engineer it to be stable from the beginning. We've got a well-developed field of Reliability Engineering that we can use to deal with many common problems.

Reliability Engineering matters. You'll learn the essential techniques to keep your system from falling apart due to basic failures.

It can only go so far, though. We will encounter boundaries when we work with large scale, interdependent systems, or feedback loops. You'll learn how to recognize those boundaries, and some heuristics you can apply to stay on the safe side of them.

Training: "Production Ready Software: SOLD OUT"

Track: Tutorial

Time: Monday 09:00 - 16:00

Location: Franciscan I & II


In this tutorial, you will learn how to create applications that survive the rigors of life in production. Too often, project teams aim to pass QA instead of aiming for success in production. Testing is not enough to prove that your software is ready for continuous availability in the corrosive environment of the Internet.

During this tutorial, you will receive an understanding of the architecture and design patterns that can produce high availability in distributed, multithreaded systems such as those based on Java EE, .Net, or Ruby on Rails. You will also learn about the antipatterns that can sabotage your systems availability and capacity.  

Learn how to:

  •    Avoid common design antipatterns that sap capacity and availability.
  •    Apply stability patterns to produce highly available systems.
  •    Design software for production networks.
  •    Create applications that administrators love.
  •    Design your applications for easy deployment and change.


Introducing Production-Ready Software:

  •    Hostile, high-consequence environments
  •    The testability gap
  •    Recovery-oriented computing
  •    Focus on features
  •    The failure-oriented mindset


  •    Defining stability: What matters to your users?
  •    Failure modes: stability anti-patterns
  •    Architecting for stability: patterns

Capacity and scalability:

  •    Relating performance, capacity, and scalability
  •    Myths about resources
  •    Failure modes: capacity anti-patterns
  •    Capacity improvements: patterns
  •    Architecting for scalability


  •    Appreciating Operations
  •    Evolving interfaces
  •    Evolving schemas
  •    Handling configuration properties and configuration files
  •    Automating everything