Câu hỏi này tiếp tục từ những gì tôi đã học được từ câu hỏi của tôi hôm qua có tiêu đề using git to distribute nightly builds.Sử dụng giao thức bittorrent để phân phối hàng đêm và CI tạo
Trong câu trả lời cho các câu hỏi trên, rõ ràng là git không phù hợp với nhu cầu của tôi và được khuyến khích kiểm tra lại bằng BitTorrent.
Version ngắn
Cần phân phối hàng đêm được xây dựng để 70+ người mỗi buổi sáng, muốn sử dụng gitBitTorrent để cân bằng việc chuyển tải.
dài Version
NB. Bạn có thể bỏ qua đoạn dưới đây nếu bạn đã đọc previous question của tôi.
Mỗi buổi sáng, chúng tôi cần phân phối bản dựng hàng đêm của mình cho studio của hơn 70 người (nghệ sĩ, người thử nghiệm, lập trình viên, sản xuất, v.v ...). Cho đến bây giờ, chúng tôi đã sao chép bản dựng lên máy chủ và đã viết chương trình đồng bộ hóa tìm nạp nó (sử dụng Robocopy bên dưới); thậm chí với việc thiết lập gương, tốc độ truyền không thể chấp nhận được với thời gian lên tới một giờ hoặc lâu hơn để đồng bộ vào thời gian cao điểm (thời gian ngoài giờ cao điểm là khoảng 15 phút), là điểm nghẽn phần cứng I/O và có thể là băng thông mạng.
Những gì tôi biết cho đến nay
Những gì tôi đã tìm thấy cho đến nay:
Tôi đã tìm thấy mục xuất sắc trên Wikipedia về BitTorrent protocol đó là một chi thú vị (tôi đã chỉ trước đây đã biết các thông tin cơ bản về về cách hoạt động của torrents). Cũng tìm thấy điều này StackOverflow answer trên trao đổi BITFIELD xảy ra sau khi bắt tay khách hàng-máy chủ.
Tôi cũng đã tìm thấy MonoTorrent C# Library (GitHub Source) mà tôi có thể sử dụng để viết trình theo dõi và khách hàng của riêng mình. Chúng tôi không thể sử dụng các trình theo dõi giá hoặc khách hàng (ví dụ: uTorrent).
Câu hỏi
Trong thiết kế ban đầu của tôi, tôi có xây dựng hệ thống của chúng tôi tạo ra một .torrent tập tin và thêm nó để theo dõi. Tôi sẽ siêu hạt giống torrent bằng cách sử dụng các bản sao hiện có của chúng tôi về bản dựng.
Sử dụng thiết kế này, tôi có cần phải tạo tệp .torrent mới cho mỗi bản dựng mới không? Nói cách khác, bạn có thể tạo một "cán" .torrent nếu nội dung của bản dựng chỉ thay đổi 20% là tất cả những gì cần được tải xuống mới nhận được?
... Thực ra.Khi viết câu hỏi trên, tôi nghĩ rằng tôi sẽ cần phải tạo tệp mới tuy nhiên Tôi có thể tải xuống cùng một vị trí trên máy người dùng và mã băm sẽ tự động tự động xác định những gì tôi đã có. Điều này có đúng không?
Đáp lại ý kiến
Đối với đồng bộ hóa hoàn toàn tươi toàn bộ xây dựng (bao gồm: các trò chơi, mã nguồn, dữ liệu cục bộ, và hình ảnh đĩa cho PS3 và X360) ~ 37.000 file và sắp tới trong chỉ dưới 50 GB. Điều này sẽ tăng lên khi sản xuất tiếp tục. Quá trình đồng bộ hóa này mất 29 phút để hoàn thành vào thời điểm khi chỉ có 2 đồng bộ khác xảy ra, mức thấp nhất nếu bạn cho rằng vào lúc 9 giờ sáng, chúng tôi sẽ có hơn 50 người muốn nhận thông tin mới nhất.
Chúng tôi đã điều tra I/O đĩa và băng thông mạng với bộ phận CNTT; kết luận là lưu trữ mạng đã được bão hòa. Chúng tôi cũng đang ghi số liệu thống kê vào cơ sở dữ liệu đồng bộ, những bản ghi này hiển thị ngay cả với số ít người dùng chúng tôi đang nhận được tỷ lệ chuyển không được chấp nhận.
Về vấn đề không sử dụng khách hàng off-the-shelf, đó là một mối quan tâm quy phạm pháp luật với việc có một ứng dụng như uTorrent được cài đặt trên máy người dùng cho rằng các mặt hàng khác có thể dễ dàng tải về sử dụng chương trình đó. Chúng tôi cũng muốn có quy trình làm việc tùy chỉnh để xác định bản dựng nào bạn muốn nhận (ví dụ: chỉ PS3 hoặc X360 tùy thuộc vào DEVKIT bạn có trên bàn làm việc của bạn) và có thông báo về các bản dựng mới. Việc tạo ứng dụng khách bằng MonoTorrent không phải là phần mà tôi quan tâm.
Kích thước tệp bạn phân phối là bao nhiêu? Bạn đã thử nén tốt chưa? Bạn cũng có thể sử dụng công cụ khác biệt nhị phân so với phiên bản trước, bản vá sẽ đủ cho hầu hết mọi người (những người khác sẽ tải xuống gói đầy đủ). – Guillaume
Bạn có chắc chắn rằng việc thay đổi giao thức/công cụ sẽ khắc phục được sự cố không? Bạn đã thực hiện bất kỳ toán học thực sự về những gì bạn đang cố gắng để phân phối trên mạng của bạn so với phần cứng của bạn, băng thông mạng, vv ... Đối với exampel, bạn đã kiểm tra bộ đệm hệ thống tập tin hệ thống (cf: http: //blogs.technet. com/b/askperf/archive/2007/05/08/slow-large-file-copy-issues.aspx)? –
Tôi thực sự không thể hiểu tại sao bạn không thể sử dụng hết các ứng dụng khách hàng, bạn có đang chạy trình duyệt web trong nhà và trình xử lý văn bản không? – grapefrukt