<<< Previous speaker next speaker >>>

Michael T. Nygard, Author of "Release It"

 Michael T.  Nygard

Michael 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. Michael has spent the better part of 20 years learning what it means to be a professional programmer who cares about art, quality, and craft. He's always ready to spend time with other developers who are fully engaged and devoted to their work--the "wide awake" developers. On the flip side, he cannot abide apathy or wasted potential.

Michael has been a professional programmer and architect for nearly 20 years. During that time, he has delivered running systems to the U. S. Government, the military, banking, finance, agriculture, and retail industries. More often than not, Michael has lived with the systems he built. This experience with the real world of operations changed his views about software architecture and development forever.

He worked through the birth and infancy of a Tier 1 retail site and has often served as "roving troubleshooter" for other online businesses. These experiences give him a unique perspective on building software for high performance and high reliability in the face of an actively hostile environment.

Most recently, Michael wrote "Release It! Design and Deploy Production-Ready Software", a book that realizes many of his thoughts about building software that does more than just pass QA, it survives the real world. Michael previously wrote numerous articles and editorials, spoke at Comdex, and co-authored one of the early Java books.

Presentation: "Creating production-ready software"

Time: Thursday 10:45 - 11:45

Location: Fleet Room

Abstract: Ryan Slobojan interviewing Michael Nygard

Presentation: "Systems that never stop : Introduction"

Time: Friday 09:00 - 09:15

Location: Westminster Suite

Abstract: How do you develop, test, update, maintain, and reason about systems without borders? From embedded systems to deeply interdependent enterprise stuff, it is increasingly becoming impossible to have a representative test system. Whether it's because your application depends on remote services, or because no load generator can every match an Internet-scale traffic spike, sometimes there is no such thing as the "test version" ... only the real thing.

Presentation: "Failure comes in Flavours"

Time: Friday 14:15 - 15:15

Location: Westminster Suite

Abstract: The bad news: applications are more complex and error-prone than ever. Site development projects are really enterprise application integration projects in disguise. SOA portends far-flung interdependencies among unreliable services. Failures will spread wider and wider, reaching across your company and even crossing boundaries between companies. How do monumentally costly failures begin, develop, and spread? Can they be averted? Once you hit Release 1.0, your system will be living in the real world. It has to survive everything the messy, noisy real world can throw at it: from flash mobs to Slashdot. Once the public starts beating on your system, it has to survive without you. Did you know that just having your database behind a firewall can bring down your system? I'll show you that and many other risks to your system. You will learn the biggest risks to your system and how to counter them with stability design patterns. We'll talk about the best way to define the term "availability" and why the textbooks get it all wrong. In this session, you will learn why the path to success begins with a failure-oriented mindset. I'll talk about numerous antipatterns that have caused and accelerated millions of dollars worth of system failures. I'll share some of my scars and war stories with you (don't worry, they're all suitable for polite company) in the hopes that you can avoid some of these costly disasters.

Presentation: "Game show: It's a Bullseye! with Jim Webber"

Time: Friday 16:45 - 17:45

Location: Fleming Room

Abstract:

In this spoof of the classic UK game show "Bullseye!", Jim "Bowen" Webber will host an hour-long game show in which the four panelists will answer randomly-chosen questions that are submitted by you throughout the conference. Attendees will be chosen from the crowd to throw darts at Bully's prize board, and if the question that you submitted is asked of the panel, then you win a prize!

Join us for an hour of fun and learning, and remember: You can't beat a bit o' Bully!

Training: "Release It"

Track: Tutorial

Time: Monday 09:00 - 16:00

Location: Abbey Room

Abstract: 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.

PROGRAMME
*Introducing Production-Ready Software*

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

*Stability*

   * 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
   * Getting extreme

*Manageability*

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