A web application involves many specialists, but it takes people in web ops to ensure that everything works together throughout an application's lifetime. It's the expertise you need when your start-up gets an unexpected spike in web traffic, or when a new feature causes your mature application to fail. In this collection of essays and interviews, web veterans such as Theo Schlossnagle, Baron Schwartz, and Alistair Croll offer insights into this evolving field. You'll learn stories from the trenches--from builders of some of the biggest sites on the Web--on what's necessary to help a site thrive.
- Learn the skills needed in web operations, and why they're gained through experience rather than schooling
- Understand why it's important to gather metrics from both your application and infrastructure
- Consider common approaches to database architectures and the pitfalls that come with increasing scale
- Learn how to handle the human side of outages and degradations
- Find out how one company avoided disaster after a huge traffic deluge
- Discover what went wrong after a problem occurs, and how to prevent it from happening again
Scalability Rules is the easy-to-use scalability primer and reference for every architect, developer, web professional, and manager. Authors Martin L. Abbott and Michael T. Fisher have helped scale more than 200 hypergrowth Internet sites through their consulting practice. Now, drawing on their unsurpassed experience, they present 50 clear, proven scalability rules–and practical guidance for applying them.
Abbott and Fisher transform scalability from a “black art” to a set of realistic, technology-agnostic best practices for supporting hypergrowth in nearly any environment, including both frontend and backend systems.
For architects, they offer powerful new insights for creating and evaluating designs. For developers, they share specific techniques for handling everything from databases to state. For managers, they provide invaluable help in goal-setting, decision-making, and interacting with technical teams. Whatever your role, you’ll find practical risk/benefit guidance for setting priorities–and getting maximum “bang for the buck.”
As web applications grow, two things begin to happen. They become significantly more complicated and hence brittle, and they handle significantly larger traffic volume requiring more novel and complicated mechanisms to handle this traffic. This can lead to a death spiral for an application that can lead to brownouts, blackouts, and other quality of service and availability problems.
This book helps you avoid this death spiral by teaching you basic techniques for building applications that can reliably handle huge quantities of traffic, as well as huge variability in traffic without impacting the quality your customers expect.
You’ll learn about:
Service Oriented Architectures, including services and microservices, for building distributed systems that are more resilient to localized failures
Building systems with failures in mind to help you develop robust designs and systems emerge that reduce brittleness and result in higher availability
Forward-looking risk management for identifying system problems
Scaling your engineering team to build and manage web applications that scale successfully
Monitoring and responsiveness to quickly identify problems when your application begins to act abnormally
This book explains how to take advantage of technologies like cloud, virtualization, and configuration automation to manage IT infrastructure using tools and practices from software development. These technologies have decoupled infrastructure from the underlying hardware, turning it into data and code. "Infrastructure as Code" has emerged alongside the DevOps movement as a label for approaches that merge concepts like source control systems, Test Driven Development (TDD) and Continuous Integration (CI) with infrastructure management.
Virtualization and cloud make it easy to rapidly expand the size of infrastructure, but the habits and practices we used in the past with hardware-based infrastructure don't keep up. Teams end up with hundreds of servers, all a bit different, and find themselves unable to fully automate their infrastructure.
The book will go through the challenges and problems created by all these wonderful new tools, and the principles and mindset changes that a team needs to make to use them effectively. It describes patterns, practices, and ideas that have been adopted from software development, especially Agile concepts, and brought into the IT Ops world as part of the DevOps movement. These ways of working have been proven in many organizations, including well known names like Netflix, Amazon, and Etsy, and also in more established organizations including publishers, banks, and even the British government.More info →
This practical guide addresses technical, cultural, and managerial challenges of implementing and maintaining a DevOps culture by describing failures and successes. Authors Katherine Daniels and Jennifer Davis provide with actionable strategies you can use to engineer sustainable changes in your environment regardless of your level within your organization.
- Individual collaboration: Changes to help people get work done, get along with others, and avoid burnout
- Team affinity: New patterns and styles for working together, with real-world case studies for different organizational sizes and types
- Tools: Different types of tools, their uses cases, and things to consider when choosing or developing them
- Devops at scale: Strategies for taking what works and scaling it up, as well as common pitfalls that can happen when working in any large organization
Legend has it that Google deploys over a billion application containers a week. How is that possible? The company decided to share the process through an open source project called Kubernetes, which replicates many of the features found in its internal system. This practical book will prepare you to take advantage of everything the Kubernetes platform has to offer.
Rather than an exact copy of its internal Borg system, Kubernetes is an upgrade based on lessons Google learned over the last decade. Kubernetes is also designed to integrate with the most robust container ecosystem: Docker. Developers and Ops practitioners can easily deploy a demo Kubernetes environment and kick the tires, but when it comes time to scale to hundreds of nodes, you’re going to need a reliable field guide.
Kubernetes: Up and Running will help you:
- Learn how to make zero down-time application deployments with Kubernetes
- Track metrics and logs for every container running in your cluster
- Discover patterns for running large-scale application deployments that work for big players such as Google, Twitter, and Facebook
- Explore topics including Kubernetes components (kubelet, API, scheduler, replication controllers); containers; distributed computing; service discovery; and continuous delivery More info →
Docker containers offer simpler, faster, and more robust methods for developing, distributing, and running software than previously available. With this hands-on guide, you’ll learn why containers are so important, what you’ll gain by adopting Docker, and how to make it part of your development process.
Ideal for developers, operations engineers, and system administrators—especially those keen to embrace a DevOps approach—Using Docker will take you from Docker and container basics to running dozens of containers on a multi-host system with networking and scheduling. The core of the book walks you through the steps needed to develop, test, and deploy a web application with Docker.
- Get started with Docker by building and deploying a simple web application
- Use Continuous Deployment techniques to push your application to production multiple times a day
- Learn various options and techniques for logging and monitoring multiple containers
- Examine networking and service discovery: how do containers find each other and how do you connect them?
- Orchestrate and cluster containers to address load-balancing, scaling, failover, and scheduling
- Secure your system by following the principles of defense-in-depth and least privilege More info →
With this practical book, you’ll discover how to catch complications in your distributed system before they develop into costly problems. Based on his extensive experience in systems ops at large technology companies, author Slawek Ligus describes an effective data-driven approach for monitoring and alerting that enables you to maintain high availability and deliver a high quality of service.
Learn methods for measuring state changes and data flow in your system, and set up alerts to help you recover quickly from problems when they do arise. If you’re a system operator waging the daily battle to provide the best performance at the lowest cost, this book is for you.
- Monitor every component of your application stack, from the network to user experience
- Learn how to draw the right conclusions from the metrics you obtain
- Develop a robust alerting system that can identify problematic anomalies—without raising false alarms
- Address system failures by their impact on resource utilization and user experience
- Plan an alerting configuration that scales with your expanding network
- Learn how to choose appropriate maintenance times automatically
- Develop a work environment that fosters flexibility and adaptability More info →
Docker is quickly changing the way that organizations are deploying software at scale. But understanding how Linux containers fit into your workflow—and getting the integration details right—are not trivial tasks. With this practical guide, you’ll learn how to use Docker to package your applications with all of their dependencies, and then test, ship, scale, and support your containers in production.
Two Lead Site Reliability Engineers at New Relic share much of what they have learned from using Docker in production since shortly after its initial release. Their goal is to help you reap the benefits of this technology while avoiding the many setbacks they experienced.
- Learn how Docker simplifies dependency management and deployment workflow for your applications
- Start working with Docker images, containers, and command line tools
- Use practical techniques to deploy and test Docker-based Linux containers in production
- Debug containers by understanding their composition and internal processes
- Deploy production containers at scale inside your data center or cloud environment
- Explore advanced Docker topics, including deployment tools, networking, orchestration, security, and configuration More info →
Learning Agile is a comprehensive guide to the most popular agile methods, written in a light and engaging style that makes it easy for you to learn.
Agile has revolutionized the way teams approach software development, but with dozens of agile methodologies to choose from, the decision to "go agile" can be tricky. This practical book helps you sort it out, first by grounding you in agile's underlying principles, then by describing four specific--and well-used--agile methods: Scrum, extreme programming (XP), Lean, and Kanban.
Each method focuses on a different area of development, but they all aim to change your team's mindset--from individuals who simply follow a plan to a cohesive group that makes decisions together. Whether you're considering agile for the first time, or trying it again, you'll learn how to choose a method that best fits your team and your company.
Discover why Vagrant is a must-have tool for thousands of developers and ops engineers. This hands-on guide shows you how to use this open source software to build a virtual machine for any purpose—including a completely sandboxed, fully provisioned development environment right on your desktop.
Vagrant creator Mitchell Hashimoto shows you how to share a virtual machine image with members of your team, set up a separate virtualization for each project, and package virtual machines for use by others. This book covers the V1 (1.0.x) configuration syntax running on top of a V2 (1.1+) core, the most stable configuration format running on the latest core.
- Build a simple virtual machine with just two commands and no configuration
- Create a development environment that closely resembles production
- Automate software installation and management with shell scripts, Chef, or Puppet
- Set up a network interface to access your virtual machine from any computer
- Use your own editor and browser to develop and test your applications
- Test complicated multi-machine clusters with a single Vagrantfile
- Change Vagrant’s default operating system to match your production OS
- Extend Vagrant features with plugins, including components you build yourself More info →
There is an easier way to build Hadoop applications. With this hands-on book, you’ll learn how to use Cascading, the open source abstraction framework for Hadoop that lets you easily create and manage powerful enterprise-grade data processing applications—without having to learn the intricacies of MapReduce.
Working with sample apps based on Java and other JVM languages, you’ll quickly learn Cascading’s streamlined approach to data processing, data filtering, and workflow optimization. This book demonstrates how this framework can help your business extract meaningful information from large amounts of distributed data.
- Start working on Cascading example projects right away
- Model and analyze unstructured data in any format, from any source
- Build and test applications with familiar constructs and reusable components
- Work with the Scalding and Cascalog Domain-Specific Languages
- Easily deploy applications to Hadoop, regardless of cluster location or data size
- Build workflows that integrate several big data frameworks and processes
- Explore common use cases for Cascading, including features and tools that support them
- Examine a case study that uses a dataset from the Open Data Initiative More info →