Bitbucket είναι μια πλατφόρμα Git από την εταιρεία Atlassian, ενσωματωμένη με Jira, Confluence και άλλα εργαλεία του οικοσυστήματος. Το Bitbucket παρέχει φιλοξενία αποθετηρίων Git, ενσωματωμένο CI/CD μέσω Bitbucket Pipelines και ισχυρά εργαλεία για αναθεώρηση κώδικα. Σύμφωνα με στοιχεία Atlassian, 2024, το Bitbucket χρησιμοποιείται από πάνω από 10 εκατομμύρια προγραμματιστές και 800.000 ομάδες παγκοσμίως.
Βασικά σημεία
Bitbucket είναι μια διαδικτυακή πλατφόρμα για φιλοξενία αποθετηρίων Git, που αναπτύχθηκε από την εταιρεία Atlassian. Αρχικά το Bitbucket υποστήριζε μόνο Mercurial (από το 2008), αλλά μετά τη διακοπή υποστήριξης του Mercurial το 2020, μεταπήδησε πλήρως στο Git. Η πλατφόρμα διατίθεται σε δύο εκδόσεις: Bitbucket Cloud (SaaS, φιλοξενία Atlassian) και Bitbucket Data Center (τοπική έκδοση για Enterprise).
Το κύριο πλεονέκτημα του Bitbucket έναντι των ανταγωνιστών — η βαθιά ενσωμάτωση με τα προϊόντα Atlassian. Η Jira συνδέει αυτόματα τα commits και τα Pull Request με εργασίες, το Confluence επιτρέπει την ενσωμάτωση αποσπασμάτων κώδικα στην τεκμηρίωση και το Opsgenie συνδέει τις αναπτύξεις με περιστατικά. Για ομάδες που ήδη χρησιμοποιούν το οικοσύστημα Atlassian, το Bitbucket είναι η φυσική επιλογή, καθώς δεν απαιτεί ρύθμιση πρόσθετων ενσωματώσεων.
Το Bitbucket Cloud προσφέρει πολλά επίπεδα φιλοξενίας. Το δωρεάν πρόγραμμα περιλαμβάνει έναν χρήστη και περιορισμένο αποθηκευτικό χώρο (1 GB). Το τυπικό πρόγραμμα κοστίζει 3 δολάρια ανά χρήστη το μήνα με απεριόριστα ιδιωτικά αποθετήρια και 2500 λεπτά Pipelines το μήνα. Το Bitbucket χρησιμοποιεί μοντέλο αδειοδότησης χρήστη: κάθε χρήστης που έχει πρόσβαση στο αποθετήριο, συμπεριλαμβανομένης της μόνο ανάγνωσης, χρεώνεται.
Bitbucket Pipelines είναι ένα ενσωματωμένο σύστημα CI/CD που λειτουργεί με βάση Docker containers. Το Pipelines είναι άμεσα ενσωματωμένο στο Bitbucket Cloud και δεν απαιτεί εγκατάσταση ξεχωριστών runners ή ρύθμιση webhook. Η διαμόρφωση περιγράφεται στο αρχείο bitbucket-pipelines.yml, που βρίσκεται στη ρίζα του αποθετηρίου. Κάθε pipeline αποτελείται από βήματα (steps) συνδυασμένα σε ακολουθίες.
Το Pipelines υποστηρίζει παράλληλα βήματα, χειροκίνητη εκκίνηση, triggers με push και χρονοδιάγραμμα, προσωρινή αποθήκευση εξαρτήσεων και artifacts. Κάθε βήμα εκτελείται σε ένα απομονωμένο Docker container του οποίου η εικόνα καθορίζεται στη διαμόρφωση. Παρακάτω παρουσιάζεται ένα παράδειγμα pipeline για τη δημιουργία εφαρμογής Android με δοκιμή και δημοσίευση στο Firebase App Distribution:
# 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 έχει όριο 50 λεπτών ανά pipeline για την έκδοση Cloud, που είναι αρκετό για τα περισσότερα έργα, αλλά μπορεί να αποτελέσει σημείο συμφόρησης για μεγάλα monorepositories. Στο Data Center αυτός ο περιορισμός καταργείται εντελώς — η διάρκεια του pipeline καθορίζεται μόνο από τους διαθέσιμους πόρους διακομιστή. Το Pipelines υποστηρίζει επίσης προσαρμοσμένες εικόνες Docker, επιτρέποντας τη χρήση οποιωνδήποτε εργαλείων δημιουργίας και δοκιμής.
Το Pull Request στο Bitbucket υλοποιείται με έμφαση στις εταιρικές διαδικασίες αναθεώρησης κώδικα. Το Bitbucket προσφέρει: inline σχόλια σε συγκεκριμένες γραμμές diff, υποχρεωτικούς ελέγχους (checks) από Pipelines ή εξωτερικές υπηρεσίες, ελάχιστο αριθμό εγκρίσεων για συγχώνευση, αποκλεισμό merge μέχρι να περάσουν όλοι οι έλεγχοι και δήλωση σύγκρουσης συμφερόντων (decline). Η διεπαφή PR χωρίζεται σε τρεις στήλες: πηγαίος κώδικας, diff και δομή αρχείων.
Η μοναδική λειτουργία του Bitbucket — Code Insights. Είναι ένα API για ενσωμάτωση εξωτερικών εργαλείων ποιότητας κώδικα (SonarQube, CodeScene, ESLint, Detekt) που εμφανίζουν τα αποτελέσματά τους απευθείας στη διεπαφή Pull Request. Ο προγραμματιστής βλέπει: αριθμό νέων σφαλμάτων, κάλυψη δοκιμών, code smells και διπλοτυπίες. Το Code Insights επιτρέπει τη λήψη αποφάσεων σχετικά με το merge βάσει αντικειμενικών μετρήσεων, όχι μόνο της υποκειμενικής γνώμης του κριτή.
Το Bitbucket υποστηρίζει επίσης περιορισμούς κλαδιών (branch permissions): μπορεί να απαγορευτεί η διαγραφή κλαδιών, να υποχρεωθεί η δημιουργία PR για συγκεκριμένα κλαδιά, να περιοριστεί η λίστα χρηστών με δικαιώματα merge στο main. Επιπλέον υπάρχουν έλεγχοι merge (merge checks) — μια λίστα υποχρεωτικών συνθηκών (Pipelines επιτυχής, ελάχιστο Ν εγκρίσεις, κανένα ανοιχτό σχόλιο) που πρέπει να εκπληρωθούν πριν από το κουμπί Merge. Οι ρυθμίσεις προστατεύουν το κλαδί παραγωγής από τυχαίες μη επαληθευμένες αλλαγές.
Η ενσωμάτωση του Bitbucket με Jira — το βασικό πλεονέκτημα της πλατφόρμας. Όταν ο προγραμματιστής συμπεριλαμβάνει το κλειδί εργασίας στο μήνυμα commit (π.χ. PROJ-123), η Jira συνδέει αυτόματα αυτό το commit με την εργασία. Στη διεπαφή εργασίας εμφανίζεται η καρτέλα Development, όπου συλλέγονται όλα τα commits, τα Pull Request, τα κλαδιά και οι αναπτύξεις που σχετίζονται με αυτήν την εργασία. Τα PR ενημερώνουν αυτόματα την κατάσταση εργασίας στη Jira κατά τη συγχώνευση (μετάβαση σε Done).
Confluence ενσωματώνεται επίσης με το Bitbucket: ζωντανά αποσπάσματα κώδικα από το αποθετήριο μπορούν να εισαχθούν σε σελίδες Confluence μέσω του μακροεντολής Code Block. Οι αλλαγές στον κώδικα συγχρονίζονται αυτόματα με το Confluence, που είναι βολικό για τη διατήρηση αρχιτεκτονικής τεκμηρίωσης. Επιπλέον, η Atlassian παρέχει Smart Commits — διαχείριση εργασιών Jira απευθείας από το μήνυμα commit: αλλαγή κατάστασης, προσθήκη χρόνου και προτεραιοτήτων.
Για αυτοματοποίηση DevOps το Bitbucket υποστηρίζει Deployment Gate — σύνδεση ανάπτυξης με έκδοση εργασίας. Όταν το pipeline φτάσει στο στάδιο ανάπτυξης, η Jira ελέγχει αν όλες οι εργασίες σε αυτήν την έκδοση έχουν κατάσταση Approved. Αν όχι — η ανάπτυξη αποκλείεται. Αυτό υλοποιεί την αρχή Continuous Delivery με έλεγχο ποιότητας σε επίπεδο εργασιών, όχι μόνο κώδικα.
Το Bitbucket επιτρέπει τη δημιουργία προτύπων αποθετηρίων για τυποποίηση της δομής έργων. Για κινητά έργα μπορεί να δημιουργηθεί ένα πρότυπο με προεγκατεστημένα αρχεία: διαμόρφωση Gradle, gitignore, ρυθμίσεις Detekt και Ktlint, pipeline για Android CI και README με οδηγίες δημιουργίας. Ένα νέο έργο δημιουργείται από το πρότυπο σε λίγα κλικ, που επιταχύνει την ενσωμάτωση νέων προγραμματιστών.
Σύγκριση Bitbucket με GitHub και GitLab εξαρτάται από το οικοσύστημα στο οποίο εργάζεται η ομάδα. Το Bitbucket χάνει από το GitHub σε μέγεθος κοινότητας (10 εκατ. έναντι 100 εκατ. χρηστών), αλλά κερδίζει σε εταιρικές ενσωματώσεις χάρη στη στοίβα Atlassian. Αν η ομάδα ήδη χρησιμοποιεί Jira για διαχείριση εργασιών και Confluence για τεκμηρίωση — το Bitbucket παρέχει απρόσκοπτη ενσωμάτωση χωρίς πρόσθετες ρυθμίσεις.
Σε ό,τι αφορά CI/CD το Bitbucket Pipelines υστερεί έναντι GitLab CI/CD σε προηγμένα σενάρια (χωρίς child pipelines, μητρικές κατασκευές, πολυεπίπεδα pipelines) και GitHub Actions σε αριθμό έτοιμων ενεργειών (Marketplace Actions περιέχει 20.000+ βήματα έναντι χιλιάδων δημόσιων pipe στο Bitbucket). Ωστόσο, το Pipelines είναι απλούστερο στη ρύθμιση για τυπικά σενάρια χάρη στα έτοιμα pipe components από την Atlassian.
| Κριτήριο | Bitbucket | GitHub | GitLab |
|---|---|---|---|
| CI/CD | Pipelines, 50 λεπ/βήμα | Actions, 2000 λεπ/μήνα | CI/CD, χωρίς όρια (Self) |
| Ενσωμάτωση | Jira, Confluence | Copilot, Slack, Azure | Kubernetes, Prometheus |
| Self-Hosted | Data Center (επί πληρωμή) | Enterprise Server | CE (δωρεάν) |
| Χρήστες | ~10 εκατ. | ~100 εκατ. | ~30 εκατ. |
| Άδεια | Ιδιόκτητη | Ιδιόκτητη | MIT (ανοιχτός κώδικας) |
Η επιλογή του Bitbucket δικαιολογείται σε δύο σενάρια: η ομάδα ήδη χρησιμοποιεί το οικοσύστημα Atlassian (Jira + Confluence + Opsgenie) ή η εργασία γίνεται σε εταιρικό περιβάλλον όπου το Bitbucket Data Centre είναι ήδη εγκατεστημένο ως τυπικό εργαλείο. Για startups και έργα ανοιχτού κώδικα, το GitHub προσφέρει πλουσιότερη κοινότητα και δωρεάν λειτουργίες, ενώ το GitLab — το καλύτερο self-hosted CI/CD.
Bitbucket Data Center είναι η εταιρική έκδοση της πλατφόρμας, που προορίζεται για εγκατάσταση σε δική σας υποδομή. Σε αντίθεση με την έκδοση Cloud, το Data Center προσφέρει: συσταδοποίηση (λειτουργία ενεργό-ενεργό για πολλαπλούς κόμβους), Smart Mirroring (γεωγραφικά κατανεμημένα αντίγραφα για επιτάχυνση clone/fetch), υψηλή διαθεσιμότητα (99,99% uptime με συσταδοποίηση) και πλήρη καταγραφή ενεργειών.
Το Data Center περιλαμβάνει όλες τις λειτουργίες της έκδοσης Cloud, αλλά με εταιρικές επεκτάσεις. Smart Mirroring συγχρονίζει αυτόματα τα αποθετήρια μεταξύ διακομιστών σε διαφορετικά κέντρα δεδομένων — προγραμματιστές από Ευρώπη και Ασία λαμβάνουν την ίδια ταχύτητα clone/fetch, καθώς οι λειτουργίες Git εκτελούνται μέσω του πλησιέστερου αντίγραφου. Τα αρχεία καταγραφής αποθηκεύουν κάθε ενέργεια: ποιος, πότε και από ποια IP δημιούργησε κλαδί, έκανε push, συγχώνευσε PR.
Η αδειοδότηση του Bitbucket Data Center γίνεται βάσει αριθμού χρηστών (όχι αποθετηρίων). Η ελάχιστη άδεια για 50 χρήστες κοστίζει από 1520 δολάρια ετησίως (τυπικό πρόγραμμα). Το Data Center είναι υποχρεωτικό για οργανισμούς όπου: απαιτούνται SLA για διαθεσιμότητα, τα δεδομένα δεν μπορούν να εγκαταλείψουν τη χώρα (GDPR, 152-FZ), ο αριθμός προγραμματιστών υπερβαίνει τα 500 άτομα ή απαιτείται ενσωμάτωση με εταιρικό σύστημα LDAP/SAML.
Bitbucket Snippets — ένα εργαλείο για αποθήκευση και κοινή χρήση μικρών αποσπασμάτων κώδικα. Σε αντίθεση με τα αποθετήρια, τα Snippets δεν έχουν πλήρες ιστορικό Git, αλλά υποστηρίζουν έλεγχο εκδόσεων, σχόλια και forks. Τα Snippets είναι χρήσιμα για κοινόχρηστες διαμορφώσεις (docker-compose.yml για τοπική ανάπτυξη), σενάρια SQL μετεγκατάστασης και παραδείγματα κώδικα που δεν απαιτούν πλήρες αποθετήριο. Κάθε Snippet έχει μοναδικό URL και μπορεί να συνδεθεί με ένα έργο στη Jira.
Bitbucket REST API 2.0 επιτρέπει τον προγραμματισμό διαχείρισης αποθετηρίων, Pull Request, κλαδιών και δικαιωμάτων. Το API χρησιμοποιείται για αυτοματοποίηση ροών εργασίας: δημιουργία αποθετηρίου από πρότυπο, μαζική ενημέρωση δικαιωμάτων, λήψη στατιστικών Pull Request και ενσωμάτωση με εξωτερικά συστήματα CI. Το όριο ρυθμού είναι 1000 αιτήματα την ώρα για πιστοποιημένους χρήστες. Το API υποστηρίζει σελιδοποίηση μέσω παραμέτρων Page και Pagelen για εργασία με μεγάλα σύνολα δεδομένων.
Συχνές ερωτήσεις
Bitbucket είναι η πλατφόρμα Atlassian για αποθήκευση κώδικα Git με CI/CD, αναθεώρηση κώδικα και ενσωματωμένη ενσωμάτωση με Jira. Χρησιμοποιείται από ομάδες που ήδη εργάζονται στο οικοσύστημα Atlassian.
Pipelines χρησιμοποιεί pipe components (έτοιμα βήματα από την Atlassian), είναι απλούστερο για τυπικές εργασίες. Το GitHub Actions προσφέρει ευρύτερο Marketplace και ευέλικτες μητρικές κατασκευές, αλλά απαιτεί περισσότερη ρύθμιση.
Για ομάδα 5 ατόμων, το Bitbucket Cloud Standard κοστίζει 15 δολάρια το μήνα (3 δολάρια ανά χρήστη). Το δωρεάν πρόγραμμα διατίθεται μόνο για έναν χρήστη με περιορισμένες λειτουργίες.
Το Bitbucket παρέχει ενσωματωμένο εισαγωγέα από GitHub, GitLab και άλλες πλατφόρμες. Στη διεπαφή, επιλέξτε Import repository, εισαγάγετε το URL και τα στοιχεία ταυτοποίησης — όλα τα commits και τα κλαδιά θα μεταφερθούν.
Data Center — η εταιρική έκδοση του Bitbucket για εγκατάσταση σε δικούς σας διακομιστές με συσταδοποίηση, Smart Mirroring και καταγραφή. Κατάλληλο για οργανισμούς με εκατοντάδες προγραμματιστές και απαιτήσεις ασφάλειας δεδομένων.
Σύνοψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης