Висока доступність (HA)
Здатність системи працювати безперервно.
Висока доступність (High Availability, HA) — це проєктування та впровадження системи, яке забезпечує високий рівень операційної продуктивності, зазвичай вимірюваний часом безвідмовної роботи (uptime), протягом певного періоду. В ІТ та розподілених системах HA спрямована на мінімізацію часу простою та забезпечення безперервної доступності послуг, часто націлюючись на 'п'ять дев'яток' (99,999%) часу безвідмовної роботи або вище. Досягнення HA включає резервування на кількох рівнях: апаратне забезпечення (наприклад, резервні блоки живлення, мережеві інтерфейси, сервери), програмне забезпечення (наприклад, резервні екземпляри додатків, бази даних) та мережева інфраструктура (наприклад, резервні мережеві шляхи, балансувальники навантаження). Механізми відмовостійкості (failover) є критично важливими; вони автоматично виявляють відмови компонентів і перемикають операції на резервний компонент з мінімальним або нульовим перериванням для користувачів. Балансування навантаження розподіляє трафік між кількома активними компонентами, запобігаючи перевантаженню та покращуючи продуктивність. Реплікація даних забезпечує узгодженість даних між резервними системами. Архітектури HA часто включають географічно розподілені центри обробки даних для захисту від відмов на рівні сайту, таких як стихійні лиха. Компроміси для HA включають підвищену складність, вищі початкові витрати через резервні компоненти та потенційні проблеми з керуванням розподіленим станом і забезпеченням узгодженості під час подій відмовостійкості.
graph LR
Center["Висока доступність (HA)"]:::main
Rel_byzantine_fault_tolerance["byzantine-fault-tolerance"]:::related -.-> Center
click Rel_byzantine_fault_tolerance "/terms/byzantine-fault-tolerance"
Rel_standardization["standardization"]:::related -.-> Center
click Rel_standardization "/terms/standardization"
Rel_rust["rust"]:::related -.-> Center
click Rel_rust "/terms/rust"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Простими словами
Висока доступність — це як літак з двома двигунами. Якщо один двигун зупиниться, літак все одно долетить. Це означає мати запасний варіант для кожної деталі, щоб сайт ніколи не 'падав'.
🤓 Expert Deep Dive
Архітектури високої доступності зазвичай використовують шаблони резервування active-active або active-passive. Системи active-active розподіляють навантаження між кількома робочими вузлами, забезпечуючи як резервування, так і покращену продуктивність, але вимагаючи складну синхронізацію стану та балансування навантаження. Системи active-passive використовують резервний вузол, який бере на себе керування після виявлення відмови (failover), часто керований програмним забезпеченням кластеризації або механізмами контролю справності (heartbeat). Виявлення відмов є критично важливим і використовує такі методи, як перевірки стану (health checks), контрольні сигнали (heartbeats) та синтетичні транзакції. Ключовими показниками є ціль точки відновлення (Recovery Point Objective, RPO) та ціль часу відновлення (Recovery Time Objective, RTO): RPO визначає максимальну прийнятну втрату даних, впливаючи на стратегії реплікації (синхронна проти асинхронної), тоді як RTO визначає максимальний прийнятний час простою для відновлення послуги, визначаючи швидкість відмовостійкості. Протоколи розподіленої згоди (наприклад, Paxos, Raft) можуть відігравати роль у підтримці узгодженості стану між вузлами у складних системах HA. Географічне резервування додає складності, пов'язані із затримкою та плануванням аварійного відновлення.