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.
High Performance Browser Networking: What every web developer should know about networking and web performance
How prepared are you to build fast and efficient web applications? This eloquent book provides what every web developer should know about the network, from fundamental limitations that affect performance to major innovations for building even more powerful browser applications—including HTTP 2.0 and XHR improvements, Server-Sent Events (SSE), WebSocket, and WebRTC.
Author Ilya Grigorik, a web performance engineer at Google, demonstrates performance optimization best practices for TCP, UDP, and TLS protocols, and explains unique wireless and mobile network optimization requirements. You’ll then dive into performance characteristics of technologies such as HTTP 2.0, client-side network scripting with XHR, real-time streaming with SSE and WebSocket, and P2P communication with WebRTC.
- Deliver superlative TCP, UDP, and TLS performance
- Speed up network performance over 3G/4G mobile networks
- Develop fast and energy-efficient mobile applications
- Address bottlenecks in HTTP 1.x and other browser protocols
- Plan for and deliver the best HTTP 2.0 performance
- Enable efficient real-time streaming in the browser
- Create efficient peer-to-peer videoconferencing and low-latency applications with real-time WebRTC transports
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 →
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.”
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 of Networks and Services: Third International Conference on Autonomous Infrastructure, Management and Security, AIMS 2009 Enschede, The … Networks and Telecommunications
This volume of the Lecture Notes in Computer Science series contains the papers accepted for presentation at the Third International Conference on Autonomous Infrastructure Management and Security (AIMS 2009). The conference took place in Enschede, The Netherlands, hosted by the University of Twente. AIMS 2009 was organized and supported by the EC IST-EMANICS Network of Excellence (#26854) and co-sponsored by IFIP WG 6.6 and the Strategic Research Orientation of the University of Twente on Dependable Systems and Networks (DSN). AIMS 2009 constituted the Third edition of a single-track and standalone c- ference on management and security aspects of distributed and autonomous systems, which took place initially in Oslo, Norway in June 2007, followed by AIMS 2008 in Bremen, Germany. The theme of the AIMS 2009 conference was “Scalability of Networks and Services,” focusing on how scalable networked systems can be monitored, managed, and protected in an ef cient and autonomous way. The research papers that have been selected for publication in the present proceedings have approached this theme from different perspectives, covering topics such as network resource management, overlays and peer-to-peer networks, network configuration and optimization,and monitoring and visualization.More info →
While the REST design philosophy has captured the imagination of web and enterprise developers alike, using this approach to develop real web services is no picnic. This cookbook includes more than 100 recipes to help you take advantage of REST, HTTP, and the infrastructure of the Web. You'll learn ways to design RESTful web services for client and server applications that meet performance, scalability, reliability, and security goals, no matter what programming language and development framework you use.
Each recipe includes one or two problem statements, with easy-to-follow, step-by-step instructions for solving them, as well as examples using HTTP requests and responses, and XML, JSON, and Atom snippets. You'll also get implementation guidelines, and a discussion of the pros, cons, and trade-offs that come with each solution.
- Learn how to design resources to meet various application scenarios
- Successfully design representations and URIs
- Implement the hypertext constraint using links and link headers
- Understand when and how to use Atom and AtomPub
- Know what and what not to do to support caching
- Learn how to implement concurrency control
- Deal with advanced use cases involving copying, merging, transactions, batch processing, and partial updates
- Secure web services and support OAuth
Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful of large programs well - usually programs they wrote themselves - and never study the great programs of history. As a result, they repeat one another's mistakes rather than building on one another's successes. This book's goal is to change that. In it, the authors of twenty-five open source applications explain how their software is structured, and why. What are each program's major components? How do they interact? And what did their builders learn during their development? In answering these questions, the contributors to this book provide unique insights into how they think.More info →
Programming Google App Engine: Build and Run Scalable Web Apps on Google’s Infrastructure (Animal Guide)
As one of today's cloud computing services, Google App Engine does more than provide access to a large system of servers. It also offers you a simple model for building applications that scale automatically to accommodate millions of users. With Programming Google App Engine, you'll get expert practical guidance that will help you make the best use of this powerful platform. Google engineer Dan Sanderson shows you how to design your applications for scalability, including ways to perform common development tasks using App Engine's APIs and scalable services.
You'll learn about App Engine's application server architecture, runtime environments, and scalable datastore for distributing data, as well as techniques for optimizing your application. App Engine offers nearly unlimited computing power, and this book provides clear and concise instructions for getting the most from it right from the source.
- Discover the differences between traditional web development and development with App Engine
- Learn the details of App Engine's Python and Java runtime environments
- Understand how App Engine handles web requests and executes application code
- Learn how to use App Engine's scalable datastore, including queries and indexes, transactions, and data modeling
- Use task queues to parallelize and distribute work across the infrastructure
- Deploy and manage applications with ease