Có cách nào để tăng tốc AWS CodeDeploy không


15

Tôi đang sử dụng AWS CodeDeploy để triển khai các trang web của mình và tôi nhận thấy tốc độ không nhất quán lắm; đôi khi nó khá nhanh, nhưng những lần khác, mỗi bước triển khai có thể mất vài phút. Điều này khá khó chịu khi việc triển khai nên được thực hiện nhanh chóng, trong trường hợp có lỗi hoặc mất điện.

Mặc dù vậy, tôi không thể tìm thấy bất kỳ tài liệu nào về tốc độ của CodeDeploy và dường như tôi không thể tìm thấy bất kỳ logic nào khi nó chậm hoặc khi nó nhanh. Có cách nào để tăng tốc nó không và có cách nào để biết những gì mất quá nhiều thời gian không?

Câu trả lời:


10

CodeDeploy làm rất ít theo mặc định - nó lấy mã từ S3 hoặc Github, sau đó chạy các tập lệnh của bạn theo appspec.ymlhướng dẫn của tệp.

Nếu các triển khai của bạn đang lấy hàng gigabyte dữ liệu từ S3, bạn sẽ thấy mất một chút thời gian để truyền dữ liệu (đặc biệt là trong các trường hợp EC2 nhỏ hơn với băng thông hạn chế), nhưng khác với sự chậm trễ triển khai có nhiều khả năng là do bạn Đang làm trong các kịch bản triển khai của bạn.

Các bước trong triển khai CodeDeploy là:

  • ApplicationStop - bạn điều khiển cái móc này
  • DownloadBundle - CodeDeploy lấy mã từ S3 / Github
  • BeforeInstall - bạn điều khiển cái móc này
  • Cài đặt - CodeDeploy sao chép mã từ vị trí tạm thời đến đích cuối cùng
  • AfterInstall - bạn điều khiển cái móc này
  • ApplicationStart - bạn điều khiển cái móc này
  • ValidateService - bạn kiểm soát hook này

Những cái được in đậm tùy thuộc vào CodeDeploy, những cái khác tùy thuộc vào bạn. Nếu bạn thấy sự chậm trễ khác nhau ở những người được in đậm, hãy liên hệ với bộ phận hỗ trợ của AWS, nhưng nếu không thì rất có thể bạn cần điều tra các móc của mình.


Vâng, kịch bản của riêng tôi rất đơn giản và nhanh chóng. Đó là bước Gói tải xuống thường mất vài phút để chạy và dự án của tôi không lớn; cũng như thường chỉ mất vài giây. Tôi không có kế hoạch hỗ trợ dành cho nhà phát triển và tôi không sẵn sàng trả tiền cho việc này, vì vậy tôi sẽ để nó ngay bây giờ.
Jasper Kennis

Kiểm tra lại, vấn đề phải là băng thông; chúng tôi đang sử dụng một loại ví dụ nhỏ cho máy chủ dàn của chúng tôi và lớn hơn một lần để sản xuất và nó luôn luôn dàn dựng chậm.
Jasper Kennis 17/2/2016

@JasperKennis Vâng, các loại thể hiện nhỏ hơn có thể bị giới hạn băng thông khá nhiều, đặc biệt nếu bạn đang ở trên máy chủ có hàng xóm ồn ào. Điều đó có ý nghĩa.
ceejayoz

21

BlockTraffic và AllowTraffic

Chỉ cần điều chỉnh cài đặt kiểm tra sức khỏe của nhóm mục tiêu của bạn có thể tắt một vài phút.

Trước

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Sau

nhập mô tả hình ảnh ở đây nhập mô tả hình ảnh ở đây

Giải trình

Điều này hoạt động vì BlockTrafficAllowTrafficcả hai chờ kiểm tra sức khỏe thành công. Khoảng thời gian kiểm tra sức khỏe mặc định là 1 kiểm tra cứ sau 30 giây và kiểm tra sức khỏe thành công cần 5 phản hồi liên tiếp. Do đó, phải mất hơn 2 phút 30 giây theo mặc định. Và đó là cho mọi trường hợp EC2. Giảm khoảng thời gian kiểm tra sức khỏe và giới hạn số lần kiểm tra thành công cần thiết sẽ cải thiện thời gian triển khai.


Sau khi thực hiện thay đổi này, tôi nhận được Script at specified location: ... failed to complete in 5 seconds. (nó được đặt trong appspec.yml-> hook: -> BeforeInstall :) (vui lòng cho tôi biết lý do)
Yevgeniy Afanasyev

Có thời gian chờ nào được đặt trong cấu hình BeforeInstall không? docs.aws.amazon.com/codingeploy/latest/userguide/ từ
Peter Tao

Cảm ơn bạn, bây giờ tôi thấy nó không liên quan, mà là một sự trùng hợp.
Yevgeniy Afanasyev

2

Một cài đặt khác để kiểm tra là "Độ trễ hủy đăng ký" của Nhóm mục tiêu. Cài đặt kiểm tra sức khỏe của tôi đã ở mức thấp và đây là nút cổ chai trong trường hợp của tôi.

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.