Production mühiti — tətbiqin real istifadəçilər və məlumatlarla işlədiyi mühitdir. Development və staging-dən fərqli olaraq, production sabitlik, performans və dayanıqlılığa yüksək diqqət tələb edir. DORA (2024)-nın məlumatına görə, yüksək DevOps yetkinliyinə malik komandalar production-a aşağı yetkinlikli komandalardan 200 dəfə daha tez-tez deploy edirlər. CI/CD pipeline bu prosesi avtomatlaşdıraraq insan səhvləri riskini azaldır və dəyişikliklərin istifadəçilərə çatdırılmasını sürətləndirir.
Əsas məqamlar
CI/CD kontekstində Production — tətbiqin həyat dövrünün son mərhələsidir, burada kod bütün qurma və test mərhələlərindən keçdikdən sonra son istifadəçilər üçün əlçatan olur. Development və staging mühitlərindən fərqli olaraq, production mühiti real məlumatlar və yüklərlə işləyir ki, bu da etibarlılıq və performansa xüsusi tələblər qoyur.
Production mühiti sadəcə server deyil, load balancerlər, məlumat bazaları, keşləmə qatları, CDN və monitoring sistemlərini əhatə edən infrastrukturdur. Hər bir komponent nasazlığa davamlı və miqyaslana bilən olmalıdır. Mobil tətbiq inkişafında production həmçinin backend xidmətləri, API şlüzləri və push infrastrukturunu əhatə edir ki, bunlar da müştəri tətbiqinin işini təmin edir.
Production mühiti ciddi meyarlara cavab verməlidir: 99.9% və daha yüksək əlçatanlıq, API cavab müddəti 200 ms-dən çox olmamalı, bərpa dəstəyi (RTO və RPO SLA çərçivəsində). Mobil tətbiqlər üçün əlavə olaraq crash monitoring (qəza hesabatı), istifadə analitikası və eksperimentlər üçün A/B platformaları tələb olunur. CI/CD pipeline hər deploydan əvvəl avtomatlaşdırılmış yoxlamalar vasitəsilə bu tələblərə uyğunluğu təmin edir.
Production-a deploy — CI/CD pipeline vasitəsilə avtomatlaşdırılmış çoxmərhələli prosesdir. Hər mərhələ qüsurlu kodun istehsalata daxil olmasının qarşısını alan yoxlamaları əhatə edir. Tipik mobil tətbiq pipeline nümunəsində əsas mərhələlərə baxaq.
Pipeline depo əsas qoluna commit ilə başlayır. Push-dan sonra avtomatik qurma və vahid testlər, sonra isə inteqrasiya testləri və kod keyfiyyəti yoxlaması işə salınır. Bütün mərhələlər uğurla keçdikdə artefakt build reyestrində dərc edilir və son yoxlama üçün staging-ə deploy edilir. Yalnız staging-də təsdiqləndikdən sonra pipeline production-a deploy-a keçir.
@Library("shared-lib") _
pipeline {
agent any
stages {
stage("Build") {
steps {
sh "cd app && ./gradlew assembleRelease"
}
}
stage("Test") {
steps {
sh "cd app && ./gradlew testRelease"
}
}
stage("Deploy to Staging") {
steps {
sh "deploy-staging.sh"
}
}
stage("Deploy to Production") {
input "Deploy to production?"
steps {
sh "deploy-production.sh"
}
}
}
}
Production-a avtomatlaşdırılmış deploy zero-downtime deployment strategiyalarından istifadə edir: rolling update, blue-green deployment və ya canary release. Rolling update zamanı yeni tətbiq nümunələri xidməti dayandırmadan köhnələrini tədricən əvəz edir. Blue-green deployment iki eyni mühiti dəstəkləyir və trafiki dərhal dəyişdirir ki, bu da problem olduqda sürətli geri qayıtmağa imkan verir. Strategiya seçimi xidmətin kritikliyindən və icazə verilən dayanma müddətindən asılıdır. Mobil tətbiqlər üçün production-a deploy mərhələli rollout ilə tətbiq mağazalarında (App Store Connect, Google Play Console) dərci əhatə edir ki, bu da nəşr prosesini avtomatlaşdırmaq üçün CI/CD-nin mağaza API-ləri ilə əlavə inteqrasiyasını, o cümlədən ikili faylların yüklənməsi, metadata doldurulması və rəyə göndərilməsini tələb edir.
Production-a uğurlu deploydan sonra CI/CD pipeline xidmətin əsas iş qabiliyyətini yoxlayan smoke-testlər dəstini işə salır: endpoint-lərin əlçatanlığı, API cavablarının düzgünlüyü, cavab müddətinin normal həddə olması. Mobil tətbiqlər üçün əlavə olaraq avtorizasiya, məlumat sinxronizasiyası və ödəniş inteqrasiyalarının düzgün işləməsi yoxlanılır. Smoke-testlər keçməzsə, pipeline avtomatik olaraq əvvəlki sabit versiyaya rollback başladır və komandaya bildiriş göndərir. Deploydan sonra monitoring artırılmış alert səviyyəsi ilə 30-60 dəqiqə ərzində davam edir — bu, avtomatik testlərlə əhatə olunmayan problemləri aşkar etmək üçün pəncərədir.
| Strategiya | Dayanma müddəti | Geri qayıtma sürəti | Mürəkkəblik |
|---|---|---|---|
| Rolling update | Minimal | Tədrici | Aşağı |
| Blue-green | Sıfır | Dərhal | Orta |
| Canary | Sıfır | Tədrici | Yüksək |
Production ilə daha az ciddi mühitlər arasında əsas fərq real istifadəçi məlumatları və yükləri ilə işləməkdir. Staging mühiti buraxılışdan əvvəl son yoxlama üçün nəzərdə tutulub, lakin sintetik və ya anonimləşdirilmiş məlumatlardan istifadə edir. Production isə canlı tranzaksiyaları, şəxsi məlumatları və kritik vacib əməliyyatları emal edir ki, bu da idarəetməyə prinsipial olaraq fərqli yanaşma tələb edir.
Production mühitinin konfiqurasiyası digər mühitlərdən ciddi şəkildə izolə edilməlidir. Bu, mühit dəyişənlərinə, məlumat bazalarına qoşulma sətirlərinə, API açarlarına və sertifikatlara aiddir. Production infrastrukturu adətən nasazlığa davamlılığı təmin etmək üçün bir neçə əlçatanlıq zonasında (availability zones) təkrarlanır. Mobil tətbiqlər üçün production həmçinin test build-lərində olmayan Apple App Store və Google Play konfiqurasiyalarını əhatə edir.
Production-da test üçün real məlumatlardan istifadə qəti qadağandır — bunun üçün staging və development mühitləri mövcuddur. Məlumat bazası strukturunda bütün dəyişikliklər CI/CD pipeline tərəfindən avtomatik tətbiq olunan miqrasiyalardan keçməlidir. Production məlumatlarının ehtiyat nüsxələri cədvəl üzrə backup-ların bütövlüyünün avtomatik yoxlanılması ilə yerinə yetirilir. Retention policy ehtiyat nüsxələrin saxlanma müddətini GDPR və digər tənzimləyicilərin tələblərinə uyğun olaraq müəyyən edir.
Production-un monitorinqi — metrikaların, logların və treyslərin toplanması və təhlilinin davamlı prosesidir. Tam hüquqlu monitoring olmadan SLA-ya zəmanət vermək və insidentləri vaxtında aşkar etmək mümkün deyil. Müasir yanaşma üç sütuna əsaslanır: metrikalar (rəqəmsal göstəricilər), loglar (hadisələrin strukturlaşdırılmış qeydləri) və treyslər (sorğuların izlənməsi).
Production mühitinin əsas metrikalarına daxildir: uptime (xidmətin əlçatanlığı), latency (cavab gecikməsi), error rate (xəta faizi), throughput (ötürmə qabiliyyəti) və saturation (resurs yüklənmə səviyyəsi). Mobil tətbiqlər üçün işəsalma vaxtı, crash tezliyi (crash-free rate) və məlumat sinxronizasiya vaxtı kritikdir. Alert-lər SLO (Service Level Objectives) əsasında konfiqurasiya edilir ki, komanda SLA pozulmazdan əvvəl bildirişlər alsın.
Production infrastrukturunun monitorinqi üçün ixtisaslaşmış platformalardan istifadə olunur: Datadog, New Relic, metrikaların toplanması üçün Grafana + Prometheus, mobil tətbiqlərdə səhvlərin izlənməsi üçün Sentry və Crashlytics. Loglar ELK stack (Elasticsearch, Logstash, Kibana) və ya Splunk vasitəsilə mərkəzləşdirilir. Sorğuların izlənməsi Jaeger və ya Zipkin ilə həyata keçirilir. Bütün alətlər yeni xidmət deploy edilərkən avtomatik dashboard yaratmaq üçün CI/CD pipeline ilə inteqrasiya olunur. Incident response sistemi (PagerDuty, Opsgenie) bütün monitorinq alətlərindən alert-lər alır və rotasiya və eskalasiya qaydaları əsasında avtomatik olaraq məsul növbətçi təyin edir. Hər bir insident növü üçün runbook repozitoridə saxlanılır və kodla birlikdə versiyalaşdırılır ki, bu da bərpa təlimatlarının aktuallığını təmin edir.
Production mühitinin təhlükəsizliyi — infrastrukturu, məlumatları, girişi və deploy prosesini əhatə edən çoxsəviyyəli müdafiə sistemidir. Hər bir səviyyə elə konfiqurasiya edilməlidir ki, birinin kompromitasiyası bütün sistemin kompromitasiyasına gətirib çıxarmasın. CI/CD pipeline avtomatlaşdırılmış yoxlamalar, zəiflik skaneri və pipeline-ın hər mərhələsində uyğunluq nəzarəti vasitəsilə təhlükəsizliyin təmin edilməsində əsas rol oynayır.
Production mühitinə giriş ən az imtiyaz prinsipi əsasında ciddi şəkildə məhdudlaşdırılır. Tərtibatçıların production serverlərinə birbaşa girişi yoxdur — bütün dəyişikliklər təsdiq mexanizmi ilə CI/CD pipeline vasitəsilə həyata keçirilir. Təcili giriş üçün avtomatik rotasiya və hərəkətlərin tam loglanması ilə müvəqqəti etimadnamələrdən istifadə olunur. Dörd göz prinsipi (hər bir əməliyyat iki nəfərin təsdiqini tələb edir) production əməliyyatları üçün standartdır.
Production-da hər bir dəyişiklik audit sistemində qeydə alınır: deploy-ı kim başlatdı, hansı commit deploy edildi, hansı yoxlamalar keçildi, deploy nə qədər vaxt apardı. CI/CD-nin insident idarəetmə sistemləri (PagerDuty, Opsgenie) ilə inteqrasiyası deploy uğursuz olduqda və ya SLO pozulduqda avtomatik ticket yaratmağa imkan verir. Bütün production logları SOC2 və ISO 27001 tələblərinə uyğun olaraq ən azı 90 gün saxlama müddəti ilə dəyişdirilməz anbarda saxlanılır.
Tez-tez verilən suallar
Staging — buraxılışdan əvvəl son yoxlama üçün sintetik və ya anonimləşdirilmiş məlumatlardan istifadə edən mühitdir. Production real istifadəçilər, yüklər və həssas məlumatlarla işləyir, buna görə də production-da təhlükəsizlik və etibarlılıq tələbləri əhəmiyyətli dərəcədə yüksəkdir. Staging və production konfiqurasiyaya görə maksimum dərəcədə eyni, lakin tamamilə izolə edilmiş olmalıdır.
Deploy tezliyi CI/CD proseslərinin yetkinliyindən və tətbiq növündən asılıdır. DORA (2024)-nın məlumatına görə, yüksək effektiv komandalar gündəlik və ya hətta gündə bir neçə dəfə deploy edirlər. Mobil tətbiqlər üçün tezlik App Store və Google Play rəy dövrü ilə məhdudlaşır, lakin backend xidmətləri tam avtomatlaşdırılmış test şəraitində gündə bir neçə dəfə deploy edilə bilər.
Uğursuz deploy zamanı dərhal rollback proseduru işə salınır — əvvəlki sabit versiyaya qayıdış. CI/CD pipeline əsas metrikalar düşdükdə (error rate, latency) avtomatik geri qayıdışı dəstəkləməlidir. Sabitləşmədən sonra post-mortem təhlili aparılır: kök səbəb müəyyən edilir, düzəliş tapşırığı yaradılır və insidentin təkrarlanmasının qarşısını alacaq avtomatik yoxlamalar əlavə edilir.
Kritik metrikalar: uptime (xidmətin əlçatanlığı), latency (p95 və p99 cavab müddəti), error rate (HTTP 5xx və istisnalar faizi), saturation (CPU, memory, disk, network) və throughput (RPS). Mobil tətbiqlər üçün əlavə olaraq crash-free rate, soyuq start vaxtı və ANR (Application Not Responding) tezliyi vacibdir. Hər bir metrika SLO və müvafiq alert-ə malik olmalıdır.
Əsas müdafiə üsulu — avtomatlaşdırma: bütün dəyişikliklər məcburi yoxlamalar və review mexanizmi ilə CI/CD pipeline-dan keçir. Əlavə olaraq tətbiq edilir: dörd göz prinsipi (iki senior tərtibatçının təsdiqi), funksionallığın tədricən aktivləşdirilməsi üçün feature flag-lar, riski azaltmaq üçün canary deployment və kritik ssenariləri əhatə edən avtomatik testlər. Production-a birbaşa giriş yalnız təsdiqlənmiş DevOps prosedurları vasitəsilə icazəlidir.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun