„Yaymaq”, „yükləmək”, „tətbiq etmək” — proqramçıların yeni kod versiyasını və ya dəyişiklikləri yayımlamaq prosesini təsvir etmək üçün istifadə etdiyi üç jarqon feildir. Ümumi mənası «yayımlamaq» olsa da, hər bir termin öz məna çalarını və istifadə kontekstini daşıyır: «yaymaq» adətən bütövlükdə yeni versiya haqqında, «yükləmək» — fayl və məlumatlar haqqında, «tətbiq etmək» — mövcud versiya üzərinə yeniləmə haqqında işlədilir. Stack Overflow 2024 sorğusuna görə, rusdilli proqramçıların 89%-i hər gün bu terminlərdən ən azı birini istifadə edir. Fərqlərin nə olduğunu və buraxılış prosesinin necə düzgün təşkil olunduğunu anlayırıq.
Əsas məqamlar
„Yaymaq” — proqram məhsulunun, funksiyanın və ya dəyişikliyin yeni versiyasını yayımlamaq mənasını verən ən ümumi termindir. „Yeniləməni yaydıq”, „fiksi yaydıq”, „buraxılışı yaydıq” — bütün hallarda dəyişikliyin istifadəçilər üçün əlçatan olduğu nəzərdə tutulur. Termin kifayət qədər böyük bir hərəkəti nəzərdə tutur: adətən tək faylı deyil, bütöv versiyanı yayırlar.
„Yükləmək” — daha konkret termin olub, faylların, məlumatların və ya artefaktların serverə və ya depoya göndərilməsi mənasını verir. „Bildi serverə yüklə”, „skriptləri DB-yə yüklə”, „assetləri CDN-ə yüklə”. „Yaymaq”dan fərqli olaraq, termin yüklənənin istifadəçilər üçün əlçatan olduğunu nəzərdə tutmur — fayllar serverdə ola bilər, lakin hələ tətbiqə qoşulmamış ola bilər. Nüans: „yükləmək” həmçinin kodu depoya göndərmək mənasında da işlədilir („GitHub-a yüklədim”).
„Tətbiq etmək” — mövcud versiya üzərinə dəyişiklik tətbiq etmək mənasını verən termindir. „Miqrasiyanı tətbiq et”, „patçı tətbiq et”, „konfiqi tətbiq et”. Əsas fərq — dəyişiklik üstdən əlavə olunur, tam dəyişdirmə olmadan. Əgər „yaymaq” köhnənin yerinə yeni versiyanı işə salmaqdırsa, „tətbiq etmək” artıq işləyənə dəyişiklik əlavə etməkdir. Termin verilənlər bazaları (miqrasiyalar) və patç buraxılışları kontekstində geniş yayılmışdır.
Eyni semantik sahədən əlavə terminlər: „yaymaq” (dəyişikliyi klasterdəki bütün serverlərə yaymaq), „geri qaytarmaq” (əvvəlki versiyanı bərpa etmək), „səhvən yaymaq” (təsadüfən səhv versiyanı yerləşdirmək). Bütün bu fellər kodu «yuvarlanan», «tökülən» və «geri qaytarılan» fiziki obyekt kimi təsvir edir.
„Yaymaq” termini avtomobil metaforasından gəlir: «maşını qarajdan çıxarmaq». Kod buraxılışa hazır olduqda onu «yayırlar» — çölə buraxır, istifadəçilər üçün əlçatan edirlər. Metafora 2000-ci illərin əvvəllərində continuous delivery təcrübələrinin yaranması ilə yayıldı, o zaman buraxılışlar illik deyil, müntəzəm oldu. „Bu gün yayımımız var” — buraxılış günü mənasını verir.
„Yükləmək” termini köklərini erkən internet dövründən götürür, o zaman saytlar FTP ilə serverlərə yüklənirdi. „Faylları serverə yükləmək” — sözün əsl mənasında məlumatların «tökülməsi» ilə əlaqələndirilən protokol vasitəsilə faylları ötürmək. Söz müasir yerləşdirmə CI/CD pipeline-larından istifadə etsə də, işlənməkdə qalır. Maraqlı fakt: ingilis dilində analoq «push» (push to server), «pour» deyil. Rus dili başqa bir metafora seçmişdir.
„Tətbiq etmək” termini istehsal mühitindən gəlir: «təkər taxmaq», «qayka taxmaq». Proqram təminatı kontekstində — mövcud sistemin üzərinə dəyişiklik taxmaq, boltun üzərinə yiv taxmaq kimi. Verilənlər bazalarında termin xüsusilə üzvi şəkildə işləyir: miqrasiyalar məhz «tətbiq olunur» (apply) və «geri qaytarılır» (rollback). Rollback — dəqiq Azəri qarşılığı olan azsaylı ingilis terminlərindən biridir: «geri qaytarma».
Verilənlər bazaları kontekstində: miqrasiyalar «tətbiq olunur», məlumatlar «yüklənir», sxem versiyası «yayılır». Yeni sütun əlavə etmək lazımdırsa — miqrasiya tətbiq olunur. Test məlumatları daxil etmək lazımdırsa — dump yüklənir. Verilənlər bazasının strukturu tam dəyişirsə — yeni sxem yayılır. Fərq müxtəlif əməliyyatları əks etdirir: apply, insert/load, deploy.
DevOps kontekstində: «yaymaq» — pipeline-i işə salmaq, «yükləmək» — Docker təsvirini registrə göndərmək, «tətbiq etmək» — Ansible ilə serverə konfiqurasiya tətbiq etmək. Nümunə: «əvvəl təsviri registrə yükləyək, sonra serverə konfiqi tətbiq edək, və yalnız sonra buraxılışı yayaq». Hər bir termin CI/CD pipeline-ının ayrıca mərhələsinə uyğun gəlir.
Mobil tətbiq inkişafı kontekstində: «yükləmək» — bildi App Store Connect və ya Google Play Console-a göndərmək, «yaymaq» — tətbiq mağazasında yayımlamaq, «tətbiq etmək» — in-app updates mexanizmi vasitəsilə yeniləməni çatdırmaq. iOS üçün «yaymaq» Review-dən keçmək, Android üçün — Play Console vasitəsilə rollout deməkdir. Vaxt miqyası: «yükləmək» dəqiqələr çəkir, «yaymaq» — saatlar və ya günlər (review-ə görə).
| Termin | Nə edilir | Nümunə | İngilis qarşılığı |
|---|---|---|---|
| Yaymaq | Versiyanı yayımlamaq | 2.0 buraxılışını yaydıq | Release / Deploy |
| Yükləmək | Artefaktları yükləmək | Bildi serverə yüklədik | Upload / Push |
| Tətbiq etmək | Yeniləmə tətbiq etmək | Miqrasiyanı tətbiq etdik | Apply / Roll out |
| Geri qaytarmaq | Əvvəlkini bərpa etmək | Dəyişiklikləri geri qaytardıq | Rollback |
Mərhələ 1: Qurma (Build). Kod kompilyasiya olunur, artefakt (binar, Docker təsviri, APK/IPA) yığılır. CI server əsas budaqdakı hər commitdən sonra qurmanı işə salır. Qurmanın nəticəsi — unikal versiya teqi olan (semantic versioning və ya commit hash) yerləşdirməyə hazır artefakt. Qurma uğursuz olarsa — bütün pipeline dayanır, proqramçı bildiriş alır.
Mərhələ 2: Sınaq (Test). Vahid testlər, inteqrasiya testləri, linterlər, təhlükəsizlik yoxlaması (SAST) işə salınır. Bu mərhələ 10–15 dəqiqədən çox çəkməməlidir — daha uzun çəkərsə, proqramçılar konteksti itirir və digər tapşırıqlara keçir. Sürətli geribildirim — CI/CD-nin əsas prinsipidir. Puppet State of DevOps 2023-ə görə, sürətli sınaq keçirən komandalar (<10 dəq) 3 dəfə çox buraxılış edir.
Mərhələ 3: Stacingə yerləşdirmə (Staging Deploy). Artefakt prodakşenlə eyni olan stacing mühitinə yerləşdirilir. Stacingdə E2E testləri, smoke testləri və lazım olduqda QA-nın əl ilə sınağı yerinə yetirilir. Stacingdə reqressiya aşkar edilərsə — buraxılış bloklanır, dəyişikliklər düzəlişə göndərilir.
Mərhələ 4: Prodakşena yayım (Production Deploy). Artefakt prodakşen serverlərinə yerləşdirilir. Yerləşdirmə strategiyasından (rolling, blue-green, canary) asılı olaraq yayım bir neçə saniyədən bir neçə saata qədər çəkə bilər. Yayımdan sonra post-deploy testləri və monitorinq işə salınır — metrikalar normadadırsa, buraxılış uğurlu sayılır. Xəta həddi aşıldıqda avtomatik geri qaytarma — standart təcrübə.
Rolling deploy — serverlərin bir-bir yenilənməsi. Bir server yenilənərkən, qalanları istifadəçilərə xidmət göstərməyə davam edir. Birinci server uğurla yeniləndikdən sonra ikinci yenilənir və s. Minus: yerləşdirmə zamanı serverlərdə müxtəlif versiyalar işləyir, bu da uyğunsuzluğa səbəb ola bilər. Plus: zero-downtime və ikiqat server sayına ehtiyac olmaması.
Blue-green deploy — iki eyni mühit: Blue (cari versiya) və Green (yeni versiya). Green tam hazır və sınaqdan keçdikdən sonra balanslaşdırıcı trafiki Blue-dan Green-ə keçirir. Green-də problem aşkar edilərsə — Blue-ya geri qayıdırıq. Plus: ani rollback. Minus: iki mühiti dəstəkləmək üçün iki dəfə çox resurs (server) lazımdır. Keçid saniyələr çəkir.
Canary deploy — yeni versiya əvvəlcə serverlərin kiçik bir faizinə (5–10%) yerləşdirilir. İstifadəçilərin bir hissəsi yeni versiyaya, qalanları köhnəyə düşür. Canary qrupunda metrikalar normadadırsa (error rate artmayıb, latency yüksəlməyibsə), yeni versiya tədricən bütün serverlərə yayılır. Google, Netflix, Spotify riski minimuma endirmək üçün canary deploy-dan istifadə edir. Minus: monitorinqin və metrika analizinin mürəkkəbliyi.
CI/CD serverləri — Jenkins, GitLab CI, GitHub Actions, CircleCI, Bitrise (mobil üçün). Texnoloji yığımdan asılı olaraq seçilir: Jenkins — universal, GitLab CI — depo GitLab-dadırsa, Bitrise — iOS/Android üçün. CI/CD serverinin əsas vəzifəsi — insan iştirakı olmadan qurma, sınaq və yerləşdirmə pipeline-nı avtomatik yerinə yetirməkdir.
Konteynerləşdirmə — Docker, Kubernetes. Docker tətbiq və bütün asılılıqları ilə izolə edilmiş konteynerlər yaradır. Kubernetes konteynerlərin server klasterində yerləşdirilməsini idarə edir: avtomatik rolling update, miqyaslama, balanslaşdırma. CNCF Survey 2023-ə görə, təşkilatların 96%-i istehsalatda konteynerlərdən istifadə edir, onlardan 67%-i Kubernetes-dən.
Infrastructure as Code — Terraform, Ansible, Pulumi. Terraform infrastrukturu (serverlər, şəbəkələr, balanslaşdırıcılar) kod şəklində təsvir edir və onun vəziyyətini idarə edir. Ansible — server konfiqurasiyası: proqram quraşdırma, parametrlərin tənzimlənməsi. Terraform + Ansible kombinasiyası tam avtomatlaşdırılmış infrastruktur verir: Terraform serverləri qaldırır, Ansible onları konfiqurasiya edir. Immutable infrastructure — serverlər yenilənmir, yenilənmiş təsvirlə yeniləri ilə əvəz olunur.
Tez-tez verilən suallar
Danışıq dilində — bəli, bir çox proqramçı onları sinonim kimi istifadə edir. Texniki olaraq „yükləmək” — yalnız faylları yükləmək, „yaymaq” isə onları istifadəçilər üçün əlçatan etməkdir. Fərq: serverə yükləmək olar, lakin marşrutlaşdırmaya daxil etməmək olar.
„Səhvən yaymaq” — təsadüfən səhv versiyanı yerləşdirmək və ya təsdiq olmadan yerləşdirmək. „Proda səhv budağı yaydım” — CI/CD-də blokadalarla həll olunan klassik səhv: prodakşena yalnız main budağından və bütün yoxlamalardan keçdikdən sonra yerləşdirmək olar.
Amazon hər 11,7 saniyədən bir yerləşdirir, Netflix — gündə bir neçə dəfə. Startaplar üçün həftədə 1–2 buraxılış optimaldır. Buraxılışlar nə qədər tez-tez olarsa, hər birində dəyişikliklər bir o qədər az olar — reqressiyaları lokallaşdırmaq və geri qaytarmaq asanlaşır. Əsas odur ki, proses elə avtomatlaşdırılsın ki, buraxılış əl ilə iş tələb etməsin.
Birinci — əvvəlki sabit versiyaya geri qaytarmaq. Diaqnostika vaxtı — geri qaytarmadan sonra, istifadəçilər yenidən işləyərkən. İkinci — metrikaları və logları analiz edib səbəbi tapmaq. Üçüncü — düzəltmək və yenidən yaymaq. Geri qaytarma uğursuzluq əlaməti deyil, standart prosedurdur.
„To ship” — məhsulu istifadəçilərə göndərmək. „We shipped version 2.0” — „2.0 versiyasını yaydıq”. Yaxın mənalılar: „to roll out”, „to release”, „to deploy”. Mobil tətbiq inkişafında — „to publish” (mağazada yayımlamaq).
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