Bitbucket là giải pháp quản lý kho lưu trữ, được thiết kế nhằm mục đích triển khai các giải pháp DevOps tối ưu và hoàn hảo.
Cùng AgileOps tìm hiểu về Bitbucket và kiểm chứng “công năng” của sản phẩm này, cụ thể là phiên bản cloud!

Bitbucket là gì?

Năm 2010, Atlassian mua lại Bitbucket. Bitbucket là một dịch vụ quản lý mã nguồn và hệ thống quản lý phiên bản của dự án, hỗ trợ hai hệ thống quản lý phiên bản phổ biến là Git và Mercurial. Năm 2020, sản phầm này chính thức ngừng hỗ trợ Mercurial và chỉ hỗ trợ Git cho đến hiện tại.
Bitbucket có thể hoạt động trên đa dạng nền tảng, bao gồm Cloud, Server và Data Center. Với Bitbucket, người dùng có thể tạo các kho lưu trữ (repository), xem và so sánh thay đổi (diff), và giải quyết xung đột (conflict resolution). Bên cạnh các điểm nổi bật như quản lý nhánh và cung cấp các kho lưu trữ cá nhân không giới hạn, Bitbucket còn hỗ trợ người dùng theo dõi, đánh giá tiến độ dự án dàng hơn thông qua giao diện trực quan và khả năng liên kết với các sản phẩm Jira.

Làm quen với Bitbucket qua 5 thuật ngữ thông dụng

Project

Trong Bitbucket, project tập trung các repository. Bằng cách sắp xếp các repository theo project, nhóm phát triển phần mềm dễ dàng theo dõi tiến độ công việc và theo sát mục tiêu để ra.

Repository

Repository đóng vai trò như một “nơi” lưu trữ mã nguồn và quản lý phiên bản. Người dùng có thể tạo và quản lý repository trực tiếp trên Bitbucket hoặc sao chép repository từ một nguồn khác.

Branch

Khi lập trình, nhất là khi làm việc nhóm, mỗi lập trình viên sẽ chịu trách nhiệm cho một chức năng khác nhau của sản phẩm. Lúc này, từ source code, họ “tách” thành các branch (nhánh) khác nhau, thường được gọi là feature branch, để xây dựng đoạn code. Các branch sẽ được merge (gộp) lại vào source code để phát triển sản phẩm.
Main/Master Tất cả các branch được “phát triển” dựa trên một branch chính được gọi là main/master branch. Khi tạo một repository, branch chính cũng sẽ được tạo và kích hoạt. Lập trình viên sẽ tạo các feature brand dựa trên nhánh này để phát triển sản phẩm. Một repository chỉ tồn tại một main branch và không thể xóa được.

Pipelines và Pipes

Pipeline là dịch vụ CI/CD được tích hợp trong Bitbucket. Pipelines cho phép bạn xây dựng một cách tự động, kiểm thử, hay thậm chí triển khai mã code dựa trên file được lưu trữ trong repository.

Pull request

Khi cần merge một branch vào main, người dùng sẽ tạo Pull request để kiểm tra đoạn code trước khi merge chúng lại với nhau. Nói cách khác, Pull request hỗ trợ nhóm phát triển phần mềm kiểm tra code trong feature branch trước khi hợp nhất chúng vào main branch. Nhờ đó, cả team có thể theo dõi được đoạn code với thông tin chi tiết, thêm bình luận vào request hay từng dòng code, giúp việc “kiểm duyệt” thuận lợi hơn.
Ngoài ra, Pull request thường được tích hợp CI/CD để kiểm tra và quản lý chất lượng code bằng việc tự động hóa các loại test như unit test/integration test.

Các tính năng không thể bỏ qua khi dùng Bitbucket

Lưu trữ các repository với Project

Khi tạo một repository, bạn được yêu cầu thêm thông tin về project sẽ “chứa” repository đó. Việc sắp xếp và phân loại các repository theo project giúp cho bạn tìm kiếm các repository nhanh chóng hơn. Bạn còn có thể gán quyền tương tác với project như view, read, write hay admin cho từng người dùng khác hay nhóm, đảm bảo cho các thành viên tham gia dự án thực hiện đúng công việc cần làm và nâng cao tính bảo mật cho “không gian làm việc”.

Nhận diện code

Đối với các feature branch, Bitbucket cho phép người dùng tìm kiếm đoạn code theo file. Tuy nhiên, bạn có thể truy vấn đoạn code trên main branch dựa trên bộ lọc theo file và theo code.
Để truy vấn đoạn code bằng bộ lọc code: 1. Truy cập vào repository 2. Chọn main branch, chọn bộ lọc Code và nhập từ khóa tìm kiếm
Tìm kiếm code trên main branch
Tìm kiếm code trên main branch

Kiểm duyệt mã code với Pull request

Kiểm duyệt mã code là một bước quan trọng trước khi merge một branch - đoạn code vào main, giúp cả team xem xét “kỹ lưỡng” đoạn code đó và đề xuất các cải tiến cho đoạn code nếu có. Pull request là nơi thực hiện quá trình kiểm duyệt trong Bitbucket. Tại đây, bạn và các thành viên trong team có xem xét đoạn code cùng nhau. Các thay đổi của đoạn code sẽ được hiển thị bằng dòng có màu sắc khác nhau, người kiểm duyệt đoạn code để lại phản hồi hay đặt câu hỏi cho toàn bộ request hay từng dòng của đoạn code, và phê duyệt hay từ chối yêu cầu merge branch vào main.
Kiểm duyệt với Pull request
Kiểm duyệt với Pull request

Khác biệt giữa Bitbucket và GitHub

Bitbucket và GitHub đều là các dịch vụ lưu trữ mã nguồn và quản lý phiên bản phổ biến được sử dụng rộng rãi. Cả hai sản phầm cung cấp các tính năng quan trọng cho quản lý dự án phát triển phầm mềm như: Quản lý phiên bản và hợp nhất mã nguồn; Công cụ quản lý công việc tích hợp (issue tracking); Hỗ trợ đa dạng ngôn ngữ lập trình, ...
Mặc dù đều cung cấp các tính năng thiết yếu trong việc lưu trữ và quản lý mã nguồn, Bitbucket sở hữu một số điểm vượt trội hơn so với GitHub. Cùng xem qua bảng so sánh dưới đây để tìm hiểu về sự khác biệt của cả hai sản phẩm này.
So sánh chi tiết các chức năng của Bitbucket và GitHub
So sánh chi tiết các chức năng của Bitbucket và GitHub

Vì sao chọn Bitbucket?

Bitbucket là công cụ quản lý mã nguồn trong bộ công cụ DevOps được Atlassian phát triển dựa trên tiêu chí Hợp tác - Mở rộng - Tăng trường - Bảo mật. Nhờ khả năng tích hợp tối ưu bộ sản phẩm Jira của Bitbucket, các repository, các bước xây dựng và triển khai sản phẩm sẽ được hiển thị cùng các issue cần xử lý trong Jira. Từ đó, các phòng ban có thể phối hợp và giao tiếp dễ dàng hơn, đảm bảo tiến độ dự án và chất lượng sản phẩm. Với Bitbucket, bạn không chỉ cập nhật được những thay đổi của đoạn code mà còn hiểu được lý do của chúng.