Soru Neden insanlar sadece CloudInit kullanmak yerine Kukla / Şefi Amazon Bulut Oluşumu ile kullanıyor?


"Önceden pişirilmemiş" olmayan AMI EC2 örneklerini kullanmayı planlıyoruz. Yani döndüklerinde, AWS linux'un çıplak yüklemeleridir. Bootstrap işlemimiz, örneğin, python, tomcat. En az 3, en fazla 8 tane olacak.

Bu gereklilikler göz önünde bulundurulduğunda, Kukla / Şef'i Amazon Bulut Formasyonu (CloudInit) kullanmaktan ziyade yararlı olabilir mi?

Gördüğüm en iyi şey, eğer Puppet'i kullansaydık, o zaman bir senaryo karşısında neler olup bittiğini görmek için denetlemek daha kolay olan bildirimsel programlamaya sahip olurduk. Ayrıca CloudInit, içerebildiğimiz veya yayınlayamayacağımız bir 16k kod boyutu sınırına sahiptir.

CloudInit'ten Kukla veya Şef'e kimsenin bu soruya cevap verebilmeleri için belirli bir nedenden ötürü taşındığı oldu mu?


76
2017-08-16 20:55


Menşei


Bazı insanlar (benim gibi), CloudFormation ile basit kullanıcı veri komut dosyalarını (cloud-init tarafından desteklenen) kullanır. Daha uzun betikler S3'ten indirilebilir ve ilk kullanıcı-veri betiği tarafından çalıştırılabilir. - Eric Hammond
bulut-init agnostiktir ve çoklu bulut sağlayıcıları bunu kullanır. AWS, google bulut platformu ve Microsoft Azure üzerinde çalışabilir. (cloud-init.io), AWS :: CloudFormation :: Init agnostik değildir. Bu özel bir şey. - Jordan Stewart


Cevaplar:


CloudInit üzerinde bir avantaj var mı? Evet, kesinlikle, çoğu!

Tabii ki, bir sunucu oluşturmak için CloudInit komut dosyalarını bir kez alttan çalıştırabilirsiniz. Ancak bir yapılandırma dosyasını değiştirmeniz, bir kullanıcı eklemeniz, bir paketi güncellemeniz veya yeni bir paket yüklemeniz gerektiğinde ne olur? Sunuculara girmeyi veya komut dosyalarını yazmayı ve kaçınılmaz olarak sunucuların tutarsız bir halini sonlandıracaksınız.

CloudInit, yapılandırma yönetimi değildir. Konfigürasyon yönetimi yazılımı kullanmaya başlamayı tercih ederseniz, sadece bir görev için bulut init kullanın: Kukla / Aşçı / diğer aracıyı önyüklemek için.

Kukla, sadece yükleme paketlerini otomatikleştirmenize, ssh anahtarlarını ayarlamanıza veya Tomcat yığınınızı ayarlamanıza yardımcı olmaz. Bir şeylerin durumunu sağlar. Bir geliştirici 3 am'da bir Java uygulamasında sorun gidermeye ve Tomcat yapılandırmanızı değiştirdiğinde, Kukla onu değiştirir. Python sürümünü tüm düğüm grupları için hızlı bir şekilde değiştirebilir ve eğer birisi farklı bir sürüm yüklerse, Kukla onu değiştirecektir.

Uygulama yığınınız değiştiğinde ve RabbitMQ veya Jetty veya yeni bir RDBMS kullanmaya başladığınızda, değişiklikleri onlardan veya binlerce sunucudan kolayca test edebilir ve dağıtabilirsiniz.

Arka uç raporlama, denetim ve güvenlik uyumluluğu gibi yapılandırma yönetimi yazılımlarını kullanmanın birçok başka nedeni vardır.


75
2017-08-17 00:50



Değişir. Uzun süreli servisler için (genellikle AD, DB'ler), yapılandırma yönetimi gerekebilir. Ama diğer değiştirilebilir sunuculara atmak, gerçekten değil; ASG altında yönetilen web sunucuları, hadoop veya elasticsearch'te küme düğümleri. Yapılandırmayı değiştirirsem, sunucuyu fırlatıp yeni bir tane önyükleme yapardım. - Sleeper Smith


Konfigürasyon yönetiminin tamamı, makinelerin öngörülebilir ve tutarlı bir şekilde eğrilmesidir. CloudFormation ve cloudinit tamamen AWS ile sınırlı olduğunuzda harikadır (CloudFormation şablonlarının hata ayıklaması olmasına rağmen sefil tecrübe), ancak hem veri merkezi kaynaklarını hem de AWS'yi veya yerel test ortamlarını veya geliştirme makinelerini kullanan uygulamalar nedir?

Tamamen AWS'de mevcut olsaydınız, sanırım cloudinit'le ve başka hiçbir şeyle kaçabileceğinizi sanıyorum, ancak herhangi bir ölçekte uygulama için gerçekçi olduğuna ikna olmadım (örneğin Netflix, yazdıkları OSS teknolojilerini kullanarak AMI'lerini önceden pişiriyor) ve dünyaya bırakıldı bu video detaylar için). Yüksek oranda kullanılabilen uygulamalar, VPC'leri temel alan trans-bölgesel, VPN'ler arasında veri merkezlerine yedekleme yapma eğilimindedir ve bu, demo, aşamalandırma, test etme veya geliştirme ortamlarına bile dokunmaz. Temel hazırlık makineleri ile ücretlendirilen biri olarak son Yapmak istediğim şeyler işi tekrarlamak veya birden fazla provizyon metoduyla hata ayıklamaktır.

Bu nedenle Şef veya Kukla. Veri merkezim için olduğu gibi AWS için de çalışıyorlar ve aynı zamanda geliştirme makinem için de çalışıyorlar. serseri Demo ortamlarda yaptıkları gibi bazen ara sıra ihtiyacım var. Cloudinit'ten şef ya da Kukla'yı hem cloudinit hem de Chef ya da Puppet'i sürdürmekten daha çok isterdim.


61
2017-08-17 12:08



@ U0001: video bağlantısı düzeltildi - Christopher


Sunucuları çöpe atmak için, otomatik ölçeklendirme grubunun arkasında koşarak şunu söyleyeyim, Cloudinit muhtemelen yeterlidir. linux kabuk betikleri veya windows powershell betikleri hile yapmalıdır.

Eğer yönetmeyi planladığınız uzun süredir çalışan bir sunucu belki de şef, kukla veya docker size kabul edilen cevapta belirtildiği gibi bir avantaj sağlayabilir. Onları kullandıktan sonra avantajı göremiyorsanız, muhtemelen alete ihtiyacınız yoktur.


5
2018-02-04 20:09



Tamamen katılıyorum. Kukla ve Şef karmaşıktır ve eğer bir sunucuyu silip yeni bir tane çıkartarak değiştirebilirseniz - o zaman onları kullanmayı cesaretlendiririm. Bazı senaryolar vardır kukla / şef harika ama her senaryoda kullanmaktan kaynaklanan karmaşıklığı arttırmanız gerekiyor. - bobmarksie


Tecrübemde, AWS'nin sağladığı kutudan çıkmış GUI araçlarıyla kolayca yapılabilecek basit şeyler var, ancak daha karmaşık şeylere girdiğinizde, sadece ne yapabileceğinizle ilgili sınırlamalar olduğunu anlamaya başlıyorsunuz. onların araçları.

Bu noktada ya durabilir ya da daha karmaşık hedeflere ulaşmanın yanı sıra daha basit şeyleri gerçekleştirmenize yardımcı olabilecek başka araçlar (Şef veya Kukla gibi) bulabilirsiniz.

Senin seçimin.


0
2018-04-22 22:45