310 lines
187 KiB
HTML
310 lines
187 KiB
HTML
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><script async="" src="https://www.googletagmanager.com/gtag/js?id=G-ECJJ2Q2SJQ"></script><title data-next-head=""></title><link rel="preconnect" href="https://bridge.hackernoon.com" data-next-head=""/><link rel="preconnect" href="https://cdn.hackernoon.com" data-next-head=""/><link rel="preconnect" href="https://hackernoon.imgix.net" data-next-head=""/><link rel="dns-prefetch" href="https://cdn.hackernoon.com" data-next-head=""/><meta name="description" content="High Availability is not Disaster Recovery. This in-depth guide explores real-world Disaster Recovery architectures." data-next-head=""/><meta property="og:title" content="Beyond High Availability: Disaster Recovery Architectures That Keep Running When HA Fails | HackerNoon" data-next-head=""/><meta property="og:description" content="High Availability is not Disaster Recovery. This in-depth guide explores real-world Disaster Recovery architectures." data-next-head=""/><meta name="image" property="og:image" content="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg" data-next-head=""/><meta property="twitter:title" content="Beyond High Availability: Disaster Recovery Architectures That Keep Running When HA Fails | HackerNoon" data-next-head=""/><meta property="twitter:description" content="High Availability is not Disaster Recovery. This in-depth guide explores real-world Disaster Recovery architectures." data-next-head=""/><meta property="twitter:image" content="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg" data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:site" content="@hackernoon" data-next-head=""/><link rel="canonical" href="https://hackernoon.com/beyond-high-availability-disaster-recovery-architectures-that-keep-running-when-ha-fails" data-next-head=""/><link rel="preload" as="font" href="/fonts/HackerNoonFont/hackernoonv1-regular-webfont.woff2" type="font/woff2" crossorigin="anonymous"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link data-next-font="" rel="preconnect" href="/" crossorigin="anonymous"/><link rel="preload" href="/_next/static/css/121be0391d0b0ef0.css" as="style"/><link rel="preload" href="/_next/static/css/6d530d6069fd563f.css" as="style"/><link rel="preload" as="image" imageSrcSet="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=640 640w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=750 750w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=828 828w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=1080 1080w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=1200 1200w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=1920 1920w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=2048 2048w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=3840 3840w" imageSizes="(max-width: 768px) 100vw, 900px" data-next-head=""/><script type="application/ld+json" data-next-head="">{"@context":"http://schema.org","@type":"Article","name":"Beyond High Availability: Disaster Recovery Architectures That Keep Running When HA Fails","headline":"Beyond High Availability: Disaster Recovery Architectures That Keep Running When HA Fails","author":{"@type":"Person","name":"Yakaiah Bommishetti"},"datePublished":"2025-06-05","image":"https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg","articleSection":"disaster-recovery","articleBody":"Introduction Highly available systems fail catastrophically even though they promise 99.99% uptime. HA architectures could experience failures because of regional cloud outages and ransomware attacks and human errors. Organizations need to establish disaster recovery as a separate rigorous discipline to achieve true system resilience beyond high availability. The complete strategy for restoring operations after catastrophic failures defines Disaster Recovery (DR). The range of failures extends past hardware malfunctions because it encompasses software bugs and malicious attacks and data corruption and complete cloud region failures. HA mainly focuses on preventing failure, where DR assumes failure is inevitable and prepares the organization to recover quickly and effectively. The article provides a clear explanation of Disaster Recovery through practical examples and architectural patterns together with specific guidance for software engineers and site reliability engineers and infrastructure architects. HA vs DR: The Critical Distinction High Availability (HA) and Disaster Recovery (DR) operate as separate components which work together to enhance system resilience. Here’s how they differ: Attribute\n\nHigh Availability\n\nDisaster Recovery\n\n\n\nScope\n\nLocalized Failures\n\nRegional/Catastrophic Failures\n\n\n\nExamples\n\nNode crashes, AZ outages\n\nData deletion, region loss, ransomware\n\n\n\nObjective\n\nMaintain uptime\n\nRestore services and data post-disaster\n\n\n\nTools\n\nClusters, Load Balancers, Auto-scaling\n\nBackups, Replication, Multi-site deployments\n\n\n\nFocus\n\nPrevention\n\nRestoration Attribute\n\nHigh Availability\n\nDisaster Recovery\n\n\n\nScope\n\nLocalized Failures\n\nRegional/Catastrophic Failures\n\n\n\nExamples\n\nNode crashes, AZ outages\n\nData deletion, region loss, ransomware\n\n\n\nObjective\n\nMaintain uptime\n\nRestore services and data post-disaster\n\n\n\nTools\n\nClusters, Load Balancers, Auto-scaling\n\nBackups, Replication, Multi-site deployments\n\n\n\nFocus\n\nPrevention\n\nRestoration Attribute\n\nHigh Availability\n\nDisaster Recovery Attribute Attribute Attribute High Availability High Availability High Availability Disaster Recovery Disaster Recovery Disaster Recovery Scope\n\nLocalized Failures\n\nRegional/Catastrophic Failures Scope Scope Localized Failures Localized Failures Regional/Catastrophic Failures Regional/Catastrophic Failures Examples\n\nNode crashes, AZ outages\n\nData deletion, region loss, ransomware Examples Examples Node crashes, AZ outages Node crashes, AZ outages Data deletion, region loss, ransomware Data deletion, region loss, ransomware Objective\n\nMaintain uptime\n\nRestore services and data post-disaster Objective Objective Maintain uptime Maintain uptime Restore services and data post-disaster Restore services and data post-disaster Tools\n\nClusters, Load Balancers, Auto-scaling\n\nBackups, Replication, Multi-site deployments Tools Tools Clusters, Load Balancers, Auto-scaling Clusters, Load Balancers, Auto-scaling Backups, Replication, Multi-site deployments Backups, Replication, Multi-site deployments Focus\n\nPrevention\n\nRestoration Focus Focus Prevention Prevention Restoration Restoration Example: A Kubernetes cluster using pod anti-affinity and multi-AZ deployment ensures high availability within a single region. If one Availability Zone (AZ) fails, pods are rescheduled to healthy zones, keeping the app running. Example: pod anti-affinity multi-AZ deployment However, this setup won’t help during a region-wide outage, cloud misconfiguration, or accidental deletion of resources, all of which can bring the entire system down. region-wide outage cloud misconfiguration accidental deletion That’s why Disaster Recovery (DR) plan with backups, replication to another region, and failover automation will help to recover applications and data in case of major failures. Disaster Recovery (DR) plan backups replication to another region failover automation High Availability keeps things stable in small failures. DR is the safety net for large-scale disasters. DR is the safety net for large-scale disasters. Real-World Incidents: Why DR Is Critical, Not Optional People generally consider Disaster Recovery as an insurance policy because it serves as protection against unexpected events yet remains unused until disaster strikes. But history tells us otherwise, the system failures spread rapidly throughout large networks. The following major incidents demonstrate how systems become vulnerable without a proper DR strategy. GitLab (2017): Accidental Deletion and Faulty Backups\nA GitLab engineer who tried to resolve database lag problems ended up deleting the entire production PostgreSQL database. The hot standby database which served as a backup system immediately replicated the deletion operation. The team faced a severe service outage and data loss because their most recent backup was six hours old and their recovery process was untested and unreliable.\nLesson: Real DR needs tested recovery procedures together with isolated backups and automated fallback mechanisms instead of redundant systems that replicate mistakes. GitLab (2017): Accidental Deletion and Faulty Backups\nA GitLab engineer who tried to resolve database lag problems ended up deleting the entire production PostgreSQL database. The hot standby database which served as a backup system immediately replicated the deletion operation. The team faced a severe service outage and data loss because their most recent backup was six hours old and their recovery process was untested and unreliable.\nLesson: Real DR needs tested recovery procedures together with isolated backups and automated fallback mechanisms instead of redundant systems that replicate mistakes. GitLab (2017): Accidental Deletion and Faulty Backups GitLab (2017): Accidental Deletion and Faulty Backups A GitLab engineer who tried to resolve database lag problems ended up deleting the entire production PostgreSQL database. The hot standby database which served as a backup system immediately replicated the deletion operation. The team faced a severe service outage and data loss because their most recent backup was six hours old and their recovery process was untested and unreliable. deleting the entire production PostgreSQL database replicated the deletion operation Lesson: Real DR needs tested recovery procedures together with isolated backups and automated fallback mechanisms instead of redundant systems that replicate mistakes. Lesson: recovery procedures isolated backups automated fallback Code Spaces (2014): Cloud Account Hijack and Total Wipeout\nAn attacker gained access to Code Spaces AWS control panel and proceeded to delete everything, EC2 instances, S3 buckets, backups, and even the DR configurations. Without offline or off-cloud backups, the company was unable to recover and had to shut down permanently.\nLesson: Never put all your eggs in one basket especially not in one cloud account. DR must be offsite, offline, and immune to account level breaches. Code Spaces (2014): Cloud Account Hijack and Total Wipeout\nAn attacker gained access to Code Spaces AWS control panel and proceeded to delete everything, EC2 instances, S3 buckets, backups, and even the DR configurations. Without offline or off-cloud backups, the company was unable to recover and had to shut down permanently.\nLesson: Never put all your eggs in one basket especially not in one cloud account. DR must be offsite, offline, and immune to account level breaches. Code Spaces (2014): Cloud Account Hijack and Total Wipeout Code Spaces (2014): Cloud Account Hijack and Total Wipeout An attacker gained access to Code Spaces AWS control panel and proceeded to delete everything, EC2 instances, S3 buckets, backups, and even the DR configurations. Without offline or off-cloud backups, the company was unable to recover and had to shut down permanently. delete everything, EC2 instances, S3 buckets, backups, and even the DR configurations offline or off-cloud backups shut down permanently Lesson: Never put all your eggs in one basket especially not in one cloud account. DR must be offsite, offline, and immune to account level breaches. Lesson: cloud account offsite, offline, and immune to account level breaches Maersk (2017): NotPetya Malware Attack\nThe global shipping giant was crippled by NotPetya, a malware that encrypted all Windows-based systems. Maersks entire global IT infrastructure went offline from terminals to email systems. Miraculously, one domain controller in Ghana survived because it was offline during the attack due to a local power outage. Using that, Maersk was able to recover, but it took over 10 days and $300 million in damages.\nLesson: Sometimes offline backups are the only survivors. A resilient DR plan includes geographically isolated systems and malware resistant recovery points.\n\n\nFacebook (2021): BGP Misconfiguration Takes Down Entire Network\nA faulty BGP (Border Gateway Protocol) configuration update knocked Facebook and all its services (Instagram, WhatsApp, Messenger) offline globally for hours. Internal tools were also inaccessible because they were hosted on the same network, locking engineers out from fixing the problem quickly.\nLesson: DR isn’t just about data, it’s also about accessibility and operational recovery. Keep recovery tools in isolated environments that can function when the primary environment fails. Maersk (2017): NotPetya Malware Attack\nThe global shipping giant was crippled by NotPetya, a malware that encrypted all Windows-based systems. Maersks entire global IT infrastructure went offline from terminals to email systems. Miraculously, one domain controller in Ghana survived because it was offline during the attack due to a local power outage. Using that, Maersk was able to recover, but it took over 10 days and $300 million in damages.\nLesson: Sometimes offline backups are the only survivors. A resilient DR plan includes geographically isolated systems and malware resistant recovery points. Maersk (2017): NotPetya Malware Attack Maersk (2017): NotPetya Malware Attack The global shipping giant was crippled by NotPetya, a malware that encrypted all Windows-based systems. Maersks entire global IT infrastructure went offline from terminals to email systems. Miraculously, one domain controller in Ghana survived because it was offline during the attack due to a local power outage. Using that, Maersk was able to recover, but it took over 10 days and $300 million in damages. encrypted all Windows-based systems domain controller in Ghana offline during the attack over 10 days and $300 million Lesson: Sometimes offline backups are the only survivors. A resilient DR plan includes geographically isolated systems and malware resistant recovery points. Lesson: offline backups geographically isolated systems and malware resistant recovery points Facebook (2021): BGP Misconfiguration Takes Down Entire Network\nA faulty BGP (Border Gateway Protocol) configuration update knocked Facebook and all its services (Instagram, WhatsApp, Messenger) offline globally for hours. Internal tools were also inaccessible because they were hosted on the same network, locking engineers out from fixing the problem quickly.\nLesson: DR isn’t just about data, it’s also about accessibility and operational recovery. Keep recovery tools in isolated environments that can function when the primary environment fails. Facebook (2021): BGP Misconfiguration Takes Down Entire Network Facebook (2021): BGP Misconfiguration Takes Down Entire Network A faulty BGP (Border Gateway Protocol) configuration update knocked Facebook and all its services (Instagram, WhatsApp, Messenger) offline globally for hours. Internal tools were also inaccessible because they were hosted on the same network, locking engineers out from fixing the problem quickly. BGP configuration update Lesson: DR isn’t just about data, it’s also about accessibility and operational recovery. Keep recovery tools in isolated environments that can function when the primary environment fails. Lesson: accessibility and operational recovery isolated environments Key Takeaways: Key Takeaways: The implementation of backups as DR requires automated processes which must be located offsite and tested at regular intervals.\nDR infrastructure requires separation logical, geographical and sometimes provider-based.\nThe ability to recover from failures stands above the need for redundant systems.\nBusinesses should prepare for actual threats which include human mistakes and security breaches and natural disasters. The implementation of backups as DR requires automated processes which must be located offsite and tested at regular intervals. DR infrastructure requires separation logical, geographical and sometimes provider-based. The ability to recover from failures stands above the need for redundant systems. Businesses should prepare for actual threats which include human mistakes and security breaches and natural disasters. A properly developed DR plan converts major disasters into manageable disruptions. The absence of a recovery plan makes business recovery dangerous because some organizations never get to try again. Key Metrics in Disaster Recovery: RTO and RPO The process of designing a disaster recovery (DR) plan requires more than system restoration because it needs to achieve both timely recovery and minimal data loss. Two critical metrics guide this: Recovery Time Objective (RTO)\nThe maximum allowable time your system or service can be down after a failure before it must be restored.\n\n\nThink of it as your downtime tolerance.\n\n\nIt defines how quickly services must be restored to avoid serious business impact.\n\n\n\n\nRecovery Point Objective (RPO)\nThe maximum acceptable amount of data loss, measured in time, from the moment of failure.\n\nIt answers the question: How much data can we afford to lose?\nIt reflects how frequently you need to back up data. Recovery Time Objective (RTO)\nThe maximum allowable time your system or service can be down after a failure before it must be restored.\n\n\nThink of it as your downtime tolerance.\n\n\nIt defines how quickly services must be restored to avoid serious business impact. Recovery Time Objective (RTO) Recovery Time Objective (RTO) The maximum allowable time your system or service can be down after a failure before it must be restored. maximum allowable time Think of it as your downtime tolerance.\n\n\nIt defines how quickly services must be restored to avoid serious business impact. Think of it as your downtime tolerance. Think of it as your downtime tolerance. downtime tolerance It defines how quickly services must be restored to avoid serious business impact. It defines how quickly services must be restored to avoid serious business impact. how quickly Recovery Point Objective (RPO)\nThe maximum acceptable amount of data loss, measured in time, from the moment of failure.\n\nIt answers the question: How much data can we afford to lose?\nIt reflects how frequently you need to back up data. Recovery Point Objective (RPO) Recovery Point Objective (RPO) The maximum acceptable amount of data loss, measured in time, from the moment of failure. maximum acceptable amount of data loss It answers the question: How much data can we afford to lose?\nIt reflects how frequently you need to back up data. It answers the question: How much data can we afford to lose? How much data can we afford to lose? It reflects how frequently you need to back up data. how frequently Example: Example: Let’s say an outage happens at 12:00 PM. 12:00 PM Your RTO is 1 hour\n\nYou must fully recover and have services running again by 1:00 PM.\n\n\nYour RPO is 15 minutes\n\nYou must recover data as it existed by 11:45 AM. Your RTO is 1 hour\n\nYou must fully recover and have services running again by 1:00 PM. RTO is 1 hour You must fully recover and have services running again by 1:00 PM. You must fully recover and have services running again by 1:00 PM. 1:00 PM Your RPO is 15 minutes\n\nYou must recover data as it existed by 11:45 AM. RPO is 15 minutes You must recover data as it existed by 11:45 AM. You must recover data as it existed by 11:45 AM. as it existed by 11:45 AM That means any transactions or updates made between 11:45 AM and 12:00 PM may be lost and your systems should be designed to handle that loss. 11:45 AM and 12:00 PM Key Takeaways: Key Takeaways: RTO = How fast you recover.\nRPO = How much data you can afford to lose.\nStricter RTO and RPO means higher cost and complexity.\nYour business SLAs (Service Level Agreements) should drive RTO/RPO targets not the other way around.\nRTO and RPO influence your technology choices, backup frequency, network design, and failover approach. RTO = How fast you recover. How fast you recover. RPO = How much data you can afford to lose. How much data you can afford to lose. Stricter RTO and RPO means higher cost and complexity. higher cost and complexity. Your business SLAs (Service Level Agreements) should drive RTO/RPO targets not the other way around. business SLAs (Service Level Agreements) RTO and RPO influence your technology choices, backup frequency, network design, and failover approach. technology choices backup frequency network design failover approach Disaster Recovery Architectures Each DR model represents a different trade-off between cost, complexity, RTO, and RPO. Let’s examine them Backup and Restore (Cold DR) Architecture Backup and Restore (Cold DR) Architecture Overview: Simple backups stored in object storage (e.g., Amazon S3, Azure Blob, Google Cloud Storage). Overview Architecture: Architecture: Use Case: Non-critical systems, dev/test environments. Use Case: Pros: Low cost, minimal operational overhead.\n\n\nCons: Recovery is slow; backups must be regularly tested. Pros: Low cost, minimal operational overhead. Pros: Low cost, minimal operational overhead. Pros Cons: Recovery is slow; backups must be regularly tested. Cons: Recovery is slow; backups must be regularly tested. Cons Pilot Light Architecture Pilot Light Architecture Overview: Maintain minimal resources (example: replicated DB, basic network setup) in DR region. Provision app servers only during failover. Overview Architecture: Architecture: Use Case: Moderately critical workloads. Use Case Pros: Cost-effective with moderate recovery times.\n\n\nCons: Requires automated provisioning scripts, failover orchestration. Pros: Cost-effective with moderate recovery times. Pros: Cost-effective with moderate recovery times. Pros Cons: Requires automated provisioning scripts, failover orchestration. Cons: Requires automated provisioning scripts, failover orchestration. Cons Warm Standby Architecture Architecture Overview: All DR infrastructure is provisioned and partially scaled. DR Services run with reduced load and periodically verified. Overview Architecture: Architecture: Use Case: Applications with high SLAs and moderate budget. Use Case Pros: Fast recovery, can validate live readiness\n\n\nCons: Ongoing cost for underutilized compute, config drift risks Pros: Fast recovery, can validate live readiness Pros: Fast recovery, can validate live readiness Pros Cons: Ongoing cost for underutilized compute, config drift risks Cons: Ongoing cost for underutilized compute, config drift risks Cons Hot Standby (Active-Passive) Architecture Architecture Overview: Two identical environments, one active and one idle. Traffic is routed to active, and failover is manual or automatic. Overview Architecture: Architecture: Use Case: Healthcare, banking, regulated industries. Use Case Pros: Nearly seamless failover, no data loss.\n\n\nCons: High infrastructure costs for unused capacity. Pros: Nearly seamless failover, no data loss. Pros: Nearly seamless failover, no data loss. Pros Cons: High infrastructure costs for unused capacity. Cons: High infrastructure costs for unused capacity. Cons Active-Active (Multi-Site) Architecture Architecture Overview: Two or more regions handle live traffic. Each region has fully operational services. Overview Architecture: Architecture: Use Case: Global SaaS platforms, e-commerce, 24/7 services. Use Case Pros: Continuous availability, seamless user experience.\n\n\nCons: High complexity, data consistency issues, expensive. Pros: Continuous availability, seamless user experience. Pros: Continuous availability, seamless user experience. Pros Cons: High complexity, data consistency issues, expensive. Cons: High complexity, data consistency issues, expensive. Cons Best Practices for Disaster Recovery DR should operate in separate cloud accounts or projects to stop the spread of accidental deletions.\nThe implementation of object locking and versioning enables immutable backups to protect against tampering.\nThe first step should be automation because tools like Terraform, Ansible and Pulumi enable the deployment of complete DR environments within minutes.\nThe organization should maintain precise and current documentation for runbooks and DR procedures and contact lists.\nThe practice of simulating failure scenarios through Chaos Testing should be performed on a regular basis. Learn and improve.\nUse config scanners or CI/CD pipelines to ensure parity between prod and DR.\nEnsure traceability, billing insights, and resource cleanup to tag and audit everything. DR should operate in separate cloud accounts or projects to stop the spread of accidental deletions. separate cloud accounts The implementation of object locking and versioning enables immutable backups to protect against tampering. immutable backups The first step should be automation because tools like Terraform, Ansible and Pulumi enable the deployment of complete DR environments within minutes. automation The organization should maintain precise and current documentation for runbooks and DR procedures and contact lists. runbooks and DR procedures The practice of simulating failure scenarios through Chaos Testing should be performed on a regular basis. Learn and improve. Chaos Testing Use config scanners or CI/CD pipelines to ensure parity between prod and DR. scanners or CI/CD pipelines Ensure traceability, billing insights, and resource cleanup to tag and audit everything. tag and audit everything Conclusion Organizations need to look at disaster recovery to function as a core competency beyond basic backup operations As infrastructure becomes more distributed and threats increase, having a mature DR posture is non-negotiable. High availability deals with expected situations but disaster recovery enables organizations to face unexpected disasters. Start small. Pick a DR model that fits your business and expand over time. The cost of prevention is always lower than the cost of failure."}</script><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;700&family=IBM+Plex+Sans:wght@400;700&family=Inter:wght@400;600;900&family=Source+Code+Pro:wght@400;500;600;700&display=swap" rel="stylesheet" media="print"/><noscript><link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;700&family=IBM+Plex+Sans:wght@400;700&family=Inter:wght@400;600;900&family=Source+Code+Pro:wght@400;500;600;700&display=swap" rel="stylesheet"/></noscript> <!-- --><script id="ga4-init">
|
||
window.dataLayer = window.dataLayer || [];
|
||
function gtag(){dataLayer.push(arguments);}
|
||
|
||
// Consent Mode: default to denied
|
||
gtag('consent', 'default', {
|
||
'ad_storage': 'denied',
|
||
'analytics_storage': 'denied',
|
||
'ad_user_data': 'denied',
|
||
'ad_personalization': 'denied'
|
||
});
|
||
|
||
gtag('js', new Date());
|
||
gtag('config', 'G-ECJJ2Q2SJQ');
|
||
</script><script id="iubenda-init">
|
||
function initIubenda() {
|
||
(async function () {
|
||
try {
|
||
const res = await fetch("https://geolocation-db.com/json/");
|
||
const data = await res.json();
|
||
const country = data && data.country_code;
|
||
|
||
const GDPR_COUNTRIES = [
|
||
"AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU",
|
||
"IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES",
|
||
"SE","IS","LI","NO","UK","GB"
|
||
];
|
||
var isGdpr = GDPR_COUNTRIES.indexOf(country) > -1;
|
||
|
||
window._iub = window._iub || [];
|
||
window._iub.csConfiguration = {
|
||
siteId: 1848357,
|
||
cookiePolicyId: 18778700,
|
||
lang: "en",
|
||
enableTcf: false,
|
||
googleAdditionalConsentMode: true,
|
||
banner: {
|
||
position: "bottom",
|
||
rejectButtonDisplay: true,
|
||
explicitWithdrawal: true,
|
||
customizeButtonDisplay: true,
|
||
acceptButtonDisplay: true,
|
||
showTotalNumberOfProviders: false,
|
||
display: isGdpr
|
||
}
|
||
};
|
||
|
||
var iubScript = document.createElement("script");
|
||
iubScript.src = "https://cdn.iubenda.com/cs/iubenda_cs.js";
|
||
iubScript.async = true;
|
||
document.head.appendChild(iubScript);
|
||
|
||
if (!isGdpr) {
|
||
gtag('consent', 'update', {
|
||
'ad_storage': 'granted',
|
||
'analytics_storage': 'granted',
|
||
'ad_user_data': 'granted',
|
||
'ad_personalization': 'granted'
|
||
});
|
||
}
|
||
} catch (e) {
|
||
console.error("Iubenda geolocation failed", e);
|
||
}
|
||
})();
|
||
}
|
||
|
||
// Defer until browser is idle — never blocks initial render
|
||
if (typeof requestIdleCallback !== 'undefined') {
|
||
requestIdleCallback(initIubenda, { timeout: 3000 });
|
||
} else {
|
||
setTimeout(initIubenda, 1000);
|
||
}
|
||
</script><script id="iubenda-consent-bridge">
|
||
window.addEventListener("iubenda_consent_given", function () {
|
||
gtag('consent', 'update', {
|
||
'ad_storage': 'granted',
|
||
'analytics_storage': 'granted',
|
||
'ad_user_data': 'granted',
|
||
'ad_personalization': 'granted'
|
||
});
|
||
|
||
gtag('event', 'page_view', {
|
||
page_title: document.title,
|
||
page_location: location.href,
|
||
page_path: location.pathname + location.search
|
||
});
|
||
});
|
||
</script><link rel="stylesheet" href="/_next/static/css/121be0391d0b0ef0.css" data-n-g=""/><link rel="stylesheet" href="/_next/static/css/6d530d6069fd563f.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="https://accounts.google.com/gsi/client" defer="" data-nscript="beforeInteractive"></script><script defer="" src="/_next/static/chunks/7618.8cb06698e4978306.js"></script><script defer="" src="/_next/static/chunks/3213.7a85381e883f5859.js"></script><script defer="" src="/_next/static/chunks/7127.9c425c4d3409a6ac.js"></script><script defer="" src="/_next/static/chunks/3304.7c3523eee5ba4042.js"></script><script defer="" src="/_next/static/chunks/1826.1ab3736f712279dc.js"></script><script defer="" src="/_next/static/chunks/b6790ad6-21a72b711b29c9a6.js"></script><script defer="" src="/_next/static/chunks/4829-32ed3fa27f9fba8a.js"></script><script defer="" src="/_next/static/chunks/8145-56bb137bc815feca.js"></script><script defer="" src="/_next/static/chunks/7878-038a9b85114cf28d.js"></script><script defer="" src="/_next/static/chunks/9407-02afcd7299ecf2e9.js"></script><script defer="" src="/_next/static/chunks/1866-36cbb79df614e742.js"></script><script defer="" src="/_next/static/chunks/997.043403d1cfb4d583.js"></script><script defer="" src="/_next/static/chunks/9997.0bcf115a883cf0c1.js"></script><script defer="" src="/_next/static/chunks/9752.5dc7ee3796d8a882.js"></script><script defer="" src="/_next/static/chunks/1486.6875746f7e7b3bd6.js"></script><script defer="" src="/_next/static/chunks/2348.6ff1c8ab2b7f714e.js"></script><script src="/_next/static/chunks/webpack-b0b0e650ef898a91.js" defer=""></script><script src="/_next/static/chunks/framework-594babcea68f40f6.js" defer=""></script><script src="/_next/static/chunks/main-f4c6b80eccf8d9c3.js" defer=""></script><script src="/_next/static/chunks/pages/_app-e9f748c6202c8d20.js" defer=""></script><script src="/_next/static/chunks/4004-46cbf9060446c734.js" defer=""></script><script src="/_next/static/chunks/8230-f743aded49f5ec53.js" defer=""></script><script src="/_next/static/chunks/3363-3997af8403818196.js" defer=""></script><script src="/_next/static/chunks/5857-ec7c040b0c106d7c.js" defer=""></script><script src="/_next/static/chunks/7871-49db796a808d2c70.js" defer=""></script><script src="/_next/static/chunks/3261-28f7d7d5ddf137c8.js" defer=""></script><script src="/_next/static/chunks/1902-922299f711a16f76.js" defer=""></script><script src="/_next/static/chunks/8581-1c63d69fe79360dc.js" defer=""></script><script src="/_next/static/chunks/4581-8f149836b5130c5d.js" defer=""></script><script src="/_next/static/chunks/4680-486b209e44768b17.js" defer=""></script><script src="/_next/static/chunks/2562-5aa3cd1aa6e464a5.js" defer=""></script><script src="/_next/static/chunks/8373-1c61bad6a8e1fdcb.js" defer=""></script><script src="/_next/static/chunks/7225-8cb630c00db3e752.js" defer=""></script><script src="/_next/static/chunks/pages/%5Bslug%5D-e18135e2a995d794.js" defer=""></script><script src="/_next/static/qqTckmfliewRaBLUp_8jP/_buildManifest.js" defer=""></script><script src="/_next/static/qqTckmfliewRaBLUp_8jP/_ssgManifest.js" defer=""></script></head><body><link rel="preload" as="image" imageSrcSet="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=640 640w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=750 750w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=828 828w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=1080 1080w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=1200 1200w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=1920 1920w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=2048 2048w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=3840 3840w" imageSizes="(max-width: 768px) 100vw, 1200px" fetchPriority="high"/><link rel="preload" as="image" href="https://hackernoon.imgix.net/avatars/robot-b5.png"/><link rel="preload" as="image" href="https://hackernoon.imgix.net/avatars/robot-b6.png"/><div id="__next"><div class="bg-light text-lightText font-[ibm-plex-mono]"><main><header class="font-[ibm-plex-sans] fixed top-0 left-0 w-full z-50 transition-all duration-500 ease-in-out translate-y-0"><div class="flex items-center justify-between bg-primary lg:navbar h-[50px] sm:min-h-[75px] transition-all duration-100 shadow-md w-full"><div class="hidden lg:flex navbar-start h-full items-center ml-1"><button class="flex items-center hover:scale-[1.01] justify-center rounded-lg text-base px-4 font-bold py-2 border-none bg-primary-content text-primaryContentText">Discover Anything<i class="hn hn-search text-lg ml-4 text-primaryContentText "></i></button></div><div class="nav-start lg:navbar-center ml-2 lg:ml-0 min-w-0 flex-shrink"><a class="relative z-10 flex items-center space-x-2 hover:scale-[1.02]" aria-label="HackerNoon Homepage" href="/"><svg class="w-[180px] xs:w-[200px] sm:w-[240px] lg:w-[260px] h-auto" viewBox="0 0 2150 260" fill="none" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid meet" style="transition:fill 150ms ease"><g style="transition:fill 150ms ease"><path d="M269.997 20.0005V0H130V20.0005V40.0011V60.0016H150H169.995V40.0011H189.995H229.996V60.0016H249.997H269.997V40.0011V20.0005Z" fill="transparent"></path><path d="M130.006 80.003V60.0024H110.006V80.003V100.004H130.006V80.003Z" fill="transparent"></path><path d="M110 119.998V100.003H90V119.998V139.998V159.999H110V139.998V119.998Z" fill="transparent"></path><path d="M270 100.004H290V80.003V60.0024H270V80.003V100.004Z" fill="transparent"></path><path d="M310 119.997V100.002H290V119.997V139.998V159.998H310V139.998H330.001V119.997H310Z" fill="transparent"></path><path d="M130 159.998H110V179.998V199.999H130V179.998V159.998Z" fill="transparent"></path><path d="M270 179.998V199.999H290V179.998V159.998H270V179.998Z" fill="transparent"></path><path d="M130 260V240V219.999V199.999H150H169.995V219.999H189.995H209.996H229.996V199.999H249.997H269.997V219.999V240V260H130Z" fill="transparent"></path><path d="M210.415 39.74V59.7405V79.7411V99.7416V119.736V139.737H190.415V119.736V99.7416V79.7411V59.7405V39.74H210.415Z" fill="transparent"></path><path d="M390 200V60H417.801V116.676H501.206V60H530V200H501.206V144.517H417.801V200H390Z" fill="transparent"></path><path d="M672.199 116.676V88.8352H588.794V116.676H672.199ZM560 200V60H700V200H672.199V144.517H588.794V200H560Z" fill="transparent"></path><path d="M730 200V60H870V88.8352H758.794V172.159H870V200H730Z" fill="transparent"></path><path d="M900 200V60H928.794V116.276H984.397V143.724H928.794V200H900ZM1012.2 171.368H984.397V143.724H1012.2V171.368ZM1012.2 171.368H1040V199.013H1012.2V171.368ZM1012.2 88.6319V116.276H984.397V88.6319H1012.2ZM1012.2 88.6319V60H1040V88.6319H1012.2Z" fill="transparent"></path><path d="M1070 200V60H1210V88.8352H1098.79V116.676H1154.4V144.517H1098.79V172.159H1210V200H1070Z" fill="transparent"></path><path d="M1351.24 116.519V88.7589H1267.76V116.519H1351.24ZM1240 200V60H1380V144.479H1351.24V172.24H1380V200H1351.24V172.24H1323.48V144.479H1267.76V200H1240Z" fill="transparent"></path><path d="M1410 200V60H1550V200H1522.24V88.7589H1438.76V200H1410Z" fill="transparent"></path><path d="M1692.24 172.24V88.7589H1608.76V172.24H1692.24ZM1580 200V60H1720V200H1580Z" fill="transparent"></path><path d="M1862.04 172.24V88.7589H1778.97V172.24H1862.04ZM1750 200V60H1890V200H1750Z" fill="transparent"></path><path d="M1920 200V60H2060V200H2032.24V88.7589H1948.76V200H1920Z" fill="transparent"></path></g></svg></a></div><div class="navbar-end h-full flex items-center min-w-[100px] lg:min-w-[200px] space-x-4 mr-2"><div class=" h-[40px] flex items-center justify-center"></div><div class="hidden sm:flex space-x-4 "><button class="px-4 font-bold text-base py-1 sm:py-2 bg-primary-content text-primaryContentText rounded-md transition-all duration-300">Signup</button><a class="px-4 hover:scale-105 font-bold text-base py-2 bg-primary-content text-primaryContentText rounded-md " href="/new">Write</a></div><button class="btn border-none p-0 m-0 lg:hidden bg-transparent hover:bg-transparent text-primary-content hover:scale-110"><i class="hn hn-search text-xl mr-2 "></i></button><button class="relative lg:flex hidden items-center hover:scale-110 text-primary-content" aria-label="Notifications"><i width="20" class="hn hn-bell text-2xl w-4 h-4 sm:w-6 sm:h-6"></i></button><button class="flex items-center hover:scale-110 text-primary-content" aria-label="Menu"><i class="hn hn-bars text-2xl text-primary-content"></i></button></div></div><div class="z-20 hidden lg:block h-[52px] transition-all duration-500 ease-in-out"><nav class="h-[52px] bg-secondary animate-pulse"></nav></div><div class="flex items-center "><div class="bg-accent text-accent-content flex items-center h-[62px] sm:min-h-[80px] font-[ibm-plex-sans] w-full relative z-10 opacity-100"><div class="h-[62px] sm:h-[80px] bg-[transparent] animate-pulse"></div></div></div></header><div class="transition-all duration-200 pt-[112px] sm:pt-[155px] lg:pt-[207px]"><div data-rht-toaster="" style="position:fixed;z-index:9999;top:16px;left:16px;right:16px;bottom:16px;pointer-events:none"></div><div class=""><div class="bg-light text-lightText h-auto xl:mx-2 "><div class="col-span-12"><div class="max-w-[1200px] mx-auto px-2 xs:px-4 xl: xl:px-0 mt-10"><div class=""><div><div class="text-xs"><div class="mb-4 flex gap-2"><span class="bg-lightAlt p-2 rounded-lg inline-flex gap-2 items-center justify-start"><i class="hn hn-star-solid"></i> <!-- -->1,330<!-- --> <!-- -->reads</span></div><h1 class="font-bold line-clamp-4 leading-snug text-lightTextStrong
|
||
text-xl sm:text-2xl xl:text-3xl tracking-tight
|
||
|
||
">Beyond High Availability: Disaster Recovery Architectures That Keep Running When HA Fails</h1><div class="flex flex-wrap border-y border-lightBorder my-4 sm:my-2 sm:border-t-0 py-2 items-center justify-between text-lightTextLight text-sm sm:text-base xl:text-xl "><div class="flex flex-wrap justify-between w-full xs:w-auto items-center gap-2"><span class="flex items-center flex-wrap gap-2 mr-10 sm:mr-0 ">by<div class="dropdown dropdown-hover "><label tabindex="0"><a aria-label="View profile of Yakaiah Bommishetti" href="/u/ybommishetti"><strong class="...">Yakaiah Bommishetti</strong></a></label><div class="dropdown-content z-[1] pt-2 sm:pt-1 left-[-40px] w-[280px] xs:w-[320px] sm:w-[400px] bg-transparent menu rounded "><div class="w-full "><div class=" p-4 border border-lightBorder bg-light rounded-lg"><a href="/u/ybommishetti" target="_blank" rel="noopener noreferrer" class="flex items-start text-sm rounded-lg group gap-2"><div class=""><img alt="Yakaiah Bommishetti" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="w-10 h-9 border-solid border border-lightBorder rounded-full object-contain" style="color:transparent" srcSet="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=48 1x, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=96 2x" src="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=96"/></div><span class="flex flex-col min-w-0 w-full justify-center"><span class="flex items-center gap-1 text-ellipsis overflow-hidden whitespace-nowrap"><span class="font-bold group-hover:underline text-xs truncate"><span class="text-xs font-light mr-1">by</span>Yakaiah Bommishetti</span><span class="text-xs font-light opacity-50">|</span><span class="text-sm false text-ellipsis overflow-hidden whitespace-nowrap" title="@ybommishetti">@<!-- -->ybommishetti</span></span><span class="text-xs text-ellipsis overflow-hidden whitespace-nowrap mt-0.5" title="Software Engineering Manager at Hammer Technologies an Infovista Business">Software Engineering Manager<!-- --> at <!-- -->Hammer Technologies an Infovista Business</span></span></a><p class="text-sm overflow-x-auto mt-2 text-bodyTxtLight">I’m Yakaiah, a Software Engineering Manager with over a decade of experience in building enterprise-grade solutions.</p><div class="mt-4"><div class="w-full flex justify-start"><div class="w-full"><form class="w-full flex flex-col items-start gap-2 "><div class="flex w-full"><input class="p-2 flex-grow border rounded-l-md text-lightText bg-light focus:outline-none focus:ring-0 focus:ring-transparent border-lightBorder w-full text-base px-2}
|
||
}" placeholder="name@company.com" type="email" required="" name="email" value=""/><button type="submit" class="text-base}
|
||
bg-lightAlt border border-l-0 border-lightBorder hover:bg-green-700 text-lightText hover:bg-dark hover:text-darkText px-2 py-1 rounded-r-md font-bold">Subscribe</button></div></form></div></div></div></div></div></div></div></span><div class="flex gap-2 items-center cursor-pointer"><span class="hidden sm:block w-1 h-1 bg-lightTextLight mx-4 rounded-full"></span><a href="/archives/2025/06/05"><span class="text-xs xs:text-sm lg:text-base">June 5th, 2025</span></a></div></div><div class="hidden xl:block"><div class=" flex items-center gap-4 "><span class="tooltip tooltip-left tooltip-left w-7 h-7 flex items-center justify-center cursor-pointer" data-tip="Terminal Reader"><img alt="Read on Terminal Reader" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://hackernoon.imgix.net/computer.png?auto=format%2Ccompress&w=32 1x, https://hackernoon.imgix.net/computer.png?auto=format%2Ccompress&w=48 2x" src="https://hackernoon.imgix.net/computer.png?auto=format%2Ccompress&w=48"/></span><span class="tooltip tooltip-left tooltip-left w-7 h-7 flex items-center justify-center cursor-pointer" data-tip="Print this story"><img alt="Print this story" data-tip="true" data-for="print-page" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://hackernoon.imgix.net/images/Print%20Icon%20%4025px.png?auto=format%2Ccompress&w=32 1x, https://hackernoon.imgix.net/images/Print%20Icon%20%4025px.png?auto=format%2Ccompress&w=48 2x" src="https://hackernoon.imgix.net/images/Print%20Icon%20%4025px.png?auto=format%2Ccompress&w=48"/></span><span class="tooltip tooltip-left tooltip-left w-7 h-7 flex items-center justify-center cursor-pointer" data-tip="Read this story w/o Javascript"><img alt="Read this story w/o Javascript" data-tip="true" data-for="arweave-backup" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://hackernoon.imgix.net/images/Lite%20Icon%20%4025px.png?auto=format%2Ccompress&w=32 1x, https://hackernoon.imgix.net/images/Lite%20Icon%20%4025px.png?auto=format%2Ccompress&w=48 2x" src="https://hackernoon.imgix.net/images/Lite%20Icon%20%4025px.png?auto=format%2Ccompress&w=48"/></span></div></div></div></div><div class="mb-2 "><div class="flex justify-between "><button class="flex m-1 px-2 xl:px-4 h-[40px] items-center font-[hackernoon2] bg-dark text-darkText text-xs sm:text-sm rounded-lg border border-lightBorder">TLDR <i class="hn hn-angle-right text-base ml-1 "></i></button><div class="flex items-center gap-2"><div class="hidden sm:block xl:hidden"><div class=" flex items-center gap-4 "><span class="tooltip tooltip-left undefined w-7 h-7 flex items-center justify-center cursor-pointer" data-tip="Terminal Reader"><img alt="Read on Terminal Reader" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://hackernoon.imgix.net/computer.png?auto=format%2Ccompress&w=32 1x, https://hackernoon.imgix.net/computer.png?auto=format%2Ccompress&w=48 2x" src="https://hackernoon.imgix.net/computer.png?auto=format%2Ccompress&w=48"/></span><span class="tooltip tooltip-left undefined w-7 h-7 flex items-center justify-center cursor-pointer" data-tip="Print this story"><img alt="Print this story" data-tip="true" data-for="print-page" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://hackernoon.imgix.net/images/Print%20Icon%20%4025px.png?auto=format%2Ccompress&w=32 1x, https://hackernoon.imgix.net/images/Print%20Icon%20%4025px.png?auto=format%2Ccompress&w=48 2x" src="https://hackernoon.imgix.net/images/Print%20Icon%20%4025px.png?auto=format%2Ccompress&w=48"/></span><span class="tooltip tooltip-left undefined w-7 h-7 flex items-center justify-center cursor-pointer" data-tip="Read this story w/o Javascript"><img alt="Read this story w/o Javascript" data-tip="true" data-for="arweave-backup" loading="lazy" width="20" height="20" decoding="async" data-nimg="1" style="color:transparent" srcSet="https://hackernoon.imgix.net/images/Lite%20Icon%20%4025px.png?auto=format%2Ccompress&w=32 1x, https://hackernoon.imgix.net/images/Lite%20Icon%20%4025px.png?auto=format%2Ccompress&w=48 2x" src="https://hackernoon.imgix.net/images/Lite%20Icon%20%4025px.png?auto=format%2Ccompress&w=48"/></span></div></div><div class="xl:hidden"></div></div><div class="hidden xl:flex items-center flex-wrap gap-2"></div></div></div></div></div></div><div class="max-w-[1200px] mx-auto"><div class="flex items-center justify-center w-full h-full"><div class="relative group cursor-zoom-in transition-transform hover:scale-[1.01] max-w-full mx-auto px-[14px] md:px-0 w-full"><button class="absolute top-2 right-5 z-10 w-6 h-6 rounded flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity"><i class="hn hn-download text-darkText bg-dark p-2 rounded-xl text-base"></i></button><img alt="featured image - Beyond High Availability: Disaster Recovery Architectures That Keep Running When HA Fails" fetchPriority="high" loading="eager" width="3956" height="2220" decoding="async" data-nimg="1" class="w-full h-auto object-contain rounded-lg shadow-lg my-0" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3956 2220'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/svg+xml;base64,CiAgICA8c3ZnIHdpZHRoPSIzOTU2IiBoZWlnaHQ9IjIyMjAiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICAgIDxkZWZzPgogICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iZyI+CiAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjIyIiBvZmZzZXQ9IjIwJSIgLz4KICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMwZjAiIG9mZnNldD0iNTAlIiAvPgogICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzIyMiIgb2Zmc2V0PSI4MCUiIC8+CiAgICAgICAgPC9saW5lYXJHcmFkaWVudD4KICAgICAgPC9kZWZzPgogICAgICA8cmVjdCB3aWR0aD0iMzk1NiIgaGVpZ2h0PSIyMjIwIiBmaWxsPSIjMjIyIiAvPgogICAgICA8cmVjdCBpZD0iciIgd2lkdGg9IjM5NTYiIGhlaWdodD0iMjIyMCIgZmlsbD0idXJsKCNnKSIgLz4KICAgICAgPGFuaW1hdGUgeGxpbms6aHJlZj0iI3IiIGF0dHJpYnV0ZU5hbWU9IngiIGZyb209Ii0zOTU2IiB0bz0iMzk1NiIgZHVyPSIxcyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiICAvPgogICAgPC9zdmc+'/%3E%3C/svg%3E")" sizes="(max-width: 768px) 100vw, 1200px" srcSet="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=640 640w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=750 750w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=828 828w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=1080 1080w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=1200 1200w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=1920 1920w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=2048 2048w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=3840 3840w" src="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg?auto=format%2Ccompress&w=3840"/></div></div></div><div class="px-2 xs:px-4 3xl:px-0 my-4 sm:mt-4 sm:mb-6 max-w-[1200px] 6xl:max-w-[1200px] mx-auto "><div class="w-full flex flex-col justify-center rounded-lg"><audio src="https://storage.googleapis.com/hackernoon/audios/rCHvjg7kt4ZxaaAg0uMs-en-US-Wavenet-I-MALE--6d9645fed9ac1.mp3" preload="metadata">Your browser does not support the <code>audio</code> element.</audio><div class="hidden sm:flex justify-between items-center "><span></span></div><div class="flex gap-2 items-center"><div class="flex items-center justify-center mx-auto gap-2 xs:gap-4 lg:gap-6 flex-1"><button aria-label="play/pause" class="text-darkAccent max-w-[40px] max-h-[40px] sm:min-w-[48px] sm:min-h-[48px] border order-1 border-darkBorder bg-dark p-2 rounded-full flex items-center justify-center" title="Play/Pause"><i class="hn hn-play-solid text-base xs:text-lg sm:text-2xl "></i></button><div class="dropdown order-2 dropdown-hover"><label tabindex="0" class="flex items-center hn hn-playlist-solid text-base xs:text-lg sm:text-xl lg:text-2xl rounded-lg " title="Speed & Voice"></label><ul tabindex="0" class="dropdown-content border z-40 menu p-4 shadow bg-light rounded-box w-60"><div class="text-lightText flex bg-light p-2 rounded w-full mb-2 items-center justify-between"><span class="text-xs font-bold">Speed</span><button class="bg-lightAlt ml-2 px-4 py-2 rounded-full text-sm font-bold min-w-[100px]">1x</button></div><div class="text-lightText flex flex-col bg-light p-2 rounded w-full"><span class="text-xs font-bold mb-2">Voice</span><div class="flex flex-col gap-2 max-h-60 overflow-auto pr-1"><button class="bg-lightAlt px-3 py-2 rounded-lg text-sm font-bold text-left flex items-center justify-between ring-2 ring-green-600"><span class="truncate mr-2">Dr. One </span><img src="https://hackernoon.imgix.net/avatars/robot-b5.png" alt="Dr. One (en-US)" class="w-6 h-6 rounded-full"/></button><button class="bg-lightAlt px-3 py-2 rounded-lg text-sm font-bold text-left flex items-center justify-between "><span class="truncate mr-2">Ms. Hacker </span><img src="https://hackernoon.imgix.net/avatars/robot-b6.png" alt="Ms. Hacker (en-US)" class="w-6 h-6 rounded-full"/></button></div></div></ul></div><div class="flex gap-2 order-3 sm:items-center sm:flex-row w-full"><div class="rounded-lg flex-1 bg-lightAccentTextAlt relative"><div class="hidden lg:block"><div class="relative max-w-[1000px] h-full flex items-center cursor-pointer rounded-lg "><canvas class="bg-transparent absolute top-0 left-0 w-full h-full rounded-lg "></canvas><div></div><div class=" top-0 left-0 h-full overflow-hidden bg-lightAccentAlt border rounded-l-lg" style="width:0px"><canvas class="bg-transparent w-full h-full text-green-500"></canvas></div></div></div><div class="hidden sm:block lg:hidden"><div class="relative max-w-[1000px] h-full flex items-center cursor-pointer rounded-lg "><canvas class="bg-transparent absolute top-0 left-0 w-full h-full rounded-lg "></canvas><div></div><div class=" top-0 left-0 h-full overflow-hidden bg-lightAccentAlt border rounded-l-lg" style="width:0px"><canvas class="bg-transparent w-full h-full text-green-500"></canvas></div></div></div><div class="w-full sm:hidden"><div class="relative max-w-[1000px] h-full flex items-center cursor-pointer rounded-lg "><canvas class="bg-transparent absolute top-0 left-0 w-full h-full rounded-lg "></canvas><div></div><div class=" top-0 left-0 h-full overflow-hidden bg-lightAccentAlt border rounded-l-lg" style="width:0px"><canvas class="bg-transparent w-full h-full text-green-500"></canvas></div></div></div></div><div class="hidden lg:ml-2 sm:block"></div><div class=" flex items-center sm:hidden"></div></div></div></div></div></div><div class=" flex xl:hidden bg-light z-10 mx-auto gap-4 items-center border-y sticky top-[62px] sm:top-[80px] py-2 sm:py-0 "><div class="w-full max-w-[1200px] mx-auto px-4 flex justify-between items-center"><div class="6xl:hidden dropdown dropdown-bottom dropdown-hover"><div tabindex="0" role="button" class="flex text-sm rounded-lg py-2"><div class="mr-2 flex -space-x-2 items-center "><div class=""><img alt="Yakaiah Bommishetti" loading="lazy" width="48" height="48" decoding="async" data-nimg="1" class="w-10 h-10 sm:w-12 sm:h-12 bg-light relative border border-lightBorder rounded-full object-contain" style="color:transparent;z-index:1" srcSet="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=48 1x, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=96 2x" src="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=96"/></div></div><div class="flex-col hidden sm:flex flex-wrap"><span class="font-bold mx-2 text-xs"><span class="text-xs font-light mr-1">by</span>Yakaiah Bommishetti</span><span class="text-sm ml-2">@<!-- -->ybommishetti</span></div></div><ul tabindex="0" class="dropdown-content menu w-[300px] py-1 left-[-20px] bg-light px-1 ml-4 rounded-b-lg 3xl:border-none rounded-boxabsolute z-50"><div class="flex w-full flex-col gap-4"><div><div class="w-full "><div class=" p-4 border border-lightBorder bg-light rounded-lg"><a href="/u/ybommishetti" target="_blank" rel="noopener noreferrer" class="flex items-start text-sm rounded-lg group gap-2"><div class=""><img alt="Yakaiah Bommishetti" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="w-10 h-9 border-solid border border-lightBorder rounded-full object-contain" style="color:transparent" srcSet="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=48 1x, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=96 2x" src="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=96"/></div><span class="flex flex-col min-w-0 w-full justify-center"><span class="flex items-center gap-1 text-ellipsis overflow-hidden whitespace-nowrap"><span class="font-bold group-hover:underline text-xs truncate"><span class="text-xs font-light mr-1">by</span>Yakaiah Bommishetti</span><span class="text-xs font-light opacity-50">|</span><span class="text-sm false text-ellipsis overflow-hidden whitespace-nowrap" title="@ybommishetti">@<!-- -->ybommishetti</span></span><span class="text-xs text-ellipsis overflow-hidden whitespace-nowrap mt-0.5" title="Software Engineering Manager at Hammer Technologies an Infovista Business">Software Engineering Manager<!-- --> at <!-- -->Hammer Technologies an Infovista Business</span></span></a><p class="text-sm overflow-x-auto mt-2 text-bodyTxtLight">I’m Yakaiah, a Software Engineering Manager with over a decade of experience in building enterprise-grade solutions.</p><div class="mt-4"><div class="w-full flex justify-start"><div class="w-full"><form class="w-full flex flex-col items-start gap-2 "><div class="flex w-full"><input class="p-2 flex-grow border rounded-l-md text-lightText bg-light focus:outline-none focus:ring-0 focus:ring-transparent border-lightBorder w-full text-base px-2}
|
||
}" placeholder="name@company.com" type="email" required="" name="email" value=""/><button type="submit" class="text-base}
|
||
bg-lightAlt border border-l-0 border-lightBorder hover:bg-green-700 text-lightText hover:bg-dark hover:text-darkText px-2 py-1 rounded-r-md font-bold">Subscribe</button></div></form></div></div></div></div></div></div><div class="xl:hidden"><div class="group transition-all duration-300"><div class="p-2 border border-lightBorder bg-light rounded-lg transition-all duration-300 pb-0"><span class="font-bold mx-2 text-sm text-lightTextLight">Story's Credibility</span><div class="
|
||
mt-2 flex gap-2 flex-wrap m-2 transition-all duration-300 ease-in-out
|
||
flex-row
|
||
"><div class="flex items-start gap-2 text-sm rounded-lg max-w-[250px]
|
||
transition-all duration-300 ease-in-out p-1
|
||
|
||
|
||
cursor-default"><img alt="Review" loading="lazy" width="16" height="16" decoding="async" data-nimg="1" class="w-4 h-4 rounded-full transition-transform duration-300 group-hover:scale-105 cursor-pointer" style="color:transparent" srcSet="https://hackernoon.imgix.net/images/img-s303rqx.png?auto=format%2Ccompress&w=32 1x" src="https://hackernoon.imgix.net/images/img-s303rqx.png?auto=format%2Ccompress&w=32"/></div></div></div></div></div></div></ul></div><div class="w-[200px] 6xl:hidden"><div class=" flex flex-row flex-row-reverse items-start gap-4 "><span class="tooltip tooltip-left cursor-pointer" data-tip="Bookmark"><button class="3xl:hover:bg-lightAlt hover:bg-light p-1 md:p-2 rounded h-[40px] w-[40px] flex items-center justify-center border border-lightBorder"><i class="hn hn-bookmark text-lightText text-2xl"></i></button></span><span class="tooltip tooltip-left cursor-pointer" data-tip="Comment"><button class="3xl:hover:bg-lightAlt hover:bg-light p-1 md:p-2 rounded h-[40px] w-[40px] flex items-center justify-center border border-lightBorder"><i class="hn hn-comment text-lightText text-2xl"></i></button></span><div class="dropdown dropdown-bottom dropdown-hover group "><label tabindex="0" class="flex items-center cursor-pointer justify-center border border-lightBorder 3xl:group-hover:bg-lightAlt group-hover:bg-light h-[40px] w-[40px] p-2 rounded "><i class="hn hn-share text-2xl"></i></label><ul tabindex="0" class="dropdown-content bg-light z-[1] py-4 px-4 3xl:px-0 3xl:py-2 border 3xl:border-none flex flex-col items-center justify-center gap-2 "><button class="border p-2 rounded hover:bg-lightAlt"><i class=" hn hn-copy text-lightText text-2xl "></i></button><button class="border p-2 rounded hover:bg-lightAlt"><i class="hn hn-facebook-round text-lightText text-2xl"></i></button><button class="border p-2 rounded hover:bg-lightAlt"><i class="hn hn-x text-lightText text-2xl"></i></button><button class="border p-2 rounded hover:bg-lightAlt"><i class="hn hn-linkedin text-lightText text-2xl"></i></button><a href="mailto:?subject=I'd like to share a link with you &body=" class="border p-2 rounded inline-block hover:bg-lightAlt"><i class="hn hn-envelope text-lightText text-2xl"></i></a></ul></div></div></div></div></div><div class="flex w-full min-w-0 max-w-[1100px] 2xl:max-w-[1200px] mx-auto justify-center flex-row gap-4 items-start mt-10 px-4 xl:px-0"><div class="hidden xl:flex xl:flex-col self-stretch"><div class="sticky top-[99px] z-40"><div class="dropdown z-25 dropdown-right dropdown-hover"><div class="mr-2 flex gap-2 flex-col justify-center flex-wrap items-center "><div class="relative h-12 w-12 bg-black rounded-full overflow-hidden flex-shrink-0"><img alt="Yakaiah Bommishetti" loading="lazy" decoding="async" data-nimg="fill" class="rounded-full object-contain " style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent;z-index:1" sizes="100vw" srcSet="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=640 640w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=750 750w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=828 828w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=1080 1080w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=1200 1200w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=1920 1920w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=2048 2048w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=3840 3840w" src="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=3840"/></div></div><ul tabindex="0" class="dropdown-content w-[280px] xs:w-[320px] sm:w-[400px] rounded-lg z-[100] bg-light flex flex-col items-center justify-center gap-2"><div class="flex w-full flex-col gap-4"><div><div class="w-full "><div class=" p-4 border border-lightBorder bg-light rounded-lg"><a href="/u/ybommishetti" target="_blank" rel="noopener noreferrer" class="flex items-start text-sm rounded-lg group gap-2"><div class=""><img alt="Yakaiah Bommishetti" loading="lazy" width="40" height="40" decoding="async" data-nimg="1" class="w-10 h-9 border-solid border border-lightBorder rounded-full object-contain" style="color:transparent" srcSet="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=48 1x, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=96 2x" src="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=96"/></div><span class="flex flex-col min-w-0 w-full justify-center"><span class="flex items-center gap-1 text-ellipsis overflow-hidden whitespace-nowrap"><span class="font-bold group-hover:underline text-xs truncate"><span class="text-xs font-light mr-1">by</span>Yakaiah Bommishetti</span><span class="text-xs font-light opacity-50">|</span><span class="text-sm false text-ellipsis overflow-hidden whitespace-nowrap" title="@ybommishetti">@<!-- -->ybommishetti</span></span><span class="text-xs text-ellipsis overflow-hidden whitespace-nowrap mt-0.5" title="Software Engineering Manager at Hammer Technologies an Infovista Business">Software Engineering Manager<!-- --> at <!-- -->Hammer Technologies an Infovista Business</span></span></a><p class="text-sm overflow-x-auto mt-2 text-bodyTxtLight">I’m Yakaiah, a Software Engineering Manager with over a decade of experience in building enterprise-grade solutions.</p><div class="mt-4"><div class="w-full flex justify-start"><div class="w-full"><form class="w-full flex flex-col items-start gap-2 "><div class="flex w-full"><input class="p-2 flex-grow border rounded-l-md text-lightText bg-light focus:outline-none focus:ring-0 focus:ring-transparent border-lightBorder w-full text-base px-2}
|
||
}" placeholder="name@company.com" type="email" required="" name="email" value=""/><button type="submit" class="text-base}
|
||
bg-lightAlt border border-l-0 border-lightBorder hover:bg-green-700 text-lightText hover:bg-dark hover:text-darkText px-2 py-1 rounded-r-md font-bold">Subscribe</button></div></form></div></div></div></div></div></div><div class="xl:hidden"><div class="group transition-all duration-300"><div class="p-2 border border-lightBorder bg-light rounded-lg transition-all duration-300 pb-0"><span class="font-bold mx-2 text-sm text-lightTextLight">Story's Credibility</span><div class="
|
||
mt-2 flex gap-2 flex-wrap m-2 transition-all duration-300 ease-in-out
|
||
flex-row
|
||
"><div class="flex items-start gap-2 text-sm rounded-lg max-w-[250px]
|
||
transition-all duration-300 ease-in-out p-1
|
||
|
||
|
||
cursor-default"><img alt="Review" loading="lazy" width="16" height="16" decoding="async" data-nimg="1" class="w-4 h-4 rounded-full transition-transform duration-300 group-hover:scale-105 cursor-pointer" style="color:transparent" srcSet="https://hackernoon.imgix.net/images/img-s303rqx.png?auto=format%2Ccompress&w=32 1x" src="https://hackernoon.imgix.net/images/img-s303rqx.png?auto=format%2Ccompress&w=32"/></div></div></div></div></div></div></ul></div></div></div><div class="flex-1 flex flex-col justify-center min-w-0 w-full"><div class=""><div class="story-body font-sans w-full min-w-0"><div class="prose max-w-[1020px] w-full min-w-0 xs:p-0 lg:px-0 prose-a:break-words prose-table:table prose-div:bg-transparent prose-table:!table prose-table:max-w-full prose-table:w-full prose-td_a:whitespace-nowrap prose-td_a:break-keep prose-td_a:overflow-wrap-normal prose-td_a:word-break-normal [&_th]:!hyphens-none [&_td]:!hyphens-none [&_th]:!break-normal [&_td]:!break-normal [&_th]:![overflow-wrap:normal] [&_td]:![overflow-wrap:break-word] [&_th]:whitespace-nowrap xs:prose-table:mx-auto prose-table:overflow-x-auto leading-relaxed prose-p:text-lightTextLight prose-strong:text-lightTextStrong prose-strong:font-bold prose-small:text-lightTextLight prose-small:font-light prose-a:text-lightTextLight prose-p:mx-0 prose-p:my-2 prose [&_.line-space]:my-0 prose-p:my-2 prose-p:text-base sm:prose-p:text-lg prose-blockquote:my-0 prose-blockquote:border-l-[5px] prose-blockquote:border-lightTextAccent prose-blockquote:pl-4 prose-blockquote:leading-relaxed prose-blockquote:text-lightText prose-h2:text-lightTextStrong prose-li:marker:text-lightText prose-h2:text-xl sm:prose-h2:text-3xl prose-h2:font-bold prose-h2:my-6 prose-h3:text-lightTextStrong prose-hr:m-2 prose-h3:text-xl sm:prose-h3:text-2xl prose-h3:font-bold prose-h3:my-5 prose-h4:text-xl prose-h4:font-bold prose-h4:my-4 prose-td:text-lightTextLight prose-td:border prose-td:border-lightBorder prose-td:px-2 prose-td:[&_p]:my-0 prose-th:[&_p]:my-0 prose-th:text-lightTextLight prose-th:border prose-th:border-lightBorder prose-th:px-2 prose-li:text-lg prose-li:text-lightTextLight prose-li:px-0 prose-li:mb-3 prose-li:ml-3 prose-li:leading-relaxed prose-ul:pl-2 prose-ul:sm:pl-8 prose-ol:pl-2 prose-ol:sm:pl-8 hover:prose-a:text-lightTextAccent prose-a:rounded prose-code:text-lightTextLight prose-code:break-all prose-pre:rounded-lg prose-pre:text-sm prose-pre:my-4 prose-pre:p-3 prose-pre:overflow-x-scroll prose-pre:whitespace-pre-wrap prose-pre:break-words "><div class="w-full flex items-center justify-center "><h2 id="h-introduction">Introduction</h2>
|
||
<p>Highly available systems fail catastrophically even though they promise 99.99% uptime. HA architectures could experience failures because of regional cloud outages and ransomware attacks and human errors. Organizations need to establish disaster recovery as a separate rigorous discipline to achieve true system resilience beyond high availability.</p>
|
||
<p>The complete strategy for restoring operations after catastrophic failures defines Disaster Recovery (DR). The range of failures extends past hardware malfunctions because it encompasses software bugs and malicious attacks and data corruption and complete cloud region failures. HA mainly focuses on preventing failure, where DR assumes failure is inevitable and prepares the organization to recover quickly and effectively.</p>
|
||
<p>The article provides a clear explanation of Disaster Recovery through practical examples and architectural patterns together with specific guidance for software engineers and site reliability engineers and infrastructure architects.</p>
|
||
<p class="line-space"> <br/> </p><hr/>
|
||
<h2 id="h-ha-vs-dr-the-critical-distinction">HA vs DR: The Critical Distinction</h2>
|
||
<p>High Availability (HA) and Disaster Recovery (DR) operate as separate components which work together to enhance system resilience. Here’s how they differ:</p>
|
||
<p class="line-space"> <br/> </p><table><tbody><tr><th>
|
||
<p><strong>Attribute</strong></p></th><th>
|
||
<p><strong>High Availability</strong></p></th><th>
|
||
<p><strong>Disaster Recovery</strong></p></th></tr><tr><td>
|
||
<p>Scope</p></td><td>
|
||
<p>Localized Failures</p></td><td>
|
||
<p>Regional/Catastrophic Failures</p></td></tr><tr><td>
|
||
<p>Examples</p></td><td>
|
||
<p>Node crashes, AZ outages</p></td><td>
|
||
<p>Data deletion, region loss, ransomware</p></td></tr><tr><td>
|
||
<p>Objective</p></td><td>
|
||
<p>Maintain uptime</p></td><td>
|
||
<p>Restore services and data post-disaster</p></td></tr><tr><td>
|
||
<p>Tools</p></td><td>
|
||
<p>Clusters, Load Balancers, Auto-scaling</p></td><td>
|
||
<p>Backups, Replication, Multi-site deployments</p></td></tr><tr><td>
|
||
<p>Focus</p></td><td>
|
||
<p>Prevention</p></td><td>
|
||
<p>Restoration</p></td></tr></tbody></table>
|
||
<p class="line-space"> <br/> </p><p><strong>Example:</strong> A Kubernetes cluster using <strong>pod anti-affinity</strong> and <strong>multi-AZ deployment</strong> ensures high availability within a single region. If one Availability Zone (AZ) fails, pods are rescheduled to healthy zones, keeping the app running.</p><p>However, this setup won’t help during a <strong>region-wide outage</strong>, <strong>cloud misconfiguration</strong>, or <strong>accidental deletion</strong> of resources, all of which can bring the entire system down.</p>
|
||
<p>That’s why <strong>Disaster Recovery (DR) plan</strong> with <strong>backups</strong>, <strong>replication to another region</strong>, and <strong>failover automation</strong> will help to recover applications and data in case of major failures.</p>
|
||
<p>High Availability keeps things stable in small failures. <strong>DR is the safety net for large-scale disasters.</strong></p>
|
||
<p class="line-space"> <br/> </p><hr/>
|
||
<h2 id="h-real-world-incidents-why-dr-is-critical-not-optional">Real-World Incidents: Why DR Is Critical, Not Optional</h2>
|
||
<p>People generally consider Disaster Recovery as an insurance policy because it serves as protection against unexpected events yet remains unused until disaster strikes. But history tells us otherwise, the system failures spread rapidly throughout large networks. The following major incidents demonstrate how systems become vulnerable without a proper DR strategy.</p>
|
||
<p class="line-space"> <br/> </p><ul>
|
||
<li>
|
||
<p><strong>GitLab (2017): Accidental Deletion and Faulty Backups</strong></p>
|
||
<p>A GitLab engineer who tried to resolve database lag problems ended up <strong>deleting the entire production PostgreSQL database</strong>. The hot standby database which served as a backup system immediately <strong>replicated the deletion operation</strong>. The team faced a severe service outage and data loss because their most recent backup was six hours old and their recovery process was untested and unreliable.</p>
|
||
<p><strong>Lesson:</strong> Real DR needs tested <strong>recovery procedures</strong> together with <strong>isolated backups</strong> and <strong>automated fallback</strong> mechanisms instead of redundant systems that replicate mistakes.</p>
|
||
</li>
|
||
</ul>
|
||
<p class="line-space"> <br/> </p><ul>
|
||
<li>
|
||
<p><strong>Code Spaces (2014): Cloud Account Hijack and Total Wipeout</strong></p>
|
||
<p>An attacker gained access to Code Spaces AWS control panel and proceeded to <strong>delete everything, EC2 instances, S3 buckets, backups, and even the DR configurations</strong>. Without <strong>offline or off-cloud backups</strong>, the company was unable to recover and had to <strong>shut down permanently</strong>.</p>
|
||
<p><strong>Lesson:</strong> Never put all your eggs in one basket especially not in one <strong>cloud account</strong>. DR must be <strong>offsite, offline, and immune to account level breaches</strong>.</p>
|
||
</li>
|
||
</ul>
|
||
<p class="line-space"> <br/> </p><ul>
|
||
<li>
|
||
<p><strong>Maersk (2017): NotPetya Malware Attack</strong></p>
|
||
<p>The global shipping giant was crippled by NotPetya, a malware that <strong>encrypted all Windows-based systems</strong>. Maersks entire global IT infrastructure went offline from terminals to email systems. Miraculously, one <strong>domain controller in Ghana</strong> survived because it was <strong>offline during the attack</strong> due to a local power outage. Using that, Maersk was able to recover, but it took <strong>over 10 days and $300 million</strong> in damages.</p>
|
||
<p><strong>Lesson:</strong> Sometimes <strong>offline backups</strong> are the only survivors. A resilient DR plan includes <strong>geographically isolated systems and malware resistant recovery points</strong>.</p>
|
||
<p class="line-space"> <br/> </p></li>
|
||
<li>
|
||
<p><strong>Facebook (2021): BGP Misconfiguration Takes Down Entire Network</strong></p>
|
||
<p>A faulty <strong>BGP</strong> (Border Gateway Protocol) <strong>configuration update</strong> knocked Facebook and all its services (Instagram, WhatsApp, Messenger) offline globally for hours. Internal tools were also inaccessible because they were hosted on the same network, locking engineers out from fixing the problem quickly.</p>
|
||
<p><strong>Lesson:</strong> DR isn’t just about data, it’s also about <strong>accessibility and operational recovery</strong>. Keep recovery tools in <strong>isolated environments</strong> that can function when the primary environment fails.</p>
|
||
<p class="line-space"> <br/> </p></li>
|
||
</ul>
|
||
<p><strong>Key Takeaways:</strong></p>
|
||
<ul>
|
||
<li>The implementation of backups as DR requires automated processes which must be located offsite and tested at regular intervals.</li>
|
||
<li>DR infrastructure requires separation logical, geographical and sometimes provider-based.</li>
|
||
<li>The ability to recover from failures stands above the need for redundant systems.</li>
|
||
<li>Businesses should prepare for actual threats which include human mistakes and security breaches and natural disasters.</li>
|
||
</ul>
|
||
<p>A properly developed DR plan converts major disasters into manageable disruptions. The absence of a recovery plan makes business recovery dangerous because some organizations never get to try again.</p>
|
||
<p class="line-space"> <br/> </p><hr/>
|
||
<h2 id="h-key-metrics-in-disaster-recovery-rto-and-rpo">Key Metrics in Disaster Recovery: RTO and RPO</h2>
|
||
<p>The process of designing a disaster recovery (DR) plan requires more than system restoration because it needs to achieve both timely recovery and minimal data loss. Two critical metrics guide this:</p>
|
||
<p class="line-space"> <br/> </p><ul>
|
||
<li>
|
||
<p><strong>Recovery Time Objective (RTO)</strong></p>
|
||
<p>The <strong>maximum allowable time</strong> your system or service can be down after a failure before it must be restored.</p>
|
||
<ul>
|
||
<li>
|
||
<p>Think of it as your <strong>downtime tolerance</strong>.</p>
|
||
</li>
|
||
<li>
|
||
<p>It defines <strong>how quickly</strong> services must be restored to avoid serious business impact.</p>
|
||
<p class="line-space"> <br/> </p></li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<p><strong>Recovery Point Objective (RPO)</strong></p>
|
||
<p>The <strong>maximum acceptable amount of data loss</strong>, measured in time, from the moment of failure.</p>
|
||
<ul>
|
||
<li>It answers the question: <strong>How much data can we afford to lose?</strong></li>
|
||
<li>It reflects <strong>how frequently</strong> you need to back up data.</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p><strong>Example:</strong></p>
|
||
<p>Let’s say an outage happens at <strong>12:00 PM</strong>.</p>
|
||
<ul>
|
||
<li>Your <strong>RTO is 1 hour</strong>
|
||
<ul>
|
||
<li>You must fully recover and have services running again by <strong>1:00 PM</strong>.</li>
|
||
</ul>
|
||
</li>
|
||
<li>Your <strong>RPO is 15 minutes</strong>
|
||
<ul>
|
||
<li>You must recover data <strong>as it existed by 11:45 AM</strong>.</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p>That means any transactions or updates made between <strong>11:45 AM and 12:00 PM</strong> may be lost and your systems should be designed to handle that loss.</p>
|
||
<p><strong>Key Takeaways:</strong></p>
|
||
<ul>
|
||
<li>RTO = <strong>How fast you recover.</strong></li>
|
||
<li>RPO = <strong>How much data you can afford to lose.</strong></li>
|
||
<li>Stricter RTO and RPO means <strong>higher cost and complexity.</strong></li>
|
||
<li>Your <strong>business SLAs (Service Level Agreements)</strong> should drive RTO/RPO targets not the other way around.</li>
|
||
<li>RTO and RPO influence your <strong>technology choices</strong>, <strong>backup frequency</strong>, <strong>network design</strong>, and <strong>failover approach</strong>.</li>
|
||
</ul>
|
||
<p class="line-space"> <br/> </p><hr/>
|
||
<h2 id="h-disaster-recovery-architectures">Disaster Recovery Architectures</h2>
|
||
<p>Each DR model represents a different trade-off between cost, complexity, RTO, and RPO. Let’s examine them</p>
|
||
<h3 id="h-backup-and-restore-cold-dr-architecture"><strong>Backup and Restore (Cold DR) Architecture</strong></h3>
|
||
<p><strong>Overview</strong>: Simple backups stored in object storage (e.g., Amazon S3, Azure Blob, Google Cloud Storage).</p>
|
||
<p><strong>Architecture:</strong></p>
|
||
<div><div class="w-full my-4"><div class="flex items-center justify-center w-full h-full"><div class="relative group cursor-zoom-in transition-transform hover:scale-[1.01] max-w-full mx-auto flex flex-col items-center"><button class="absolute top-2 right-5 z-10 w-6 h-6 rounded flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity"><i class="hn hn-download text-darkText bg-dark p-2 rounded-xl text-base"></i></button><img alt="Cold DR Architecture" fetchPriority="low" loading="lazy" width="1290" height="922" decoding="async" data-nimg="1" class="w-full h-auto object-contain rounded-lg shadow-lg my-0" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1290 922'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/svg+xml;base64,CiAgICA8c3ZnIHdpZHRoPSIxMjkwIiBoZWlnaHQ9IjkyMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgICAgPGRlZnM+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJnIj4KICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMyMjIiIG9mZnNldD0iMjAlIiAvPgogICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzBmMCIgb2Zmc2V0PSI1MCUiIC8+CiAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjIyIiBvZmZzZXQ9IjgwJSIgLz4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICA8L2RlZnM+CiAgICAgIDxyZWN0IHdpZHRoPSIxMjkwIiBoZWlnaHQ9IjkyMiIgZmlsbD0iIzIyMiIgLz4KICAgICAgPHJlY3QgaWQ9InIiIHdpZHRoPSIxMjkwIiBoZWlnaHQ9IjkyMiIgZmlsbD0idXJsKCNnKSIgLz4KICAgICAgPGFuaW1hdGUgeGxpbms6aHJlZj0iI3IiIGF0dHJpYnV0ZU5hbWU9IngiIGZyb209Ii0xMjkwIiB0bz0iMTI5MCIgZHVyPSIxcyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiICAvPgogICAgPC9zdmc+'/%3E%3C/svg%3E")" srcSet="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-i40396l.jpeg?auto=format%2Ccompress&w=1920 1x, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-i40396l.jpeg?auto=format%2Ccompress&w=3840 2x" src="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-i40396l.jpeg?auto=format%2Ccompress&w=3840"/><small class="flex justify-center text-xs font-bold text-lightTextLight py-2">Cold DR Architecture</small></div></div></div></div>
|
||
<p><strong>Use Case:</strong> Non-critical systems, dev/test environments.</p>
|
||
<ul>
|
||
<li>
|
||
<p><strong>Pros</strong>: Low cost, minimal operational overhead.</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>Cons</strong>: Recovery is slow; backups must be regularly tested.</p>
|
||
<p class="line-space"> <br/> </p></li>
|
||
</ul>
|
||
<h3 id="h-pilot-light-architecture"><strong>Pilot Light Architecture</strong></h3>
|
||
<p><strong>Overview</strong>: Maintain minimal resources (example: replicated DB, basic network setup) in DR region. Provision app servers only during failover.</p>
|
||
<p><strong>Architecture:</strong></p>
|
||
<div><div class="w-full my-4"><div class="flex items-center justify-center w-full h-full"><div class="relative group cursor-zoom-in transition-transform hover:scale-[1.01] max-w-full mx-auto flex flex-col items-center"><button class="absolute top-2 right-5 z-10 w-6 h-6 rounded flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity"><i class="hn hn-download text-darkText bg-dark p-2 rounded-xl text-base"></i></button><img alt="Pilot Light Architecture" fetchPriority="low" loading="lazy" width="1287" height="963" decoding="async" data-nimg="1" class="w-full h-auto object-contain rounded-lg shadow-lg my-0" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1287 963'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/svg+xml;base64,CiAgICA8c3ZnIHdpZHRoPSIxMjg3IiBoZWlnaHQ9Ijk2MyIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgICAgPGRlZnM+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJnIj4KICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMyMjIiIG9mZnNldD0iMjAlIiAvPgogICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzBmMCIgb2Zmc2V0PSI1MCUiIC8+CiAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjIyIiBvZmZzZXQ9IjgwJSIgLz4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICA8L2RlZnM+CiAgICAgIDxyZWN0IHdpZHRoPSIxMjg3IiBoZWlnaHQ9Ijk2MyIgZmlsbD0iIzIyMiIgLz4KICAgICAgPHJlY3QgaWQ9InIiIHdpZHRoPSIxMjg3IiBoZWlnaHQ9Ijk2MyIgZmlsbD0idXJsKCNnKSIgLz4KICAgICAgPGFuaW1hdGUgeGxpbms6aHJlZj0iI3IiIGF0dHJpYnV0ZU5hbWU9IngiIGZyb209Ii0xMjg3IiB0bz0iMTI4NyIgZHVyPSIxcyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiICAvPgogICAgPC9zdmc+'/%3E%3C/svg%3E")" srcSet="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-fy139s9.jpeg?auto=format%2Ccompress&w=1920 1x, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-fy139s9.jpeg?auto=format%2Ccompress&w=3840 2x" src="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-fy139s9.jpeg?auto=format%2Ccompress&w=3840"/><small class="flex justify-center text-xs font-bold text-lightTextLight py-2">Pilot Light Architecture</small></div></div></div></div>
|
||
<p><strong>Use Case</strong>: Moderately critical workloads.</p>
|
||
<ul>
|
||
<li>
|
||
<p><strong>Pros</strong>: Cost-effective with moderate recovery times.</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>Cons</strong>: Requires automated provisioning scripts, failover orchestration.</p>
|
||
<p class="line-space"> <br/> </p></li>
|
||
</ul>
|
||
<h3 id="h-warm-standby-architecture">Warm Standby <strong>Architecture</strong></h3>
|
||
<p><strong>Overview</strong>: All DR infrastructure is provisioned and partially scaled. DR Services run with reduced load and periodically verified.</p>
|
||
<p><strong>Architecture:</strong></p>
|
||
<div><div class="w-full my-4"><div class="flex items-center justify-center w-full h-full"><div class="relative group cursor-zoom-in transition-transform hover:scale-[1.01] max-w-full mx-auto flex flex-col items-center"><button class="absolute top-2 right-5 z-10 w-6 h-6 rounded flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity"><i class="hn hn-download text-darkText bg-dark p-2 rounded-xl text-base"></i></button><img alt="Warm Standby Architecture" fetchPriority="low" loading="lazy" width="1323" height="958" decoding="async" data-nimg="1" class="w-full h-auto object-contain rounded-lg shadow-lg my-0" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1323 958'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/svg+xml;base64,CiAgICA8c3ZnIHdpZHRoPSIxMzIzIiBoZWlnaHQ9Ijk1OCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgICAgPGRlZnM+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJnIj4KICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMyMjIiIG9mZnNldD0iMjAlIiAvPgogICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzBmMCIgb2Zmc2V0PSI1MCUiIC8+CiAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjIyIiBvZmZzZXQ9IjgwJSIgLz4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICA8L2RlZnM+CiAgICAgIDxyZWN0IHdpZHRoPSIxMzIzIiBoZWlnaHQ9Ijk1OCIgZmlsbD0iIzIyMiIgLz4KICAgICAgPHJlY3QgaWQ9InIiIHdpZHRoPSIxMzIzIiBoZWlnaHQ9Ijk1OCIgZmlsbD0idXJsKCNnKSIgLz4KICAgICAgPGFuaW1hdGUgeGxpbms6aHJlZj0iI3IiIGF0dHJpYnV0ZU5hbWU9IngiIGZyb209Ii0xMzIzIiB0bz0iMTMyMyIgZHVyPSIxcyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiICAvPgogICAgPC9zdmc+'/%3E%3C/svg%3E")" srcSet="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-5y239t5.jpeg?auto=format%2Ccompress&w=1920 1x, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-5y239t5.jpeg?auto=format%2Ccompress&w=3840 2x" src="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-5y239t5.jpeg?auto=format%2Ccompress&w=3840"/><small class="flex justify-center text-xs font-bold text-lightTextLight py-2">Warm Standby Architecture</small></div></div></div></div>
|
||
<p><strong>Use Case</strong>: Applications with high SLAs and moderate budget.</p>
|
||
<ul>
|
||
<li>
|
||
<p><strong>Pros</strong>: Fast recovery, can validate live readiness</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>Cons</strong>: Ongoing cost for underutilized compute, config drift risks</p>
|
||
<p class="line-space"> <br/> </p></li>
|
||
</ul>
|
||
<h3 id="h-hot-standby-active-passive-architecture">Hot Standby (Active-Passive) <strong>Architecture</strong></h3>
|
||
<p><strong>Overview</strong>: Two identical environments, one active and one idle. Traffic is routed to active, and failover is manual or automatic.</p>
|
||
<p><strong>Architecture:</strong></p>
|
||
<div><div class="w-full my-4"><div class="flex items-center justify-center w-full h-full"><div class="relative group cursor-zoom-in transition-transform hover:scale-[1.01] max-w-full mx-auto flex flex-col items-center"><button class="absolute top-2 right-5 z-10 w-6 h-6 rounded flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity"><i class="hn hn-download text-darkText bg-dark p-2 rounded-xl text-base"></i></button><img alt="Hot Standby Architecture" fetchPriority="low" loading="lazy" width="1394" height="949" decoding="async" data-nimg="1" class="w-full h-auto object-contain rounded-lg shadow-lg my-0" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1394 949'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/svg+xml;base64,CiAgICA8c3ZnIHdpZHRoPSIxMzk0IiBoZWlnaHQ9Ijk0OSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgICAgPGRlZnM+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJnIj4KICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMyMjIiIG9mZnNldD0iMjAlIiAvPgogICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzBmMCIgb2Zmc2V0PSI1MCUiIC8+CiAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjIyIiBvZmZzZXQ9IjgwJSIgLz4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICA8L2RlZnM+CiAgICAgIDxyZWN0IHdpZHRoPSIxMzk0IiBoZWlnaHQ9Ijk0OSIgZmlsbD0iIzIyMiIgLz4KICAgICAgPHJlY3QgaWQ9InIiIHdpZHRoPSIxMzk0IiBoZWlnaHQ9Ijk0OSIgZmlsbD0idXJsKCNnKSIgLz4KICAgICAgPGFuaW1hdGUgeGxpbms6aHJlZj0iI3IiIGF0dHJpYnV0ZU5hbWU9IngiIGZyb209Ii0xMzk0IiB0bz0iMTM5NCIgZHVyPSIxcyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiICAvPgogICAgPC9zdmc+'/%3E%3C/svg%3E")" srcSet="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kb339u3.jpeg?auto=format%2Ccompress&w=1920 1x, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kb339u3.jpeg?auto=format%2Ccompress&w=3840 2x" src="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kb339u3.jpeg?auto=format%2Ccompress&w=3840"/><small class="flex justify-center text-xs font-bold text-lightTextLight py-2">Hot Standby Architecture</small></div></div></div></div>
|
||
<p><strong>Use Case</strong>: Healthcare, banking, regulated industries.</p>
|
||
<ul>
|
||
<li>
|
||
<p><strong>Pros</strong>: Nearly seamless failover, no data loss.</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>Cons</strong>: High infrastructure costs for unused capacity.</p>
|
||
<p class="line-space"> <br/> </p></li>
|
||
</ul>
|
||
<h3 id="h-active-active-multi-site-architecture">Active-Active (Multi-Site) <strong>Architecture</strong></h3>
|
||
<p><strong>Overview</strong>: Two or more regions handle live traffic. Each region has fully operational services.</p>
|
||
<p><strong>Architecture:</strong></p>
|
||
<div><div class="w-full my-4"><div class="flex items-center justify-center w-full h-full"><div class="relative group cursor-zoom-in transition-transform hover:scale-[1.01] max-w-full mx-auto flex flex-col items-center"><button class="absolute top-2 right-5 z-10 w-6 h-6 rounded flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity"><i class="hn hn-download text-darkText bg-dark p-2 rounded-xl text-base"></i></button><img alt="Active-Active Architecture" fetchPriority="low" loading="lazy" width="1400" height="899" decoding="async" data-nimg="1" class="w-full h-auto object-contain rounded-lg shadow-lg my-0" style="color:transparent;background-size:cover;background-position:50% 50%;background-repeat:no-repeat;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1400 899'%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='none' style='filter: url(%23b);' href='data:image/svg+xml;base64,CiAgICA8c3ZnIHdpZHRoPSIxNDAwIiBoZWlnaHQ9Ijg5OSIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgICAgPGRlZnM+CiAgICAgICAgPGxpbmVhckdyYWRpZW50IGlkPSJnIj4KICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiMyMjIiIG9mZnNldD0iMjAlIiAvPgogICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iIzBmMCIgb2Zmc2V0PSI1MCUiIC8+CiAgICAgICAgICA8c3RvcCBzdG9wLWNvbG9yPSIjMjIyIiBvZmZzZXQ9IjgwJSIgLz4KICAgICAgICA8L2xpbmVhckdyYWRpZW50PgogICAgICA8L2RlZnM+CiAgICAgIDxyZWN0IHdpZHRoPSIxNDAwIiBoZWlnaHQ9Ijg5OSIgZmlsbD0iIzIyMiIgLz4KICAgICAgPHJlY3QgaWQ9InIiIHdpZHRoPSIxNDAwIiBoZWlnaHQ9Ijg5OSIgZmlsbD0idXJsKCNnKSIgLz4KICAgICAgPGFuaW1hdGUgeGxpbms6aHJlZj0iI3IiIGF0dHJpYnV0ZU5hbWU9IngiIGZyb209Ii0xNDAwIiB0bz0iMTQwMCIgZHVyPSIxcyIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiICAvPgogICAgPC9zdmc+'/%3E%3C/svg%3E")" srcSet="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-s44392y.jpeg?auto=format%2Ccompress&w=1920 1x, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-s44392y.jpeg?auto=format%2Ccompress&w=3840 2x" src="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-s44392y.jpeg?auto=format%2Ccompress&w=3840"/><small class="flex justify-center text-xs font-bold text-lightTextLight py-2">Active-Active Architecture</small></div></div></div></div>
|
||
<p><strong>Use Case</strong>: Global SaaS platforms, e-commerce, 24/7 services.</p>
|
||
<ul>
|
||
<li>
|
||
<p><strong>Pros</strong>: Continuous availability, seamless user experience.</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>Cons</strong>: High complexity, data consistency issues, expensive.</p>
|
||
<p class="line-space"> <br/> </p></li>
|
||
</ul>
|
||
<hr/>
|
||
<h2 id="h-best-practices-for-disaster-recovery">Best Practices for Disaster Recovery</h2>
|
||
<ul>
|
||
<li>DR should operate in <strong>separate cloud accounts</strong> or projects to stop the spread of accidental deletions.</li>
|
||
<li>The implementation of object locking and versioning enables <strong>immutable backups</strong> to protect against tampering.</li>
|
||
<li>The first step should be <strong>automation</strong> because tools like Terraform, Ansible and Pulumi enable the deployment of complete DR environments within minutes.</li>
|
||
<li>The organization should maintain precise and current documentation for <strong>runbooks and DR procedures</strong> and contact lists.</li>
|
||
<li>The practice of simulating failure scenarios through <strong>Chaos Testing</strong> should be performed on a regular basis. Learn and improve.</li>
|
||
<li>Use config <strong>scanners or CI/CD pipelines</strong> to ensure parity between prod and DR.</li>
|
||
<li>Ensure traceability, billing insights, and resource cleanup to <strong>tag and audit everything</strong>.</li>
|
||
</ul>
|
||
<p class="line-space"> <br/> </p><hr/>
|
||
<h2 id="h-conclusion">Conclusion</h2>
|
||
<p>Organizations need to look at disaster recovery to function as a core competency beyond basic backup operations As infrastructure becomes more distributed and threats increase, having a mature DR posture is non-negotiable. High availability deals with expected situations but disaster recovery enables organizations to face unexpected disasters.</p>
|
||
<p>Start small. Pick a DR model that fits your business and expand over time. The cost of prevention is always lower than the cost of failure.</p>
|
||
<p class="line-space"> <br/> </p><p class="line-space"> <br/> </p></div></div></div></div></div><div class="hidden xl:flex xl:flex-col self-stretch"><div class="sticky top-[99px] px-3"><div class=" flex flex-col flex-row-reverse items-start gap-4 "><span class="tooltip tooltip-left cursor-pointer" data-tip="Bookmark"><button class="3xl:hover:bg-lightAlt hover:bg-light p-1 md:p-2 rounded h-[40px] w-[40px] flex items-center justify-center border border-lightBorder"><i class="hn hn-bookmark text-lightText text-2xl"></i></button></span><span class="tooltip tooltip-left cursor-pointer" data-tip="Comment"><button class="3xl:hover:bg-lightAlt hover:bg-light p-1 md:p-2 rounded h-[40px] w-[40px] flex items-center justify-center border border-lightBorder"><i class="hn hn-comment text-lightText text-2xl"></i></button></span><div class="dropdown dropdown-bottom dropdown-hover group "><label tabindex="0" class="flex items-center cursor-pointer justify-center border border-lightBorder 3xl:group-hover:bg-lightAlt group-hover:bg-light h-[40px] w-[40px] p-2 rounded "><i class="hn hn-share text-2xl"></i></label><ul tabindex="0" class="dropdown-content bg-light z-[1] py-4 px-4 3xl:px-0 3xl:py-2 border 3xl:border-none flex flex-col items-center justify-center gap-2 "><button class="border p-2 rounded hover:bg-lightAlt"><i class=" hn hn-copy text-lightText text-2xl "></i></button><button class="border p-2 rounded hover:bg-lightAlt"><i class="hn hn-facebook-round text-lightText text-2xl"></i></button><button class="border p-2 rounded hover:bg-lightAlt"><i class="hn hn-x text-lightText text-2xl"></i></button><button class="border p-2 rounded hover:bg-lightAlt"><i class="hn hn-linkedin text-lightText text-2xl"></i></button><a href="mailto:?subject=I'd like to share a link with you &body=" class="border p-2 rounded inline-block hover:bg-lightAlt"><i class="hn hn-envelope text-lightText text-2xl"></i></a></ul></div></div></div></div></div><div class="px-4 lg:px-0 mx-auto w-full lg:max-w-[1000px] flex-col flex items-center justify-center "><div id="commentSection" class=" font-sans max-w-[1000px] mt-4 mb-10 px-4 sm:px-0 items-center rounded-xl w-full flex flex-col"><div class="flex w-full flex-col xs:flex-row items-stretch justify-between gap-5 "><a href="/the-many-layers-of-caching-all-the-places-data-lives-in-modern-systems" rel="external" class="flex xs:w-1/2 flex-col group justify-between no-underline border border-lightBorder rounded-[5px] transition-all duration-300 hover:scale-[1.03]"><div class="flex-grow p-3 text-lightText"><span class="font-bold hover:text-lightTextStrong">← Previous</span><p class="mt-2 font-light hover:underline">The Many Layers of Caching: All the Places Data Lives in Modern Systems</p></div></a><a href="/session-vs-jwt-vs-oauth2-the-complete-authentication-strategy" rel="external" class="flex w-full xs:w-1/2 flex-col group justify-between no-underline border border-lightBorder rounded-[5px] transition-all duration-300 hover:scale-[1.03]"><div class="flex-grow p-3 "><span class="font-bold hover:text-lightTextStrong">Up Next →</span><p class="mt-2 font-light hover:underline ">Session vs JWT vs OAuth2: The Complete Authentication Strategy</p></div></a></div></div></div><div id="aboutCard" class=" max-w-[1000px] mx-auto flex flex-col items-center gap-6 "><div class="w-full lg:border border-lightBorder rounded-2xl"><div class=" w-full px-4 py-3 sm:px-8 sm:py-6 "><h3 class="text-xl xs:text-2xl sm:text-3xl font-bold mb-6">About Author</h3><div class="flex flex-col items-start"><div class="flex gap-4 flex-row items-start w-full"><div class="relative shadow-md rounded-full flex-shrink-0 min-w-[50px] w-[50px] h-[50px] sm:min-w-[75px] sm:h-[75px] ring-4 ring-gray-300"><a href="/u/ybommishetti"><img alt="Yakaiah Bommishetti HackerNoon profile picture" loading="lazy" decoding="async" data-nimg="fill" class="rounded-full" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;object-fit:cover;color:transparent" sizes="100vw" srcSet="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=640 640w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=750 750w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=828 828w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=1080 1080w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=1200 1200w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=1920 1920w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=2048 2048w, https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=3840 3840w" src="https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg?auto=format%2Ccompress&w=3840"/></a></div><div class="flex-1 min-w-0 flex flex-col justify-center"><div class="flex flex-col"><div class="flex flex-wrap items-center gap-1 sm:gap-2 text-base text-bodyTxtLight"><span class="text-xs font-light mr-1">by</span><a class="hover:underline" href="/u/ybommishetti"><strong class="font-bold text-lightTextStrong">Yakaiah Bommishetti</strong></a><span class="text-xs font-light opacity-50">|</span><a class="hover:underline text-sm sm:text-base text-bodyTxtLight" href="/u/ybommishetti">@<!-- -->ybommishetti</a></div><div class="text-sm text-bodyTxtLight mt-1">Software Engineering Manager<!-- --> at <!-- --> <span class="font-medium">Hammer Technologies an Infovista Business</span></div></div></div></div><p class="text-sm text-bodyTxtLight break-words overflow-wrap mt-4 mb-4 w-full">I’m Yakaiah, a Software Engineering Manager with over a decade of experience in building enterprise-grade solutions.</p><div class="w-full mb-4"><div class="w-full flex justify-start"><div class="w-full"><form class="w-full flex flex-col items-start gap-2 "><div class="flex w-full"><input class="p-2 flex-grow border rounded-l-md text-lightText bg-light focus:outline-none focus:ring-0 focus:ring-transparent border-lightBorder w-full text-base px-2}
|
||
}" placeholder="name@company.com" type="email" required="" name="email" value=""/><button type="submit" class="text-base}
|
||
bg-lightAlt border border-l-0 border-lightBorder hover:bg-green-700 text-lightText hover:bg-dark hover:text-darkText px-2 py-1 rounded-r-md font-bold">Subscribe</button></div></form></div></div></div><div class="flex-1 w-full"><div class="flex flex-col flex-wrap gap-2 items-start justify-start mt-2 mb-2"></div><div class="flex flex-col sm:flex-row gap-4 w-full"><a class="text-base flex-1 px-4 py-2 font-bold rounded-lg border-2 border-lightBorder transition text-center w-full sm:w-auto bg-light hover:bg-lightAlt text-lightText hover:bg-bodyAccent hover:text-bodyAccentTxt " href="/u/ybommishetti">Read my stories</a><a class="text-base break-words flex-1 break-all px-4 py-2 font-bold rounded-lg border-2 border-lightBorder transition text-center w-full sm:w-auto bg-light hover:bg-lightAlt text-lightText hover:bg-bodyAccent hover:text-bodyAccentTxt " href="/about/ybommishetti">Learn More</a></div></div></div></div></div><span id="aboutCard" class="hidden"></span><section class="w-full py-3 px-4 sm:px-0 sm:py-6 "><h4 class="text-xl xs:text-2xl sm:text-3xl font-bold mb-4 sm:mb-6">TOPICS</h4><div class="flex flex-wrap gap-2"><div class=" flex flex-wrap items-center gap-2 border-lightBorder"><a href="/c/ai" target="_blank" rel="noopener noreferrer" class="text-lg border-lightBorder hover:bg-lightAccent hover:text-lightAccentText hover:border-lightAccentText bg-lightAlt text-lightText flex items-center px-2 py-1 border rounded"><span class="mr-2"><i class="hn hn-machine-learning !leading-[inherit]"></i></span><span>ai-and-ml</span></a></div><a href="/tagged/disaster-recovery" target="_blank" rel="noopener noreferrer" class="text-sm xs:text-base sm:text-lg flex items-center px-2 py-1 border hover:bg-lightAlt border-lightBorder rounded">#<!-- -->disaster-recovery</a><a href="/tagged/rto" target="_blank" rel="noopener noreferrer" class="text-sm xs:text-base sm:text-lg flex items-center px-2 py-1 border hover:bg-lightAlt border-lightBorder rounded">#<!-- -->rto</a><a href="/tagged/rpo" target="_blank" rel="noopener noreferrer" class="text-sm xs:text-base sm:text-lg flex items-center px-2 py-1 border hover:bg-lightAlt border-lightBorder rounded">#<!-- -->rpo</a><a href="/tagged/cloud-architecture" target="_blank" rel="noopener noreferrer" class="text-sm xs:text-base sm:text-lg flex items-center px-2 py-1 border hover:bg-lightAlt border-lightBorder rounded">#<!-- -->cloud-architecture</a><a href="/tagged/system-design" target="_blank" rel="noopener noreferrer" class="text-sm xs:text-base sm:text-lg flex items-center px-2 py-1 border hover:bg-lightAlt border-lightBorder rounded">#<!-- -->system-design</a><a href="/tagged/failover-management" target="_blank" rel="noopener noreferrer" class="text-sm xs:text-base sm:text-lg flex items-center px-2 py-1 border hover:bg-lightAlt border-lightBorder rounded">#<!-- -->failover-management</a><a href="/tagged/high-availability" target="_blank" rel="noopener noreferrer" class="text-sm xs:text-base sm:text-lg flex items-center px-2 py-1 border hover:bg-lightAlt border-lightBorder rounded">#<!-- -->high-availability</a><a href="/tagged/site-reliability-engineering" target="_blank" rel="noopener noreferrer" class="text-sm xs:text-base sm:text-lg flex items-center px-2 py-1 border hover:bg-lightAlt border-lightBorder rounded">#<!-- -->site-reliability-engineering</a></div></section></div></div></div></div></div><div class="min-h-[200px]"></div></main><div class="flex flex-col gap-4 hidden"><button class="mr-auto"><i class="hn-sun hn text-2xl"></i></button><h2 class="text-sm font-semibold text-darkText">Light-Mode</h2><div class="cursor-pointer p-3 rounded-lg hover:scale-105 transition-transform "><h3 class="text-sm uppercase mb-2 ">Classic</h3><div class="flex space-x-1"><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#0F0"></span><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#F5EC43"></span><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#212428"></span></div></div><div class="cursor-pointer p-3 rounded-lg hover:scale-105 transition-transform "><h3 class="text-sm uppercase mb-2 ">Newspaper</h3><div class="flex space-x-1"><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#FFFFFF"></span><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#F5F5F5"></span><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#454545"></span></div></div><div class="cursor-pointer p-3 rounded-lg hover:scale-105 transition-transform "><h3 class="text-sm uppercase mb-2 ">Proof of Usefulness</h3><div class="flex space-x-1"><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#FFFFFF"></span><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#26AB5C"></span><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#D2FBE2"></span></div></div><h2 class="text-sm font-semibold text-darkText">Dark-Mode</h2><div class="cursor-pointer p-3 rounded-lg hover:scale-105 transition-transform "><h3 class="text-sm uppercase mb-2 ">Neon Noir</h3><div class="flex space-x-1"><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#1E1E1E"></span><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#0F0"></span><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#F5EC43"></span></div></div><div class="cursor-pointer p-3 rounded-lg hover:scale-105 transition-transform "><h3 class="text-sm uppercase mb-2 ">Minty</h3><div class="flex space-x-1"><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#061F19"></span><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#2AAA74"></span><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#63FF86"></span></div></div><div class="cursor-pointer p-3 rounded-lg hover:scale-105 transition-transform "><h3 class="text-sm uppercase mb-2 ">Startups of the Year</h3><div class="flex space-x-1"><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#08085E"></span><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#A2EF44"></span><span class="w-6 h-6 rounded border border-darkBorder" style="background-color:#1B1B95"></span></div></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"data":{"pageLang":"en","datePublished":"2025-06-05","slug":"beyond-high-availability-disaster-recovery-architectures-that-keep-running-when-ha-fails","articleBody":"Introduction Highly available systems fail catastrophically even though they promise 99.99% uptime. HA architectures could experience failures because of regional cloud outages and ransomware attacks and human errors. Organizations need to establish disaster recovery as a separate rigorous discipline to achieve true system resilience beyond high availability. The complete strategy for restoring operations after catastrophic failures defines Disaster Recovery (DR). The range of failures extends past hardware malfunctions because it encompasses software bugs and malicious attacks and data corruption and complete cloud region failures. HA mainly focuses on preventing failure, where DR assumes failure is inevitable and prepares the organization to recover quickly and effectively. The article provides a clear explanation of Disaster Recovery through practical examples and architectural patterns together with specific guidance for software engineers and site reliability engineers and infrastructure architects. HA vs DR: The Critical Distinction High Availability (HA) and Disaster Recovery (DR) operate as separate components which work together to enhance system resilience. Here’s how they differ: Attribute\n\nHigh Availability\n\nDisaster Recovery\n\n\n\nScope\n\nLocalized Failures\n\nRegional/Catastrophic Failures\n\n\n\nExamples\n\nNode crashes, AZ outages\n\nData deletion, region loss, ransomware\n\n\n\nObjective\n\nMaintain uptime\n\nRestore services and data post-disaster\n\n\n\nTools\n\nClusters, Load Balancers, Auto-scaling\n\nBackups, Replication, Multi-site deployments\n\n\n\nFocus\n\nPrevention\n\nRestoration Attribute\n\nHigh Availability\n\nDisaster Recovery\n\n\n\nScope\n\nLocalized Failures\n\nRegional/Catastrophic Failures\n\n\n\nExamples\n\nNode crashes, AZ outages\n\nData deletion, region loss, ransomware\n\n\n\nObjective\n\nMaintain uptime\n\nRestore services and data post-disaster\n\n\n\nTools\n\nClusters, Load Balancers, Auto-scaling\n\nBackups, Replication, Multi-site deployments\n\n\n\nFocus\n\nPrevention\n\nRestoration Attribute\n\nHigh Availability\n\nDisaster Recovery Attribute Attribute Attribute High Availability High Availability High Availability Disaster Recovery Disaster Recovery Disaster Recovery Scope\n\nLocalized Failures\n\nRegional/Catastrophic Failures Scope Scope Localized Failures Localized Failures Regional/Catastrophic Failures Regional/Catastrophic Failures Examples\n\nNode crashes, AZ outages\n\nData deletion, region loss, ransomware Examples Examples Node crashes, AZ outages Node crashes, AZ outages Data deletion, region loss, ransomware Data deletion, region loss, ransomware Objective\n\nMaintain uptime\n\nRestore services and data post-disaster Objective Objective Maintain uptime Maintain uptime Restore services and data post-disaster Restore services and data post-disaster Tools\n\nClusters, Load Balancers, Auto-scaling\n\nBackups, Replication, Multi-site deployments Tools Tools Clusters, Load Balancers, Auto-scaling Clusters, Load Balancers, Auto-scaling Backups, Replication, Multi-site deployments Backups, Replication, Multi-site deployments Focus\n\nPrevention\n\nRestoration Focus Focus Prevention Prevention Restoration Restoration Example: A Kubernetes cluster using pod anti-affinity and multi-AZ deployment ensures high availability within a single region. If one Availability Zone (AZ) fails, pods are rescheduled to healthy zones, keeping the app running. Example: pod anti-affinity multi-AZ deployment However, this setup won’t help during a region-wide outage, cloud misconfiguration, or accidental deletion of resources, all of which can bring the entire system down. region-wide outage cloud misconfiguration accidental deletion That’s why Disaster Recovery (DR) plan with backups, replication to another region, and failover automation will help to recover applications and data in case of major failures. Disaster Recovery (DR) plan backups replication to another region failover automation High Availability keeps things stable in small failures. DR is the safety net for large-scale disasters. DR is the safety net for large-scale disasters. Real-World Incidents: Why DR Is Critical, Not Optional People generally consider Disaster Recovery as an insurance policy because it serves as protection against unexpected events yet remains unused until disaster strikes. But history tells us otherwise, the system failures spread rapidly throughout large networks. The following major incidents demonstrate how systems become vulnerable without a proper DR strategy. GitLab (2017): Accidental Deletion and Faulty Backups\nA GitLab engineer who tried to resolve database lag problems ended up deleting the entire production PostgreSQL database. The hot standby database which served as a backup system immediately replicated the deletion operation. The team faced a severe service outage and data loss because their most recent backup was six hours old and their recovery process was untested and unreliable.\nLesson: Real DR needs tested recovery procedures together with isolated backups and automated fallback mechanisms instead of redundant systems that replicate mistakes. GitLab (2017): Accidental Deletion and Faulty Backups\nA GitLab engineer who tried to resolve database lag problems ended up deleting the entire production PostgreSQL database. The hot standby database which served as a backup system immediately replicated the deletion operation. The team faced a severe service outage and data loss because their most recent backup was six hours old and their recovery process was untested and unreliable.\nLesson: Real DR needs tested recovery procedures together with isolated backups and automated fallback mechanisms instead of redundant systems that replicate mistakes. GitLab (2017): Accidental Deletion and Faulty Backups GitLab (2017): Accidental Deletion and Faulty Backups A GitLab engineer who tried to resolve database lag problems ended up deleting the entire production PostgreSQL database. The hot standby database which served as a backup system immediately replicated the deletion operation. The team faced a severe service outage and data loss because their most recent backup was six hours old and their recovery process was untested and unreliable. deleting the entire production PostgreSQL database replicated the deletion operation Lesson: Real DR needs tested recovery procedures together with isolated backups and automated fallback mechanisms instead of redundant systems that replicate mistakes. Lesson: recovery procedures isolated backups automated fallback Code Spaces (2014): Cloud Account Hijack and Total Wipeout\nAn attacker gained access to Code Spaces AWS control panel and proceeded to delete everything, EC2 instances, S3 buckets, backups, and even the DR configurations. Without offline or off-cloud backups, the company was unable to recover and had to shut down permanently.\nLesson: Never put all your eggs in one basket especially not in one cloud account. DR must be offsite, offline, and immune to account level breaches. Code Spaces (2014): Cloud Account Hijack and Total Wipeout\nAn attacker gained access to Code Spaces AWS control panel and proceeded to delete everything, EC2 instances, S3 buckets, backups, and even the DR configurations. Without offline or off-cloud backups, the company was unable to recover and had to shut down permanently.\nLesson: Never put all your eggs in one basket especially not in one cloud account. DR must be offsite, offline, and immune to account level breaches. Code Spaces (2014): Cloud Account Hijack and Total Wipeout Code Spaces (2014): Cloud Account Hijack and Total Wipeout An attacker gained access to Code Spaces AWS control panel and proceeded to delete everything, EC2 instances, S3 buckets, backups, and even the DR configurations. Without offline or off-cloud backups, the company was unable to recover and had to shut down permanently. delete everything, EC2 instances, S3 buckets, backups, and even the DR configurations offline or off-cloud backups shut down permanently Lesson: Never put all your eggs in one basket especially not in one cloud account. DR must be offsite, offline, and immune to account level breaches. Lesson: cloud account offsite, offline, and immune to account level breaches Maersk (2017): NotPetya Malware Attack\nThe global shipping giant was crippled by NotPetya, a malware that encrypted all Windows-based systems. Maersks entire global IT infrastructure went offline from terminals to email systems. Miraculously, one domain controller in Ghana survived because it was offline during the attack due to a local power outage. Using that, Maersk was able to recover, but it took over 10 days and $300 million in damages.\nLesson: Sometimes offline backups are the only survivors. A resilient DR plan includes geographically isolated systems and malware resistant recovery points.\n\n\nFacebook (2021): BGP Misconfiguration Takes Down Entire Network\nA faulty BGP (Border Gateway Protocol) configuration update knocked Facebook and all its services (Instagram, WhatsApp, Messenger) offline globally for hours. Internal tools were also inaccessible because they were hosted on the same network, locking engineers out from fixing the problem quickly.\nLesson: DR isn’t just about data, it’s also about accessibility and operational recovery. Keep recovery tools in isolated environments that can function when the primary environment fails. Maersk (2017): NotPetya Malware Attack\nThe global shipping giant was crippled by NotPetya, a malware that encrypted all Windows-based systems. Maersks entire global IT infrastructure went offline from terminals to email systems. Miraculously, one domain controller in Ghana survived because it was offline during the attack due to a local power outage. Using that, Maersk was able to recover, but it took over 10 days and $300 million in damages.\nLesson: Sometimes offline backups are the only survivors. A resilient DR plan includes geographically isolated systems and malware resistant recovery points. Maersk (2017): NotPetya Malware Attack Maersk (2017): NotPetya Malware Attack The global shipping giant was crippled by NotPetya, a malware that encrypted all Windows-based systems. Maersks entire global IT infrastructure went offline from terminals to email systems. Miraculously, one domain controller in Ghana survived because it was offline during the attack due to a local power outage. Using that, Maersk was able to recover, but it took over 10 days and $300 million in damages. encrypted all Windows-based systems domain controller in Ghana offline during the attack over 10 days and $300 million Lesson: Sometimes offline backups are the only survivors. A resilient DR plan includes geographically isolated systems and malware resistant recovery points. Lesson: offline backups geographically isolated systems and malware resistant recovery points Facebook (2021): BGP Misconfiguration Takes Down Entire Network\nA faulty BGP (Border Gateway Protocol) configuration update knocked Facebook and all its services (Instagram, WhatsApp, Messenger) offline globally for hours. Internal tools were also inaccessible because they were hosted on the same network, locking engineers out from fixing the problem quickly.\nLesson: DR isn’t just about data, it’s also about accessibility and operational recovery. Keep recovery tools in isolated environments that can function when the primary environment fails. Facebook (2021): BGP Misconfiguration Takes Down Entire Network Facebook (2021): BGP Misconfiguration Takes Down Entire Network A faulty BGP (Border Gateway Protocol) configuration update knocked Facebook and all its services (Instagram, WhatsApp, Messenger) offline globally for hours. Internal tools were also inaccessible because they were hosted on the same network, locking engineers out from fixing the problem quickly. BGP configuration update Lesson: DR isn’t just about data, it’s also about accessibility and operational recovery. Keep recovery tools in isolated environments that can function when the primary environment fails. Lesson: accessibility and operational recovery isolated environments Key Takeaways: Key Takeaways: The implementation of backups as DR requires automated processes which must be located offsite and tested at regular intervals.\nDR infrastructure requires separation logical, geographical and sometimes provider-based.\nThe ability to recover from failures stands above the need for redundant systems.\nBusinesses should prepare for actual threats which include human mistakes and security breaches and natural disasters. The implementation of backups as DR requires automated processes which must be located offsite and tested at regular intervals. DR infrastructure requires separation logical, geographical and sometimes provider-based. The ability to recover from failures stands above the need for redundant systems. Businesses should prepare for actual threats which include human mistakes and security breaches and natural disasters. A properly developed DR plan converts major disasters into manageable disruptions. The absence of a recovery plan makes business recovery dangerous because some organizations never get to try again. Key Metrics in Disaster Recovery: RTO and RPO The process of designing a disaster recovery (DR) plan requires more than system restoration because it needs to achieve both timely recovery and minimal data loss. Two critical metrics guide this: Recovery Time Objective (RTO)\nThe maximum allowable time your system or service can be down after a failure before it must be restored.\n\n\nThink of it as your downtime tolerance.\n\n\nIt defines how quickly services must be restored to avoid serious business impact.\n\n\n\n\nRecovery Point Objective (RPO)\nThe maximum acceptable amount of data loss, measured in time, from the moment of failure.\n\nIt answers the question: How much data can we afford to lose?\nIt reflects how frequently you need to back up data. Recovery Time Objective (RTO)\nThe maximum allowable time your system or service can be down after a failure before it must be restored.\n\n\nThink of it as your downtime tolerance.\n\n\nIt defines how quickly services must be restored to avoid serious business impact. Recovery Time Objective (RTO) Recovery Time Objective (RTO) The maximum allowable time your system or service can be down after a failure before it must be restored. maximum allowable time Think of it as your downtime tolerance.\n\n\nIt defines how quickly services must be restored to avoid serious business impact. Think of it as your downtime tolerance. Think of it as your downtime tolerance. downtime tolerance It defines how quickly services must be restored to avoid serious business impact. It defines how quickly services must be restored to avoid serious business impact. how quickly Recovery Point Objective (RPO)\nThe maximum acceptable amount of data loss, measured in time, from the moment of failure.\n\nIt answers the question: How much data can we afford to lose?\nIt reflects how frequently you need to back up data. Recovery Point Objective (RPO) Recovery Point Objective (RPO) The maximum acceptable amount of data loss, measured in time, from the moment of failure. maximum acceptable amount of data loss It answers the question: How much data can we afford to lose?\nIt reflects how frequently you need to back up data. It answers the question: How much data can we afford to lose? How much data can we afford to lose? It reflects how frequently you need to back up data. how frequently Example: Example: Let’s say an outage happens at 12:00 PM. 12:00 PM Your RTO is 1 hour\n\nYou must fully recover and have services running again by 1:00 PM.\n\n\nYour RPO is 15 minutes\n\nYou must recover data as it existed by 11:45 AM. Your RTO is 1 hour\n\nYou must fully recover and have services running again by 1:00 PM. RTO is 1 hour You must fully recover and have services running again by 1:00 PM. You must fully recover and have services running again by 1:00 PM. 1:00 PM Your RPO is 15 minutes\n\nYou must recover data as it existed by 11:45 AM. RPO is 15 minutes You must recover data as it existed by 11:45 AM. You must recover data as it existed by 11:45 AM. as it existed by 11:45 AM That means any transactions or updates made between 11:45 AM and 12:00 PM may be lost and your systems should be designed to handle that loss. 11:45 AM and 12:00 PM Key Takeaways: Key Takeaways: RTO = How fast you recover.\nRPO = How much data you can afford to lose.\nStricter RTO and RPO means higher cost and complexity.\nYour business SLAs (Service Level Agreements) should drive RTO/RPO targets not the other way around.\nRTO and RPO influence your technology choices, backup frequency, network design, and failover approach. RTO = How fast you recover. How fast you recover. RPO = How much data you can afford to lose. How much data you can afford to lose. Stricter RTO and RPO means higher cost and complexity. higher cost and complexity. Your business SLAs (Service Level Agreements) should drive RTO/RPO targets not the other way around. business SLAs (Service Level Agreements) RTO and RPO influence your technology choices, backup frequency, network design, and failover approach. technology choices backup frequency network design failover approach Disaster Recovery Architectures Each DR model represents a different trade-off between cost, complexity, RTO, and RPO. Let’s examine them Backup and Restore (Cold DR) Architecture Backup and Restore (Cold DR) Architecture Overview: Simple backups stored in object storage (e.g., Amazon S3, Azure Blob, Google Cloud Storage). Overview Architecture: Architecture: Use Case: Non-critical systems, dev/test environments. Use Case: Pros: Low cost, minimal operational overhead.\n\n\nCons: Recovery is slow; backups must be regularly tested. Pros: Low cost, minimal operational overhead. Pros: Low cost, minimal operational overhead. Pros Cons: Recovery is slow; backups must be regularly tested. Cons: Recovery is slow; backups must be regularly tested. Cons Pilot Light Architecture Pilot Light Architecture Overview: Maintain minimal resources (example: replicated DB, basic network setup) in DR region. Provision app servers only during failover. Overview Architecture: Architecture: Use Case: Moderately critical workloads. Use Case Pros: Cost-effective with moderate recovery times.\n\n\nCons: Requires automated provisioning scripts, failover orchestration. Pros: Cost-effective with moderate recovery times. Pros: Cost-effective with moderate recovery times. Pros Cons: Requires automated provisioning scripts, failover orchestration. Cons: Requires automated provisioning scripts, failover orchestration. Cons Warm Standby Architecture Architecture Overview: All DR infrastructure is provisioned and partially scaled. DR Services run with reduced load and periodically verified. Overview Architecture: Architecture: Use Case: Applications with high SLAs and moderate budget. Use Case Pros: Fast recovery, can validate live readiness\n\n\nCons: Ongoing cost for underutilized compute, config drift risks Pros: Fast recovery, can validate live readiness Pros: Fast recovery, can validate live readiness Pros Cons: Ongoing cost for underutilized compute, config drift risks Cons: Ongoing cost for underutilized compute, config drift risks Cons Hot Standby (Active-Passive) Architecture Architecture Overview: Two identical environments, one active and one idle. Traffic is routed to active, and failover is manual or automatic. Overview Architecture: Architecture: Use Case: Healthcare, banking, regulated industries. Use Case Pros: Nearly seamless failover, no data loss.\n\n\nCons: High infrastructure costs for unused capacity. Pros: Nearly seamless failover, no data loss. Pros: Nearly seamless failover, no data loss. Pros Cons: High infrastructure costs for unused capacity. Cons: High infrastructure costs for unused capacity. Cons Active-Active (Multi-Site) Architecture Architecture Overview: Two or more regions handle live traffic. Each region has fully operational services. Overview Architecture: Architecture: Use Case: Global SaaS platforms, e-commerce, 24/7 services. Use Case Pros: Continuous availability, seamless user experience.\n\n\nCons: High complexity, data consistency issues, expensive. Pros: Continuous availability, seamless user experience. Pros: Continuous availability, seamless user experience. Pros Cons: High complexity, data consistency issues, expensive. Cons: High complexity, data consistency issues, expensive. Cons Best Practices for Disaster Recovery DR should operate in separate cloud accounts or projects to stop the spread of accidental deletions.\nThe implementation of object locking and versioning enables immutable backups to protect against tampering.\nThe first step should be automation because tools like Terraform, Ansible and Pulumi enable the deployment of complete DR environments within minutes.\nThe organization should maintain precise and current documentation for runbooks and DR procedures and contact lists.\nThe practice of simulating failure scenarios through Chaos Testing should be performed on a regular basis. Learn and improve.\nUse config scanners or CI/CD pipelines to ensure parity between prod and DR.\nEnsure traceability, billing insights, and resource cleanup to tag and audit everything. DR should operate in separate cloud accounts or projects to stop the spread of accidental deletions. separate cloud accounts The implementation of object locking and versioning enables immutable backups to protect against tampering. immutable backups The first step should be automation because tools like Terraform, Ansible and Pulumi enable the deployment of complete DR environments within minutes. automation The organization should maintain precise and current documentation for runbooks and DR procedures and contact lists. runbooks and DR procedures The practice of simulating failure scenarios through Chaos Testing should be performed on a regular basis. Learn and improve. Chaos Testing Use config scanners or CI/CD pipelines to ensure parity between prod and DR. scanners or CI/CD pipelines Ensure traceability, billing insights, and resource cleanup to tag and audit everything. tag and audit everything Conclusion Organizations need to look at disaster recovery to function as a core competency beyond basic backup operations As infrastructure becomes more distributed and threats increase, having a mature DR posture is non-negotiable. High availability deals with expected situations but disaster recovery enables organizations to face unexpected disasters. Start small. Pick a DR model that fits your business and expand over time. The cost of prevention is always lower than the cost of failure.","arweave":"bS64zgzF9kLaWROke2Xt-FyA3GN01o0kAoYCz6rHl0U","createdAt":"2025-06-05T08:29:01.357Z","draftId":"rCHvjg7kt4ZxaaAg0uMs","emoji":[{"label":"Review","description":"This story will praise and/or roast a product, company, service, game, or anything else people like to review on the Internet.","image":"https://cdn.hackernoon.com/images/img-s303rqx.png","prompt":"","value":12}],"excerpt":"High Availability is not Disaster Recovery. This in-depth guide explores real-world Disaster Recovery architectures.","featureImgColor":"rgb(45 44 42 / 70%)","firstSeenAt":false,"fromSlack":false,"id":"rCHvjg7kt4ZxaaAg0uMs","imageSizes":{"https://cdn.hackernoon.com/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-i40396l.jpeg":{"width":1290,"height":922},"https://cdn.hackernoon.com/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-5y239t5.jpeg":{"width":1323,"height":958},"https://cdn.hackernoon.com/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kb339u3.jpeg":{"width":1394,"height":949},"https://cdn.hackernoon.com/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-fy139s9.jpeg":{"width":1287,"height":963},"https://cdn.hackernoon.com/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-s44392y.jpeg":{"width":1400,"height":899}},"linkAccreditation":{"goals":"","isBlogging":null,"isBusiness":null,"debut":true,"isPersonal":null},"mainImage":"https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg","mainImageHeight":2220,"mainImageWidth":3956,"markup":null,"owner":"JdAMnkKbQwN94BHuIt3Fhdifbbv2","parentCategory":"cybersecurity","parsed":"\u003ch2 id=\"h-introduction\"\u003eIntroduction\u003c/h2\u003e\n\u003cp\u003eHighly available systems fail catastrophically even though they promise 99.99% uptime. HA architectures could experience failures because of regional cloud outages and ransomware attacks and human errors. Organizations need to establish disaster recovery as a separate rigorous discipline to achieve true system resilience beyond high availability.\u003c/p\u003e\n\u003cp\u003eThe complete strategy for restoring operations after catastrophic failures defines Disaster Recovery (DR). The range of failures extends past hardware malfunctions because it encompasses software bugs and malicious attacks and data corruption and complete cloud region failures. HA mainly focuses on preventing failure, where DR assumes failure is inevitable and prepares the organization to recover quickly and effectively.\u003c/p\u003e\n\u003cp\u003eThe article provides a clear explanation of Disaster Recovery through practical examples and architectural patterns together with specific guidance for software engineers and site reliability engineers and infrastructure architects.\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\u003chr\u003e\n\u003ch2 id=\"h-ha-vs-dr-the-critical-distinction\"\u003eHA vs DR: The Critical Distinction\u003c/h2\u003e\n\u003cp\u003eHigh Availability (HA) and Disaster Recovery (DR) operate as separate components which work together to enhance system resilience. Here’s how they differ:\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\u003ctable\u003e\n\u003ctbody\u003e\u003ctr\u003e\n\u003cth\u003e\n\u003cp\u003e\u003cstrong\u003eAttribute\u003c/strong\u003e\u003c/p\u003e\u003c/th\u003e\n\u003cth\u003e\n\u003cp\u003e\u003cstrong\u003eHigh Availability\u003c/strong\u003e\u003c/p\u003e\u003c/th\u003e\n\u003cth\u003e\n\u003cp\u003e\u003cstrong\u003eDisaster Recovery\u003c/strong\u003e\u003c/p\u003e\u003c/th\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003eScope\u003c/p\u003e\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003eLocalized Failures\u003c/p\u003e\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003eRegional/Catastrophic Failures\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003eExamples\u003c/p\u003e\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003eNode crashes, AZ outages\u003c/p\u003e\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003eData deletion, region loss, ransomware\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003eObjective\u003c/p\u003e\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003eMaintain uptime\u003c/p\u003e\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003eRestore services and data post-disaster\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003eTools\u003c/p\u003e\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003eClusters, Load Balancers, Auto-scaling\u003c/p\u003e\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003eBackups, Replication, Multi-site deployments\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003eFocus\u003c/p\u003e\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003ePrevention\u003c/p\u003e\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003eRestoration\u003c/p\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\u003c/table\u003e\n\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eExample:\u003c/strong\u003e A Kubernetes cluster using \u003cstrong\u003epod anti-affinity\u003c/strong\u003e and \u003cstrong\u003emulti-AZ deployment\u003c/strong\u003e ensures high availability within a single region. If one Availability Zone (AZ) fails, pods are rescheduled to healthy zones, keeping the app running.\u003c/p\u003e\u003cp\u003eHowever, this setup won’t help during a \u003cstrong\u003eregion-wide outage\u003c/strong\u003e, \u003cstrong\u003ecloud misconfiguration\u003c/strong\u003e, or \u003cstrong\u003eaccidental deletion\u003c/strong\u003e of resources, all of which can bring the entire system down.\u003c/p\u003e\n\u003cp\u003eThat’s why \u003cstrong\u003eDisaster Recovery (DR) plan\u003c/strong\u003e with \u003cstrong\u003ebackups\u003c/strong\u003e, \u003cstrong\u003ereplication to another region\u003c/strong\u003e, and \u003cstrong\u003efailover automation\u003c/strong\u003e will help to recover applications and data in case of major failures.\u003c/p\u003e\n\u003cp\u003eHigh Availability keeps things stable in small failures. \u003cstrong\u003eDR is the safety net for large-scale disasters.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\u003chr\u003e\n\u003ch2 id=\"h-real-world-incidents-why-dr-is-critical-not-optional\"\u003eReal-World Incidents: Why DR Is Critical, Not Optional\u003c/h2\u003e\n\u003cp\u003ePeople generally consider Disaster Recovery as an insurance policy because it serves as protection against unexpected events yet remains unused until disaster strikes. But history tells us otherwise, the system failures spread rapidly throughout large networks. The following major incidents demonstrate how systems become vulnerable without a proper DR strategy.\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eGitLab (2017): Accidental Deletion and Faulty Backups\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eA GitLab engineer who tried to resolve database lag problems ended up \u003cstrong\u003edeleting the entire production PostgreSQL database\u003c/strong\u003e. The hot standby database which served as a backup system immediately \u003cstrong\u003ereplicated the deletion operation\u003c/strong\u003e. The team faced a severe service outage and data loss because their most recent backup was six hours old and their recovery process was untested and unreliable.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLesson:\u003c/strong\u003e Real DR needs tested \u003cstrong\u003erecovery procedures\u003c/strong\u003e together with \u003cstrong\u003eisolated backups\u003c/strong\u003e and \u003cstrong\u003eautomated fallback\u003c/strong\u003e mechanisms instead of redundant systems that replicate mistakes.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/p\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eCode Spaces (2014): Cloud Account Hijack and Total Wipeout\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eAn attacker gained access to Code Spaces AWS control panel and proceeded to \u003cstrong\u003edelete everything, EC2 instances, S3 buckets, backups, and even the DR configurations\u003c/strong\u003e. Without \u003cstrong\u003eoffline or off-cloud backups\u003c/strong\u003e, the company was unable to recover and had to \u003cstrong\u003eshut down permanently\u003c/strong\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLesson:\u003c/strong\u003e Never put all your eggs in one basket especially not in one \u003cstrong\u003ecloud account\u003c/strong\u003e. DR must be \u003cstrong\u003eoffsite, offline, and immune to account level breaches\u003c/strong\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/p\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eMaersk (2017): NotPetya Malware Attack\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThe global shipping giant was crippled by NotPetya, a malware that \u003cstrong\u003eencrypted all Windows-based systems\u003c/strong\u003e. Maersks entire global IT infrastructure went offline from terminals to email systems. Miraculously, one \u003cstrong\u003edomain controller in Ghana\u003c/strong\u003e survived because it was \u003cstrong\u003eoffline during the attack\u003c/strong\u003e due to a local power outage. Using that, Maersk was able to recover, but it took \u003cstrong\u003eover 10 days and $300 million\u003c/strong\u003e in damages.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLesson:\u003c/strong\u003e Sometimes \u003cstrong\u003eoffline backups\u003c/strong\u003e are the only survivors. A resilient DR plan includes \u003cstrong\u003egeographically isolated systems and malware resistant recovery points\u003c/strong\u003e.\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFacebook (2021): BGP Misconfiguration Takes Down Entire Network\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eA faulty \u003cstrong\u003eBGP\u003c/strong\u003e (Border Gateway Protocol) \u003cstrong\u003econfiguration update\u003c/strong\u003e knocked Facebook and all its services (Instagram, WhatsApp, Messenger) offline globally for hours. Internal tools were also inaccessible because they were hosted on the same network, locking engineers out from fixing the problem quickly.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLesson:\u003c/strong\u003e DR isn’t just about data, it’s also about \u003cstrong\u003eaccessibility and operational recovery\u003c/strong\u003e. Keep recovery tools in \u003cstrong\u003eisolated environments\u003c/strong\u003e that can function when the primary environment fails.\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eKey Takeaways:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe implementation of backups as DR requires automated processes which must be located offsite and tested at regular intervals.\u003c/li\u003e\n\u003cli\u003eDR infrastructure requires separation logical, geographical and sometimes provider-based.\u003c/li\u003e\n\u003cli\u003eThe ability to recover from failures stands above the need for redundant systems.\u003c/li\u003e\n\u003cli\u003eBusinesses should prepare for actual threats which include human mistakes and security breaches and natural disasters.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA properly developed DR plan converts major disasters into manageable disruptions. The absence of a recovery plan makes business recovery dangerous because some organizations never get to try again.\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\u003chr\u003e\n\u003ch2 id=\"h-key-metrics-in-disaster-recovery-rto-and-rpo\"\u003eKey Metrics in Disaster Recovery: RTO and RPO\u003c/h2\u003e\n\u003cp\u003eThe process of designing a disaster recovery (DR) plan requires more than system restoration because it needs to achieve both timely recovery and minimal data loss. Two critical metrics guide this:\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRecovery Time Objective (RTO)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThe \u003cstrong\u003emaximum allowable time\u003c/strong\u003e your system or service can be down after a failure before it must be restored.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThink of it as your \u003cstrong\u003edowntime tolerance\u003c/strong\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIt defines \u003cstrong\u003ehow quickly\u003c/strong\u003e services must be restored to avoid serious business impact.\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRecovery Point Objective (RPO)\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThe \u003cstrong\u003emaximum acceptable amount of data loss\u003c/strong\u003e, measured in time, from the moment of failure.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIt answers the question: \u003cstrong\u003eHow much data can we afford to lose?\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eIt reflects \u003cstrong\u003ehow frequently\u003c/strong\u003e you need to back up data.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eExample:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eLet’s say an outage happens at \u003cstrong\u003e12:00 PM\u003c/strong\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eYour \u003cstrong\u003eRTO is 1 hour\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eYou must fully recover and have services running again by \u003cstrong\u003e1:00 PM\u003c/strong\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eYour \u003cstrong\u003eRPO is 15 minutes\u003c/strong\u003e\n\u003cul\u003e\n\u003cli\u003eYou must recover data \u003cstrong\u003eas it existed by 11:45 AM\u003c/strong\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThat means any transactions or updates made between \u003cstrong\u003e11:45 AM and 12:00 PM\u003c/strong\u003e may be lost and your systems should be designed to handle that loss.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eKey Takeaways:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRTO = \u003cstrong\u003eHow fast you recover.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eRPO = \u003cstrong\u003eHow much data you can afford to lose.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eStricter RTO and RPO means \u003cstrong\u003ehigher cost and complexity.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eYour \u003cstrong\u003ebusiness SLAs (Service Level Agreements)\u003c/strong\u003e should drive RTO/RPO targets not the other way around.\u003c/li\u003e\n\u003cli\u003eRTO and RPO influence your \u003cstrong\u003etechnology choices\u003c/strong\u003e, \u003cstrong\u003ebackup frequency\u003c/strong\u003e, \u003cstrong\u003enetwork design\u003c/strong\u003e, and \u003cstrong\u003efailover approach\u003c/strong\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/p\u003e\u003chr\u003e\n\u003ch2 id=\"h-disaster-recovery-architectures\"\u003eDisaster Recovery Architectures\u003c/h2\u003e\n\u003cp\u003eEach DR model represents a different trade-off between cost, complexity, RTO, and RPO. Let’s examine them\u003c/p\u003e\n\u003ch3 id=\"h-backup-and-restore-cold-dr-architecture\"\u003e\u003cstrong\u003eBackup and Restore (Cold DR) Architecture\u003c/strong\u003e\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003eOverview\u003c/strong\u003e: Simple backups stored in object storage (e.g., Amazon S3, Azure Blob, Google Cloud Storage).\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eArchitecture:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://cdn.hackernoon.com/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-i40396l.jpeg\" alt=\"Cold DR Architecture\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUse Case:\u003c/strong\u003e Non-critical systems, dev/test environments.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePros\u003c/strong\u003e: Low cost, minimal operational overhead.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eCons\u003c/strong\u003e: Recovery is slow; backups must be regularly tested.\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"h-pilot-light-architecture\"\u003e\u003cstrong\u003ePilot Light Architecture\u003c/strong\u003e\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003eOverview\u003c/strong\u003e: Maintain minimal resources (example: replicated DB, basic network setup) in DR region. Provision app servers only during failover.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eArchitecture:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://cdn.hackernoon.com/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-fy139s9.jpeg\" alt=\"Pilot Light Architecture\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUse Case\u003c/strong\u003e: Moderately critical workloads.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePros\u003c/strong\u003e: Cost-effective with moderate recovery times.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eCons\u003c/strong\u003e: Requires automated provisioning scripts, failover orchestration.\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"h-warm-standby-architecture\"\u003eWarm Standby \u003cstrong\u003eArchitecture\u003c/strong\u003e\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003eOverview\u003c/strong\u003e: All DR infrastructure is provisioned and partially scaled. DR Services run with reduced load and periodically verified.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eArchitecture:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://cdn.hackernoon.com/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-5y239t5.jpeg\" alt=\"Warm Standby Architecture\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUse Case\u003c/strong\u003e: Applications with high SLAs and moderate budget.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePros\u003c/strong\u003e: Fast recovery, can validate live readiness\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eCons\u003c/strong\u003e: Ongoing cost for underutilized compute, config drift risks\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"h-hot-standby-active-passive-architecture\"\u003eHot Standby (Active-Passive) \u003cstrong\u003eArchitecture\u003c/strong\u003e\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003eOverview\u003c/strong\u003e: Two identical environments, one active and one idle. Traffic is routed to active, and failover is manual or automatic.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eArchitecture:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://cdn.hackernoon.com/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kb339u3.jpeg\" alt=\"Hot Standby Architecture\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUse Case\u003c/strong\u003e: Healthcare, banking, regulated industries.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePros\u003c/strong\u003e: Nearly seamless failover, no data loss.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eCons\u003c/strong\u003e: High infrastructure costs for unused capacity.\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"h-active-active-multi-site-architecture\"\u003eActive-Active (Multi-Site) \u003cstrong\u003eArchitecture\u003c/strong\u003e\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003eOverview\u003c/strong\u003e: Two or more regions handle live traffic. Each region has fully operational services.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eArchitecture:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg src=\"https://cdn.hackernoon.com/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-s44392y.jpeg\" alt=\"Active-Active Architecture\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUse Case\u003c/strong\u003e: Global SaaS platforms, e-commerce, 24/7 services.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003ePros\u003c/strong\u003e: Continuous availability, seamless user experience.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eCons\u003c/strong\u003e: High complexity, data consistency issues, expensive.\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch2 id=\"h-best-practices-for-disaster-recovery\"\u003eBest Practices for Disaster Recovery\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDR should operate in \u003cstrong\u003eseparate cloud accounts\u003c/strong\u003e or projects to stop the spread of accidental deletions.\u003c/li\u003e\n\u003cli\u003eThe implementation of object locking and versioning enables \u003cstrong\u003eimmutable backups\u003c/strong\u003e to protect against tampering.\u003c/li\u003e\n\u003cli\u003eThe first step should be \u003cstrong\u003eautomation\u003c/strong\u003e because tools like Terraform, Ansible and Pulumi enable the deployment of complete DR environments within minutes.\u003c/li\u003e\n\u003cli\u003eThe organization should maintain precise and current documentation for \u003cstrong\u003erunbooks and DR procedures\u003c/strong\u003e and contact lists.\u003c/li\u003e\n\u003cli\u003eThe practice of simulating failure scenarios through \u003cstrong\u003eChaos Testing\u003c/strong\u003e should be performed on a regular basis. Learn and improve.\u003c/li\u003e\n\u003cli\u003eUse config \u003cstrong\u003escanners or CI/CD pipelines\u003c/strong\u003e to ensure parity between prod and DR.\u003c/li\u003e\n\u003cli\u003eEnsure traceability, billing insights, and resource cleanup to \u003cstrong\u003etag and audit everything\u003c/strong\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/p\u003e\u003chr\u003e\n\u003ch2 id=\"h-conclusion\"\u003eConclusion\u003c/h2\u003e\n\u003cp\u003eOrganizations need to look at disaster recovery to function as a core competency beyond basic backup operations As infrastructure becomes more distributed and threats increase, having a mature DR posture is non-negotiable. High availability deals with expected situations but disaster recovery enables organizations to face unexpected disasters.\u003c/p\u003e\n\u003cp\u003eStart small. Pick a DR model that fits your business and expand over time. The cost of prevention is always lower than the cost of failure.\u003c/p\u003e\n\u003cp\u003e\u003c/p\u003e\u003cp\u003e\u003c/p\u003e","profile":{"avatar":"https://cdn.hackernoon.com/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-kr83dx5.jpeg","callToActions":[],"handle":"ybommishetti","bio":"I’m Yakaiah, a Software Engineering Manager with over a decade of experience in building enterprise-grade solutions.","currentJob":{"company":"Hammer Technologies an Infovista Business","startDate":"","title":"Software Engineering Manager"},"displayName":"Yakaiah Bommishetti","isBrand":false,"jobHistory":[{"company":"","endDate":"","startDate":"","title":""}],"about_page_settings":{"blocked":false,"createdAt":"2025-05-28T20:18:27.058Z","owner":"JdAMnkKbQwN94BHuIt3Fhdifbbv2","published":true,"style":{"headline_pos":"center","layout":0,"skin":0},"updatedAt":"2025-05-28T20:18:27.058Z"},"isTrusted":false,"allowSubscribers":true},"publishedAt":1749112143.935,"tags":["disaster-recovery","rto","rpo","cloud-architecture","system-design","failover-management","high-availability","site-reliability-engineering"],"title":"Beyond High Availability: Disaster Recovery Architectures That Keep Running When HA Fails","tldr":"High Availability (HA) is not enough. True Disaster Recovery (DR) requires isolated, tested, and automated failover strategies. This expert-driven guide explores DR architectures that actually work—covering RTO/RPO planning, real-world failures, multi-region setups, and practical cloud patterns to ensure business continuity beyond just uptime.","youtubeTranscriptData":null,"backlinks":{"fetched":"2025-06-05T08:29:03.078Z","urls":["https://hackernoon.com/archives/2025/6/5","https://www.linkedin.com/feed/update/urn:li:activity:7336505319658860545/?actorCompanyId=34267109","https://sreweekly.com/sre-weekly-issue-481/","https://sreweekly.com/"]},"mentions":[{"id":"LUNA","name":"Terra","image":"https://s2.coinmarketcap.com/static/img/coins/64x64/4172.png","collection":"coins","filtered":false,"manual":false},{"name":"Amazon","id":"amazon","collection":"companies","image":"https://cdn.hackernoon.com/company/amazon-cleeocj8p003besvj7ekq76sd.jpeg","filtered":false,"manual":false},{"name":"WhatsApp","id":"whatsapp","collection":"companies","image":"https://cdn.hackernoon.com/company/whatsapp-cleesmagl01yyesvj3vqx4f4a.png","filtered":false,"manual":false},{"name":"Google","id":"google","collection":"companies","image":"https://cdn.hackernoon.com/images/img-5h03441.jpeg","filtered":false,"manual":false},{"collection":"profiles","displayName":"Google Cloud","image":"https://cdn.hackernoon.com/images/3v97Rlxm62VI0G1TmNERno5Dl3N2-ge83zy1.jpeg","handle":"googlecloud","url":"https://hackernoon.com/u/googlecloud","filtered":false,"manual":false}],"super_category":"ai-and-ml","annotations":[],"coAuthorProfiles":[],"commentsCount":1,"fromMongo":true,"relatedStories":[{"title":"Komiser: AWS Environment Inspector","mainImage":"https://hackernoon.com/fallback-feat.png","slug":"komiser-aws-environment-inspector-8340946b6237","tags":["aws","monitoring","infrastructure","cloud-computing","tech"],"excerpt":"In order to build \u003cstrong\u003eHA\u003c/strong\u003e \u0026amp; \u003cstrong\u003eResilient\u003c/strong\u003e applications in \u003cstrong\u003eAWS\u003c/strong\u003e, you need to assume that everything will fail. Therefore, you always design and deploy your application in multiple \u003cstrong\u003eAZ\u003c/strong\u003e \u0026amp; \u003cstrong\u003eregions\u003c/strong\u003e. So you end up with many unused AWS resources (Snapshots, ELB, EC2, Elastic IP, etc) that could cost you a fortune.","publishedAt":1521303447263,"profile":{"handle":"mlabouardy","avatar":"https://cdn.hackernoon.com/avatars/robot-b2.png","displayName":"Mohamed Labouardy"},"recommended":true},{"title":"What I Learned Running Both SQL Server and PostgreSQL at Scale","mainImage":"https://cdn.hackernoon.com/images/2jqChkrv03exBUgkLrDzIbfM99q2-hv821pp.jpeg","slug":"what-i-learned-running-both-sql-server-and-postgresql-at-scale","tags":["sql","sql-server-ha","postgresql","postgresql-ha","always-on-ags","haproxy","database-failover","streaming-replication"],"excerpt":"SQL Server may fail over slightly faster, but PostgreSQL with Patroni offers a strong, production-grade HA stack at a much lower licensing cost.","publishedAt":1777536461638,"profile":{"handle":"mineshch","avatar":"https://cdn.hackernoon.com/avatars/hZaKdvrqqNR1ik6a9fWK0zqEh1d2.png","displayName":"Minesh Chande"},"recommended":true},{"title":"Configuring SQL Server for High Availability in the Cloud","mainImage":"https://cdn.hackernoon.com/images/gl5q369u.jpg","slug":"configuring-sql-server-for-high-availability-in-the-cloud-rs4b36ns","tags":["sql","sql-server","cloud","cloudservices","azure","aws","virtual-machine","microsoft-cloud-services","web-monetization"],"excerpt":"Every big Cloud service provider offers you guaranteed SLAs availability about 99.95 %, and this percentage of availability can make you think that cloud is perfect for a SQL Server deployment which requires High Availability. Azure and AWS are the two giants of cloud services, and their geographical distribution of data centers can leverage you to think of cloud for a SQL server development configured with disaster recovery.","publishedAt":1580084454634,"profile":{"handle":"vijay-singh-khatri","avatar":"https://cdn.hackernoon.com/images/Bj8AxZbmqwQUNAOela0UGCyV6VJ3-wf8320w.jpeg","displayName":"Vijay Singh Khatri"},"recommended":true},{"title":"Dealing With Replication, High-Performance Queries And Other Data Platforms Challenges","mainImage":"https://firebasestorage.googleapis.com/v0/b/hackernoon-app.appspot.com/o/images%2F5rmDuEXeqjUDOYk2UQTpkL6nvf63-a51h3twh.jpeg?alt=media\u0026token=e229dc68-34c0-4225-b339-dbadb5bf30ab","slug":"dealing-with-replication-high-performance-queries-and-other-data-platforms-challenges-ztg3w3p","tags":["distributed-systems","database","big-data","distributed-database","data-replication","disaster-recovery","high-availability","nosql"],"excerpt":"Many products solve for global issues and load balancing but unless a platform is built from the ground up with the necessary backbones, it becomes a nightmare to manage.","publishedAt":1605434540228,"profile":{"handle":"1tylermitchell","avatar":"https://firebasestorage.googleapis.com/v0/b/hackernoon-app.appspot.com/o/images%2F5rmDuEXeqjUDOYk2UQTpkL6nvf63-il03t3g.jpeg?alt=media\u0026token=18b1308f-2de5-46dc-a9ef-1032be4865a4","displayName":"Tyler Mitchell"},"recommended":true},{"title":"Set up Oracle Data Guard Faster Than Getting Your Morning Coffee With This Guide","mainImage":"https://cdn.hackernoon.com/images/lh3GIz5KYbVlETykJ0q4yOt71CA3-jc134p8.png","slug":"set-up-oracle-data-guard-faster-than-getting-your-morning-coffee-with-this-guide","tags":["oracle-database","oracle-dataguard","disaster-recovery","high-availability","physicalstandby","databaseadministration","physical-standby-database","oracle-data-guard-broker"],"excerpt":"Learn Physical Standby Database setup using Oracle Data Guard Broker in Oracle 21c, prerequisites, configuration, validation, and synchronization.","publishedAt":1739442298803,"profile":{"handle":"arvindtoorpu","avatar":"https://cdn.hackernoon.com/images/lh3GIz5KYbVlETykJ0q4yOt71CA3-0b035yf.jpeg","displayName":"Arvind Toorpu","isBrand":false},"recommended":true},{"title":"Utility Data Innovation: Naveen Bagam's Eversource CRDB Project Success","mainImage":"https://cdn.hackernoon.com/images/InxBRjRIs6M1kdhuWcyNHiiUrxm1-h0038p6.png","slug":"utility-data-innovation-naveen-bagams-eversource-crdb-project-success","tags":["eversource-crdb","naveen-bagam","utility-data-integration","high-availability-systems","disaster-recovery-architecture","informatica-workflows","oracle-and-pro*c-integration","good-company"],"excerpt":"Naveen Bagam led Eversource’s CRDB rollout, unifying customer data to ensure reliable access during outages and setting new utility data standards.\n\n","publishedAt":1751343290019,"profile":{"handle":"sanya_kapoor","avatar":"https://cdn.hackernoon.com/images/GW405sigkDfs6HeTpL8h1kxtn0W2-yv83a1k.png","displayName":"Sanya Kapoor","isBrand":true},"recommended":true},{"id":"M6wbaFGrkMoSBQYafsvs","title":"Are Cloud-Based Architectures the Key to Scalable and Intelligent Autonomous Transportation?","slug":"are-cloud-based-architectures-the-key-to-scalable-and-intelligent-autonomous-transportation","mainImage":"https://cdn.hackernoon.com/images/4udciSRphodkXaSzpTYDjeyVPZi2-2393xna.jpeg","tags":["cloud-architecture","autonomous-vehicle","autonomous-cars","autonomous-technology","cloud","self-driving-cars","autonomous-driving","cloud-transportation"],"profile":{"rejected":{"total":3,"Link Promotion":1,"Other":2},"callToActions":[{"icon":"fa-star","name":"Nominated for 2022 - HackerNoon Contributor of the Year - Security","active":true,"id":"2022 hackernoon contributor of the year security","url":"https://www.noonies.tech/2022/web3/2022-hackernoon-contributor-of-the-year-security"},{"icon":"fa-star","name":"Nominated for 2022 - HackerNoon Contributor of the Year - Cybersecurity","active":true,"id":"2022 hackernoon contributor of the year cybersecurity","url":"https://www.noonies.tech/2022/emerging-tech/2022-hackernoon-contributor-of-the-year-cybersecurity"}],"displayName":"Devin Partida","bio":"Devin is the Editor-in-Chief of ReHack. She covers cybersecurity, business technology and more.","handle":"devinpartida","avatar":"https://cdn.hackernoon.com/images/4udciSRphodkXaSzpTYDjeyVPZi2-wta3kjg.jpeg","socialMedia":{},"interested_tags":["cybersecurity","twingatehq","cryptocurrency","crypto-breaches","crypto-security","security","online-security","secure-wallet"],"badges":["FfK9FBhzvEp1JE3VJsq3","4ldTyPSGGqxxc5nxqC8G"],"createTime":"2022-05-31T13:08:44.304Z","awards":{"noonies2022nom_2022 hackernoon contributor of the year security":{"awardUrl":"https://www.noonies.tech/2022/web3/2022-hackernoon-contributor-of-the-year-security","year":"2022","awardImgUrl":"","description":"nomination","title":"2022 - HackerNoon Contributor of the Year - Security"},"noonies2022nom_2022 hackernoon contributor of the year cybersecurity":{"awardUrl":"https://www.noonies.tech/2022/emerging-tech/2022-hackernoon-contributor-of-the-year-cybersecurity","year":"2022","awardImgUrl":"","description":"nomination","title":"2022 - HackerNoon Contributor of the Year - Cybersecurity"}},"about_page_settings":{"owner":"4udciSRphodkXaSzpTYDjeyVPZi2","createdAt":"2022-06-14T08:52:24.534Z","blocked":false,"style":{"layout":0,"skin":0,"headline_pos":"center"},"published":true,"updatedAt":"2022-06-14T08:52:24.534Z"},"long_bio":""},"fromSlack":false,"publishedAt":"2023-10-16T19:57:37.394Z"},{"id":"LIqDD7clIwANPysTU3r3","title":"Cloud Architects Need More than Certifications","slug":"cloud-architects-need-certifications-plus","mainImage":"https://cdn.hackernoon.com/images/125QJTRDxBYOCF63KJz9mn0Vqcg2-wb93ves.jpeg","tags":["cloud-computing","cloud-architecture","aws-certification","google-cloud-platform","cloud-infrastructure","certification","technology","software-architecture"],"profile":{"createTime":"2022-05-24T20:02:04.660Z","displayName":"Michael Gibbs","callToActions":[{"name":"Nominated for 2022 - HackerNoon Contributor of the Year - Software Architecture","icon":"fa-star","active":true,"id":"2022 hackernoon contributor of the year software architecture","url":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-software-architecture"},{"name":"Nominated for 2022 - HackerNoon Contributor of the Year - Cloud Computing","icon":"fa-star","active":true,"id":"2022 hackernoon contributor of the year cloud computing","url":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-cloud-computing"},{"icon":"fa-star","name":"Nominated for 2022 - HackerNoon Contributor of the Year - Google Cloud Platform","active":true,"id":"2022 hackernoon contributor of the year google cloud platform","url":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-google-cloud-platform"}],"awards":{"noonies2022nom_2022 hackernoon contributor of the year google cloud platform":{"awardUrl":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-google-cloud-platform","year":"2022","awardImgUrl":"","description":"nomination","title":"2022 - HackerNoon Contributor of the Year - Google Cloud Platform"},"noonies2022nom_2022 hackernoon contributor of the year cloud computing":{"awardUrl":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-cloud-computing","year":"2022","description":"nomination","awardImgUrl":"","title":"2022 - HackerNoon Contributor of the Year - Cloud Computing"},"noonies2022nom_2022 hackernoon contributor of the year software architecture":{"awardUrl":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-software-architecture","year":"2022","awardImgUrl":"","description":"nomination","title":"2022 - HackerNoon Contributor of the Year - Software Architecture"}},"bio":"CEO of Go Cloud Careers. Technology expert with 25 years of experience in networking, cloud computing, and IT security.","long_bio":"","handle":"thecloudarchitect","about_page_settings":{"owner":"125QJTRDxBYOCF63KJz9mn0Vqcg2","createdAt":"2022-06-01T10:06:15.777Z","blocked":false,"style":{"layout":0,"skin":0,"headline_pos":"center"},"published":true,"updatedAt":"2022-06-01T10:06:15.777Z"},"avatar":"https://cdn.hackernoon.com/avatars/robot-a3.png","socialMedia":{"youtube":"GoCloudArchitects","linkedin":"https://www.linkedin.com/in/michael-gibbs-75820a/"},"interested_tags":["cloud-data-migration","cloud-testing","decentralized-cloud-storage","technology","cloud-based-tools-for-business","cloud-architecting","to-the-cloud","marketing-cloud","cloud-cost-managment","tech","crypto","taking-it-to-the-clouds","software-development","cloud-security","hybrid-cloud","future-of-cloud-computing","cloud","cloud-architecture","cloudcomputing","security-in-multi-cloud","businesses-moving-to-the-cloud","cloud-security-solutions","cloud-platform","cloud-management","cloud-data","cloud-networks","the-cloud","web-development","cloud-infrastructure","cloudstorage","cloud-hosting","cloud-gaming","coding","what-is-cloud-computing","cloudservices","google-cloud","google-cloud-platform","cloud-computing","google-cloud-services","blockchain","security","businesses-and-cloud-computing","cloud-service","cloud-top-story","cloudmigration","what-is-future-of-cloud","cloud-based-solutions","cloud-environment","virtual-private-cloud","entrepreneurship","artificial-intelligence","cloud-service-models","cloud-adoption","startup","cloud-development","cloud-storage","cloud-migration","cloud-migration-strategy","multi-cloud","hackernoon-top-story","cloud-data-security","cloudnative","hybrid-cloud-solutions","business","multi-cloud-approach","cloud-native","cloudsecurity"]},"fromSlack":false,"publishedAt":"2022-06-07T22:15:35.991Z"},{"id":"1NA5KiQx0ly87KzJhfrk","title":"Exploring Serverless, Cloud, and On-Premises Architectures","slug":"exploring-serverless-cloud-and-on-premises-architectures","mainImage":"https://cdn.hackernoon.com/images/ISqbrAAUPfdfaQMQXQ5GUpyoJKl2-jt93soc.jpeg","tags":["serverless-architecture","cloud-architecture","on-premises","infrastructure","cloud-infrastructure","cloud","data","serverless"],"profile":{"avatarNFT":false,"displayName":"Luciano Vitetti","callToActions":[{"icon":"fa fa-book","name":"Read My Stories","active":true,"id":"36d5d2e3c75ad","url":"https://hackernoon.com/u/lucianov"}],"bio":"A software developer who loves travelling and playing chess","handle":"lucianov","about_page_settings":{"owner":"ISqbrAAUPfdfaQMQXQ5GUpyoJKl2","createdAt":"2023-08-30T14:31:57.246Z","blocked":false,"style":{"layout":0,"skin":0,"headline_pos":"center"},"published":true,"updatedAt":"2023-08-30T14:31:57.246Z"},"long_bio":"","avatar":"https://cdn.hackernoon.com/images/ISqbrAAUPfdfaQMQXQ5GUpyoJKl2-4e93sr0.jpeg","socialMedia":{"linkedin":"https://www.linkedin.com/in/luciano-vitetti/"},"interested_tags":["web3","writing","programming","cloud","cybersecurity","startups","artificial-intelligence","decentralized-internet","privacy","startup-advice","serverless","kubernetes","innovation","remote-work","hackernoon-top-story"]},"fromSlack":false,"publishedAt":"2023-08-30T14:31:44.974Z"},{"id":"tvtji8yzec3NF3fIpPKD","title":"Heroku From the Perspective of a Cloud Architect","slug":"heroku-from-the-perspective-of-a-cloud-architect-rc1w3t1a","mainImage":"https://cdn.hackernoon.com/images/1ain3v1j.jpg","tags":["heroku","cloud-architecture","kubernetes","cloud","aws","software-development","cloud-architecting","freelancing","web-monetization"],"profile":{"about_page_settings":{"blocked":false,"createdAt":"2021-12-16T04:58:30.411Z","owner":"nTMgodFHH4evRjSdNFNz3dacaM23","published":true,"style":{"headline_pos":"center","layout":0,"skin":0},"updatedAt":"2021-12-16T04:58:30.411Z"},"adIcon":"fab fa-bitcoin","adLink":"https://medium.com/@michael.bogan","adText":"I write about technology michael.bogan@gmail.com","avatar":"https://hackernoon.com/images/avatars/nTMgodFHH4evRjSdNFNz3dacaM23.jpg","awards":{"noonies2022nom_2022 hackernoon contributor of the year api":{"awardImgUrl":"","awardUrl":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-api","description":"nomination","title":"2022 - HackerNoon Contributor of the Year - Api","year":"2022"},"noonies2022nom_2022 hackernoon contributor of the year devops":{"awardImgUrl":"","awardUrl":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-devops","description":"nomination","title":"2022 - HackerNoon Contributor of the Year - Devops","year":"2022"},"noonies2022nom_2022 hackernoon contributor of the year microservices":{"awardImgUrl":"","awardUrl":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-microservices","description":"nomination","title":"2022 - HackerNoon Contributor of the Year - Microservices","year":"2022"},"noonies2022nom_2022 hackernoon contributor of the year software":{"awardImgUrl":"","awardUrl":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-software","description":"nomination","title":"2022 - HackerNoon Contributor of the Year - Software","year":"2022"},"noonies2022nom_2022 hackernoon contributor of the year software architecture":{"awardImgUrl":"","awardUrl":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-software-architecture","description":"nomination","title":"2022 - HackerNoon Contributor of the Year - Software Architecture","year":"2022"},"noonies2022nom_2022 software developer of the year":{"awardImgUrl":"","awardUrl":"https://www.noonies.tech/2022/programming/2022-software-developer-of-the-year","description":"nomination","title":"2022 - Software Developer of the Year","year":"2022"}},"bio":"I run Dev Spotlight - we write tech content for tech companies. Email at michael@devspotlight.com.","bookmarks":["uITenSOTRcLLqbXIpGU7"],"callToActions":[{"active":true,"icon":"fab fa-bitcoin","id":"0f6d462886e98-brand","name":"I write about technology michael.bogan@gmail.com","url":"https://medium.com/@michael.bogan"},{"active":true,"icon":"fa-star","id":"2022 hackernoon contributor of the year software architecture","name":"Nominated for 2022 - HackerNoon Contributor of the Year - Software Architecture","url":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-software-architecture"},{"active":true,"icon":"fa-star","id":"2022 hackernoon contributor of the year microservices","name":"Nominated for 2022 - HackerNoon Contributor of the Year - Microservices","url":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-microservices"},{"active":true,"icon":"fa-star","id":"2022 hackernoon contributor of the year devops","name":"Nominated for 2022 - HackerNoon Contributor of the Year - Devops","url":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-devops"},{"active":true,"icon":"fa-star","id":"2022 hackernoon contributor of the year api","name":"Nominated for 2022 - HackerNoon Contributor of the Year - Api","url":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-api"},{"active":true,"icon":"fa-star","id":"2022 software developer of the year","name":"Nominated for 2022 - Software Developer of the Year","url":"https://www.noonies.tech/2022/programming/2022-software-developer-of-the-year"},{"active":true,"icon":"fa-star","id":"2022 hackernoon contributor of the year software","name":"Nominated for 2022 - HackerNoon Contributor of the Year - Software","url":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-software"}],"createTime":"2020-01-26T19:45:00.568Z","displayName":"Michael","facebook":null,"github":null,"handle":"MichaelB","interested_tags":["data-migration","data-quality","snowflake","google-bigquery","cloud-data-migration","migrating-to-snowflake","migrating-to-redshift","migrating-to-bigquery","web-monetization"],"linkedin":null,"long_bio":"","medium":"michael.bogan","paymentPointer":"$ilp.uphold.com/LYDgAnnzFeQM","preferredCharity":null,"pub":"WvMKf5jk9Eht4J_UEN2Lpy6607nigWOFkkx7f0fcSCw.bFg6tvL1An1yy66roNFcz5ELOWgfw80-NUFlTr10koI","publicBookmarks":true,"rejected":{"Other":1,"total":1},"showStatsPublicly":true,"socialMedia":{"twitter":"mmbogan"},"twitter":"mmbogan","twitterFollowers":113},"fromSlack":false,"publishedAt":"2020-05-26T11:57:40.508Z"},{"id":"how-the-cloud-will-transform-automated-testing-in-the-iot-industry-9c48d4c5d8cf","title":"How The Cloud Will Transform Automated Testing In The IoT Industry","slug":"how-the-cloud-will-transform-automated-testing-in-the-iot-industry-9c48d4c5d8cf","mainImage":"https://hackernoon.com/hn-images/1*nQRY09dz0Bo7o0FcIRsW9A.jpeg","tags":["automated-testing","hardware","cloud-architecture","cloud-services","iot"],"profile":{"displayName":"Pete Staples","handle":"petestaples","autoGenerated":true,"avatar":"https://hackernoon.com/fallback-profile.png"},"fromSlack":false,"publishedAt":"2018-11-27T14:50:56.662Z"},{"id":"VMSfyD46Tp2rVYbRq7KH","title":"How to Elicit the Right Information to Get the Right Solution","slug":"how-to-elicit-the-right-information-to-get-the-right-solution","mainImage":"https://cdn.hackernoon.com/images/125QJTRDxBYOCF63KJz9mn0Vqcg2-mb93o98.jpeg","tags":["communication","information","emotional-intelligence","cloud-computing","cloud-architecture","technology","executives","entrepreneurship"],"profile":{"createTime":"2022-05-24T20:02:04.660Z","callToActions":[{"icon":"fa-star","name":"Nominated for 2022 - HackerNoon Contributor of the Year - Software Architecture","active":true,"id":"2022 hackernoon contributor of the year software architecture","url":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-software-architecture"},{"icon":"fa-star","name":"Nominated for 2022 - HackerNoon Contributor of the Year - Cloud Computing","active":true,"id":"2022 hackernoon contributor of the year cloud computing","url":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-cloud-computing"},{"name":"Nominated for 2022 - HackerNoon Contributor of the Year - Google Cloud Platform","icon":"fa-star","active":true,"id":"2022 hackernoon contributor of the year google cloud platform","url":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-google-cloud-platform"}],"awards":{"noonies2022nom_2022 hackernoon contributor of the year google cloud platform":{"awardUrl":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-google-cloud-platform","year":"2022","description":"nomination","awardImgUrl":"","title":"2022 - HackerNoon Contributor of the Year - Google Cloud Platform"},"noonies2022nom_2022 hackernoon contributor of the year cloud computing":{"awardUrl":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-cloud-computing","year":"2022","awardImgUrl":"","description":"nomination","title":"2022 - HackerNoon Contributor of the Year - Cloud Computing"},"noonies2022nom_2022 hackernoon contributor of the year software architecture":{"awardUrl":"https://www.noonies.tech/2022/programming/2022-hackernoon-contributor-of-the-year-software-architecture","year":"2022","description":"nomination","awardImgUrl":"","title":"2022 - HackerNoon Contributor of the Year - Software Architecture"}},"displayName":"Michael Gibbs","bio":"CEO of Go Cloud Careers. Technology expert with 25 years of experience in networking, cloud computing, and IT security.","handle":"thecloudarchitect","about_page_settings":{"owner":"125QJTRDxBYOCF63KJz9mn0Vqcg2","createdAt":"2022-06-01T10:06:15.777Z","blocked":false,"style":{"layout":0,"skin":0,"headline_pos":"center"},"published":true,"updatedAt":"2022-06-01T10:06:15.777Z"},"long_bio":"","avatar":"https://cdn.hackernoon.com/avatars/robot-a3.png","socialMedia":{"youtube":"GoCloudArchitects","linkedin":"https://www.linkedin.com/in/michael-gibbs-75820a/"},"interested_tags":["cloud-data-migration","cloud-testing","decentralized-cloud-storage","technology","cloud-based-tools-for-business","cloud-architecting","to-the-cloud","marketing-cloud","cloud-cost-managment","tech","crypto","taking-it-to-the-clouds","software-development","cloud-security","hybrid-cloud","future-of-cloud-computing","cloud","cloud-architecture","cloudcomputing","security-in-multi-cloud","businesses-moving-to-the-cloud","cloud-security-solutions","cloud-platform","cloud-management","cloud-data","cloud-networks","the-cloud","web-development","cloud-infrastructure","cloudstorage","cloud-hosting","cloud-gaming","coding","what-is-cloud-computing","cloudservices","google-cloud","google-cloud-platform","cloud-computing","google-cloud-services","blockchain","security","businesses-and-cloud-computing","cloud-service","cloud-top-story","cloudmigration","what-is-future-of-cloud","cloud-based-solutions","cloud-environment","virtual-private-cloud","entrepreneurship","artificial-intelligence","cloud-service-models","cloud-adoption","startup","cloud-development","cloud-storage","cloud-migration","cloud-migration-strategy","multi-cloud","hackernoon-top-story","cloud-data-security","cloudnative","hybrid-cloud-solutions","business","multi-cloud-approach","cloud-native","cloudsecurity"]},"fromSlack":false,"publishedAt":"2022-08-11T14:28:07.977Z"},{"id":"V7Vt18vqcxu8qFN6l82q","title":"I am Just an Architect With His Head in the Cloud","slug":"i-am-just-an-architect-with-his-head-in-the-cloud","mainImage":"https://cdn.hackernoon.com/images/M6G22rxQzLTqx37eMqcSVG1Ybvj2-1j93vm7.jpeg","tags":["cloud-computing","cloud-architecting","cloud-architecture","programming","cloud-networks","technology","hackernoon-top-story","business","hackernoon-es","hackernoon-hi","hackernoon-zh","hackernoon-vi","hackernoon-fr","hackernoon-pt","hackernoon-ja"],"profile":{"youtube":"","github":"","wallet":"","rejected":{"total":3,"Link Promotion":1,"Plagiarism":1,"Other":1},"displayName":"Mikhail Kirilin","callToActions":[{"icon":"fa fa-book","name":"Read My Stories","active":true,"id":"6ff13d7d420f","url":"https://hackernoon.com/u/mikhailkirilin"},{"name":"Telegram","icon":"","active":true,"id":"bcf2a5c56c513-brand","url":"https://t.me/xpitfire"}],"facebook":"","bio":"Copywriter, community manager, editor. Interested in fintech, investing, fund management.","handle":"mikhailkirilin","instagram":"","linkedin":"","avatar":"https://cdn.hackernoon.com/images/dGWqB8LEZBhGjcvFXLwmrj7Beog2-0002655.jpeg","socialMedia":{"linkedin":"https://www.linkedin.com/in/mkirilin/"},"interested_tags":["algorithmic-trading","investing","hedge-fund","stock-market","trading-algorithms","hackernoon-top-story","backtesting-algo-trading-tools","backtesting-algo-trading-fast"],"twitter":"","createTime":"2021-07-20T07:37:04.917Z","adIcon":"","adLink":"","about_page_settings":{"owner":"dGWqB8LEZBhGjcvFXLwmrj7Beog2","createdAt":"2021-12-16T04:44:10.209Z","blocked":false,"style":{"layout":0,"skin":0,"headline_pos":"center"},"published":true,"updatedAt":"2021-12-16T04:44:10.209Z"},"long_bio":"","banned":"Plagiarism","adText":""},"fromSlack":false,"publishedAt":"2022-05-07T03:23:55.903Z"}],"previousRead":{"slug":"the-many-layers-of-caching-all-the-places-data-lives-in-modern-systems","mainImage":"https://cdn.hackernoon.com/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-3i138xp.jpeg","owner":"JdAMnkKbQwN94BHuIt3Fhdifbbv2","title":"The Many Layers of Caching: All the Places Data Lives in Modern Systems"},"nextRead":{"slug":"session-vs-jwt-vs-oauth2-the-complete-authentication-strategy","mainImage":"https://cdn.hackernoon.com/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-1o438dt.jpeg","owner":"JdAMnkKbQwN94BHuIt3Fhdifbbv2","title":"Session vs JWT vs OAuth2: The Complete Authentication Strategy"},"staticData":{"frLangTooltip":"Lisez cette histoire en Français!","about":"About","enLangTooltip":"Read this story in the original language, English!","loggedOutBookmark":"Create an account to store your bookmarks","learnMore":"Learn More","stats":"Stats","editStory":"Edit Story","audioPresented":"Audio Presented by","by":"by","audioTranslationText":null,"newStory":"New Story","loggedInBookmark":"Bookmark story","esLangTooltip":"Lee esta historia en Español!","relatedStories":"RELATED STORIES","addComment":"Add Comment","ptLangTooltip":"Leia esta história em português!","hiLangTooltip":"इस कहानी को हिंदी में पढ़ें!","comments":"Comments","removeBookmark":"Remove bookmark","commentReply":"Reply","minutes":"min","reads":"reads","trLangTooltip":"Bu hikayeyi Türkçe okuyun!","tags":"TOPICS","jaLangTooltip":"この物語を日本語で読んでください!","bnLangTooltip":"এই গল্পটি বাংলায় পড়ুন!","storyMentions":"MENTIONED IN THIS STORY","ruLangTooltip":"Прочтите эту историю на русском языке!","deLangTooltip":"Lesen Sie diese Geschichte auf Deutsch!","featuredIn":"THIS ARTICLE WAS FEATURED IN","tldrTitle":"Too Long; Didn't Read","koLangTooltip":"이 이야기를 한국어로 읽어보세요!","zhLangTooltip":"用繁體中文閱讀這個故事!","viLangTooltip":"Đọc bài viết này bằng tiếng Việt!"},"searchTopics":["ha fails","availability disaster"],"stats":{"pageviews":1330},"socialPreviewImage":"https://hackernoon.imgix.net/images/JdAMnkKbQwN94BHuIt3Fhdifbbv2-4y0387q.jpeg","gptZeroMsg":"This story is mostly human.","audioData":[{"url":"https://storage.googleapis.com/hackernoon/audios/rCHvjg7kt4ZxaaAg0uMs-en-US-Wavenet-I-MALE--6d9645fed9ac1.mp3","nickname":"Dr. One (en-US)","avatar":"https://cdn.hackernoon.com/avatars/robot-b5.png","audioPath":"audios/rCHvjg7kt4ZxaaAg0uMs-en-US-Wavenet-I-MALE--6d9645fed9ac1.mp3"},{"url":"https://storage.googleapis.com/hackernoon/audios/rCHvjg7kt4ZxaaAg0uMs-en-US-Wavenet-H-FEMALE--890f1499500e4.mp3","nickname":"Ms. Hacker (en-US)","avatar":"https://cdn.hackernoon.com/avatars/robot-b6.png","audioPath":"audios/rCHvjg7kt4ZxaaAg0uMs-en-US-Wavenet-H-FEMALE--890f1499500e4.mp3"}]},"slug":"beyond-high-availability-disaster-recovery-architectures-that-keep-running-when-ha-fails"},"__N_SSG":true},"page":"/[slug]","query":{"slug":"beyond-high-availability-disaster-recovery-architectures-that-keep-running-when-ha-fails"},"buildId":"qqTckmfliewRaBLUp_8jP","isFallback":false,"isExperimentalCompile":false,"dynamicIds":[77618,63213,87127,71206,89752,41116,31486,42348],"gsp":true,"scriptLoader":[]}</script><script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a39cf0d2ce772b74',t:'MTc4OTE5NTQzNQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html> |