Jenkins là một máy chủ tích hợp liên tục (CI server) mã nguồn mở có khả năng điều phối một chuỗi các hành động giúp đạt được quy trình tích hợp liên tục (CI) theo cách tự động.
Jenkins miễn phí và được viết hoàn toàn bằng Java. Jenkins là một ứng dụng được sử dụng rộng rãi trên khắp thế giới với khoảng 300 nghìn lượt cài đặt và đang phát triển từng ngày.
Nó là một ứng dụng dựa trên máy chủ và yêu cầu một máy chủ web như Apache Tomcat. Lý do Jenkins trở nên nổi tiếng là vì nó giám sát các nhiệm vụ lặp đi lặp lại phát sinh trong quá trình phát triển một dự án. Ví dụ: nếu nhóm của bạn đang phát triển một dự án, Jenkins sẽ liên tục kiểm tra các bản build dự án của bạn và chỉ ra cho bạn những lỗi trong giai đoạn đầu phát triển của bạn.
Bằng cách sử dụng Jenkins, các công ty phần mềm có thể đẩy nhanh quá trình phát triển phần mềm của họ, vì Jenkins có thể tự động hóa việc build và thử nghiệm với tốc độ nhanh chóng. Jenkins hỗ trợ vòng đời phát triển hoàn chỉnh của phần mềm từ build, thử nghiệm, lập tài liệu phần mềm, triển khai và các giai đoạn khác của vòng đời phát triển phần mềm.
Trong tích hợp liên tục (CI) sau khi commit code, phần mềm được build và thử nghiệm ngay lập tức. Trong một dự án lớn với nhiều nhà phát triển, commit code được thực hiện nhiều lần trong ngày. Với mỗi lần commit, code được build và thử nghiệm. Nếu thử nghiệm được thông qua, bản build đã được thử nghiệm để triển khai. Nếu việc triển khai thành công, mã sẽ được chuyển sang production. Commit, build, thử nghiệm và triển khai này là một quá trình liên tục và do đó có tên là tích hợp / triển khai liên tục (CI/CD).
Đường ống tích hợp liên tục (CI Pipeline) là một công cụ mạnh mẽ bao gồm một bộ công cụ được thiết kế để lưu trữ, giám sát, biên dịch và kiểm tra code hoặc các thay đổi code, như:
Một số người có thể nghĩ rằng cách phát triển phần mềm kiểu cũ là cách tốt hơn. Hãy cùng Jenkins tìm hiểu những ưu điểm của CI với ví dụ sau:
Chúng ta hãy tưởng tượng, có khoảng 10 nhà phát triển đang làm việc trên một kho lưu trữ source code được chia sẻ. Một số nhà phát triển hoàn thành nhiệm vụ của họ trong 25 ngày trong khi những nhà phát triển khác mất 30 ngày để hoàn thành.
Không có Jenkins | Có Jenkins |
---|---|
Sau khi tất cả các nhà phát triển (dev) đã hoàn thành các nhiệm vụ được giao, họ sẽ đồng thời commit code của mình. Sau đó, build code, thử nghiệm và triển khai. Chù kỳ commit code, build và thử nghiệm rất không thường xuyên và mỗi lần build được thực hiện sau nhiều ngày. |
Mã được build và thử nghiệm ngay sau khi nhà phát triển (dev) commit code. Jenkins sẽ build và thử nghiệm code nhiều lần trong ngày. Nếu build thành công thì Jenkins sẽ triển khai source code vào máy chủ thử nghiệm và thông báo cho nhóm triển khai. Nếu bản build không thành công, Jenkins sẽ thông báo lỗi cho nhóm nhà phát triển. |
Vì code được tạo cùng một lúc, một số nhà phát triển sẽ cần phải đợi cho đến khi các nhà phát triển khác hoàn thành để kiểm tra bản build của họ. | Code được build ngay lập tức sau khi nhà phát triển commit code. |
Việc cô lập, phát hiện và sửa lỗi cho nhiều lần commit không phải là một nhiệm vụ dễ dàng. | Vì code được build sau mỗi lần commit của một nhà phát triển, nên thật dễ dàng để phát hiện code của ai đã khiến quá trình build bị lỗi. |
Quá trình build và thử nghiệm source code hoàn toàn là thủ công, vì vậy có rất nhiều khả năng thất bại. | Quá trình build và thử nghiệm tự động giúp tiết kiệm thời gian và giảm thiểu các khuyết tật. |
Code được triển khai sau khi tất cả các lỗi được sửa và kiểm tra. | Code được triển khai sau mỗi lần build và thử nghiệm thành công. |
Chu kỳ phát triển chậm. | Chu kỳ phát triển nhanh chóng. Các tính năng mới sẵn có hơn cho người dùng. Tăng lợi nhuận. |
Tôi chắc rằng tất cả các bạn đều biết đến điện thoại Nokia cũ. Nokia đã từng thực hiện một quy trình gọi là build hàng đêm. Sau nhiều commit từ các nhà phát triển khác nhau trong ngày, phần mềm được build hàng đêm. Vì phần mềm chỉ được build một lần trong ngày nên việc cô lập, xác định và sửa lỗi trong một codebase lớn là một điều rất khó khăn.
Sau đó, họ đã áp dụng cách tiếp cận tích hợp liên tục (CI). Phần mềm được build và thử nghiệm ngay sau khi một nhà phát triển commit code. Nếu bất kỳ lỗi nào được phát hiện, nhà phát triển tương ứng có thể nhanh chóng sửa chữa lỗi đó.
Theo mặc định, Jenkins đi kèm với một số tính năng hạn chế. Nếu bạn muốn tích hợp cài đặt Jenkins của mình với các công cụ kiểm soát phiên bản như Git, thì bạn cần cài đặt các plugin liên quan đến Git. Trên thực tế, để tích hợp với các công cụ như Maven, Amazon EC2, bạn cần cài đặt các plugin tương ứng trong Jenkins của mình.
Mặc dù Jenkins là một công cụ rất mạnh, nhưng nó có những nhược điểm.
Bạn có thể vui lòng tắt trình chặn quảng cáo ❤️ để hỗ trợ chúng tôi duy trì hoạt động của trang web.
Bài viết này sẽ hướng dẫn bạn cách cài đặt, cấu hình plugin Role-based Authorization Strategy để tạo user, role và phân quyền trong Jenkins.
Bài viết này sẽ hướng dẫn bạn từng bước cài đặt plugin Git vào Jenkins. Tạo dự án đầu tiên trong Jenkins và cấu hình cho plugin Git.
Hướng dẫn đầy đủ và chi tiết từng bước cách tải, cài đặt, cấu hình mở khóa, cấu hình plugin cho Jenkins trên Windows.
Tích hợp liên tục (CI) là gì? Vì sao CI giúp tăng tốc quá trình phát triển, xây dựng phần mềm chất lượng tốt hơn và giảm thiểu các rủi ro.