Làm thế nào là hội nhập liên tục được tổ chức trong các công ty lớn?


11

Trong công ty của tôi, thông thường không thực hiện bất kỳ bản dựng trung gian nào để kiểm tra cách mỗi nhánh tính năng / lỗi được hợp nhất trong dev. Chỉ có bản dựng hàng ngày, luôn tạo ra rất nhiều lỗi kiểm tra và lỗi bản dựng. Tôi đã được thông báo rằng việc xây dựng cho mỗi lần hợp nhất cho hơn 1000 nhà phát triển là không hợp lý.

Vì vậy, tôi đã tìm kiếm cách CI được tổ chức trong các công ty có nhiều nhà phát triển trở lên (Microsoft, Facebook) và không tìm thấy gì. Có lẽ, người trong cuộc có thể nói với tôi sau đó?



@gnat Bạn có đủ không? Nó liên quan như thế nào? Tôi yêu cầu kinh nghiệm nội bộ, và các công ty chỉ là ví dụ. Tôi đã không yêu cầu bất kỳ hỗ trợ khách hàng.
Megamozg

11
@gnat Tôi không thấy nó liên quan đến điều đó như thế nào. Megamozg: CI được tổ chức theo mô đun của các dự án, không có mô đun nào có 1000 nhà phát triển. Vì vậy, nếu có quá nhiều người, hãy cắt giảm dự án / mô-đun của bạn trong phần nhỏ hơn.
Walfrat

@Walfrat nó hoàn toàn liên quan. Trang web này không phải để thực hiện các cuộc khảo sát / thăm dò ý kiến ​​của các công ty lớn về cách các công ty của họ làm những việc khác nhau. Nếu ai đó tò mò về những thứ như vậy thì họ nên sử dụng các kênh hỗ trợ của các công ty này
gnat

@gnat Tôi thực sự không thấy cách liên kết bạn cung cấp được áp dụng, đặc biệt là với nhận xét bạn đã cung cấp để phản hồi với Walfrat. Dựa trên nhận xét đó, IMHO này sẽ là liên kết thích hợp (phần về câu hỏi loại thăm dò ý kiến) phần
mềmengineering.meta.stackexchange.com/a/6490

Câu trả lời:


12

Về cơ bản, đây là một vấn đề mở rộng. Bạn tách công việc của mình thành các mô-đun, có thể là các dự án khác nhau và / hoặc các chức năng khác nhau của sản phẩm.

Bạn sẽ có các nhóm bao gồm các bộ mô-đun đó. Mỗi nhóm trong số đó sẽ có chu trình CI được thiết lập cho phạm vi của họ và chỉ sau khi chu kỳ tương ứng của họ vượt qua, mã sẽ được đẩy sang repos chính, nơi chu trình CI chính sẽ được chạy.

Chu trình CI chính rất có thể sẽ khác với chu trình CI cấp độ nhóm trong các khía cạnh sau:

  • Các chu trình CI cấp độ nhóm không phải xây dựng mã của toàn bộ công ty, chỉ những mô-đun mà chúng chịu trách nhiệm và các mô-đun phụ thuộc. Nếu có hai mô-đun hoàn toàn độc lập và trong các nhóm khác nhau, chúng sẽ không nằm trong chu trình CI của nhóm khác.
  • Các chu trình CI cấp độ nhóm có thể có các thử nghiệm tự động chi tiết hơn nhiều so với chu trình CI chính. Chu trình Master CI sẽ có các kiểm tra kiểm tra độ tỉnh và kiểm tra hồi quy, tùy thuộc vào kích thước của giải pháp chính, được chạy hàng ngày hoặc thậm chí hàng tuần, vì các thử nghiệm này đôi khi có thể mất hơn 24 giờ để thực hiện.

Những gì bạn phải làm với phương pháp này là cung cấp đẩy tự động từ repos cục bộ sang repo trung tâm khi chu trình CI cục bộ trôi qua, vì sợ các nhà phát triển của bạn dành thời gian khổng lồ để đẩy mã lên repos trung tâm.


7

Ngoài những gì @Vladimir_Stokic đã nói, trên một số nhóm (của tôi có ~ 150 nhà phát triển), chúng tôi xây dựng thường xuyên hơn mỗi 24 giờ. Bất cứ khi nào một cam kết xảy ra, chúng tôi bắt đầu một bộ đếm thời gian 5 phút. Sau khi hết 5 phút, tất cả các cam kết xảy ra trong khoảng thời gian 5 phút được kết hợp và xây dựng. Bản dựng thường là bản dựng tăng dần. Chúng tôi có một trình xây dựng riêng chạy các bài kiểm tra đơn vị cho mỗi bản dựng xảy ra. Sau khi quá trình xây dựng kết thúc, nếu có thêm bất kỳ cam kết nào trong quá trình xây dựng (mất từ ​​1 đến 45 phút tùy thuộc vào những gì đã thay đổi), mọi thay đổi đang chờ xử lý sẽ được tạo và tiếp tục. Chúng tôi cũng có một bản dựng hàng đêm (sạch sẽ, đầy đủ), nhưng các bản dựng xảy ra trên mỗi cam kết (đại khái) cho chúng tôi biết rất nhanh liệu có thử nghiệm nào thất bại hay không.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.