Rolback жана туруктуулукту калыбына келтирүү
(Бөлүк: Технология жана инфраструктура)
Кыскача резюме
Артка кайтаруу - бул маалыматтарды жоготуу жана SLO бузууларынын минималдуу коркунучу менен акыркы туруктуу версиясына башкарылуучу кайтуу. Ишенимдүү процесс төмөнкүлөрдү камтыйт: SLO сигналдары, так гейтс жана кайра кайтаруу критерийлери, которуу механизми (GitOps/Ingress/меш), шайкеш берилиштер схемасы, изоляцияланган конфигалар/сырлар/кэштер, рунабук жана окуядан кийинки жакшыртуу цикли.
1) Качан тебүү (ишке киргизүү критерийлери)
SLO/бизнес-гейттер: p95/99 босогодон жогору, error-rate ↑, төлөмдөрдүн/коюмдардын конверсиясынын төмөндөшү, PSP таймауттарынын өсүшү.
Техсигналдар: этек боёктору, эс тутумдун агып чыгышы, кезектердин өсүшү, токендердин бузулушу/сек (LLM), 5xx боюнча Edge.
Маалымат тобокелдиги: туура эмес миграциялар, репликалардын шайкеш эместиги, жетим транзакциялар/төлөмдөр.
Коопсуздук/PII: агып шектенүү - дароо артка/обочолонуу.
Эреже: эгерде 2 + негизги метриктер чектен тышкары> N мүнөт - артка кайтаруу башталат.
2) Rolback түрлөрү
1. Тиркеме: мурунку тегине контейнерлер/топтомун кайра.
2. Fich: feature flag/kill-switch аркылуу заматта өчүрүү.
3. Багыттоо: туруктуу нускасында салмагын кайтаруу (canary → туруктуу) же Blue → Green.
4. Маалымат базасы: логикалык артка кайтаруу (компенсация), схеманы этап-этабы менен кайтаруу; PITR - өтө чара.
5. Инфраструктура: манифесттерди/Терраформ-планды артка кайтаруу; тармак конфигурацияларын/WAF кайтаруу.
6. Маалыматтар/кэш/кезек: жаңылоо/майыптык/билдирүүлөрдү кайталоо; версиялык кэштер.
3) Коопсуз артка кайтаруунун архитектуралык принциптери
Схемалардын шайкештиги: expand → migrate → contract стратегиясы (expand жана contract ортосунда мүмкүн).
Обочолонгон көз карандылык: өзүнчө сырлар/конфиги/кэш/текшерүү үчүн кезек.
Идемпотенттик операциялар: миграцияны жана жокту кайра баштоо - коопсуз.
Артефакттардын иммунитети: сүрөттөр, хит-параддар, SQL скрипттери - версияланган жана кол коюлган.
GitOps-чындык: учурдагы версия жана багыттоо manifest-кампа жазылган.
4) Механика (Kubernetes/GitOps)
Арго Rollouts (салмак кайтаруу)
yaml apiVersion: argoproj. io/v1alpha1 kind: Rollout metadata: { name: api }
spec:
strategy:
canary:
steps:
- setWeight: 5
- pause: { duration: 10m }
in case of analysis failure → automatic rollback to stable
GitOps-артка (идея)
git revert <commit_with_bad_version>
git push # Argo CD/Flux revert cluster to previous revision
NGINX: stable боюнча тез Switch
nginx map $cookie_canary $to_canary { default 0; 1 1; }
upstream stable { server api-stable:80; }
upstream canary { server api-canary:80; }
server {
location / {
if ($to_canary) { proxy_pass http://canary; }
proxy_pass http ://stable; # removed canary cookie - instant rollback
}
}
5) Rolback DD жана маалыматтарды коргоо
Expand → Migrate → Contract:- Expand: жаңы талааларды/индекстерди кошуу, код эски жана жаңы схеманы колдойт.
- Migrate: код жаңы схемада жаза баштайт, эски бузуп жок.
- Contract: турукташтыруу кийин гана эски алып салуу.
- PITR/снапшоттор: логикалык компенсация мүмкүн болбогондо гана колдонуңуз.
- Компенсация: кошумчаларды/баланстарды/төлөмдөрдү оңдоо үчүн өзүнчө сценарийлер/джобдор.
- Read-only терезелер: сындап жатканда - убактылуу "тоңдуруп" абалын жазууну бөгөттөп.
sql
-- expand
ALTER TABLE wallet ADD COLUMN bonus_balance NUMERIC DEFAULT 0 NULL;
CREATE INDEX CONCURRENTLY idx_wallet_bonus ON wallet(bonus_balance);
-- migrate in code, two-sided write
-- contract (after stabilization)
ALTER TABLE wallet DROP COLUMN legacy_bonus_balance;
6) Кезектер жана артка чегинүүдө кэштер
Version кэш: версия префикси менен ачкычтар ('v2:') → коопсуз жанаша жашоо.
Майыптык: артка кайтарылганда - массалык тазалоо 'v2:', кайтаруу 'v1:'.
Кезек: партия/топики версия боюнча; "контролдук чекиттен" билдирүүлөрдү кайталоо.
Дедубликация/Идемпотенттүүлүк: Кайталанбаган кайра иштетүү үчүн идемпотенттиктин ачкычтары.
7) SLO-Гейтс жана Auto-Rolls
Метриктер: p95/99, error-rate, saturations (CPU/IO/GPU), queue depth, токендер/сек, төлөмдөрдү которуу.
Саясат (мисал):
if p95_latency_ms > 250 for 5m OR error_rate > 1. 5% for 3m OR payment_conv < baseline-0. 3%
then rollback release && open incident && freeze deploys
8) Рунабуки (playbooks)
A) чыккандан кийин p99 жана 5xx өсүшү
1. Stop promote (тоңдуруп canary/blue-green).
2. Switch traffic туруктуу текшерүү үчүн.
3. Текшерүү кэш-хит/кезек/PSP-кечигүү.
4. Диагностиканы алып салуу: логдор, профилдер, кардарлардын/схемалардын версиялары.
5. Байланыш: ChatOps, статус-канал, окуя-карта.
6. түзөтүүчү иш-аракет баштоо: патч/ысык fix/чичи жокко чыгаруу.
B) DD көчүрүү ката
1. Freeze writes (read-only, кыскача).
2. Арызды артка кайтаруу → туруктуу версия (эски схема менен шайкеш келет).
3. Компенсацияларды/rollback сценарийин аткаруу.
4. Жазууну эритүү; дрейф/каталарды байкоо.
C) Төлөмдөрдүн деградациясы (PSP)
1. PSP багытын мурунку багытка которуу.
2. Кайра иштетүү чыгаруу.
3. Бардык бүтпөгөн төлөмдөрдү салыштыруу, демпотенттик ачкычтар менен кайталоо.
D) LLM/сунуштар деградация
1. Жаңы моделди/параметрлерди өчүрүү (feature flag).
2. Мурунку enpoint/салмагын кайтаруу; жаңы текшерүү KV кэш тазалоо.
3. Текшерүү tokens/s, биринчи токен latency, уулуулугу.
9) Байланыш жана релиздерди тоңдуруу
Freeze window: артка кайтарылгандан кийин - RCA/фикске чейин релиздерди токтотуу.
Бирдиктүү канал: статус-апдейттер, иш-аракеттердин хронологиясы, ким эмне кылды.
Stakholders: продукт/CS/төлөмдөр/юристтер (PII менен).
10) Пост-окуя: талдоо жана алдын алуу
RCA (айыптоосуз): негизги себеп, гейтс эмне үчүн иштебей калган факторлордун салымы (эгерде иштебесе).
Иш-аракеттер: миграциялык тесттер, лимиттер, фичефлаг-гейттер, байкоо жүргүзүү.
SLO босого: өтө "жумшак "/" катуу "болсо, тууралоо.
Документация: Рунабуктарды жаңыртуу, тобокелчиликтерди кошуу, машыгуу (game-day).
11) Аспаптар жана үлгүлөр
GitOps: Argo CD/Flux - 'revert '/' rollback' committee версиясы менен.
Progressive delivery: Арго Rollouts/Flagger - метрика боюнча токтотуу/артка.
Edge/Ingress: салмак багыттоо, куки-роутинг, тез өзгөртүү.
Feature flags: fractional rollout, kill-switch.
DB көчүрүү: up/down, dry-run, throttling менен mig-frameworks.
Observability: даяр дашборддор "release compare" (stable vs canary).
12) Кайра кайтарууга даярдыктын чек-тизмеси
1. Версияланган жана кол коюлган экспонаттар (сүрөттөр/диаграммалар/SQL).
2. Double Rail Config/Secrets/кэш/кезек (версия префикстер).
3. Схема DD боюнча expand → migrate → contract.
4. SLO-дарбазалары жана auto-rockers менен канар жана көк-жашыл релиздер.
5. негизги жагдайлар боюнча Runabook (төлөмдөр/BD/кэш/LLM).
6. ChatOps баскычтары: '/rollback ', '/freeze', '/promote '.
7. Аудит жана логика: ким, качан, эмне ыргытып; диагностика артефакттары.
8. Game-day окутуу: ийгиликсиздик жана калыбына келтирүү тууроо.
9. Бизнес жана саппорт менен байланыш планы.
10. салыштыруу Metrics (stable vs new) бир экранда.
13) Анти-үлгүлөрү
Кодду жайганга чейин кыйратуучу миграциялар (артка шайкештик жок).
Версия жок жалпы кэш/кезек → "кир" кайра.
Жок GitOps/өзгөртүү тарыхы → "кол" түзөтүүлөр.
Канар релизи гейт/телеметрия жок → кеч аныктоо.
freeze жана RCA жок артка → окуя кайталап.
Бизнес-метрикасыз гана техметрик мониторинг (төлөмдөр/тарифтер).
Бардык текшерүүлөр үчүн "жалпы сырлар" → окуяны обочолонтуу кыйын.
Натыйжалары
Ишенимдүү Rolback - бул "stop-кран" эмес, жана чыгаруу камтылган жараян: версия жана шайкештик, көз карандылык, SLO-Гейтс, GitOps-реалдуулук, автоматтык кайра жана так Runabook. Бул ыкма iGaming платформаларына тез стабилдүүлүктү кайтарууга, маалыматтарды жана кирешелерди жоготууну азайтууга жана ар бир окуяны жакшыртуунун булагына айландырууга мүмкүндүк берет.