Top 5 công cụ CI tốt nhất hiện nay Top CI-CD for developer
Hôm nay TechTalk sẽ giới thiệu cho các bạn 5 công cụ CI khá nổi tiếng và được công đồng phát triển phần mềm xài khá nhiều.
Trong tích hợp liên tục, mỗi khi developer hợp nhất các thay đổi mã của mình vào kho lưu trữ, một chuỗi các thử nghiệm được kích hoạt. Điều này giúp họ xác định lỗi ngay lập tức. Khi một commit không có lỗi, thì CI sẽ giao hàng commit đó. Thông thường, quá trình này đòi hỏi sự can thiệp thủ công. Nhưng với các công cụ CI / CD, toàn bộ quá trình kiểm tra đó có thể được tự động hóa cho tới bước release. Mỗi hợp nhất mã mới được tự động kiểm tra và các commit này được đẩy để triển khai hay release cho khách hàng.
Trong tích hợp liên tục, mỗi khi developer hợp nhất các thay đổi mã của mình vào kho lưu trữ, một chuỗi các thử nghiệm được kích hoạt. Điều này giúp họ xác định lỗi ngay lập tức. Khi một commit không có lỗi, thì CI sẽ giao hàng commit đó. Thông thường, quá trình này đòi hỏi sự can thiệp thủ công. Nhưng với các công cụ CI / CD, toàn bộ quá trình kiểm tra đó có thể được tự động hóa cho tới bước release. Mỗi hợp nhất mã mới được tự động kiểm tra và các commit này được đẩy để triển khai hay release cho khách hàng.
Vậy công cụ CD / CI nào là tốt nhất?
Thật khó để quyết định bởi vì có rất nhiều lựa chọn ngoài kia, một tìm kiếm Google cho ‘CI / CD’ thì nó cho ra nửa tỷ kết quả! @.@- Jenkins
- TeamCity
- GitLab CI/CD
- CircleCI
- Travis CI
- Drone CI (Special Mention)
Jenkins là người chơi lâu đời nhất trong ngành và chiếm thị phần 71%. Với hơn 1 triệu người dùng, sự hỗ trợ của cộng đồng cho công cụ này là rất tốt. Điều tuyệt vời hơn nữa là ngày nay có hơn 1400 plugin có thể phục vụ hầu hết mọi nhu cầu Tích hợp liên tục (CI) / Phân phối liên tục (CD). Và nếu bạn không thể tìm thấy một plugin phù hợp với mình, bạn có thể tự tạo một plugin và chia sẻ nó với cộng đồng.
Jenkins là phù hợp nhất nếu:
- Code của bạn được lưu trữ trong một server riêng của bạn(hosted in-house)
- Bạn muốn có toàn quyền kiểm soát môi trường CI / CD của bạn
- Bạn yêu cầu một máy chủ tại chỗ
- Bạn cần một quy trình công việc có thể tùy biến cao
- Bạn có thể chỉ định một người / nhóm chuyên trách để quản lý và duy trì Jenkins
- Bạn cần một giải pháp tiết kiệm tiền
TeamCity là công cụ dành cho bạn nếu:
- Bạn cần một giải pháp làm việc mà không gặp rắc rối về bảo trì vì thèn này có thể dùng server riêng
- Bạn không thể chỉ định một người / nhóm chuyên trách để quản lý công cụ Tích hợp liên tục (CI) / Phân phối liên tục (CD)
- Bạn yêu cầu hỗ trợ khách hàng nhanh chóng
- Các dự án của bạn được xây dựng trên .NET
- Bạn có nhiều dự án với các cấu hình tương tự nhau, mỗi dự án tiến triển khác nhau
- Code của bạn được lưu trữ trong GitLab
- Bạn muốn outsource DevOps
- Bạn không muốn rắc rối khi thiết lập và cấu hình một công cụ hoàn toàn mới
- Bạn sẽ được hưởng lợi từ tỷ lệ phát hành tính năng ổn định
- Bạn cần một đăng ký tích hơp Docker
- Bạn không cần plugin
CircleCI nên là lựa chọn của bạn về công cụ CI / CD nếu:
- Bạn cần hỗ trợ sẵn có và song song với việc develop
- Code của bạn được lưu trữ trên GitHub hoặc Bitbucket
- Bạn làm việc trên Linux hoặc MacOS
- Nhóm của bạn bao gồm nhiều nhà phát triển sử dụng chung một Tích hợp liên tục (CI) / Phân phối liên tục (CD)
- Bạn ưu tiên tốc độ hơn tất cả những thứ khác(Build nhanh,…)
- Bạn cần các chung 1 quy trình và quy trình công việc tùy biến cao
Travis CI là sự phù hợp hoàn hảo cho bạn nếu:
- Code của bạn được lưu trữ trên GitHub
- Bạn cần hỗ trợ nhiều ngôn ngữ khác nhau
- Bạn không sử dụng Windows
- Bạn cần một giải pháp linh hoạt
- Bạn cần các máy chủ cơ sở dữ liệu được cài đặt sẵn
- Bạn không yêu cầu nhiều tích hợp của bên thứ ba
Drone là một công cụ gốc container được viết bằng Go. Công cụ này dễ dàng để thiết lập và nâng cấp. Nó có tính năng Autoscaler cho phép bạn tự động tăng hoặc giảm theo yêu cầu. Drone CI cũng hỗ trợ kiến trúc bộ xử lý ARM.
Drone là lựa chọn tốt nhất của bạn nếu:
- Bạn yêu cầu hỗ trợ Docker
- Bạn cần một công cụ dựa trên đám mây
- Bạn cần một công cụ dễ nâng cấp
- Bạn yêu cầu kết nối trực tiếp với GitHub, GitLab, Bitbucket và các nhà cung cấp đám mây như AWS và GCP
Comments
Post a Comment