Lưu trữ mã nguồn và quản lý phiên bản với Bitbucket
“Có hơn 15 triệu người dùng từ hàng triệu team khác nhau đã và đang tin dùng công cụ Bitbucket để triển khai các dự án phát triển phần mềm.” - Bitbucket
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à hiệu quả nhất. 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!
Tìm hiểu về Bitbucket
Git là gì? Xuất hiện từ năm 2005, Git là một hệ thống quản lý phiên bản. Git lưu trữ toàn bộ mã code và lịch sử thay đổi của dự án. Nhờ đó, các thành viên có thể chia sẻ và theo dõi tiến độ dự án dễ dàng hơn.
Năm 2010, Atlassian mua lại Bitbucket nhằm đẩy mạnh và phát triển các giải pháp DevOps. 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.
5 thuật ngữ thông dụng trong Bitbucket
Project
Đối với các sản phẩm khác của Jira như Jira Software hay Jira Service Management, project là nơi tập hợp các issue cần phải giải quyết. Cũng tương tự như vậy, 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.
Một số đặc điểm và tính năng quan trọng của repository trong Bitbucket bao gồm:
- Lưu trữ mã nguồn của dự án.
- Quản lý lịch sử thay đổi, bao gồm thông tin về các bản ghi lại các thay đổi (commit), người thực hiện và thời gian thay đổi được thực hiện.
- Quản lý branch để phát triển đồng thời nhiều tính năng, sửa lỗi hoặc thực hiện các thay đổi mà không ảnh hưởng đến main branch.
- Quản lý pull requests cho phép người dùng xem xét, thảo luận và chấp nhận các thay đổi được đề xuất trước khi hợp nhất vào main branch.
- Quản lý issues tích hợp (issues tracking), cho phép tạo và theo dõi các vấn đề, lỗi và công việc liên quan đến repository.
- Khả năng tích hợp CI/CD với các công cụ như Bamboo và các dịch vụ CI/CD khác, giúp tự động hóa quy trình kiểm tra và triển khai của dự án.
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.
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.
Pipes là các đoạn code ngắn được “gắn vào” pipelines để xây dựng quy trình CI/CD. Mỗi Pipe đại diện cho một công việc cụ thể trong quy trình CI/CD, chẳng hạn như chạy kiểm thử.
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 nổi bật của Bitbucket
Sắp xếp 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”.
Truy vấ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:
- Truy cập vào repository
- Chọn main branch, chọn bộ lọc Code và nhập từ khóa tìm kiếm
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.
So sánh Bitbucket và GitHub
Bitbucket và GitHub đề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. được sử dụng rộng rãi. Tuy nhiên, Bitbucket sở hữu một số điểm vượt trội hơn so với GitHub
- Dễ dàng tích hợp Bitbucket với các sản phẩm của Atlassian như Jira hay Confluence để “bổ sung” cho một bước của quy trình làm việc, giúp hoàn thiện và tối ưu dự án phát triển.
- Thiết lập các quyền triển khai phần mềm để kiểm soát hoạt động của người dùng.
- Code Insights đem đến các báo cáo chi tiết, chú thích và số liệu, giúp cải thiện chất lượng đoạn code.
Lưu trữ và quản lý mã nguồn một cách hoàn chỉnh với 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.
Bên cạnh tính năng phân quyền truy cập nhánh, tập trung vào trải nghiệm của người dùng còn là một điểm “cộng” cho Bitbucket. Tất cả các công việc cần làm sẽ hiển thị bằng giao diện trực quan, cho phép người dùng nhanh chóng tiếp cận các mục cụ thể.
👉️Xem thêm bài viết đầy đủ Giải mã thắc mắc về các tính năng của Bitbucket.
Liên hệ AgileOps - Đối tác Atlassian tại Việt Nam để được hỗ trợ tư vấn sản phẩm miễn phí. ☎️
All rights reserved