
SEMINAR (9): CI – CD VÀ NHỮNG CÔNG CỤ CI (20/02/2020)
Đã trở thành một thông lệ, cứ hai tuần một lần, cố định vào 5 giờ chiều thứ năm, toàn bộ thành viên Fuji Tech JSC lại háo hức chờ đón những chia sẻ bổ ích được chuẩn bị kỹ càng. Thứ năm ngày 20/02/2020 vừa qua, Anh Phạm Văn Mạnh – thành viên team App đã lựa chọn chủ đề “CI – CD và những công cụ CI” cho bài thuyết trình seminar của mình. Chủ đề này thu hút rất nhiều sự quan tâm của mọi người. Tuy nhiên, đây là những thuật ngữ mà không hẳn ai gặp cũng có thể hiểu đúng và hiểu đủ ý nghĩa của chúng.
Mở đầu bài thuyết trình, anh Mạnh đã giải thích cụ thể CI – CD là gì và những lợi ích đến từ CI – CD.
CI là từ viết tắt của Continuous Integration (tạm dịch: tích hợp liên tục) – 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ách tiếp cận này giảm thiểu lượng công việc tích hợp và cho phép phát triển phần mềm nhanh hơn.
Trong khi Continuous Integration là quy trình để build và test tự động, thì CD – Continuous Delivery (tạm dịch: chuyển giao liên tục) lại ở mức độ cao hơn một chút, bằng cách triển khai tất cả thay đổi về code đến môi trường testing hoặc staging. Continuous Delivery cho phép developer tự động hóa phần testing bên cạnh việc sử dụng unit test, kiểm tra phần mềm qua nhiều thước đo trước khi triển khai cho khách hàng. Những bài test này bao gồm UI testing, load testing, integration testing, API testing,v.v… Đây là một quy trình phát triển phần mềm gần như tự động.
Anh Mạnh cũng nhấn mạnh mọi người thường hay nhầm CD là Continuous Deployment (tạm dịch: triển khai liên tục). Quy trình phát triển này gần giống với Continuous Delivery nhưng khác nhau ở chỗ đây là quy trình tự động cho đến bước triển khai trên môi trường thật. Continous Deployment có thể không phù hợp với mọi công ty, nhưng Continuous Delivery thì tuyệt đối phù hợp cho việc thực hiện tăng tốc độ chuyển giao ứng dụng và dịch vụ, phát triển và cải tiến sản phẩm nhanh hơn với chất lượng cao hơn.
Cuối cùng, anh Mạnh đã đưa ra, phân tích và so sánh những CI phổ biến trên thế giới như Travis CI, Circle CI, Jenkins, v.v… Những ví dụ và thông tin thực tế giúp những người tham gia có cái nhìn từ tổng quan đến chi tiết về CI và CD; mọi người đã cùng nhau đưa ra những trao đổi sôi nổi về những mô hình thực tế này cũng như kiến thức về CI, CD.
Và điều đặc biệt nhất của buổi thuyết trình đó là anh Mạnh đã gửi tới mọi người một bản demo do anh tự xây dựng và sử dụng CI. Được sự đồng ý của anh Mạnh, chúng tôi xin gửi tới các bạn đọc của Fuji Technology JSC bản demo CI của anh Mạnh để mọi người cũng có được cái nhìn trực quan về CI.
https://github.com/manhpham90vn/MPVPN