สภาพแวดล้อม: AWS
ระบบปฏิบัติการ: GoldenImage-amazonLinuxV2-2021-01-04_19.43.07
งินซ์: 1.20.0
PHP-FPM: 7.3.33
หนวดปลาหมึกยักษ์: 6.1.1351
วิธีการแบบเก่า
ดังนั้นเราจึงใช้สคริปต์พุชอย่างง่ายเพื่อปรับใช้ไซต์ PHP กับอินสแตนซ์ AWS EC2 14 รายการ สคริปต์นี้เชื่อมต่อกับแต่ละเซิร์ฟเวอร์ผ่าน SSH และเรียกใช้ git pull ใน /mnt/web/public_html หลังจากอัปเดตโค้ดแล้ว การใช้งาน CPU จะคงที่ประมาณ 20-60%
วิธีการใหม่
เรากำลังพยายามเปลี่ยนไปใช้ Octopus สำหรับการปรับใช้เนื่องจากมีประสิทธิภาพมากกว่าปัญหาที่เรากำลังพบคือ ทันทีที่โค้ดถูกนำไปใช้กับเซิร์ฟเวอร์ การใช้งาน CPU จะพุ่งสูงขึ้นถึง 90-100% สิ่งนี้ทำให้เวลาตอบสนองพุ่งสูงขึ้นและทำให้ไซต์โยน 502 วินาที เราปล่อยให้มันทำงานประมาณ 2 ชั่วโมงต่อครั้งด้วยซ้ำ และมันก็ไม่มีทีท่าว่าจะลดลงเลย
กราฟการใช้งาน CPU
สคริปต์ก่อนการปรับใช้:
ถ้า [ "$(get_octopusvariable "Octopus.Tentacle.CurrentDeployment.TargetedRoles")" = "เว็บเซิร์ฟเวอร์" ]; แล้ว
nginx -s หยุด;
sudo systemctl หยุด php-fpm;
ไฟ
สคริปต์หลังการปรับใช้:
chown -R ec2-user:ec2-user $(get_octopusvariable "Octopus.Action.Package.CustomInstallationDirectory");
ถ้า [ "$(get_octopusvariable "Octopus.Tentacle.CurrentDeployment.TargetedRoles")" = "เว็บเซิร์ฟเวอร์" ]; แล้ว
sudo systemctl เริ่ม nginx;
sudo systemctl เริ่ม php-fpm;
sudo systemctl สถานะ -l nginx;
ไฟ
สิ่งหนึ่งที่เราพยายามคือปิดใช้งานการบีบอัด Octopus delta โดยใช้คำแนะนำที่นี่
https://octopus.com/docs/deployments/packages/delta-compression-for-package-transfers
เรายังพยายามปิดใช้งานตัวเลือกการล้างข้อมูลที่นี่:
ไดเร็กทอรีการติดตั้ง Octopus
เราเปรียบเทียบการอนุญาตไฟล์ก่อนและหลังเช่นกัน ดูเหมือนว่าใช้วิธีเก่า git ตั้งค่าโฟลเดอร์เป็น 775 และไฟล์เป็น 664 Octopus ตั้งค่าโฟลเดอร์เป็น 755 และไฟล์เป็น 644
ความคิดใด ๆ ที่จะได้รับการชื่นชม