CƠ SỞ LÝ THUYET
2.4 Tích hợp và triển khai liên tục
2.4.1 Phát triển phần mềm liên tục
Phát triển phần mềm liên tục (Continuous Software Engineering - CSE) đề cập đến khả năng tổ chức công việc của công ty để thực hiện việc phát triển, triển khai và nhận phản hồi từ khách hàng trong các chu kỳ phát triển với thời gian nhanh chóng, có thể
là một vài giờ, một vài ngày hoặc một vài tuần. Quá trình này bao gồm xác định các chức năng mới cần xây dựng, ưu tiên những chức năng quan trọng nhất, phát triển và tái cấu trúc lại kiến trúc sản phẩm, phát triển tính năng, kiểm thử tính năng, phát hành cho khách hàng và thu thập phản hồi từ họ để thực hiện các chu kỳ phát triển tiếp theo. Phát triển phần mềm liên tục bao gồm ba giai đoạn: lập chiến lược và kế hoạch kinh doanh, phát triển sản phẩm và phát hành sản phẩm [30].
Quy trình phát triển phần mềm liên tục gồm ba công việc chính: tích hợp liên tục, phân phối liên tục và triển khai liên tục [31]. Mối quan hệ giữa ba công việc này được thể hiện trong hình 2.5.
Build
Unit Tests
Production Feedback
Hình 2.5: Mối quan hệ giữa tích hợp liên tục, phân phối liên tục và triển khai liên tục
trong phát triển phần mềm.
2.4.2 Tích hợp liên tục
Trong quy trình phát triển phần mềm truyền thống, quá trình tích hợp mã nguồn
sẽ được thực hiện vào giai đoạn cuối của dự án. Quá trình tích hợp mã nguồn và chạy chúng trên các nền tảng khác nhau có thể mat rất nhiều thời gian. Và nếu có lỗi xảy ra trong quá trình này thì dự án có thể sẽ không hoàn thành đúng theo tiến độ đề ra, gây mất uy tín của công ty và ảnh hưởng đến khách hàng. Điều này gây ra những bất lợi trong quá trình phát triển phần mềm. Với sự ra đời của quy trình phát triển phần mềm Agile, tích hợp liên tục cũng được hình thành và áp dụng vào giai đoạn đầu của quy trình phát triển phần mềm.
Tích hợp liên tục (Continuous Integration - Cl) là phương pháp phát triển phần mềm mà trong đó các thành viên trong nhóm phát triển phải tiến hành tích hợp hay gộp (merge) mã nguồn của họ một cách thường xuyên [32]. Phương pháp này giúp cho các công ty phát triển phần mềm rút ngắn thời gian hoàn thành dự án, cải thiện chất lượng sản phẩm, cải thiện tỉnh thần làm việc nhóm của các nhân viên trong công ty, phát hiện và xử lý lỗi nhanh chóng, tiết kiệm tài nguyên, đồng thời mang lại lợi nhuận cao hơn cho công ty. Tích hợp liên tục là tự động tích hợp mã nguồn và kiểm thử trong
27
quá trình phát triển.
Cl SERVER |
SOURCE REPOSITORY
a
RESULT abị bì 1
Hình 2.6: Mô hình tích hợp liên tục.
Trong một dự án, nhóm phát triển phần mềm có rất nhiều thành viên, mỗi thành viên sẽ phát triển các phần nhỏ của dự án một cách độc lập trên môi trường phát triển
cá nhân. Cuối mỗi ngày, mỗi thành viên trong nhóm sẽ tự kiểm tra lại công việc mình
đã làm trong ngày hôm đó và tải các thay đổi lên kho lưu trữ mã nguồn chung của dự
án. Các công cụ CI được xây dựng cho dự án sẽ phát hiện những thay đổi trong kho lưu trữ mã nguồn dự án và thực hiện phân tích chất lượng mã nguồn. Sau khi phân tích thành công, nếu có lỗi xảy ra, lỗi đó sẽ được thông báo cho nhóm phát triển để tiến hành sửa lỗi một cách nhanh nhất. Nếu không có lỗi xảy ra, dự án sẽ chuyển sang giai đoạn tiếp theo.
2.4.3 Phan phối liên tục
Phân phối liên tục (Continuous Delivery - CD/CDE) là phương pháp của kỹ thuật phần mềm, trong đó các nhóm phát triển sẽ sản xuất phần mềm trong chu kỳ ngắn và
đảm bảo rằng phần mềm có thể được phát hành một cách đáng tin cậy bat kì lúc nào
[33].