2015-05-15 18 views
6

Tôi đã tạo một dịch vụ đám mây hoàn toàn mới với vai trò công nhân duy nhất sử dụng Azure .NET SDK 2.6. RoleEntryPoint là khá nhiều trống rỗng.Tại sao triển khai Azure từ Visual Studio mất quá nhiều thời gian?

Lần đầu tiên mất một thời gian do tạo VM. Kỳ vọng của tôi là nỗ lực xuất bản sau sẽ nhanh hơn nhiều. Hóa ra phải mất ít nhất ~ 5 phút. Kiểm tra nhật ký hoạt động triển khai trong VS Tôi thấy:

20:17:06 - Checking for Remote Desktop certificate... 
20:17:07 - Applying Diagnostics extension. 
20:17:29 - Preparing deployment for AzureCloudService2 - 15/05/2015 20:17:03... 
20:17:29 - Connecting... 
20:17:29 - Verifying storage account ... 
20:17:30 - Uploading Package... 
20:17:51 - Updating... 
20:19:59 - Instance 0 of role WorkerRole1 is ready 
20:20:00 - Starting... 
20:20:19 - Initializing... 
20:20:19 - Created web app URL: ... 
20:20:19 - Complete. 

Tại sao phải mất 2 phút để cập nhật ứng dụng này? Có cách nào để tăng tốc độ này không?

+1

Tại sao một người nào đó lại bỏ phiếu cho câu hỏi này? Vòng phản hồi chậm đến mức có thể ảnh hưởng đến hiệu suất của nhà phát triển. – Gatis

+0

Tôi muốn triển khai của mình chỉ mất 5 phút! Bạn không biết cuộc đấu tranh ... – Sav

+0

Sav Có lẽ bạn muốn upvote câu hỏi này và làm cho nó hấp dẫn hơn cho Azure folks? – Gatis

Trả lời

5

2-4 phút để cập nhật việc triển khai Azure không phải là trận đấu xem xét rằng:

  1. Nó bao gồm tải lên gói
  2. Các gói phần mềm được sao chép một vài lần trong nội bộ cho đến khi nó đạt đến dụ bạn
  3. Chúng tôi gắn kết hiệu quả gói này dưới dạng một đĩa khác vào máy
  4. Xác minh rằng mọi thứ đều ổn định
  5. Chuyển ứng dụng của bạn để chạy từ đĩa được gắn mới (có nghĩa là stoppi ng cũ, bắt đầu cái mới)
  6. gỡ bỏ đĩa cũ có chứa các gói cũ
  7. Thông báo cho rằng mọi thứ đều ok

Và đây là một sự đơn giản hóa những gì đang thực sự xảy ra. Tất cả những điều đó đang diễn ra không đồng bộ và nếu mất khoảng 15-20 giây cho mỗi mục, bạn sẽ thấy điểm của tôi ở đây.

Có một số điều bạn có thể làm nếu bạn muốn triển khai nhanh hơn:

  1. Hãy kích thước của gói nhỏ hơn trong trường hợp bạn có các tập tin lớn trong đó. Bạn nên tải xuống các phụ thuộc lớn của mình từ bộ nhớ trong khi khởi động, so với việc gói chúng trong gói
  2. Nếu đó là WebRole và bạn muốn kiểm tra bản cập nhật nhanh, bạn có thể bật WebDeploy như một phần của triển khai và sau đó thực hiện "Xuất bản" bình thường. . "luồng công việc từ trong VS. Nó chỉ là một hộp kiểm khi bạn xuất bản gói của bạn từ VS. Phải mất vài giây để cập nhật các tệp sau đó. Tuy nhiên, hãy lưu ý rằng đối với những thay đổi bạn muốn tồn tại, bạn để cập nhật gói đám mây bằng cách thực hiện đầy đủ triển khai lại, nếu không, nếu phiên bản được chụp lại, bạn sẽ mất các thay đổi bạn đã thực hiện. Điều này về cơ bản chỉ dành cho sự phát triển.
  3. Nếu đó là WorkerRole, bạn có thể chia tải của bạn thành các quy trình (đơn giản .exe) để tải xuống EntryPoint của WorkerRole từ lưu trữ, giải nén và thực thi. Nếu bạn có phiên bản mới hơn, bạn chỉ cần tải gói mới lên bộ nhớ. Workerrole của bạn chỉ cần theo dõi lưu trữ cho các phiên bản mới hơn của gói và sau đó tải xuống, giải nén và chạy tệp .exe mới sau khi xóa tệp cũ.

Hy vọng điều đó sẽ hữu ích.

+0

Ứng dụng của tôi là một thế giới hello. Không có gì để được loại bỏ. Phải mất 21 giây để được tải lên.Bước dài nhất là "cập nhật", tổng cộng là 2:08. Tôi tự hỏi liệu nó có thể được tối ưu hóa hay không. – Gatis

+0

Âm thanh như tải lên chỉ bắt đầu sau khi một số kiểm tra, rõ ràng suboptimal – Gatis

+1

Nếu chúng xảy ra không đồng bộ (giả sử bạn có nghĩa là song song), chúng sẽ không còn là tác vụ dài nhất duy nhất. – Gatis

Các vấn đề liên quan