Bir geliştirici arka planından gelmek, aslında bir "ahmak" haline geleceğini daha zor hale getireceğini düşünüyorum, sorunuz neredeyse 3 yaşında, bu nedenle yolculuğu nasıl bulduğunuzu duymak ilginç olacak, bakış açısıyla bir cevap vereceğim. yukarıda bahsettiğiniz uygulamalar hakkında sys admin ve umarım biraz ışık tutacaktır veya bir kişinin (admin veya dev) tam olarak ne istediğinizi düşünerek başlayacağını açıklamak için bir yol gösterecek olan teknik bir bakış açısı verecektir. perspektif x, y, z arasındaki ilişki nedir? Bu araçlar parçalarının toplamından daha mı büyük?
Aslında sys yöneticilerinin burada üstünlükleri olduğunu düşünüyorum, sorunuzda bahsettiğiniz uygulamaların çoğu yönetici 'problemlerini' çözüyor ve bunu yaparken daha soyut bir veri merkezi ortamı sağlıyor ve bu da geliştiriciler ve yeniler için daha programlanabilir. devops 'stratejisi (okuma strateji / takım, devops bir insan değildir). Peki bahsettiğiniz uygulamalarla ilişki nedir? Bu BT servisine bütünsel bir yaklaşım nasıl sağlar?
OpenStack: Kendi özel bulutunuzu yaratmanıza izin veren, dolayısıyla AWS gibi bir şeyle karşılaştırılabilir bir araç
İşte bu, ama ne işe yarıyor? - en uygun olarak adlandırılan işletim sistemi DOS'du - BIOS'u çıkartarak diskinizi çalıştırdı, OpenStack veri merkezinizi çalıştırıyor ve altyapınızı soyutlıyor (IaaS - veri merkezi işletim sistemi için Jargon'dur). Şimdi veri merkezi bir API, bir komut sözdizimi ve bir GUI, openstack hiper yöneticiler, switch, router, güvenlik duvarları, depolama alanı ağları, yük dengeleyici, liman işçisi ana vb sürebilirsin vardır .. openstack donanım 'eklentisi' üretmektedir kullanan veya belirli bir işlevi yazılım tanımlanan yazılımda sadece var olabilir şeyveya ağ işlevi sanallaştırma. Bunun yanı sıra OpenStack ve diğer tüm bulutlar, orkestrasyon motoruna attığınız komutları okuyarak veya kurallara göre tetiklenerek (ölçek büyütme, ölçek küçültme vb.) Kendi altyapılarını düzenleyebilir. Yani openstack dev bir soyutlama katmanıdır, örneğin ne anahtarım olduğunu umursamıyorum, bu komutla bana bir ağ ver ya da karmaşık bir yük dengeli, HA, halka açık, otomatik ölçeklendirme, kayıtlı alan adı, depolama ekli şey - internette bulduğum bu komut ile.
Docker: Bir Linux çekirdeği konseptine dayanan, örneğin paylaşılan bir web barındırma ortamında, yalıtımlı süreçleri çalıştırmak için kullanılabilecek bir "hafif VM".
Docker başka bir soyutlama katmanıdır ve bulut gibi yıkıcı bir teknolojidir, endüstriyi değiştirmektedir, çünkü yazılım bağımlılıkları, yükseltmeler, veri yalıtımı ve saf taşınabilirlik gibi birçok operasyonel 'problemi' çözmektedir. Java, geliştiricilerin düşünmek zorunda olmadıkları kaynak kod taşınabilirliği nedeniyle popüler oldu, çalışan bir JVM, java destekli olduğu sürece kodlarının kahve makinesinde çalışması gerektiği anlamına geliyordu. Docker benzer bir sorunu çözer, benim Uygulamasını çalıştırmak için size bir liman işçisi host gerekir değil, python'un bu sürümüne, bu çekirdeğe, bu linux dağıtımına vb. ihtiyaç duyduğunuzda, uygulama hala elbette bu bağımlılıklara sahiptir, ancak altta yatan ana bilgisayar umursamıyor ve yönetici izole edilmiş bir kap içinde ne yaptığınızı umursamıyor ( Bir noktaya). Docker, hem geliştirme hem de işlem paradigmasını değiştiriyor, işletim sisteminin tamamını ve bir ikili gibi hizmetlerini ele alıyor. Onları bir havuzdan alabilir , sürümlerini değiştirebilir, değiştirebilir, parametrelerle çalıştırabiliriz.
Chef: Bir işletim sistemini kurmak ve yapılandırmak için bir araç, örneğin bir VM içinde.
Evet ve ilk ikisi kadar rahatsız edici değil, Şef, kukla, sorumlu, tuz, sistem merkezi operasyon yöneticisi ve bu alandaki diğer uygulamaların büyük bir bolluğu, geliştiricilerin ve yöneticilerin dağıtımları, yükseltmeleri ve diğer eylemleri modellemesini sağlar (config değişiklikler), bulut için olduğu gibi bu çabalara bakmak konusunda herhangi bir standart yapısı bulunmuyor . Ancak Altyapı kadar kesin bir şeyle uğraşmıyoruz, bu yüzden bunları öğrenmek daha acı verici ve birinden diğerine aktarılamayacak bir şey değil.
Vagrant: Anladığım kadarıyla VM'lerin oluşturulmasını ve yönetimini otomatikleştirmek: Onları kurmak, başlatmak ve durdurmak. Bu, örneğin bir bulut platformunda yerel bir VM veya uzaktan kumanda kullanılarak yapılabilir.
Bu, bahsettiğiniz uygulamalar listesindeki garip olanıdır, Vagrant, geliştiriciler için bir araç ve yöneticiler için bir oyuncaktır, hızlı bir şekilde serseriyle bir geliştirme ortamına dayanabilir, örneğin bir android uygulaması geliştirmek, IDE'yi almak istiyorum. serseri, yakında Docker tarafından ele geçirileceğini düşünüyorum.
Tüm bunları kullanmaya nasıl başlayacağınız konusunda bana bir tavsiyede bulunabilir misiniz (aynı anda oldukça fazla ve henüz nereden başlayacağımı bilmiyorum)?
Bu yüzden yöneticilerin üstünlükleri olduğunu düşünüyorum, bunun çoğunu elle yapmak zorunda kaldık ve neyin yanlış gidebileceğini biliyoruz, kukla tezahürleri, bulut bilişim ve liman işçisi orkestrasyonu bizim için daha kolay olacak, geliştiriciler kendilerini pek çok teğet alarak bulacaklar. Herhangi bir potansiyel sapkın için tavsiye ilk önce yönetici olmaktır.