Bitbucket — Atlassian şirkətinin Jira, Confluence və ekosistemin digər alətləri ilə inteqrasiya olunmuş Git platformasıdır. Bitbucket Git repozitoriyalarının hostinqini, Bitbucket Pipelines vasitəsilə daxili CI/CD-ni və kod icmalı üçün güclü alətləri təmin edir. Atlassian, 2024 məlumatlarına görə, Bitbucket dünyada 10 milyondan çox inkişaf etdirici və 800 000 komanda tərəfindən istifadə olunur.
Əsas məqamlar
Bitbucket — Atlassian şirkəti tərəfindən hazırlanmış Git repozitoriyalarının hostinqi üçün veb platformadır. Əvvəlcə Bitbucket yalnız Mercurial-ı dəstəkləyirdi (2008-ci ildən), lakin 2020-ci ildə Mercurial dəstəyi dayandırıldıqdan sonra tamamilə Git-ə keçdi. Platforma iki redaksiyada mövcuddur: Bitbucket Cloud (SaaS, Atlassian hostinqi) və Bitbucket Data Center (Enterprise üçün lokal versiya).
Bitbucket-in rəqiblər üzərində əsas üstünlüyü Atlassian məhsulları ilə dərin inteqrasiyadır. Jira commit və Pull Request-ləri avtomatik olaraq tapşırıqlara bağlayır, Confluence sənədləşdirməyə kod fraqmentlərini yerləşdirməyə imkan verir, Opsgenie isə yerləşdirmələri hadisələrlə əlaqələndirir. Artıq Atlassian ekosistemindən istifadə edən komandalar üçün Bitbucket təbii seçimdir, çünki əlavə inteqrasiyaların konfiqurasiyasını tələb etmir.
Bitbucket Cloud bir neçə hostinq səviyyəsi təqdim edir. Pulsuz tarif bir istifadəçini və məhdud yaddaşı (1 GB) əhatə edir. Standart tarif istifadəçi başına ayda 3 dollardır, limitsiz şəxsi repozitoriyalar və ayda 2500 dəqiqə Pipelines ilə. Bitbucket istifadəçi lisenziya modeli tətbiq edir: repozitoriyaya girişi olan hər bir istifadəçi, o cümlədən yalnız oxuma rejimi, tarifləşdirilir.
Bitbucket Pipelines — Docker konteynerləri əsasında işləyən daxili CI/CD sistemidir. Pipelines birbaşa Bitbucket Cloud-a inteqrasiya olunub və ayrıca runner-ların quraşdırılmasını və ya webhook konfiqurasiyasını tələb etmir. Konfiqurasiya repozitoriyanın kökündə yerləşən bitbucket-pipelines.yml faylında təsvir olunur. Hər bir pipeline ardıcıllıqla birləşdirilmiş addımlardan (steps) ibarətdir.
Pipelines paralel addımları, əl ilə işə salmağı, push və cədvəl üzrə trigger-ləri, asılılıqların keşlənməsini və artefaktları dəstəkləyir. Hər bir addım konfiqurasiyada göstərilən təsvirə malik izolyasiya olunmuş Docker konteynerində icra olunur. Aşağıda Firebase App Distribution-da test və nəşr ilə Android tətbiqinin qurulması üçün nümunə pipeline verilmişdir:
# bitbucket-pipelines.yml
image: openjdk:17-jdk
pipelines:
pull-requests:
'**':
- step:
name: Build and Test
caches:
- gradle
script:
- ./gradlew assembleDebug testDebugUnitTest
artifacts:
- app/build/outputs/apk/debug/
branches:
main:
- step:
name: Deploy to Firebase
script:
- pipe: atlassian/firebase-distribution:1.0.0
variables:
APP_FILE: 'app/build/outputs/apk/debug/app-debug.apk'
Bitbucket Pipelines Cloud versiyası üçün hər pipeline-da 50 dəqiqə məhdudiyyətinə malikdir, bu əksər layihələr üçün kifayətdir, lakin böyük monorepozitoriyalar üçün darboğaz ola bilər. Data Center-də bu məhdudiyyət tamamilə aradan qaldırılır — pipeline müddəti yalnız serverin mövcud resursları ilə müəyyən edilir. Pipelines həmçinin fərdi Docker təsvirlərini dəstəkləyir, bu da istənilən qurma və test alətlərindən istifadə etməyə imkan verir.
Bitbucket-də Pull Request korporativ kod icmalı proseslərinə vurğu ilə həyata keçirilmişdir. Bitbucket təklif edir: diff-in konkret sətirlərinə inline şərhlər, Pipelines və ya xarici xidmətlərdən məcburi yoxlamalar (checks), birləşmə üçün minimum təsdiq sayı, bütün yoxlamalar keçirilənə qədər merge-in bloklanması və maraqların toqquşması bəyannaməsi (decline). PR interfeysi üç sütuna bölünür: mənbə kodu, diff və fayl strukturu.
Bitbucket-in unikal funksiyası Code Insights-dır. Bu, xarici kod keyfiyyəti alətlərinin (SonarQube, CodeScene, ESLint, Detekt) nəticələrini birbaşa Pull Request interfeysində göstərən API-dir. İnkişaf etdirici görür: yeni səhvlərin sayı, test əhatəsi, kod qoxuları və dublikasiyalar. Code Insights merge haqqında qərarı yalnız rəyçinin subyektiv rəyi deyil, obyektiv metrikalar əsasında qəbul etməyə imkan verir.
Bitbucket həmçinin budaq məhdudiyyətlərini (branch permissions) dəstəkləyir: budaqların silinməsini qadağan etmək, müəyyən budaqlar üçün PR yaradılmasını məcbur etmək, main-ə merge etmək hüququ olan istifadəçilərin siyahısını məhdudlaşdırmaq olar. Əlavə olaraq merge yoxlamaları (merge checks) mövcuddur — Merge düyməsini basmazdan əvvəl yerinə yetirilməli olan məcburi şərtlərin siyahısı (Pipelines keçib, minimum N təsdiq, açıq şərhlər yoxdur). Parametrlər istehsalat budağını təsadüfi yoxlanılmamış dəyişikliklərdən qoruyur.
Bitbucket-in Jira ilə inteqrasiyası platformanın əsas üstünlüyüdür. İnkişaf etdirici commit mesajına tapşırıq açarı daxil etdikdə (məsələn, PROJ-123), Jira bu commit-i avtomatik olaraq tapşırığa bağlayır. Tapşırıq interfeysində Development nişanı göstərilir, burada bu tapşırıqla əlaqəli bütün commit-lər, Pull Request-lər, budaqlar və yerləşdirmələr toplanır. PR-lər birləşdirildikdə Jira-da tapşırığın statusunu avtomatik yeniləyir (Done vəziyyətinə keçid).
Confluence də Bitbucket ilə inteqrasiya olunur: Code Block makrosu vasitəsilə Confluence səhifələrinə repozitoriyadan canlı kod fraqmentləri yerləşdirmək olar. Koddakı dəyişikliklər avtomatik olaraq Confluence ilə sinxronlaşdırılır, bu da arxitektura sənədləşdirməsi üçün əlverişlidir. Əlavə olaraq Atlassian Smart Commits təqdim edir — commit mesajından birbaşa Jira tapşırıqlarının idarə edilməsi: statusun dəyişdirilməsi, vaxt və prioritetlərin əlavə edilməsi.
DevOps avtomatlaşdırması üçün Bitbucket Deployment Gate-i dəstəkləyir — yerləşdirmənin tapşırıq versiyasına bağlanması. Pipeline yerləşdirmə mərhələsinə çatdıqda, Jira bu buraxılışdakı bütün tapşırıqların Approved statusuna malik olub-olmadığını yoxlayır. Əks halda — yerləşdirmə bloklanır. Bu, yalnız kod səviyyəsində deyil, tapşırıq səviyyəsində keyfiyyət nəzarəti ilə Continuous Delivery prinsipini həyata keçirir.
Bitbucket layihə strukturunun standartlaşdırılması üçün repozitoriya şablonları yaratmağa imkan verir. Mobil layihələr üçün əvvəlcədən quraşdırılmış fayllarla şablon yaradıla bilər: Gradle konfiqurasiyası, gitignore, Detekt və Ktlint parametrləri, Android CI üçün pipeline və qurma təlimatı ilə README. Yeni layihə bir neçə kliklə şablondan yaradılır ki, bu da yeni inkişaf etdiricilərin işə başlamasını sürətləndirir.
Bitbucket-in GitHub və GitLab ilə müqayisəsi komandanın işlədiyi ekosistemdən asılıdır. Bitbucket icma ölçüsünə görə GitHub-dan geri qalır (10 mln-a qarşı 100 mln istifadəçi), lakin Atlassian stack sayəsində korporativ inteqrasiyalarda üstündür. Komanda artıq tapşırıqların idarə edilməsi üçün Jira və sənədləşdirmə üçün Confluence istifadə edirsə — Bitbucket əlavə parametrlər olmadan problemsiz inteqrasiya təmin edir.
CI/CD baxımından Bitbucket Pipelines qabaqcıl ssenarilərdə GitLab CI/CD-dən (child pipelines, matris qurmaları, çoxsəviyyəli pipeline-lar yoxdur) və hazır hərəkətlərin sayına görə GitHub Actions-dan (Marketplace Actions-da 20 000+ addım, Bitbucket-də minlərlə ictimai pipe) geri qalır. Bununla belə, Pipelines Atlassian-dan hazır pipe komponentləri sayəsində tipik ssenarilər üçün konfiqurasiyada daha sadədir.
| Meyar | Bitbucket | GitHub | GitLab |
|---|---|---|---|
| CI/CD | Pipelines, 50 dəq/addım | Actions, 2000 dəq/ay | CI/CD, limitsiz (Self) |
| İnteqrasiya | Jira, Confluence | Copilot, Slack, Azure | Kubernetes, Prometheus |
| Self-Hosted | Data Center (pullu) | Enterprise Server | CE (pulsuz) |
| İstifadəçilər | ~10 mln | ~100 mln | ~30 mln |
| Lisenziya | Mülkiyyət | Mülkiyyət | MIT (açıq kod) |
Bitbucket seçimi iki ssenaridə əsaslandırılır: komanda artıq Atlassian ekosistemindən (Jira + Confluence + Opsgenie) istifadə edir və ya iş Bitbucket Data Center-in artıq standart alət kimi yerləşdirildiyi korporativ mühitdə aparılır. Startaplar və açıq mənbə layihələri üçün GitHub daha zəngin icma və pulsuz funksiyalar təklif edir, GitLab isə ən yaxşı öz-özünə idarə olunan CI/CD təmin edir.
Bitbucket Data Center — öz infrastrukturunda quraşdırmaq üçün nəzərdə tutulmuş platformanın korporativ versiyasıdır. Cloud versiyasından fərqli olaraq, Data Center təklif edir: klasterləşdirmə (çox qovşaq üçün aktiv-aktiv rejim), Smart Mirroring (clone/fetch-i sürətləndirmək üçün coğrafi paylanmış güzgülər), yüksək əlçatanlıq (klasterləşdirmə ilə 99,99% uptime) və tam audit.
Data Center Cloud versiyasının bütün funksiyalarını, lakin korporativ genişləndirmələrlə əhatə edir. Smart Mirroring repozitoriyaları müxtəlif məlumat mərkəzlərindəki serverlər arasında avtomatik sinxronlaşdırır — Avropa və Asiyadan olan inkişaf etdiricilər eyni clone/fetch sürətini alır, çünki Git əməliyyatları ən yaxın güzgü vasitəsilə icra olunur. Audit jurnalları hər bir hərəkəti qeyd edir: kim, nə vaxt və hansı IP-dən budaq yaratdı, push etdi, PR-i birləşdirdi.
Bitbucket Data Center-in lisenziyalaşdırılması istifadəçilərin sayına görə aparılır (repozitoriyaların deyil). 50 istifadəçi üçün minimum lisenziya ildə 1520 dollardan (standart tarif). Data Center aşağıdakı təşkilatlar üçün məcburidir: əlçatanlıq üçün SLA tələb olunur, məlumatlar ölkəni tərk edə bilməz (GDPR, 152-FZ), inkişaf etdiricilərin sayı 500 nəfərdən çoxdur və ya korporativ LDAP/SAML sistemi ilə inteqrasiya tələb olunur.
Bitbucket Snippets — kiçik kod fraqmentlərinin saxlanması və mübadiləsi üçün alət. Repozitoriyalardan fərqli olaraq, Snippets tam Git tarixçəsinə malik deyil, lakin versiyalaşdırma, şərhlər və fork-ları dəstəkləyir. Snippets ümumi konfiqurasiyalar (lokal inkişaf üçün docker-compose.yml), miqrasiya SQL skriptləri və tam repozitoriya tələb etməyən kod nümunələri üçün faydalıdır. Hər bir Snippet unikal URL-ə malikdir və Jira-da layihəyə bağlana bilər.
Bitbucket REST API 2.0 repozitoriyaları, Pull Request-ləri, budaqları və icazələri proqram vasitəsilə idarə etməyə imkan verir. API iş proseslərinin avtomatlaşdırılması üçün istifadə olunur: şablondan repozitoriya yaratmaq, icazələrin kütləvi yenilənməsi, Pull Request statistikasının alınması və xarici CI sistemləri ilə inteqrasiya. Rate limit autentifikasiya olunmuş istifadəçilər üçün saatda 1000 sorğudur. API böyük məlumat dəstləri ilə işləmək üçün Page və Pagelen parametrləri vasitəsilə Paginasiyanı dəstəkləyir.
Tez-tez verilən suallar
Bitbucket Atlassian platformasıdır, CI/CD, kod icmalı və Jira ilə daxili inteqrasiya ilə Git kodunun saxlanması üçündür. Artıq Atlassian ekosistemində işləyən komandalar tərəfindən istifadə olunur.
Pipelines pipe komponentlərindən (Atlassian-dan hazır addımlar) istifadə edir, tipik tapşırıqlar üçün daha sadədir. GitHub Actions daha geniş Marketplace və çevik matris qurmaları təklif edir, lakin daha çox konfiqurasiya tələb edir.
5 nəfərlik komanda üçün Bitbucket Cloud Standard ayda 15 dollara başa gəlir (istifadəçi başına 3 dollar). Pulsuz tarif yalnız bir istifadəçi üçün məhdud funksionallıqla mövcuddur.
Bitbucket GitHub, GitLab və digər platformalardan daxili idxalçı təqdim edir. İnterfeysdə Import repository seçin, URL və autentifikasiya məlumatlarını göstərin — bütün commit-lər və budaqlar köçürüləcək.
Data Center — klasterləşdirmə, Smart Mirroring və audit ilə öz serverlərində quraşdırmaq üçün Bitbucket-in korporativ versiyası. Yüzlərlə inkişaf etdiricisi və məlumat təhlükəsizliyi tələbləri olan təşkilatlar üçün uyğundur.
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