มีวิธีในการเพิ่มความเร็วของ AWS CodeDeploy หรือไม่


15

ฉันใช้ AWS CodeDeploy ในการปรับใช้ไซต์ของฉันและฉันสังเกตเห็นว่าความเร็วไม่สอดคล้องกันมาก บางครั้งมันก็ค่อนข้างเร็ว แต่บางครั้งการติดตั้งแต่ละขั้นตอนอาจใช้เวลาไม่กี่นาที สิ่งนี้ค่อนข้างน่ารำคาญเมื่อการปรับใช้ควรดำเนินการอย่างรวดเร็วในกรณีที่มีข้อบกพร่องหรือเกิดการขัดข้อง

ฉันไม่สามารถหาเอกสารใด ๆ เกี่ยวกับความเร็วของ CodeDeploy ได้และฉันก็ไม่สามารถหาตรรกะใด ๆ ได้เมื่อมันช้าหรือเร็ว มีวิธีใดบ้างที่จะเร่งความเร็วและมีวิธีใดที่จะทราบว่าใช้เวลานานเท่าใด

คำตอบ:


10

CodeDeploy ใช้ค่าเริ่มต้นเพียงเล็กน้อย - โดยจะคว้ารหัสจาก S3 หรือ Github จากนั้นเรียกใช้สคริปต์ของคุณตามappspec.ymlคำแนะนำของไฟล์

หากการปรับใช้ของคุณกำลังคว้าข้อมูลกิกะไบต์จาก S3 คุณจะพบว่าต้องใช้เวลาพอสมควรในการถ่ายโอนข้อมูล (โดยเฉพาะอย่างยิ่งในกรณี EC2 ขนาดเล็กที่มีแบนด์วิดท์ จำกัด ) แต่นอกเหนือจากความล่าช้าในการปรับใช้นั้นมีแนวโน้มมากขึ้น กำลังดำเนินการกับสคริปต์การปรับใช้ของคุณ

ขั้นตอนในการปรับใช้ CodeDeploy คือ:

  • ApplicationStop - คุณควบคุมเบ็ดนี้
  • DownloadBundle - CodeDeploy คว้ารหัสจาก S3 / Github
  • BeforeInstall - คุณควบคุมเบ็ดนี้
  • ติดตั้ง - CodeDeploy คัดลอกรหัสจากตำแหน่งชั่วคราวไปยังปลายทางสุดท้าย
  • AfterInstall - คุณควบคุมเบ็ดนี้
  • ApplicationStart - คุณควบคุมเบ็ดนี้
  • ValidateService - คุณควบคุมเบ็ดนี้

ตัวหนาขึ้นอยู่กับ CodeDeploy ส่วนอีกตัวขึ้นอยู่กับคุณ หากคุณเห็นความล่าช้าที่แตกต่างกันในตัวหนาให้ติดต่อฝ่ายสนับสนุน AWS แต่คุณมีโอกาสที่จะตรวจสอบตะขอของคุณ


ใช่สคริปต์ของฉันง่ายและรวดเร็ว เป็นขั้นตอนดาวน์โหลดมัดซึ่งมักใช้เวลาในการรันนานหลายนาทีและโครงการของฉันก็ไม่ใหญ่มากนัก เพียงแค่ใช้เวลาไม่กี่วินาที ฉันไม่มีแผนสนับสนุน dev และฉันไม่เต็มใจที่จะจ่ายเพื่อสิ่งนี้ดังนั้นฉันจะปล่อยให้มันเป็นตอนนี้
Jasper Kennis

ตรวจสอบอีกครั้งปัญหาต้องเป็นแบนด์วิดท์ เราใช้ประเภทอินสแตนซ์ขนาดเล็กสำหรับเซิร์ฟเวอร์การแสดงละครของเราและใหญ่กว่าหนึ่งครั้งสำหรับการผลิตและการแสดงละครที่ช้าอยู่เสมอ
Jasper Kennis

@JasperKennis Yeah ประเภทของอินสแตนซ์ขนาดเล็กสามารถ จำกัด แบนด์วิดท์ได้ค่อนข้างมากโดยเฉพาะถ้าคุณอยู่ในโฮสต์ที่มีเพื่อนบ้านที่มีเสียงดัง นั่นจะทำให้รู้สึก
ceejayoz

21

BlockTraffic และ AllowTraffic

เพียงปรับการตั้งค่าการตรวจสุขภาพของกลุ่มเป้าหมายของคุณสามารถโกนหนวดได้สองสามนาที

ก่อน

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่

หลังจาก

ป้อนคำอธิบายรูปภาพที่นี่ ป้อนคำอธิบายรูปภาพที่นี่

คำอธิบาย

งานนี้เพราะBlockTrafficและAllowTrafficการรอคอยทั้งสำหรับการตรวจสุขภาพที่ประสบความสำเร็จ ช่วงเวลาตรวจสุขภาพเริ่มต้นคือ 1 ตรวจสอบทุก ๆ 30 วินาทีและการตรวจสุขภาพที่ประสบความสำเร็จต้องการ 5 การตอบสนองต่อ 200 ดังนั้นจึงใช้เวลามากกว่า 2 นาที 30 วินาทีโดยค่าเริ่มต้น และนั่นก็คือทุกอินสแตนซ์ EC2 การลดช่วงเวลาตรวจสอบสุขภาพและ จำกัด จำนวนการตรวจสอบที่ประสบความสำเร็จที่จำเป็นจะช่วยเพิ่มเวลาในการปรับใช้


Script at specified location: ... failed to complete in 5 secondsหลังจากการเปลี่ยนแปลงนี้ฉันได้รับ (มันตั้งอยู่ใน appspec.yml-> hooks: -> BeforeInstall :) (โปรดบอกฉันทีว่าทำไม)
Yevgeniy Afanasyev

มีการหมดเวลาในการกำหนดค่า BeforeInstall หรือไม่ docs.aws.amazon.com/codedeploy/latest/userguide/…
Peter Tao

ขอบคุณตอนนี้ฉันเห็นว่ามันไม่เกี่ยวข้อง แต่เป็นเรื่องบังเอิญ
Yevgeniy Afanasyev

2

การตั้งค่าอื่นเพื่อตรวจสอบคือ "การยกเลิกการลงทะเบียนล่าช้า" ของกลุ่มเป้าหมาย การตั้งค่าการตรวจสุขภาพของฉันต่ำแล้วและนี่เป็นปัญหาคอขวด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.