AWS CodeDeploy'u hızlandırmanın bir yolu var mı


15

Sitelerimi dağıtmak için AWS CodeDeploy kullanıyorum ve hızda çok tutarlı olmadığını fark ettim; bazen oldukça hızlıdır, ancak diğer zamanlarda bir dağıtımın her adımı birkaç dakika sürebilir. Hataların veya kesintilerin olması durumunda, hızlı bir dağıtım yapılması gerektiğinde bu oldukça can sıkıcı bir durumdur.

Yine de CodeDeploy hızı hakkında herhangi bir belge bulamıyorum ve ayrıca yavaş olduğunda veya hızlı olduğunda herhangi bir mantık bulamıyorum. Hızlandırmanın bir yolu var mı ve bu kadar uzun sürenin ne olduğunu bilmenin bir yolu var mı?

Yanıtlar:


10

CodeDeploy varsayılan olarak çok az yapar - S3 veya Github kodu yakalar, o zaman çalışır senin başına komut appspec.ymldosyanın talimatlar.

Dağıtımlarınız S3'ten gigabayt veri alıyorsa, bunun veri aktarımı için biraz zaman aldığını (özellikle sınırlı bant genişliğine sahip daha küçük EC2 bulut sunucularında), ancak bunun dışında dağıtım gecikmelerinin ne olursa olsun daha olası olduğunu göreceksiniz. dağıtım komut dosyalarınızda.

CodeDeploy dağıtımındaki adımlar şunlardır:

  • ApplicationStop - bu kancayı kontrol edersiniz
  • DownloadBundle - CodeDeploy kodu S3 / Github'dan alıyor
  • BeforeInstall - bu kancayı kontrol edersiniz
  • Yükle - CodeDeploy kodu geçici bir konumdan son hedefe kopyalar
  • AfterInstall - bu kancayı kontrol edersiniz
  • ApplicationStart - bu kancayı kontrol edersiniz
  • ValidateService - bu kancayı kontrol edersiniz

Cesur olanlar CodeDeploy'a, diğerleri size kalmış. Cesur olanlarda farklı gecikmeler görüyorsanız AWS desteğine başvurun, ancak aksi takdirde kancalarınızı araştırmanız gerekir.


Evet, kendi senaryolarım basit ve hızlı. İndirme paketi adımı, çalışması genellikle birkaç dakika alır ve projem o kadar büyük değil; sadece saniyeler alır. Tho için dev destek planım yok ve bunun için para ödemeye hazır değilim, bu yüzden şimdilik izin vereceğim.
Jasper Kennis

Tekrar kontrol ettim, sorun bant genişliği olmalı; hazırlama sunucumuz için küçük bir örnek türü ve üretim için bir kez daha büyük kullanıyoruz ve bu her zaman yavaş olan bir aşama.
Jasper Kennis

@JasperKennis Evet, özellikle gürültülü komşuları olan bir ana bilgisayardaysanız, daha küçük bulut sunucusu tipleri bant genişliği ile sınırlı olabilir. Bu mantıklı olurdu.
ceejayoz

21

BlockTraffic ve AllowTraffic

Hedef grubunuzun sağlık kontrolü ayarlarını yapmanız birkaç dakika sürebilir.

Önce

resim açıklamasını buraya girin resim açıklamasını buraya girin

Sonra

resim açıklamasını buraya girin resim açıklamasını buraya girin

açıklama

Bu işe yarar BlockTrafficve AllowTrafficher ikisi de başarılı sağlık kontrolleri için bekler. Varsayılan sağlık kontrolü aralığı her 30 saniyede 1 kontroldür ve başarılı bir sağlık kontrolü 5 ardışık 200 yanıt gerektirir. Bu nedenle, varsayılan olarak 2 dakika 30 saniyeden fazla sürer. Ve bu her EC2 örneği için. Sağlık kontrolü aralığını azaltmak ve gereken başarılı kontrol sayısını sınırlamak konuşlandırma süresini iyileştirir.


Bu değişikliği yaptıktan sonra alıyorum Script at specified location: ... failed to complete in 5 seconds. (appspec.yml-> kancalarda ayarlanır: -> BeforeInstall :) (lütfen bana nedenini söyle)
Yevgeniy Afanasyev

BeforeInstall yapılandırmasında ayarlanmış bir zaman aşımı var mı? docs.aws.amazon.com/codedeploy/latest/userguide/…
Peter Tao

Teşekkür ederim, şimdi bunun ilgili değil, bir tesadüf olduğunu görüyorum.
Yevgeniy Afanasyev

2

Kontrol edilecek diğer bir ayar Hedef Grubun "Kayıt Silme Gecikmesi" dir. Sağlık kontrol ayarlarım zaten düşüktü ve bu benim durumumdaki darboğazdı.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.