Azure Ortam Dağıtımı
Çöken bir sunucu nedeniyle gecenin bir yarısında acil destek çağrısı aldıysanız, yeni bir makine kurmanın manuel adımlarının ne kadar zor olacağını tahmin edebilirsiniz. Ayrıca geliştirme ve üretim ortamlarını tutarlı tutma zorluğu da var. Makineleri başlatırken insan hatası olasılığını ortadan kaldırmanın daha kolay bir yolu Altyapı’yı Kod olarak kullanmaktır.
Manuel dağıtım ve Kod olarak Altyapı dağıtımı arasındaki farkları anlamak için ortak bir benzetme kullanabiliriz. Evcil hayvan sahipleriyle sığır sahipliği arasındaki ayrım mesela. Evcil hayvanınız olduğunda, her birine ad verirsiniz ve onları birey olarak görürsünüz; Evcil hayvanlarınızdan birine kötü bir şey olursa, çok fazla ilgilenirsiniz. Eğer bir sığır sürünüz varsa, onları hala adlandırabilirsiniz, ancak onları bir sürü olarak kabul edersiniz. Biraz garip bir örnek oldu farkındayım 🙂
Altyapı bağlamında, manuel bir dağıtım yaklaşımıyla, tek bir makine çöktüğünde ve onu değiştirmeniz gerektiğinde (evcil hayvanlar) ciddi etkiler doğurabilir. Bir Altyapıyı Kod yaklaşımı olarak kabul ederseniz, tek bir makine düştüğünde, tüm altyapınızı (sığır) olumsuz yönde etkilemeden başka bir makineyi daha kolay tedarik edebilirsiniz.
Kod olarak Altyapı ile ortamlarınızı bir metin dosyasında (komut dosyası veya tanım) yakalarsınız. Dosyanız tüm ağları, sunucuları ve diğer bilgi işlem kaynaklarını içerebilir. Komut dosyasını veya tanım dosyasını sürüm kontrolünde kontrol edebilir ve mevcut ortamları güncellemek veya yenilerini oluşturmak için kaynak olarak kullanabilirsiniz. Örneğin, metin dosyasını düzenleyerek ve çevreye yeniden bağlanmak yerine el ile yeni bir sunucu hazırlayarak dağıtım hattını çalıştırarak yeni bir sunucu ekleyebilirsiniz.
Aşağıdaki liste Altyapının kod olarak dağıtılmasının (Infrastructure as Code) faydalarıdır:
- Ne konuşlandırıldığını, ne zaman ve nasıl yapıldığını izlemeyi kolaylaştırarak denetimi kolaylaştırır (Başka bir deyişle izlenebilirliği arttırır)
- Serbest bırakmadan serbest bırakmaya kadar tutarlı ortamlar sağlar.
- Geliştirme, test ve üretim ortamlarında daha fazla tutarlılık.
- Ölçek büyütme ve genişletme işlemlerini otomatik hale getirir.
- Yapılandırmaların sürüm kontrollü olmasına izin verir.
- Altyapı değişikliklerini yönetmenize yardımcı olacak kod inceleme ve birim testi yetenekleri sağlar.
- Altyapıyı esnek bir kaynak olarak ele alır.
- Mavi / yeşil dağıtımları yapmak mümkündür. Bu, iki özdeş ortamın bulunduğu, birisinin canlı olduğu, diğerinin olmadığı duruş sürelerini minimize etmek için bir yayın metodolojisidir. Güncellemeler canlı olmayan sunucuya uygulanır ve test doğrulanıp tamamlandığında, canlı ortam olarak değiştirilir ve önceki canlı ortam artık canlı ortam değildir, yani değiştirilir. Ayrıca A / B dağıtımı olarak da adlandırılabilir.
- Değişmez, hizmetin güncellenmediği anlamına gelir. Bir ortamda değişiklik yapılması gerekiyorsa, yenisi kurulur ve eskisi indirilir.