"Kod Olarak Altyapı" ifadesi, son iki hafta içinde farklı bağlamlarda defalarca belirtilmiştir. Pratik anlamda Altyapının Kod Olarak Sahip Olması Ne Anlama Geliyor?
"Kod Olarak Altyapı" ifadesi, son iki hafta içinde farklı bağlamlarda defalarca belirtilmiştir. Pratik anlamda Altyapının Kod Olarak Sahip Olması Ne Anlama Geliyor?
Yanıtlar:
TL; DR : Kod Olarak Altyapı , ortamınızı otomatikleştirmenin ve yedeklemenin bir yoludur. İdeal durumda, bir felaketten sonra, yeni kaynaklar sağlayarak, Kod Deposundan Yapılandırmayı Geri Yükleme ve Yedeklemeden Verileri Kurtarma ile Altyapınızı tamamen ve otomatik olarak geri yükleyebilirsiniz .
Kod Olarak Altyapı üç ana konsepte dayanır:
Konfigürasyon Yönetiminin Otomasyonu, Sürekli Konfigürasyon Otomasyonu olarak adlandırılan bir alan prof. Mark Burgess
Değişikliklerin ilk olarak gerçekleştirildiği, belgelendiği, gözden geçirildiği, test edildiği ve daha sonra otomasyon yoluyla dağıtıldığı Altyapı değişikliklerine ilişkin Kod Deposu .
Yönetilen Altyapı Sağlama. Hizmet Olarak Altyapı (IaaS). Ya aracılığıyla Bulut Bilişim , Özel veya Yönetilen Cloud veya Yönetilen Veri Merkezi Hizmetleri
Konfigürasyon Yönetimi 3. nesil araçlarında. CFEngine'i temel alarak Otomatik Yapılandırma Yönetimi için yeni bir araç seti yaygın olarak kullanılmaktadır. Alfabetik sıraya göre en popüler olanları Ansible, CFEngine, Chef, Kukla, PowerShell DSC ve SaltStack . Her biri, altyapınızın durumunu açıklayan bir Dile , bu değişiklikleri uygulamak ve araçları genişletmek için Kod Modüllerine , sunucularda bunları yürütmek için bazı Aracılara ve bir Merkezi Bilgi Deposuna sahip olacaktır.
Genellikle itme veya çekme modunda çalışırlar, ya merkezi bir konumdan / sunuculara bağlanır ve değişiklikleri uzaktan yürütürler ya da her sunucuda çalışırlar ve durum hakkında merkezi konumdan ve istemci / sunucu modelinde ya da dağıtılmış bir şekilde bilgi alırlar. yol.
Önemli kavram için sistem yöneticisi veya site güvenilirlik mühendisi içindir doğrudan değişiklik yapamazsınız altyapısına ama otomasyon değişiklikleri yapalım. Bir insan tarafından manuel olarak yapılan her şey , bozulabilir, yakında otomasyonla düzeltilecek veya altyapının bütünlüğünü ihlal eden ve etkilenen bileşenlerin tahrip edilmesini ve yeniden inşasını tetikleyen daha katı bir biçimde düşünülmelidir .
Altyapı ve ilgili Otomasyondaki tüm değişiklikleri yönetmek için ideal olarak Depo tutma Yazılımından ayrı olarak Kod Deposu kullanılır. Yapılandırma dosyalarını ve şablonlarını, gözden geçirilecek değişiklik sürecini açıklayan Playbooks (Yemek Kitapları), CM otomasyon araçlarını genişleten kod, Temel yapılandırma yapılandırmaları, Altyapı Testleri ve Uyarıları, Evreleme / Dağıtım Testleri, Belgeler, Manuel (henüz otomatik değil) Proses Açıklamaları içermelidir. .
Önemli kavram, değişiklikler için emsal değerlendirmeleri oluşturmak, tüm değişikliklerin kaydını tutmak ve öngörülemeyen ve / veya test edilmemiş sorunlar durumunda otomatik olarak önceki duruma dönme yeteneği, hazırlama ortamına konuşlandırma ve yapılandırma değişikliklerini test etme ve otomatik olarak konuşlandırma yeteneği insan hatasından kaynaklanan varyasyon olmadan değişiklikler.
Fiziksel Altyapıyı Yönetmek, yazılımın ötesine geçen ve çok farklı beceriler gerektiren gerçek bir dünya görevidir. Bu katmanı Bulut Bilişim veya Yönetilen Veri Merkezi aracılığıyla soyutlayabilmeniz için ekibinizin, iş değeri artıran Altyapıyı yönetme bölümüne odaklanmasını sağlayabilirsiniz.
Cloud Computing, daha sonraki bir aşamada hızlı bir şekilde başlamak ve ölçeklendirmek için bir yol sunarken, şirketler, hibrit bir model için Altyapının bazı bölümlerini kendi veri merkezlerinde taşımakta bazı avantajlar ve hatta önemli tasarruflar elde ederler. Donanıma sahip olmak ya da kiralamak, onu kaldıran kişileri de çalıştırmanız gerektiği anlamına gelmez. Bu ölçekte, dünya çapında coğrafi olarak dağıtılmış veri merkezlerine ihtiyacınız var ve her yerde gerekli tüm becerilere sahip insanlara sahip olmak çok pahalıya mal olacak. Onları dünya çapında uçurmak, veri merkezlerinin yönetimini dış kaynaklardan sağlamanın bir başka nedeni olan herhangi bir değişikliğe ve ek operasyonel verimsizlik seviyesine yüksek gecikme katmaktadır.
Önemli paket, Yönetilen Fiziksel Altyapının sıklıkla unutulduğu veya gözden kaçırıldığı , ancak aynı derecede önemli olmasıdır. Eğer her şey otomatik var olsa bile, tüm yapılandırma için bir yol yoksa, bir yedeklenmiş kod deposunda saklanan çabuk hüküm , bir var büyük darboğaz kolayca olabilir, tüm avantajları silmek diğer iki basamakla elde ettiğiniz .
Tam olarak ne olduğunu açıklamadan önce, doğrudan Wikipedia'dan gerçekten güzel bir tanım vereyim :
Kod Olarak Altyapı (IaC), fiziksel donanım yapılandırması veya etkileşimli yapılandırma kullanımı yerine makine tarafından işlenebilir tanım dosyaları aracılığıyla bilgi işlem altyapısını (işlemler, çıplak metal sunucular, sanal sunucular vb.) Ve bunların yapılandırmasını yönetme ve sağlama işlemidir. araçlar.
Tamam, şimdi konsepti daha iyi anlamak için böyle bir IaC aracına, Terraform'a bakalım: https://www.terraform.io/
Ayrıca, Terraform'un kendisi hakkında söylediği şey:
Terraform, güvenli ve öngörülebilir bir şekilde üretim altyapısı oluşturmanızı, değiştirmenizi ve iyileştirmenizi sağlar. API'leri ekip üyeleri arasında paylaşılabilen, kod olarak işlenebilen, düzenlenmiş, gözden geçirilmiş ve sürümlendirilmiş bildirimsel yapılandırma dosyalarına kodlayan açık kaynaklı bir araçtır.
Bu, tüm infra kodlanabilir. bu, sunucu örnekleri, yük dengeleyicileri vb. gibi bulut (/ infra) kaynaklarının oluşturulmasını ve kod olarak düzenlenebilir, sürümlenebilir ve yapılandırılabilen tüm yapılandırmaları (temel ayarlar tweaks, güvenlik ayarları, bölgeler vb. içerir) içerir. tabii ki, gözden geçirilebilir.
Bu, AWS kaynaklarını sağlamak için Terraform kodunun örnek bir örneğidir:
resource "aws_elb" "frontend" {
name = "frontend-load-balancer"
listener {
instance_port = 8000
instance_protocol = "http"
lb_port = 80
lb_protocol = "http"
}
instances = ["${aws_instance.app.*.id}"]
}
resource "aws_instance" "app" {
count = 5
ami = "ami-408c7f28"
instance_type = "t1.micro"
}
Bonus PS : Ayrıca, sağlama ve düzenleme araçları arasındaki farkları anlamak gerekir . Geliştiriciler, birini diğeri için çok sık karıştırır ve kullanılması amaçlanmayan bir araç için ince ayar yapmaya ve kullanmaya çalışırlar.