Deployment nədir?
Deployment (Azərbaycan dilində — "yerləşdirmə" və ya "istehsala buraxma") — proqramçının yazdığı kodun, test mərhələsindən keçərək, real istifadəçilərin əl çatacağı canlı mühitə (production) köçürülməsi prosesidir. Deployment, proqram təminatının inkişaf həyat dövrünün son, amma ən kritik mərhələlərindən biridir.
Sadə desək: deployment — bir restoranda yeni bir yeməyin mətbəxdə hazırlanıb, sınaqdan keçirilib, nəhayət müştərilərə təqdim olunmasına bənzəyir. Kod yazmaq "mətbəxdə hazırlamaq", deployment isə "müştəriyə təqdim etmək" mərhələsidir.
Deployment prosesinin mərhələləri
- Kod yazma: Proqramçılar funksiyaları yazır, öz lokal mühitlərində test edir.
- Build (Qurma): Mənbə kodu, kompilyator və ya digər alətlər vasitəsilə icra oluna bilən formaya çevrilir.
- Test mühiti (Staging): Kod, real istifadəçilərdən əvvəl, real mühitə bənzər bir sınaq mühitində yoxlanılır.
- Deployment (Yerləşdirmə): Təsdiqlənmiş kod, canlı (production) serverlərə köçürülür.
- Monitorinq: Deployment-dan sonra sistemin düzgün işlədiyi izlənilir, xətalar aşkarlandıqda tez müdaxilə edilir.
Deployment növləri
- Manual Deployment: Proqramçı və ya administrator, hər addımı əl ilə həyata keçirir — kiçik layihələrdə istifadə olunur, amma səhv riski yüksəkdir.
- Avtomatlaşdırılmış Deployment (CI/CD): Kod anbara (repository) göndəriləndə, xüsusi alətlər (Jenkins, GitHub Actions və s.) test və deployment proseslərini avtomatik həyata keçirir — bu, müasir proqram təminatı komandalarının standart praktikasıdır.
Deployment strategiyaları
Böyük sistemlərdə, yeniləmələrin istifadəçilərə minimal təsirlə çatdırılması üçün müxtəlif strategiyalar istifadə olunur:
- Blue-Green Deployment: İki eyni mühit ("mavi" və "yaşıl") saxlanılır — yeni versiya bir mühitdə yerləşdirilir, tam sınaqdan keçdikdən sonra trafik ona yönləndirilir. Problem yaranarsa, köhnə mühitə dərhal qayıtmaq mümkündür.
- Canary Deployment: Yeni versiya əvvəlcə istifadəçilərin kiçik bir faizinə göstərilir, hər şey düzgün işləyirsə, tədricən daha çox istifadəçiyə yayılır.
- Rolling Deployment: Yeni versiya, serverlər arasında tədricən, bir-bir yerləşdirilir — xidmət heç vaxt tam dayanmır.
Deployment mühitləri
Proqram təminatı adətən bir neçə fərqli mühitdən keçir:
- Development (İnkişaf): Proqramçının öz kompüterində işlədiyi, aktiv kod yazma mühiti.
- Staging (Sınaq): Production-a bənzər, son test üçün istifadə olunan mühit.
- Production (İstehsal/Canlı): Real istifadəçilərin əl çatdığı, canlı mühit.
Deployment niyə vacibdir?
- Keyfiyyət təminatı: Düzgün deployment prosesi, xətaların real istifadəçilərə çatmazdan əvvəl aşkarlanmasını təmin edir.
- Sürət: Avtomatlaşdırılmış deployment, yeni funksiyaların daha tez istifadəçilərə çatdırılmasına imkan verir.
- Etibarlılıq: Strukturlaşdırılmış deployment strategiyaları, yeniləmələr zamanı xidmətin dayanmasının qarşısını alır.
- Geri qaytarma imkanı (Rollback): Problem yarandıqda, əvvəlki stabil versiyaya sürətlə qayıtmaq imkanı yaradır.
Nəticə
Deployment — yazılan kodun real dünyada işə düşdüyü, istifadəçilərə dəyər yaratmağa başladığı kritik mərhələdir. Düzgün planlaşdırılmış deployment prosesi, həm proqram təminatının keyfiyyətini, həm də istifadəçi təcrübəsini birbaşa təsir edir.
İstəyirsiniz ki, bu biliyi praktikaya keçirib real nəticələr əldə edəsiniz? IT və Kompüter Mühəndisliyi kursumuzla addım-addım öyrənməyə başlayın. Ətraflı məlumat üçün linkə keçid edin: IT və Kompüter Mühəndisliyi kursu
Tez-tez verilən suallar
Deployment nədir? Deployment — proqramçının yazdığı kodun, test mərhələsindən keçərək, real istifadəçilərin əl çatacağı canlı (production) mühitə köçürülməsi prosesidir.
Deployment ilə Release arasında fərq nədir? Deployment, kodun serverə fiziki olaraq yerləşdirilməsi prosesidir. Release isə, həmin funksiyanın istifadəçilərə görünən və istifadə edilə bilən hala gətirilməsidir — bəzən kod deploy edilir, amma funksiya hələ istifadəçilərə açılmır (feature flag vasitəsilə).
