Bitbucket — bu Atlassian kompaniyasining Git platformasi bo'lib, Jira, Confluence va ekotizimning boshqa vositalari bilan integratsiyalashgan. Bitbucket Git repozitoriyalarini xostingini, Bitbucket Pipelines orqali o'rnatilgan CI/CD ni va kod ko'rib chiqish uchun kuchli vositalarni taqdim etadi. Atlassian, 2024 ma'lumotlariga ko'ra, Bitbucket butun dunyo bo'ylab 10 milliondan ortiq dasturchi va 800 000 jamoa tomonidan foydalaniladi.
Asosiy fikrlar
Bitbucket — bu Atlassian kompaniyasi tomonidan ishlab chiqilgan Git repozitoriyalarini xosting qilish uchun veb-platforma. Dastlab Bitbucket faqat Mercurial-ni qo'llab-quvvatlagan (2008 yildan), ammo 2020 yilda Mercurial qo'llab-quvvatlashi to'xtatilgandan so'ng butunlay Git-ga o'tdi. Platforma ikki nashrda mavjud: Bitbucket Cloud (SaaS, Atlassian xostingi) va Bitbucket Data Center (Enterprise uchun mahalliy versiya).
Bitbucketning raqobatchilarga nisbatan asosiy ustunligi — Atlassian mahsulotlari bilan chuqur integratsiyadir. Jira commit va Pull Request larni avtomatik ravishda vazifalarga bog'laydi, Confluence hujjatlarga kod bo'laklarini joylashtirish imkonini beradi, Opsgenie esa joylashtirishlarni hodisalar bilan bog'laydi. Atlassian ekotizimidan allaqachon foydalanayotgan jamoalar uchun Bitbucket tabiiy tanlovdir, chunki u qo'shimcha integratsiyalarni sozlashni talab qilmaydi.
Bitbucket Cloud bir necha xosting darajalarini taklif qiladi. Bepul tarif bir foydalanuvchi va cheklangan saqlash hajmini (1 GB) o'z ichiga oladi. Standart tarif — har bir foydalanuvchi uchun oyiga 3 dollar, cheksiz shaxsiy repozitoriyalar va oyiga 2500 daqiqa Pipelines bilan. Bitbucket foydalanuvchi litsenziyalash modelidan foydalanadi: repozitoriyaga kirish huquqiga ega bo'lgan har bir foydalanuvchi, jumladan faqat o'qish rejimi, tariflanadi.
Bitbucket Pipelines — bu Docker konteynerlari asosida ishlaydigan o'rnatilgan CI/CD tizimi. Pipelines to'g'ridan-to'g'ri Bitbucket Cloud-ga integratsiyalangan va alohida runnerlarni o'rnatishni yoki webhook sozlashni talab qilmaydi. Konfiguratsiya repozitoriyaning ildizida joylashgan bitbucket-pipelines.yml faylida tavsiflanadi. Har bir pipeline ketma-ketlikda birlashtirilgan qadamlardan (steps) iborat.
Pipelines parallel qadamlarni, qo'lda ishga tushirishni, push va jadval bo'yicha triggerlarni, bog'liqliklarni keshlashni va artefaktlarni qo'llab-quvvatlaydi. Har bir qadam konfiguratsiyada ko'rsatilgan tasvirga ega izolyatsiya qilingan Docker konteynerida bajariladi. Quyida Firebase App Distribution-da test va nashr bilan Android ilovasini qurish uchun namuna pipeline keltirilgan:
# 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 versiyasi uchun har bir pipeline uchun 50 daqiqa chekloviga ega, bu ko'pchilik loyihalar uchun yetarli, ammo katta monorepozitoriyalar uchun tor joy bo'lishi mumkin. Data Center da bu cheklov butunlay olib tashlanadi — pipeline davomiyligi faqat serverning mavjud resurslari bilan belgilanadi. Pipelines shuningdek, har qanday qurish va test vositalaridan foydalanish imkonini beruvchi maxsus Docker tasvirlarini qo'llab-quvvatlaydi.
Bitbucketda Pull Request korporativ kod ko'rib chiqish jarayonlariga urg'u bilan amalga oshirilgan. Bitbucket taklif qiladi: diff ning aniq qatorlariga inline sharhlar, Pipelines yoki tashqi xizmatlardan majburiy tekshirishlar (checks), birlashtirish uchun minimal ma'qullashlar soni, barcha tekshirishlardan o'tguncha merge ni bloklash va manfaatlar to'qnashuvi deklaratsiyasi (decline). PR interfeysi uchta ustunga bo'lingan: manba kodi, diff va fayl tuzilishi.
Bitbucketning noyob funksiyasi — Code Insights. Bu tashqi kod sifat vositalarining (SonarQube, CodeScene, ESLint, Detekt) natijalarini to'g'ridan-to'g'ri Pull Request interfeysida ko'rsatadigan API. Dasturchi ko'radi: yangi xatolar soni, test qamrovi, kod hidlari va dublikatsiyalar. Code Insights merge haqida qarorni faqat sharhlovchining subyektiv fikriga emas, balki ob'ektiv ko'rsatkichlar asosida qabul qilish imkonini beradi.
Bitbucket shuningdek tarmoq cheklovlarini (branch permissions) qo'llab-quvvatlaydi: tarmoqlarni o'chirishni taqiqlash, ma'lum tarmoqlar uchun PR yaratishni majburiy qilish, main ga merge qilish huquqiga ega foydalanuvchilar ro'yxatini cheklash mumkin. Qo'shimcha ravishda merge tekshirishlari (merge checks) mavjud — Merge tugmasini bosishdan oldin bajarilishi kerak bo'lgan majburiy shartlar ro'yxati (Pipelines o'tgan, kamida N ma'qullash, ochiq sharhlar yo'q). Sozlamalar ishlab chiqarish tarmog'ini tasodifiy tekshirilmagan o'zgarishlardan himoya qiladi.
Bitbucketning Jira bilan integratsiyasi platformaning asosiy ustunligidir. Dasturchi commit xabariga vazifa kalitini kiritganda (masalan, PROJ-123), Jira bu commitni avtomatik ravishda vazifaga bog'laydi. Vazifa interfeysida Development yorlig'i ko'rsatiladi, unda ushbu vazifa bilan bog'liq barcha commitlar, Pull Requestlar, tarmoqlar va joylashtirishlar to'plangan. PRlar birlashtirilganda Jira da vazifa statusini avtomatik yangilaydi (Done holatiga o'tish).
Confluence ham Bitbucket bilan integratsiyalashadi: Code Block makrosi orqali Confluence sahifalariga repozitoriyadan jonli kod bo'laklarini joylashtirish mumkin. Koddagi o'zgarishlar avtomatik ravishda Confluence bilan sinxronlashtiriladi, bu arxitektura hujjatlarini yuritish uchun qulay. Qo'shimcha ravishda Atlassian Smart Commits ni taqdim etadi — commit xabaridan to'g'ridan-to'g'ri Jira vazifalarini boshqarish: statusni o'zgartirish, vaqt va ustuvorliklarni qo'shish.
DevOps avtomatlashtirish uchun Bitbucket Deployment Gate ni qo'llab-quvvatlaydi — joylashtirishni vazifa versiyasiga bog'lash. Pipeline joylashtirish bosqichiga yetganda, Jira ushbu nashrdagi barcha vazifalar Approved statusiga ega yoki yo'qligini tekshiradi. Aks holda — joylashtirish bloklanadi. Bu nafaqat kod darajasida, balki vazifalar darajasida sifat nazorati bilan Continuous Delivery tamoyilini amalga oshiradi.
Bitbucket loyiha tuzilishini standartlashtirish uchun repozitoriy shablonlarini yaratish imkonini beradi. Mobil loyihalar uchun oldindan o'rnatilgan fayllar bilan shablon yaratish mumkin: Gradle konfiguratsiyasi, gitignore, Detekt va Ktlint sozlamalari, Android CI uchun pipeline va qurish yo'riqnomasi bilan README. Yangi loyiha bir necha marta bosish bilan shablondan yaratiladi, bu yangi dasturchilarning ishga kirishishini tezlashtiradi.
Bitbucketni GitHub va GitLab bilan solishtirish jamoa ishlayotgan ekotizimga bog'liq. Bitbucket jamoa hajmi bo'yicha GitHub dan ortda qoladi (10 millionga nisbatan 100 million foydalanuvchi), ammo Atlassian stack tufayli korporativ integratsiyalarda g'alaba qozonadi. Agar jamoa vazifalarni boshqarish uchun Jira va hujjatlar uchun Confluence dan allaqachon foydalanayotgan bo'lsa — Bitbucket qo'shimcha sozlamalarsiz muammosiz integratsiyani ta'minlaydi.
CI/CD nuqtai nazaridan Bitbucket Pipelines ilg'or stsenariylarda GitLab CI/CD dan (child pipelines, matritsali qurilishlar, ko'p darajali pipelinelar yo'q) va tayyor harakatlar soni bo'yicha GitHub Actions dan (Marketplace Actions 20 000+ qadamni o'z ichiga oladi, Bitbucketda minglab umumiy pipelar) pastroq. Biroq, Pipelines Atlassian dan tayyor pipe komponentlari tufayli odatiy stsenariylar uchun sozlashda soddaroq.
| Mezon | Bitbucket | GitHub | GitLab |
|---|---|---|---|
| CI/CD | Pipelines, 50 daq/qadam | Actions, 2000 daq/oy | CI/CD, cheklovsiz (Self) |
| Integratsiya | Jira, Confluence | Copilot, Slack, Azure | Kubernetes, Prometheus |
| Self-Hosted | Data Center (pulli) | Enterprise Server | CE (bepul) |
| Foydalanuvchilar | ~10 mln | ~100 mln | ~30 mln |
| Litsenziya | Xususiy | Xususiy | MIT (ochiq kod) |
Bitbucket tanlovi ikki stsenariyda asoslanadi: jamoa allaqachon Atlassian ekotizimidan (Jira + Confluence + Opsgenie) foydalanadi yoki ish Bitbucket Data Centre allaqachon standart vosita sifatida o'rnatilgan korporativ muhitda olib boriladi. Startaplar va ochiq kodli loyihalar uchun GitHub boyroq jamiyat va bepul funksiyalarni taklif qiladi, GitLab esa — eng yaxshi o'z-o'zidan boshqariladigan CI/CD ni ta'minlaydi.
Bitbucket Data Center — o'z infratuzilmasiga o'rnatish uchun mo'ljallangan platformaning korporativ versiyasi. Cloud versiyasidan farqli o'laroq, Data Center taklif qiladi: klasterlashtirish (bir necha tugun uchun faol-faol rejim), Smart Mirroring (clone/fetch ni tezlashtirish uchun geografik taqsimlangan oynalar), yuqori mavjudlik (klasterlashtirish bilan 99,99% uptime) va to'liq audit.
Data Center Cloud versiyasining barcha funksiyalarini, ammo korporativ kengaytmalar bilan o'z ichiga oladi. Smart Mirroring turli ma'lumot markazlaridagi serverlar o'rtasida repozitoriyalarni avtomatik sinxronlashtiradi — Yevropa va Osiyodan dasturchilar bir xil clone/fetch tezligini oladi, chunki Git operatsiyalari eng yaqin oyna orqali bajariladi. Audit jurnallari har bir harakatni saqlaydi: kim, qachon va qaysi IP dan tarmoq yaratdi, push qildi, PR ni birlashtirdi.
Bitbucket Data Center litsenziyalash foydalanuvchilar soniga qarab amalga oshiriladi (repozitoriyalar emas). 50 foydalanuvchi uchun minimal litsenziya yiliga 1520 dollardan (standart tarif). Data Center quyidagi tashkilotlar uchun majburiy: mavjudlik uchun SLA talab qilinadi, ma'lumotlar mamlakatni tark eta olmaydi (GDPR, 152-FZ), dasturchilar soni 500 kishidan oshadi yoki korporativ LDAP/SAML tizimi bilan integratsiya talab qilinadi.
Bitbucket Snippets — kichik kod bo'laklarini saqlash va almashish vositasi. Repozitoriyalardan farqli o'laroq, Snippets to'liq Git tarixiga ega emas, ammo versiyalash, sharhlar va fork larni qo'llab-quvvatlaydi. Snippets umumiy konfiguratsiyalar (mahalliy ishlab chiqish uchun docker-compose.yml), migratsiya SQL skriptlari va to'liq repozitoriy talab qilmaydigan kod namunalari uchun foydali. Har bir Snippet noyob URL ga ega va Jira dagi loyihaga bog'lanishi mumkin.
Bitbucket REST API 2.0 repozitoriyalar, Pull Requestlar, tarmoqlar va ruxsatlarni dasturiy boshqarish imkonini beradi. API ish jarayonlarini avtomatlashtirish uchun ishlatiladi: shablondan repozitoriy yaratish, ruxsatlarni ommaviy yangilash, Pull Request statistikasini olish va tashqi CI tizimlari bilan integratsiya. Rate limit autentifikatsiyalangan foydalanuvchilar uchun soatiga 1000 so'rovni tashkil qiladi. API katta ma'lumotlar to'plamlari bilan ishlash uchun Page va Pagelen parametrlari orqali Paginatsiyani qo'llab-quvvatlaydi.
Ko'p beriladigan savollar
Bitbucket — bu CI/CD, kod ko'rib chiqish va Jira bilan o'rnatilgan integratsiyaga ega Git kodini saqlash uchun Atlassian platformasi. Atlassian ekotizimida ishlaydigan jamoalar tomonidan foydalaniladi.
Pipelines pipe komponentlaridan (Atlassian dan tayyor qadamlar) foydalanadi, odatiy vazifalar uchun soddaroq. GitHub Actions kengroq Marketplace va moslashuvchan matritsali qurilishlarni taklif etadi, ammo ko'proq sozlashni talab qiladi.
5 kishilik jamoa uchun Bitbucket Cloud Standard oyiga 15 dollar turadi (foydalanuvchi uchun 3 dollar). Bepul tarif faqat cheklangan funksionallik bilan bitta foydalanuvchi uchun mavjud.
Bitbucket GitHub, GitLab va boshqa platformalardan o'rnatilgan import qiluvchini taqdim etadi. Interfeysda Import repository ni tanlang, URL va autentifikatsiya ma'lumotlarini kiriting — barcha commitlar va tarmoqlar ko'chiriladi.
Data Center — klasterlashtirish, Smart Mirroring va audit bilan o'z serverlarida o'rnatish uchun Bitbucket ning korporativ versiyasi. Yuzlab dasturchilari va ma'lumot xavfsizligi talablari bo'lgan tashkilotlar uchun mos.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.