What Is High Availability and How Do You Design for It?
High availability keeps systems running when parts fail. Here is how redundancy and failover work, what each extra nine of uptime really costs, and how to pick the right target.
An approach, known as SRE, that applies software engineering to operations to keep systems reliable, scalable, and efficient.
Site reliability engineering was developed at Google in the early 2000s. SRE teams write software to automate operational work, define service level objectives that describe acceptable reliability, and use error budgets to balance new features against stability. If a service is meeting its reliability target, teams can release changes faster. If it is not, the focus shifts to fixing reliability.
For example, an SRE team might set an objective that 99.9 percent of checkout requests succeed each month. When an outage uses up most of that budget, releases pause until fixes are in place. SRE practices also include blameless postmortems after incidents, careful monitoring, and reducing repetitive manual tasks, which SRE teams call toil. SRE and DevOps share goals, and many organizations combine their ideas.
A culture and set of practices that unite software development and IT operations to deliver software faster and more reliably.
ObservabilityThe ability to understand what is happening inside a software system by examining the data it produces, such as logs, metrics, and traces.
Service Level AgreementA contract between a service provider and a customer that defines expected service quality, such as uptime, and what happens if it is not met.
High availability keeps systems running when parts fail. Here is how redundancy and failover work, what each extra nine of uptime really costs, and how to pick the right target.
What load testing is, how load, stress, spike and soak tests differ, and how to read results like percentiles and error rates before real traffic finds your limits.
What chaos engineering is, how a controlled failure experiment works, and safe ways for any team to start small before testing in production.