5.6 KiB
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
- Secret degerlerini yalniz production environment/secret store icinde saglayin.
- php artisan migrate --force
- npm ci ve npm run build
- php artisan optimize:clear
- Environment yuklendikten sonra config:cache, route:cache ve view:cache
- php artisan horizon:terminate; process manager yeniden baslatmalidir.
- php artisan schedule:list
- Dis isteksiz php artisan serp:dataforseo:health --json
- Ayri acik izinle health --remote --json
- Once canary dry-run; ayri izinle yalniz bir kez --execute.
- 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_LOGINveDATAFORSEO_PASSWORDyalnız secret store/environment içinde bulunmalı; değerleri ekrana basma.- Başlangıç durumu
SERP_CHECKS_ENABLED=false,SERP_OPERATION_MODE=disabled,SERP_PROVIDER=dataforseokalmalıdır. - Önce
php artisan migrate --pretend, yetkili deploy sırasında sonraphp 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 vedefault,serptü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ı
- Remote health: yalnız ayrı açık onayla
serp:dataforseo:health --remote --json. Bakiye critical altındaysa veya health başarısızsa dur. - Tek canary: remote health PASS sonrasında ayrıca canary mode değişikliği ve ayrıca tek ücretli
canary --executeonayı gerekir. Normal customer ve scheduler trafiği kapalı kalır. - 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.