GitHub vs. Bitbucket vs. GitLab: Pertarungan epik untuk berbagi pemikiran pengembang

Ini adalah jenis gagasan meta yang membuat filsuf sarjana berkata, "Wah!" Perangkat lunak saat ini sangat rumit sehingga kita perlu menulis perangkat lunak untuk membantu kita memahami dan membangun perangkat lunak yang perlu kita tulis. Kode menghasilkan kode menghasilkan lebih banyak kode…

Repositori kode bernama Git adalah alat favorit semua orang untuk mengkurasi perangkat lunak, tetapi perangkat lunak sumber terbuka yang rapi ini pun tidak cukup. Sebagian besar pemrogram dan tim tempat mereka bergabung sekarang terikat dengan versi online Git yang menambahkan banyak lapisan analisis dan presentasi ekstra untuk memungkinkan penyeberangan melalui rawa-rawa luas yang merupakan kode kami. 

Ada tiga pesaing besar sekarang untuk tempat terbaik untuk menyimpan ekspresi reguler, fungsi anonim, dan kilatan jenius yang berjalan di pohon secara rekursif: GitHub, Bitbucket, dan GitLab. Semuanya bersaing untuk menjadi tempat terbaik bagi Anda untuk menyimpan sumber Anda.

Apakah yang satu lebih baik dari yang lain? Apakah salah satu tempat terbaik bagi tim Anda untuk menciptakan kecepatan yang luar biasa? Mari kita mengadu domba mereka satu sama lain dan melihat aturan mana.

GitHub adalah yang terbesar

Mungkin karena ini adalah situs web besar pertama yang mengkhususkan diri pada hosting repositori Git. Mungkin karena kinerjanya yang bagus di komunitas open source. Bagaimanapun, GitHub memimpin jika Anda menggunakan metrik dari volume kode yang dilaporkan. GitHub mengklaim 28 juta pengguna dan 85 juta repositori. Bitbucket melaporkan enam juta pengguna dan GitLab adalah misteri yang tidak menjawab pertanyaan tersebut.

Beberapa orang berpikir ini penting. Pengembang open source yang suka beralih antar proyek dapat menggunakan satu login dan menautkan semua pekerjaan mereka. Semua orang dapat mengikuti pengembang populer di GitHub seperti pecinta kucing mengikuti pembuat video kucing terbaik di YouTube. Efek jaringan yang tampaknya mendominasi Internet mendorong GitHub jauh ke depan.

Yang lainnya tidak begitu yakin. Ya, mereka suka menautkan kode publik mereka tetapi banyak orang tidak ingin menautkan pekerjaan yang mereka lakukan untuk klien. Itu harus terpisah dan non-publik. Dalam konteks itu, efek jaringan tidak berarti apa-apa.

Bitbucket dan GitLab lebih murah

Ketiga layanan ini menawarkan banyak opsi gratis, tetapi semuanya menghasilkan uang dengan menagih pengembang, biasanya profesional, untuk menyelenggarakan proyek pribadi. GitHub mulai dari $ 7 per bulan per pengembang. Bitbucket mulai dari $ 2 per bulan dan GitLab mulai dari $ 4 per bulan.

Tetapi angka-angka ini hanyalah panduan kasar karena ada kemungkinan besar Anda ingin meningkatkan. Tingkat yang lebih baik di Bitbucket berharga $ 5 per bulan. GitLab memiliki versi premium dengan biaya $ 19 per bulan — dan Anda harus membayar setiap tahun untuk mendapatkan harga tersebut.

Hampir pasti ada diskon tersembunyi untuk perusahaan dengan tim yang lebih besar dan ini membuatnya sulit untuk dibandingkan. Anda mungkin berpikir bahwa hosting Git adalah komoditas tetapi perusahaan-perusahaan ini telah menemukan cara untuk menambahkan begitu banyak fitur tambahan sehingga kepala Anda mulai berputar ketika Anda mulai membandingkan apa yang Anda dapatkan dengan uang Anda.

Bitbucket dan GitLab memungkinkan repositori pribadi tanpa batas

Apa yang Anda dapatkan secara gratis sangat berbeda. Baik Bitbucket dan GitLab memungkinkan Anda menyimpan repositori pribadi Anda secara gratis. Anda hanya mulai membayar ketika tim Anda berkembang dan menjadi lebih profesional. GitHub akan menyimpan proyek Anda secara gratis hanya jika Anda seorang pelajar atau Anda menjadikan proyek tersebut publik. Itu bagus untuk open source tetapi tidak untuk semua proyek sampingan pribadi Anda.

Tingkat gratis ini bisa sangat murah hati. Bitbucket memungkinkan tim kecil hingga lima kolaborator. GitLab memungkinkan kolaborator tak terbatas.

Perlu dicatat bahwa harga dan tingkatan ini untuk versi yang dihosting di cloud. Jika Anda ingin menjadi tuan rumah sendiri, biayanya bisa lebih murah. Ada juga paket akademik dan versi komunitas open source yang sangat murah hati.

Bitbucket dan GitLab memiliki integrasi berkelanjutan

Perusahaan-perusahaan ini berkembang tidak hanya dengan menyimpan kode tetapi juga membangun dan menerapkannya. GitLab telah meluncurkan integrasi berkelanjutan berbasis Jenkins dan kemudian menambahkan dukungan penerapan dan pemantauan dalam putaran yang baik. Anda dapat memasukkan kode Anda, menerapkannya, memantaunya, dan kemudian mulai merencanakan rangkaian modifikasi berikutnya tanpa meninggalkan GitLab.

Demikian pula, Bitbucket menawarkan Pipelines, alat build dan deploy serupa yang melakukan banyak hal yang sama dengan beberapa klik. Mungkin itu tidak menawarkan banyak pemantauan, tetapi terintegrasi erat dengan cloud Amazon.

GitHub memungkinkan Anda menggunakan server integrasi berkelanjutan Anda sendiri

Apakah pengguna GitHub pernah membuat kode mereka? Tentu saja. Banyak yang menggunakan alat pihak ketiga seperti CircleCI atau Travis CI yang dipicu oleh komit ke GitHub. Beberapa bahkan menghosting versi Jenkins mereka sendiri, yang tersedia dari repositori open source yang dihosting di GitHub.

Alat pihak ketiga mungkin tidak berada di bawah payung perusahaan yang sama, tentu saja, tetapi mereka mencapai banyak hal yang sama. Dan terkadang pemisahan dapat menjadi keuntungan jika Anda ingin melakukan sesuatu yang sedikit berbeda.

Perlu dicatat bahwa tidak ada yang menghentikan Anda untuk meluncurkan solusi integrasi berkelanjutan Anda sendiri dengan Bitbucket atau GitLab. Mereka hanya memeriksa kode seperti klien Git lainnya.

GitLab memungkinkan Anda berkembang secara online

Apa yang dimulai sebagai alat untuk memungkinkan Anda menelusuri kode statis perlahan berubah menjadi platform yang lengkap untuk pengembangan. Antarmuka GitLab berkembang semakin kompleks dan mulai mendekati apa yang oleh perusahaan disebut lingkungan pengembangan terintegrasi atau IDE. Ini tidak secanggih beberapa monolit yang berpusat pada desktop seperti Eclipse atau Xcode yang menawarkan debugging terintegrasi, tetapi itu tidak berarti Anda tidak dapat menggunakannya untuk melakukan pengembangan yang lebih dan lebih canggih dengan komit multi-file yang bersih.

Baik GitHub dan Bitbucket memiliki versi yang lebih sederhana yang memungkinkan Anda mengedit file Anda secara online dan kemudian mengkomit hasilnya. Mereka lebih baik untuk touch-up dan perbaikan cepat.

Bitbucket memiliki pencarian kode-sadar

Ini mungkin tampak seperti hal kecil, tetapi algoritme pencarian Bitbucket memahami banyak bahasa utama, sehingga memungkinkan untuk menentukan peringkat hasil. Definisi dari suatu fungsi atau variabel muncul di atas dan penggunaannya mengikuti. Jika Anda mencoba mencari tahu apa yang dilakukan beberapa kata kunci, Anda tidak perlu menelusuri halaman hasil untuk menemukan jawabannya.

Bitbucket berasal dari perusahaan yang sama yang membuat Jira

Jira adalah salah satu alat terkemuka untuk mengatur proses pengembangan dengan melacak tiket dan membuat tim mengetahui siapa yang melakukan apa dan kapan mereka menyelesaikannya. Jira dapat diintegrasikan dengan semua, tetapi dimiliki oleh Atlassian, yang memastikan Jira bekerja dengan baik dengan Bitbucket.

Baik GitHub dan GitLab memiliki alat pelacakan masalah mereka sendiri yang dibangun ke dalam alur kerja yang melakukan hal yang hampir sama. Untuk informasi lebih lanjut, pengguna GitHub dan GitLab dapat beralih ke Jira atau salah satu dari sejumlah alat serupa.

GitLab adalah open source

Jika Anda tidak menyukai bagian tertentu dari GitLab, Anda dapat mengunduh kode sumber Ruby, memodifikasinya, dan menghostingnya sendiri. Ini open source dan hanya menunggu Anda untuk bercabang. GitHub menawarkan beberapa potongan puzzle yang berguna di repositori, dan Atlassian menawarkan dukungan yang murah hati untuk semua proyek open source menggunakan lisensi yang disetujui. Tapi GitLab memberi Anda kode mentah untuk seluruh platform dalam edisi komunitas.

Ada beberapa proyek server Git open source lainnya, seperti Gitblit, yang ditulis dalam Java, Allura, ditulis dengan Python, dan Gogs, yang ditulis dalam Go. Tapi Anda harus menampung semuanya.

GitLab terintegrasi erat dengan Google Cloud

Anda tidak perlu menggunakan Google Cloud dengan GitLab. GitLab membuatnya sedikit lebih mudah dengan berintegrasi dengan Google Kubernetes Engine. Hanya dengan beberapa klik, pindahkan kode Anda ke dalam cluster container yang sedang berjalan. Meskipun Anda tidak menggunakan Google Kubernetes Engine, GitHub tetap suka bekerja dengan Kubernetes. Jika Anda menerapkan ke cluster Kubernetes, Anda dapat memantau semuanya - lingkungan CI, penerapan, pod, dan metrik Kubernetes - langsung dari GitLab.

Bitbucket terintegrasi dengan AWS

Sekali lagi, Anda selalu dapat menerapkan kode Anda di mana pun Anda inginkan, tetapi add-on Bitbucket di Atlassian Marketplace akan mendorong kode Anda ke dalam bucket Amazon S3 dan menggunakan AWS CodeDeploy untuk menjalankannya di EC2. Yang perlu Anda lakukan adalah mengonfigurasinya sekali dan siap digunakan.

Bitbucket memiliki banyak ekstensi

Aplikasi AWS CodeDeploy bukan satu-satunya pilihan di pasar Atlassian. Saat artikel ini ditulis, ada 304 aplikasi yang ditulis oleh pihak ketiga untuk memperluas Bitbucket. Beberapa menambahkan fitur seperti pemberitahuan atau grafik komitmen dan yang lainnya membantu pekerjaan rumah tangga dengan melacak alur kerja. Jika Anda merasa suka memerintah, Anda dapat memasang plugin Kebijakan Komit yang memeriksa pesan komit untuk memastikan pesan tersebut menyebutkan nomor masalah dan detail lainnya. Jika Anda tidak melihat apa yang Anda inginkan di Marketplace, Anda dapat menulis sendiri.

Git (biasa) gratis dan pribadi

Akan ada beberapa yang tidak ingin menggunakan opsi mewah ini. Git adalah alat baris perintah yang cukup sederhana dengan banyak perintah untuk menggali repositori itu sendiri. Anda dapat mendorong, menarik, dan melacak kode Anda sendiri menggunakan baris perintah. Jika Anda pandai menghafal instruksi baris perintah dan Anda tidak menginginkan tampilan kode berbasis web, diffs, dan lainnya yang bagus, maka Git lama yang biasa akan membantu Anda dengan baik.

Gunakan dua atau ketiganya!

Ini mungkin tampak berlebihan, tetapi tidak ada alasan mengapa Anda hanya perlu memilih satu. Git mempermudah untuk mendorong komit ke upstream, dan tidak ada alasan mengapa Anda tidak dapat menambahkan banyak upstream. Jika Anda memerlukan fitur dari dua atau ketiga platform ini, Anda cukup mengonfigurasi repositori Anda untuk mendorong semuanya. Jika beruntung, Anda bisa tetap berada di dalam tingkatan gratis. Dan jika tidak, harganya tidak terlalu mahal.