Continuous Integration (CI) từ lâu đã là khái niệm không hề xa lạ với anh em phát triển phần mềm. Tuy nhiên, với một số anh em trước đây chỉ làm việc độc lập, CI có vẻ như là điều gì đó còn khá xa lạ. Bài viết này cung cấp cho anh em cái nhìn đầy đủ và rõ ràng về CI, ưu điểm khi áp dụng CI vào trong dự án phát triển phần mềm. [caption id="attachment_56130" align="aligncenter" width="886"] Không có CI,CD là loạn tung phèo hết. Nói cho anh em hiểu là CI, CD quan trọng cỡ nào ha[/caption] Cùng bắt đầu tìm hiểu thôi anh em! 1. Cotinuous integration là gì? Trước hết, cùng tìm hiểu định nghĩa về CI (Cotinuous integration). Đầu tiên, Continuous integration is a DevOps software development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run CI (tích hợp liên tục), là một phương pháp phát triển phần mềm DevOps trong đó các nhà phát triển thường xuyên hợp nhất các [...]
Read more →Bài viết được sự cho phép của tác giả Phạm Minh Khoa CI là gì? CI là Continuous Integration. Nó là phương pháp phát triển phần mềm yêu cầu các thành viên của team tích hợp công việc của họ thường xuyên, mỗi ngày ít nhất một lần. Mỗi tích hợp được “build” tự động (bao gồm cả test) nhằm phát hiện lỗi nhanh nhất có thể. Cả team nhận thấy rằng cách tiếp cận này giảm thiểu vấn đề tích hợp và cho phép phát triển phần mềm nhanh hơn. Các bước trong một kịch bản CI thường như sau: Đầu tiên, developer commit code lên repo. CI server giám sát repo và kiểm tra xem liệu có thay đổi nào trên repo hay không (liên tục, chẳng hạn mỗi phút 1 lần) Ngay khi commit xảy ra, CI server phát hiện repo có thay đổi, nên nó nhận code mới nhất từ repo và sau đó build, chạy unit và integration test CI server [...]
Read more →Bài viết được sự cho phép của tác giả Lê Chí Dũng Đến thời điểm hiện nay, tôi thường yêu cầu các dự án của mình phải có CI. Nếu viết bằng script như nodejs thì CI sẽ có nhiệm vụ check syntax, để các thành viên trong nhóm cùng một kiểu viết giống nhau, và chạy các mức test khác nhau như unit test, CDC test. Điểu tuyệt vời của gitlab là nó đi kèm với bộ CI miễn phí cho cả dự án private (yay). Blog này sẽ trình bày chiến lược để thiết lập ENV test trên Gitlab CI để build docker image, và upload nó lên gitlab registry. [irp posts="5464" name="Triển khai CI/CD với Gitlab"] [irp posts="338" name="34 sản phẩm phần mềm Social Networking tốt nhất"] Gitlab runner Là nơi chương trình test của bạn sẽ được chạy. Bạn có thể có một PC riêng biệt cho việc build và test. Gitlab cung cấp một chương trình khá tiện https://gitlab.com/gitlab-org/gitlab-ci-multi-runner để thiết lập runner cục bộ. Cá [...]
Read more →Bài viết được sự cho phép của tác giả: Vũ Công Tấn Tài Đợt tháng 3 vừa rồi, mình có lên kế hoạch tổ chức một buổi seminar nho nhỏ để chia sẻ với các bạn sinh viên về mô hình tích hợp liên tục (continuous integration), gọi một cách ngắn gọn là mô hình CI/CD trong phát triển và triển khai phần mềm. Rất không may là đợt rồi xảy ra dịch Covid-19, khiến các kế hoạch bị hủy bỏ. Vì không thể tổ chức seminar nên mình đành để tài liệu ở đây và trình bày ngắn gọn nội dung trong bài post này. Hi vọng có thể chia sẻ với mọi người chút kiến thức hữu ích. [irp posts="13003" name="Mô hình 3 lớp (three-layer) có gì hay?"] [irp posts="1877" name="So sánh 4 mô hình truyền thông trong hệ thống IoT"] Hình thức và tóm tắt nội dung Ban đầu, mình định tổ chức buổi chia sẻ dạng trình chiếu và tương tác, do đó [...]
Read more →Một giám đốc dự án cần đánh giá được tiến độ, chất lượng để có điều chỉnh kịp thời, nhà phát triển cần một hệ thống hỗ trợ coding, danh mục kiểm tra tự động, bộ phận kiểm định chất lượng cần một hệ thống theo dõi đủ sâu và dễ tiếp cận nhất có thể… Tất cả những vấn đề này đều có thể giải quyết triệt để với CI/CD. Hiện nay, để đảm bảo độ ổn định nhất quán, kiểm soát tình hình kịp thời thì việc tích hợp liên tục các source code của các members trong team lại nhanh chóng, đảm bảo source được kiểm thử một cách tỉ mỉ trước khi deploy lên môi trường production thì CI/CD diễn ra vô cùng phổ biến. Trong khoảng 5 năm trở lại đây, Docker trở nên khá hot trong giới lập trình vì là một open source có công nghệ container hoá giúp cho việc đóng gói service vào container nhẹ và nhanh hơn. Các hãng lớn như [...]
Read more →Cũng hơn một tháng kể từ bài viết gần nhất, nay mới có thời gian ngồi viết lách tiếp. Dạo gần đây thường release các dự án outsource nên cũng hay làm documentation cũng như mở các dự án mới nên việc setup CI/CD thường xuyên hơn và chân tay hơn. Thấy các kiến thức này hay nên hôm nay mình sẽ chia sẻ mọi người quy trình CI/CD bên mình áp dụng cho “đại dự án” Teamcrop cũng như các dự án outsourcing mà Moout thực hiện. CI/CD là gì? CI/CD là một bộ đôi công việc, bao gồm CI (Continuous Integration) và CD (Continuous Delivery), ý nói là quá trình tích hợp (integration) thường xuyên, nhanh chóng hơn khi code cũng như thường xuyên cập nhật phiên bản mới (delivery). Tại sao phải quan tâm đến CI/CD? Ngày nay, với xu hướng agile/lean dẫn đến việc phát triển tính năng là điều bình thường, quan trọng phải [...]
Read more →CI/CD là gì? Tầm quan trọng của quy trình CI CD là gì và tại sao bạn nên sử dụng chúng để phát triển phần mềm? Bài viết này sẽ cung cấp cho bạn câu trả lời cho câu hỏi đó và hơn thế nữa. CI/CD là gì? CI/CD là một bộ đôi công việc, bao gồm CI (Continuous Integration) và CD (Continuous Delivery) hoặc Continuous Deployment (Triển khai liên tục), ý nói là quá trình tích hợp (integration) thường xuyên, nhanh chóng hơn khi code cũng như thường xuyên cập nhật phiên bản mới (delivery). [caption id="attachment_64440" align="aligncenter" width="826"] CI CD là gì?[/caption] Continuous Integration (CI) Continuous Integration (CI) là một quy trình tự động hóa cho phép các nhà phát triển thường xuyên hợp nhất các thay đổi mã nguồn trở lại một nhánh chia sẻ hoặc “trunk”. Khi các cập nhật này được thực hiện, các bước kiểm tra tự động sẽ được kích hoạt để đảm bảo tính ổn định của các thay đổi [...]
Read more →