- vừa được xem lúc

So sánh 1 số Git provider khác nhau

0 0 21

Người đăng: Hoàng Đức Quân

Theo Viblo Asia

Lời nói đầu

Việc phát triển hiện đại sẽ không thể thiếu 1 công cụ quản lý version của source code như Git. Và ngày nay chúng ta đã có rất nhiều Git provider như GitHub, GitLab, BitBucket,... Trong bài này, chúng ta sẽ cùng so sánh GitHub, GitLab, BitBucket và AWS CodeCommit để biết ưu, nhược điểm của từng bên. Và cũng trả lời câu hỏi có provider nào là CẤM KỊ TRONG VIỆC QUẢN LÝ SECURITY không?

GitHub

Đây có lẽ là provider phổ biến nhất đối với các lập trình viên. GitHub support rất mạnh về Git ở giao diện dễ sử dụng, dễ đăng ký tài khoản, khả năng custom UI,... nhưng đáng kể nhất phải là GitHub Actions - 1 trong những tool CI-CD mạnh nhất và hiện ít có provider git nào có thể mạnh bằng. Các GitHub actions này không chỉ có sẵn các tool open source trên mạng mà bạn hoàn toàn có thể tự tạo 1 GitHub action riêng bằng cú pháp YAML. Với GitHub actions, ta có thể setup để deploy đa nền tảng như AWS, Google Cloud,... Ngoài GitHub actions, chúng ta còn có 1 tính năng khác là Project - 1 công cụ quản lý ở dạng task list hoặc bảng Kanban giúp ta quản lý dự án(dù cái này còn thua Jira xa nhưng đây là cái mình sẽ đề cập ở phần BitBucket). Tính năng cuối cùng mình muốn đề cập ở GitHub đó là GitHub page. Chỉ cần upload code frontend của bạn vào repository có tên .github.io là bạn sẽ có ngay 1 page tĩnh có thể dùng làm nhiều việc khác nhau. Mình thì dùng nó để làm portfolio cá nhân https://blazingrockstorm.github.io

Ở phần nhược điểm thì GitHub hơi nổi tiếng quá về hướng open source. Nhưng không có nghĩa là các doanh nghiệp không lưu trữ code bằng GitHub. GitHub có cho phép tạo private repository như với tài khoản cá nhân thông thường thì chỉ tối đa được 5 cái. Còn nếu nhiều hơn tầm doanh nghiệp chúng ta có GitHub Enterprise có phép có nhiều private repository được bảo mật khá chắc chắn.

GitLab

Khác với GitHub, GitLab lại tạo default repository là private. Và GitLab cũng có 1 số CI-CD cũng khá tốt nhưng không mạnh bằng GitHub. Đây là 1 công cụ tạo private repository giá thành phải chăng hơn so với GitHub

BitBucket

BitBucket thì hồi mình dùng mang tính khá công nghiệp, nhưng mình khá thích 1 giao diện view branch của BitBucket

Giao diện khá tường minh mà GitHub không có. Cũng như GitLab, repository của BitBucket mặc định là private.

Cái BitBucket mạnh là hệ sinh thái của Atlassian như các công cụ quản lý dự án Jira và Trello, CI-CD tool Bamboo,... Nếu hoàn toàn nằm trong hệ sinh thái của BitBucket thì về công nghệ cũng là 1 điểm lợi.

AWS CodeCommit

AWS CodeCommit là nền tảng git riêng của AWS. Để dùng được AWS CodeCommit thì ta phải đăng ký tài khoản AWS. Đây là việc không phải dễ vì có vài tình huống thẻ credit bị lỗi không đăng ký được. Và nếu chỉ dùng mỗi CodeCommit để lưu code thì đăng ký AWS hơi dùng dao mổ trâu giết gà. AWS CodeCommit thì đảm bảo private repository, nhưng do là 1 platform chuyên về cloud và infra nên không có công cụ nào liên quan tới quản lý dự án hỗ trợ kèm. Về CI-CD thì với 1 việc chạy code refactoring ta sẽ phải viết AWSLambda từ đầu, với chạy unit test thì ta sẽ dùng 1 container chạy. Phần unit test sẽ nhanh hơn GitHub và GitLab nhưng phần refactoring code sẽ chậm hơn và mất nhiều công hơn do GitHub và GitLab có cho sử dụng lại 1 số GitHub Actions đã open source, còn AWS CodeCommit phải viết Lambda từ đầu. Điều đó có thể dẫn tới việc để chạy Rubocop cho 1 project Ruby on Rails, ta phải chạy 1 request AWSLambda khá là tốn kém.

Kết bài

Ta có thể thấy mỗi nền tảng có 1 ưu, nhược điểm khác nhau nhưng tất cả đều có thể cho các private repository để bảo mật về source code của dự án cũng như sản phẩm. Có điều tùy vào budget, các công cụ hỗ trợ khác, infra,... mà ta sẽ chọn ra git provider phù hợp. Như vậy, AWS CodeCommit có lợi thế security hơn các git provider khác, nhưng không có nghĩa chọn các provider còn lại, source sẽ bị mở tung ra. Nói cách khác, KHÔNG CÓ MỘT CẤM KỴ NÀO VỀ SECURITY VỚI CÁC GIT PROVIDER NHƯ GITHUB VỚI GITLAB CẢ.

Cảm ơn các bạn đã đọc bài.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 701

- vừa được xem lúc

Tập hợp những câu lệnh GIT hữu dụng

Dưới đây là một vài ví dụ về các câu lệnh Git mà tôi thường dùng. git config --global user.name "John Doe". git config --global user.

0 0 55

- vừa được xem lúc

Cấu hình CI/CD với Github (phần 2): Trigger một work flow

Events trigger. Bạn có thể cấu hình cho workflows chạy khi có một sự kiện nào đó xảy ra trên GitHub, theo một lịch có sẵn hoặc cũng có thể là một sự kiện nào đó xảy ra ngoài GitHub.

0 0 70

- vừa được xem lúc

Cấu hình CI/CD với Github (phần 1): Một ít lý thuyết

CI/CD là gì. Về mặt khái niệm là vậy nhưng về mặt triển khai thì CI/CD là quá trình tự động thực hiện các quá trình build, test, release, deploy khi có các trigger như commit/merge code lên một branch định sẵn hoặc có thể là tự động chạy theo một lịch cố định.

0 0 118

- vừa được xem lúc

Giới thiệu về Git LFS

. Git LFS là gì . Git LFS làm điều này bằng cách thay thế các tệp lớn trong repo của bạn bằng một con trỏ nhỏ.

0 0 29

- vừa được xem lúc

Git workflow được Google và Facebook sử dụng có gì hay ho

Với developer thì Git hẳn là công cụ rất quen thuộc và không thể thiếu rồi. Thế nhưng có mấy ai thực sự hiểu được Git.

0 0 66