Көп бұлтты топология
1) Көп бұлт ақталған кезде
Драйверлер:- Сенімділік/қолжетімділік: провайдерлер деңгейінде тәуелсіз істен шығу аймақтары.
- Егемендік/комплаенс: юрисдикциялар бойынша сақтау/өңдеу (data residency).
- Тәуекел-менеджмент: вендор-локиннің төмендеуі, сатып алу/баға тетіктері.
- География/спектакль: пайдаланушы мен деректер көздеріне жақын.
- Ерекше сервистер: түрлі бұлттардың үздік «тауашалық» мүмкіндіктеріне қол жеткізу.
- SDLC/бақылау/операциялардың елеулі күрделілігі.
- Провайдерлер арасындағы egress-құнның және жасырындылықтың өсуі.
- Әртүрлі IAM/желілік модельдер/квоталар/лимиттер → көп операциялық тәуекелдер.
2) Топологиялық паттерндер
3) Желілік қабат және бағыттау
3. 1 Жаһандық кіру
GSLB/DNS-рулинг: latency-/health--based; көші-қон терезелеріне қысқа TTL.
Anycast + L7-прокси: бірыңғай IP, өңірлердің денсаулығы бойынша бағыттау.
Юрисдикциялар бойынша саясат: гео-блокинг/гео-пиннинг трафик.
python def pick_cluster(client, intent):
вход: ip, geo, tenant, feature allowed = filter_by_compliance(client. geo) # sovereignty healthy = [c for c in allowed if sdo (c). ok and slo(c). ok]
return argmin(healthy, key=lambda c: latency_estimate(client, c))
3. 2 Бұлт аралық байланыстылық
Жеке арналар/мүмкіндігінше peering; басқаша - TLS + mTLS интернет арқылы.
Egress-бақылау: агрегация/компрессия, жергілікті кэштер/агрегаторлар.
Желілер код ретінде: Terraform/Blueprints, CIDR саясаты, бағыттар мен egress-шлюздер.
4) Деректер және консистенттілік
4. 1 модельдері
Жаһандық күшті консистенттілік бұлт аралық сирек реалистік (жасырындылық/торлар/құн).
Pragmatic eventual: қайшылықтарды шешетін екі бағытты CDC (change data capture).
CRDT/теңсіздік: есептегіштер/торлар/логтар үшін - коммутативті құрылымдар.
4. 2 Үлгілер
Dual-write c outbox: оқиғаның транзакциялық жазбасы → брокер → көрші бұлтты репликалау.
Read-local/Write-home: жазбалар - «үй» аймағына/бұлтқа, оқулар - жергілікті (нұсқаларымен және stale-саясатымен).
Split-brain қорғанысы: дивергенция, «өтемақы» (saga), қолмен ақша инварианттары үшін төрелік.
DB → Debezium/stream → Events(topic@vN) → Cross-cloud relay → Apply w/ resolver resolver: prefer_higher_version prefer_home business_rule()
4. 3 Объектілік сақтау
Бакеттерді, хэштерді/манифесттерді асинхронды репликалау, дедуп.
ILM (hot/warm/cold) саясаты бұлттар бойынша тәуелсіз.
Егемендік қағидалары: «PII UA/EEA-дан кетпейді» - код ретінде валидацияланады.
5) Бірегейлік, құпиялар және кілттер
Бірегейлік федерациясы: бірыңғай IdP, қысқа тұратын токендер, пайплайндардағы OIDC-trust.
Құпиялар: әрбір бұлттың KMS/HSM + Vault-класс абстракциясы; dual-key ауыстыруға арналған.
PoLP/ABAC: атрибуттар негізіндегі құқықтар (cloud, region, env, data_class).
Крипто-домендер: юрисдикция үшін әр түрлі түбір кілттері → облыс бойынша crypto-erasure.
6) Атқарушылық орта: кластерлер мен мештер
Мультикластер (K8s): бұлт/өңір үшін бір кластер; GitOps (ArgoCD/Fleet) арқылы fleet-басқару.
Сервис-меш: mTLS, retries, circuit-breakers, failover policies cross-cluster.
- Статикалық сервистер → деректер орны бойынша.
- Әр бұлтта интерактивті API → (Active/Active).
- Batch/ETL → «жасыл» терезелер/арзан аймақ (carbon/cost aware).
rego package placement
allow[cloud] {
input. service. pii == false cloud:= input. clouds[_]
cloud. features. contains("cheap_gpu")
}
deny["PII outside allowed region"] {
input. service. pii == true not input. target_region in {"eu-central","eu-north","eu-west"}
}
7) Көп бұлттағы Observability және SLO
Көп жалдаулы белгілер: 'cloud', 'region', 'tenant', 'data _ domain'.
SLI/SLO per-бұлт және жаһандық: «егер 1 бұлт ≥ қол жетімді болса, жаһандық қол жетімді».
Телеметрияны жинау: жергілікті + egress бақылауы бар агрегация.
Трассировкалар: жаһандық trace-id, контексті насихаттау, «қалдықтар» бойынша tail-based семплирлеу.
Салыстыру дашбордтары: A vs B per endpoint/p99/error-budget burn.
8) SDLC/IaC және «код ретінде саясат»
IaC бірыңғай моно-каталогы: провайдер-модульдер/стектер, инварианттар (тегтер, желілер, шифрлау).
GitOps: декларативті манифесттер, drift-detect, промо орта.
Конформанс-тесттер: екі бұлт үшін де API/оқиғалар, Canaries келісімшарттары.
Релиз-гейттер: блок бір бұлтта SLO бұзылу қаупі кезінде (burn rate болжамы), егемендікке сәйкес келмеген кезде.
yaml gate: multi-cloud-slo-and-compliance checks:
- slo_burn_rate(global) < 1. 0
- slo_burn_rate(cloud:A) < 2. 0
- compliance_rule("pii_in_region") == pass
- egress_forecast < budget on_fail: block_release
9) Құны және көміртегі (FinOps/GreenOps)
Unit-метриктер: '$/req', '$/GB-egress', 'gCO ₂ e/req'.
Non-critical batch үшін құны/көміртегі бойынша роутинг: арзан/« жасыл »сағат/өңірлер.
Egress-кап: бұлт аралық трафиктің бюджеті; кэш/агрегация/компрессия/TTL.
RI/SP/Committed Use әрбір бұлтта + spot/preemptible «иілгіш қабат».
10) Фейлдер мен жаттығуларды тестілеу
Game-days: «А бұлтын сөндіру», «БД бәсеңдету», «egress лимиттерін тесу».
Чек-поинттер: RTO/RPO, DNS-үйлесімділік уақыты, фича-жалаудың көтерілуі, кэштің мінез-құлқы.
Релиздердегі Chaos-смоук: тәуелділіктің тозуы ретрайлардың каскадына әкелмеуі тиіс.
11) Қауіпсіздік, құпиялылық, комплаенс
Zero-Trust: сервистер/бұлттар арасындағы mTLS, артефактілердің қолы, SBOM.
DPA/егемендік: деректер жиынтығының каталогтары, локализация ережелері, ILM үстіндегі Legal Hold.
Құпиялар мен кілттер: ротация журналы, compromise/kill-switch плейбуктері.
Вебхактар және сыртқы интеграциялар: қолтаңба, anti-replay, өңірлік эндпоинттер.
12) Деректерді/оқиғаларды біріктіру үлгілері
12. 1 Екі бағытты Kafka көпірі (идея):
cloudA. topicX ⇄ relayA→B ⇄ cloudB. topicX cleanup. policy=compact,delete key-based routing idempotent producer
12. 2 Outbox кестесі және қайта тарату:
sql
-- outbox id uuid pk, aggregate_id, type, payload jsonb, version int, created_at timestamptz
-- transactional insertion with domain table change
Одан кейін коннектор outbox оқиды және оқиғаны жергілікті брокер + ретрансляцияға жариялайды.
12. 3 Жанжалдар стратегиясы (жалған):
python def resolve(local, remote):
if local. version > remote. version: return local if remote. version > local. version: return remote equal versions: domain rules return business_tiebreak (local, remote)
13) Қарсы үлгілер
«Бәрін бұрынғыдай екі бұлт етіп сүйретеміз». Ұтыссыз екі есе күрделілік.
Ыстық жолдағы синхронды бұлт аралық транзакциялар.
Барлық бұлттар/аймақтар үшін бірыңғай жаһандық шифрлау кілті.
PII бар бүркемелеусіз және оқшаулау ережелері жоқ логи/трейстер.
Сыртқы өлшеулердің болмауы (нақты қолжетімділік провайдердің мәртебе-беті бойынша ғана көрінеді).
playbooks/жаттығулар жоқ - DR X. сәтінде жұмыс істемейді.
Бір бұлттың тозуы кезіндегі ретрайлардың каскады (лимитерлер/шейдингтер/брейкерлер жоқ).
Ескерілмеген egress - күтпеген шоттар.
14) Сәулетшінің чек-парағы
1. Көп бұлт драйверлері қалыптастырылды ма (SLO/DR/егемендік/құн)?
2. Паттерн (AA/AP/DR-Only/Poly-Service) таңдалып, RTO/RPO тіркелген бе?
3. Желілік жоспар: GSLB/Anycast, health-сынамалар, egress-cap, жеке арналар?
4. Деректер: CDC/CRDT/dual-write, қайшылықтарды шешу ережелері, outbox?
5. Егемендік: деректер/өңірлер картасы, саясат код және олардың гейттері ретінде?
6. IAM/құпиялар: федерация, қысқа токендер, домендер бойынша KMS?
7. Кластерлер/теш: failover стратегиясы, лимитерлер/брейктер/таймауттар?
8. Observability: 'cloud/region', SLO per-бұлт және жаһандық, сыртқы синтетика?
9. SDLC/IaC/GitOps: бірыңғай каталог, конформанс-тесттер, релиз-гейттер?
10. FinOps/GreenOps: unit-метриктер, бюджет egress, «жасыл» терезелер batch?
11. Жаттығулар: тұрақты game-days, хаттамалар мен ретесттер?
12. Exit-жоспар: деректерді экспорттау/пішімдер/мерзімдер, негізгі сервистер үшін second-source?
15) Конфигурацияның шағын үлгілері
15. 1 Юрисдикция бойынша бағыттау саясаты (жалған-YAML):
yaml route:
pii:
allowed_regions: ["eu-central","eu-north","eu-west"]
deny_cross_cloud: false analytics:
allowed_regions: ["eu-","us-"]
prefer_low_carbon: true weights:
eu-central@cloudA: 60 eu-central@cloudB: 40
15. 2 GSLB үшін Health сынамасы:
http
GET /healthz
200 OK x-region: eu-central x-slo: ok at-risk breach
15. 3 Failover-фича-жалауы (жалған құжат):
python if slo_at_risk("cloudA", "payments"):
route. weight["cloudA"] -= 20 route. weight["cloudB"] += 20 enable_stale_rates(ttl=1560)
Қорытынды
Мульти-бұлт - бұл жапсырма емес, инженерлік тәртіп. Ол нақты уәждерді, топологияны саналы түрде таңдауды, деректермен ойластырылған жұмысты, күшті автоматтандыруды және қатаң саясатты талап етеді. Егер тәуекелдер мен құнды өлшесеңіз, желілер мен деректерді «оқулық бойынша» құрсаңыз, фейловерлерді жаттықтырсаңыз және қарапайымдылыққа бағыт ұстасаңыз, мульти-бұлтты платформа сізге тұрақтылық, икемділік пен еркіндік береді - шоттарыңызда тосын сый болмай және пайдаланушының тәжірибесі бойынша ымыраға келмей.