Workshop: Tweet"Release It"
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.
Program:
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