Trong quá trình viết và phát triển phần mềm, Deploy là một trong những khâu vô cùng quan trọng tạo nên môi trường test và môi trường product. Trước đây công việc này là một trong những việc làm khá tốn thời gian, nhưng với sự xuất hiện của CI CD đã giúp rút ngắn công đoạn này. Để có thể hiểu rõ hơn CI CD là gì và cách triển khai với Gitlab thì bạn có thể đọc bài viết dưới đây nhé!
Nội dung
CI là gì? CD là gì?
CI (Continuous Integration) – là một trong những phương pháp phát triển phần mềm khá phổ biến. Phương pháp này yêu cầu các thành viên trong team trong quá trình làm việc cần phải tích hợp công việc lại với nhau một cách thường xuyên. Làm việc tích hợp các công việc lại với nhau sẽ giúp cho cho dễ dàng phát hiện ra những lỗi sai, từ đó đó giải quyết công việc hiệu quả hơn.
CD là gì? CD là một ký hiệu viết tắt của cụm từ Continuous Delivery – với ý nghĩa là chuyển giao liên tục. Đây được coi là một trong những quả trình giúp kiểm tra tất cả những thay đổi về code đã được build trong môi trường kiểm thử. Tính năng này cho phép tất cả các Dev có thể lập tự động hóa phần mềm testing để kiểm tra lại trước khi triển khai toàn bộ.
Quy trình thực hiện CD sẽ chia làm nhiều giai đoạn khác nhau mỗi giai đoạn sẽ thực hiện một mục tiêu nhằm xác minh chất lượng. Đặc biệt khi tham gia kiểm nghiệm lại chất lượng, sẽ thực hiện từ nhiều góc độ khác nhau, để đảm bảo các chức năng vận hành tốt nhất.
Vậy CI CD là gì?
Khi kết hợp hai khái niệm này bạn có thể thấy CI CD là một trong những quá trình làm việc liên tục và tự động hóa của phần mềm. Nó được tích hợp vào trong vòng đời phát triển của sản phẩm giúp cho quá trình kiểm tra diễn ra liên tục.
Nhờ sự phát triển của CI CD, nó trở thành một hệ thống vô cùng quan trọng trong việc phát triển phần mềm. Nó trở thành yếu tố then chốt để đảm bảo khâu thử nghiệm và phát triển phần mềm diễn ra tốt nhất và không gặp phải trở ngại. Cũng nhờ vai trò của mình mà nó trở thành thông lệ tốt nhất và bắt buộc phải sử dụng trong lĩnh vực IT.
Lợi ích
Có thể nói sử dụng CI CD hiện nay là một trong những bước vô cùng quan trọng đem lại nhiều lợi ích trong lĩnh vực công nghệ thông tin. Cụ thể:
Ngăn chặn rủi ro
Lợi ích đầu tiên là có thể ngăn cản được các rủi ro có thể xảy ra nhờ khả năng phát hiện lỗi. Nhờ khả năng phát hiện lỗi sớm giúp cho Dev có thể dễ dàng sửa chữa lại lỗi, từ đó giảm khả năng rủi ro có lỗi khi phần mềm hoàn thành. Tất cả các lỗi đều được kiểm tra và quan sát một cách tự động, giúp giảm thiểu tình trạng xảy ra lỗi. Không chỉ vậy, CI CD còn có thể Deploy tại bất kỳ khoảng thời gian nào, không cần phải chờ đợi mất thời gian.
Có thể thay đổi code nhỏ
Một trong những khả năng của CI CD đó chính là cho phép mã hóa code nhỏ. Nếu đoạn code có sự sai sót nó có thể hỗ trợ và xử lý nhanh chóng không gây ảnh hưởng đến toàn bộ hệ thống. Điều này các Dev có thể kiểm tra và phát hiện lỗi từ sớm, không để tình trạng lỗi sai xuất hiện nhiều rồi mới phát hiện. Đây được coi là một trong những tính năng đem lại lợi thế tuyệt vời cho các nhóm phát triển phần mềm.
Xây dựng kỹ năng unit test cho Dev
Thông qua các chỉ số ràng buộc về code được cài đặt trong CI CD, Dev có thể dễ dàng xem xét và chú ý những chỉ số làm việc. Unit test đóng vai trò khá quan trọng nó không chỉ giảm các chỉ số code mà còn có khả năng phát triển các tính năng mới của phần mềm.
Đảm bảo chất lượng của code
Lý do khiến cho lập trình viên quan tâm và sử dụng CI CD bởi nó có thể được cài đặt những ràng buộc ngay từ đầu. Chính điều này đã giúp cho chất lượng các mã code trong quy trình được cải thiện hơn, loại bỏ những đoạn code không phù hợp.
Triển khai CI CD với Gitlab
Quy trình của triển khai CI CD Gitlab
Với mỗi một dự án người ta sẽ có quy trình triển khai CI CD khác nhau, tùy thuộc vào từng nội dung đặc thù. Quy trình của triển khai đối với dự án thuộc hệ thống Teamcrop như sau:
- Bước 1: Master và Dev sẽ khởi tạo repository có branch default và cài đặt trên Gitlab 9.
- Bước 2: Các coder sẽ tiến hành push code lên branch Dev trừ OP ra.
- Bước 3: Test source code sẽ được hệ thống tự động làm, khi pass qua thì Deploy sẽ tự động code lên server beta.
- Bước 4: Tester/QA sẽ tiến hành kiểm tra thông qua hệ thống beta để làm UAT.
- Bước 5: Coder hoặc OP sẽ tiến hành tạo các Merge Request và merge, chuyển đổi từ branch Dev sang branch master.
- Bước 6: OP sẽ thực hiện việc accept merge request
- Bước 7: Hệ thống tiếp tục tự động test source code, khi pass, cho phép Deploy lên production server.
- Bước 8: Khi OP review merge request OK, test OK thì sẽ Deploy các thay đổi lên production.
- Bước 9: Tester/QA sẽ tiến hành kiểm tra, nếu ok thì qua, còn không ok thì sẽ hồi phục lại phiên bản trước để làm lại.
Gitlab CI với CI CD
Đa phần các hệ thống quản lý source code sẽ không được thiết kế kèm theo cơ chế CI CD. Nếu lập trình viên muốn triển khai thì bắt buộc phải liên kết đến repository và tiền hành phân quyền để có thể lấy source code từ đó. Trước đây người ta sẽ sử dụng Jenkins để thực hiện công việc này, nhưng lại rất hạn chế vì mất thời gian và nhiều rắc rối.
Gitlab CI chính là một trong những tính năng siêu đặc biệt ra đời nhằm giải quyết những vấn đề trên. Không chỉ có thời gian hoạt động nhanh chóng mà nó còn là hệ thống hoàn hảo với những bước tiến đơn giản. Những đoạn mã code được để ở Gitlab, kết hợp với hệ thống này sẽ giúp cho việc kiểm tra và sử dụng mã code một cách tự động.
Đối với những người mới sử dụng, họ sẽ cảm thấy hơi khó khăn bởi có nhiều chức năng cao siêu và cài đặt rắc rối. Tuy nhiên, sau khi đã cài đặt xong bạn có thể sử dụng một cách dễ dàng với chơ chế sử dụng mã nhanh chóng và phù hợp. Lưu ý trong quá trình sử dụng Gitlab CI sẽ có 2 yếu tố bạn cần quan tâm đó là:
- “gitlab-ci.yml”: Đây là một trong những file vô cùng quan trọng nằm trong thư mục gốc của Gitlab. Các Dev khi sử dụng cần chú ý đảm bảo tính hợp lệ thì mới có thể hoạt động, nến không thì sẽ báo lỗi.
- Gitlab Runner: Đây là một thành phần quan trong trong workflow Gitlab CI, nếu không có nó thì sẽ không có lệnh kiểm tra hay sử dụng mã được thực hiện.
Bài viết này của chúng tôi đã giới thiệu cho bạn về CI CD là gì và triển khai với Gitlab như thế nào. Nếu bạn còn bất cứ thắc mắc gì liên quan đến hệ thống này thì hãy nhanh tay liên hệ với chúng tôi để được tư vấn thêm.
FPT Aptech trực thuộc Tổ chức Giáo dục FPT có hơn 25 năm kinh nghiệm đào tạo lập trình viên quốc tế tại Việt Nam, và luôn là sự lựa chọn ưu tiên của các sinh viên và nhà tuyển dụng. |