Files
trafficpumper/docs/production-serp-runbook.md
T
2026-08-29 15:53:53 +03:00

5.6 KiB
Raw Blame History

TrafficPumper SERP Production Runbook

Aktivasyon seviyeleri: disabled dis istek yapmaz; validation_only yalniz config ve acik izinle ucretsiz bakiye health kontroludur; canary normal customer/scheduler kapaliyken gunde en fazla bir kontrollu sorgudur; enabled butce, kill switch ve circuit breaker altinda normal kullanimdir. Hicbir gecis otomatik yapilmaz.

Deploy

  1. Secret degerlerini yalniz production environment/secret store icinde saglayin.
  2. php artisan migrate --force
  3. npm ci ve npm run build
  4. php artisan optimize:clear
  5. Environment yuklendikten sonra config:cache, route:cache ve view:cache
  6. php artisan horizon:terminate; process manager yeniden baslatmalidir.
  7. php artisan schedule:list
  8. Dis isteksiz php artisan serp:dataforseo:health --json
  9. Ayri acik izinle health --remote --json
  10. Once canary dry-run; ayri izinle yalniz bir kez --execute.
  11. Maliyet, normalization, audit, queue ve log kontrolu tamamlanmadan enabled moda gecmeyin.

Migration additive oldugundan bakim modu zorunlu degildir; release eszamanliligini deployment sistemi guvenceye almiyorsa bakim modu kullanin.

Scheduler ve Horizon

Tek cron: * * * * * cd /GERCEK/PROJE/YOLU ve php artisan schedule:run. Windows gelistirme yolu production yolu degildir. Horizon default ve serp kuyruklarini tuketir. Coklu sunucuda Redis ortak cache/lock/circuit icin zorunludur.

Emergency stop ve rollback

Super_admin emergency stop ile yeni Live/submit islemlerini keser; mevcut ucretli Standard task polling sonucu kurtarir. Gerekirse worker/scheduler kontrollu durdurulur, onceki release donulur ve config cache yenilenir. Additive migration veri riski varsa korlemesine geri alinmaz. Stuck kayitlar once serp:reconcile, sonra onayla --execute ile islenir.

Ilk 24 saat

Saatlik harcama, bakiye, basari orani, auth/429/5xx, circuit/kill state, stuck/poll sayilari, backlog, failed jobs ve scrub edilmis loglari kontrol edin. Secret, Authorization header, keyword veya ham response gorulurse emergency stop uygulayin.

AŞAMA 8 — Güvenli production geçişi (Seviye 0)

Bu çalışma alanından production sunucusuna erişim veya deployment yetkisi verilmemiştir. Gerçek proje yolu, PHP binary, web/PHP-FPM/Horizon servis adları, cron/timer, release ve rollback hedefi production'da salt okunur keşfedilecek; Windows geliştirme yolları production değeri değildir.

Deployment öncesi kapılar

  • Release/commit ve doğrulanmış rollback hedefini kaydet; yedek politikasının varlığını doğrula.
  • APP_ENV=production, APP_DEBUG=false; shared Redis cache/lock ve kalıcı queue kullan.
  • DATAFORSEO_LOGIN ve DATAFORSEO_PASSWORD yalnız secret store/environment içinde bulunmalı; değerleri ekrana basma.
  • Başlangıç durumu SERP_CHECKS_ENABLED=false, SERP_OPERATION_MODE=disabled, SERP_PROVIDER=dataforseo kalmalıdır.
  • Önce php artisan migrate --pretend, yetkili deploy sırasında sonra php artisan migrate --force çalıştır.
  • Lock dosyalarıyla production Composer/npm kurulumu ve npm run build; ardından cache, route, view ve worker yenileme adımlarını platformda keşfedilmiş servis adlarıyla uygula.
  • /up, ana sayfa, login, admin login, migration status, route list, schedule:list, Horizon ve default,serp tüketimini doğrula.

php artisan serp:production:preflight --json dış HTTP yapmaz ve kritik kapıda non-zero döner. Disabled deploy sonrasında serp:dataforseo:health --json, serp:dataforseo:canary --json, serp:reconcile ve serp:operations:snapshot --window=24h --json çalıştırılır. Preflight production ortamında PASS olmadan aktivasyon ilerletilmez.

Ayrı onay kapıları

  1. Remote health: yalnız ayrı açık onayla serp:dataforseo:health --remote --json. Bakiye critical altındaysa veya health başarısızsa dur.
  2. Tek canary: remote health PASS sonrasında ayrıca canary mode değişikliği ve ayrıca tek ücretli canary --execute onayı gerekir. Normal customer ve scheduler trafiği kapalı kalır.
  3. Limited production: canary kabul kriterlerinin tamamı PASS olduktan sonra ikinci ayrı açık onay gerekir. İki anahtar birlikte açılmadan normal trafik başlamaz.

Canary kabulü; başarılı HTTP/envelope, yalnız organic sonuç, rank_group normalizasyonu, depth 10, tek reservation/reconciliation, izin verilen maliyet, scrubbed audit/log, kapalı circuit ve doğru bütçe sayaçlarının tamamını gerektirir. Eksikte emergency stop/disabled uygulanır.

Limitler ve ilk 24 saat

Güvenli profil: günlük 1.00 USD, aylık 20.00 USD, uyarı %80, low balance 10.00 USD, critical balance 2.00 USD, Live rezervasyon 0.003 USD, Standard 0.001 USD, depth 10. Ramp-up yeni ücretli rezervasyonları atomik olarak ilk saat 5, ilk 6 saat 25, ilk 24 saat 100 toplam kontrolle sınırlar; daha önce ücretlenmiş Standard polling devam eder.

Filament /admin/serp-operations ve serp:operations:snapshot aynı metrik servisini kullanır. Bütçe, backlog, failed/stuck, health, kill/circuit ve ramp durumu izlenir. Support/admin salt okunur; emergency stop/clear yalnız super_admin yetkisidir. Audit kanıtları operasyon audit kayıtlarında, maliyetler bütçe ledgerında, hassas olmayan özet Filament/CLI'dadır.

Rollback ve incident recovery

Önce emergency stop ile yeni ücretli trafik kesilir; ücretlenmiş Standard task polling kontrollü sürer. Release/commit kaydedilip önceki doğrulanmış release'e dönülür; config/route/view cache ve keşfedilmiş PHP-FPM/Horizon servisleri kontrollü yenilenir. Additive migration körlemesine rollback edilmez; ileri düzeltme kullanılır. /up, login, admin ve salt okunur SERP ekranları tekrar doğrulanır; budget/audit kayıtları silinmez.