configuration management devops practices
DevOps Uygulamalarında Yapılandırma Yönetimi nedir?
Kavramı DevOps'ta Sürekli Test önceki eğitimimizde ayrıntılı olarak açıklanmıştır.
DevOps'ta konfigürasyon yönetiminin en önemli özelliği,
- Kod olarak altyapı
- Kod olarak yapılandırma
Okumalısınız => Özel DevOps eğitim serisi
En iyi 10 bedava mp3 indirme sitesi
DevOps uygulamasında 'Kod olarak altyapı' ve 'Kod olarak yapılandırma' nın sayısız avantajı vardır.
-
- Yapılandırmalar Sürüm kontrollüdür
- Otomatikleştirilmiş ve standartlaştırılmış
- Bağımlılığı kaldırır
- Hatasız alt kurulumlar
- Operasyon ve Geliştirme ekibi arasındaki işbirliğini artırır
- Konfigürasyon kaymasını düzeltme
- Altyapıyı esnek bir kaynak olarak ele almak
- Altyapının otomatik ölçeklendirilmesi
- Kurulumlarda tutarlılığı sürdürmek
VİDEO Bölüm 4 Blok 1: Yapılandırma Yönetimi- 23 dakika 7 saniye
Transcript:
Bu bölümde öğreneceğiz DevOps'ta yapılandırma yönetimi, Sürüm yönetimi ve Uygulama Performansı İzleme.
Burada, 1. blokta, Yapılandırma Yönetimine odaklanacağız ve yapılandırma yönetiminin ne olduğunu ve DevOps ile geleneksel yöntemlerde nasıl farklı olduğunu anlayacağız.
Başlangıç olarak, Yapılandırma Yönetimi nedir?
Adından da anlaşılacağı gibi konfigürasyon yönetimi, yazılım uygulamasının barındırdığı ortamların tüm konfigürasyonlarını yönetmekten başka bir şey değildir.
Bildiğimiz gibi, DevOps'ta SDLC genelinde Birim testi, entegrasyon testi, sistem testi, kabul testi ve son kullanıcı testi ile başlayan farklı ortamlarımız var.
Ayrıca daha önceki eğiticilerimde, bu testler için kurulan ortamın, üretim öncesi ve üretim ortamına doğru ilerledikçe giderek daha karmaşık hale geleceğini de açıklamıştım.
Yani, temel olarak, konfigürasyon yönetimi, bu ortamların her birinin tüm konfigürasyonlarını yönetmek için otomatikleştirilmiş bir süreçtir.
O halde geleneksel Yapılandırma yönetimi ile DevOps yapılandırma yönetimi arasındaki fark nedir?
Geleneksel konfigürasyon yönetimi yöntemlerimizde ekip, çeşitli ortamların bu konfigürasyonlarını resmi dokümantasyon aracılığıyla yönetiyordu; burada konfigürasyonların her biri, bu dokümanların versiyon kontrolünü idare etmek için kullanılan konfigürasyon ekibi veya yöneticisi belgelere kaydedilirdi.
Ve değişikliklere uğradığında, ortamı kurma ve yapılandırmaları manuel olarak yönetme sorumluluğunu da üstlenir.
Şimdi DevOps'ta, tipik olarak, tüm bu konfigürasyon yönetimi süreçleri oldukça iyi bir şekilde otomatikleştirilmiştir ve konfigürasyonlar kod veya komut dosyaları şeklinde kapsüllenir ve sürüm kontrol aracı ile kontrol edilir.
Bu bağlamda, tek versiyon kontrol aracı ile ortamların yönetilmesinde Operasyon ekibinin Geliştirme ile entegre olduğunu söyleyebiliriz.
Bu nedenle, DevOps'ta yapılandırma yönetiminin en önemli özelliği,
-
-
- Kod olarak altyapı
- Kod olarak yapılandırma
-
'Kod olarak altyapı' aslında ne anlama geliyor? Resmi bir belgeye kaydetmek yerine, tüm ortam tanımını bir kod veya komut dosyası olarak tanımlamaktır.
O halde çevre tanımı neleri içerir? Ortam tanımı genellikle, BT altyapısı kurulumunun bir parçası olan sunucuların kurulumunu, ağları yapılandırmayı ve diğer bilgi işlem kaynaklarının kurulumunu içerir. Böylece, tüm bu ayrıntılar bir dosya olarak veya bir kod biçiminde yazılır ve sürüm kontrol aracına kontrol edilir.
Sürüm kontrolünde kontrol edilen bu komut dosyası veya kod, ortamı tanımlamanın ve hatta bu ortamları güncellemenin tek kaynağı haline gelecektir.
Sadece basit bir şey vermek için Misal , belirli bir ortama bir sunucu eklememiz gerekirse, tüm yapacağımız, eklenen sunucuyla manuel olarak gidip yeni bir ortam oluşturmak veya arama yapmak yerine, bu bilgileri ortam betiklerine güncellemek ve dağıtım hattını çalıştırmaktır. Bunu yapmak için sistem yöneticisi insanların yardımı.
Bu nedenle, buradaki güzellik, geliştiricinin veya test edenin sunucularını geliştirme veya test etkinliği için ayarlayacak bir sistem yöneticisi uzmanı olması gerekmemesidir.
Böylece, DevOps'ta kurulan altyapı tamamen otomatik hale getirilecek ve temel olarak sunucuları kurup yapılandırmaktan, işletim sistemini kurmaya başlayarak bu örneklerin iletişim kanalları dağıtılan ile kurulana kadar sürüm kontrolüne eklenen komut dosyasını takip edecek. yazılım.
Kod olarak konfigürasyon nedir?
Bir kod olarak yapılandırma, sunucuların veya diğer kaynakların tüm yapılandırmalarını bir kod veya komut dosyası olarak tanımlamak ve bunları sürüm kontrolünde kontrol etmekten başka bir şey değildir.
Sürüm kontrolünde kontrol edilen bu konfigürasyon komut dosyaları, altyapıyı ve yapılandırmalarını otomatik bir şekilde kurmak için dağıtım hattının bir parçası olarak çalıştırılır.
Yapılandırmaların tanımlanması, yazılımın başarılı bir şekilde çalışması için önerilen ayarları tanımlayan parametreleri içerir. Ya da yazılım uygulamasını kurmak için başlangıçta çalıştırılacak bir dizi komut. Ya da ayarlanacak yazılım bileşenlerinin her birinin konfigürasyonları veya belirli kullanıcı rolleri, kullanıcı ayrıcalıkları vb. Olabilir.
Basit Misal varsayılan değerlerin konfigürasyon parametresinin bir parçası olarak ayarlandığı özellik geçişlerini ayarlamak olacaktır.
Güvenlik duvarına başka bir bağlantı noktası eklemek başka bir Misal , komut dosyasında güncellenebilir ve daha sonra bu komut dosyaları, dağıtım kanalının bir parçası olarak çalıştırılır.
Pazarda altyapı otomasyonunu gerçekleştirmek için çeşitli araçlar mevcuttur. Bunlardan çok azı Chef, Puppet, Terraform vb., Chef ve Puppet ruby tabanlı konfigürasyon yönetim aracı iken, Terraform bir provizyon aracıdır.
Ayrıca bu günlerde neredeyse tüm uygulamalar bulutta, AWS'de barındırılacağı için, bu amaçla kullanılabilecek RESTAPI'leri kendileri sağlıyorlar.
Altyapıyı ve yapılandırmaları bir kod olarak tanımlamak yerine DevOps'ta yapılandırma yönetiminin çok sayıda faydası var.
Onları tek tek inceleyelim.
Tüm yapılandırmalar ve altyapı ayrıntıları sürüm kontrollüdür ve bu, DevOps uygulamasında büyük bir avantajdır.
# 1) Bu, ekibin sunuculardaki ve yapılandırmadaki değişiklikleri otomatik bir şekilde yönetmesine yardımcı olur ve herhangi bir arıza durumunda kısa bir süre içinde hızlı bir şekilde hata ayıklamaya yardımcı olur ve ayrıca müşterilerde herhangi bir kesintiye neden olmadan önceki sürüme hızlı bir şekilde geri dönülmesine izin verir.
#iki) Bu komut dosyaları merkezi sunucuda bulunduğundan ve ekipteki herkes bu komut dosyalarının her birinde ne olduğunu ve bu sürümlerin her birinde yapılan değişikliklerin neler olduğunu bilir. Bu aynı zamanda ekibin en son sürümlerde herhangi bir sorun olması durumunda eski sürüme geri dönmesini sağlar.
Bir sunucu çökmesi olursa, onu manuel olarak geri yüklemek için ne kadar zaman gerektiğini hayal edin. Ve şimdi altyapıyı bir betik ve sürüm kontrolü olarak tanımlayarak, önceki sürüme giderek hemen geri yükleyebiliriz.
# 3) Konfigürasyonların kod olarak yönetilmesi, bir kişinin yanlışlıkla sistemde değişiklik yapmasını da engeller ve daha sonra üretimde oluşabilecek hasarları önler.
Konfigürasyon yönetimi tamamen otomatik olduğundan, kurulum veya güncelleme için manuel müdahale tamamen ortadan kalkar.
Eskiden insanlar bu yapılandırmaları manuel olarak gerçekleştirmek için insan kaynaklarına güvenirken ve belirli yapılandırmalar atlandığında veya gerektiği gibi ayarlanmadığında maliyet, kalite ve zaman üzerindeki etkiyi bir düşünün.
Bu nedenle, konfigürasyon yönetiminin otomasyonu sadece zamandan tasarruf sağlamakla kalmadı, aynı zamanda bu tür insan hatalarının ortadan kaldırılmasında ve kalitenin iyileştirilmesinde de fayda sağladı. Ayrıca, kodlama standardı, ekibe yapılandırma kılavuzunu yazan her bir kişinin hayalini takip etmek yerine kodlama ve otomatikleştirmede belirtilen standardı takip etmesine yardımcı oldu.
Daha önce tartışıldığı gibi, kod olarak teslim edilen yapılandırmalar, tek bir kişiye veya yapılandırma yöneticisi veya yapılandırma ekibi adı verilen bir ekibe olan bağımlılığı ortadan kaldırmıştır. Geliştirme ekibinin, yapılandırma ekibinin gelip herhangi bir alt veya yapılandırma sorununu düzeltmesini beklemesi gerekmez.
Veya tamamen otomatik ve sürüm kontrollü alt ve yapılandırmaları kurmak için bile. Bu nedenle, ekipteki herhangi bir geliştirici veya test cihazı bir sunucuyu döndürebilir ve geliştirme ve test amaçları için yapılandırmaları gerçekleştirebilir. Bu nedenle sunucuyu ve yapılandırmaları kurmak kişiden bağımsız hale geldi.
Bu, aynı sunucuların hem Geliştirme hem de Kalite Güvencesi ekipleri tarafından, genellikle daha önce olduğu gibi etkinlikleri için kullanılmamasını sağlar.
Ortak bir kod olarak tanımlanan altyapı ve konfigürasyonlar, otomatikleştirme ve sürüm kontrolünün yanı sıra tüm ortamları ve kurulumları standart hale getirir. Bu nedenle, bu sadece hata ayıklama görevini geliştiriciler için kolaylaştırmakla kalmaz, aynı zamanda hatasız infra kurulumlarıyla sonuçlanan insan hatalarını da ortadan kaldırır, aksi takdirde erken tespit edilmezse büyük hasara neden olur.
Burada, her ikisinin de altyapı kurulumunu gerçekleştirmek için tek bir kaynağa dayandığı ve her iki ekibin de tüm konfigürasyon yönetiminin otomatikleştirilmesi ve kurulmasına aktif olarak dahil olduğu Dev ve Ops arasındaki net işbirliğini açıkça görebiliriz.
Bu, ortak bir hedefe ulaşmak için birlikte çalışmak, hem ekipler, hem Geliştirme hem de operasyonlar arasındaki işbirliğini artırır.
Yapılandırma Kaymasını Düzeltme
Yapılandırma Kayması nedir?
Sunucular arasında bazen manuel güncelleme nedeniyle meydana gelen ve belirli bir süre boyunca biriken küçük farklılıklar ve tutarsızlıklara Yapılandırma sapması denir.
Bu iyi bir durum değildir, çünkü sunuculardaki bu tutarsızlık, manifest, playbook gibi belirli program dosyalarını tüm sunucularda güvenilir bir şekilde çalışmamaya bırakır ve dolayısıyla otomasyon arızasına yol açar. Bu nedenle, ekibin konfigürasyon otomasyonunu etkili bir şekilde kullanmasını sağlamak için bundan kaçınılmalıdır.
Altyazı ve yapılandırmayı bir kod ve sürüm olarak yönetmek, tüm sunuculardaki yapılandırmaları tutarlı bir şekilde sürdürerek ekibin çeşitli ortamlar arasında veya geliştirme ve üretim kurulumları arasındaki her türlü yapılandırma sapmasını önlemesine veya düzeltmesine yardımcı oldu.
Böylelikle bir ekip, geliştirme kurulumundaki üretim kurulumundaki gibi benzer yapılandırma kurulumlarından en iyi şekilde emin olabilir. Bu aynı zamanda geliştirme ortamındaki üretim sorunlarını simüle etmelerine yardımcı olur.
Bu, ekip üyelerinden herhangi birinin altta yapmaya çalışabileceği, kurulumu bozabilecek ve aynı zamanda ekibi olarak oturum açmadıkları sürece kurulumda hiçbir değişiklik yapmamaya zorlayabilecek her türlü beklenmedik değişikliği önlemeye yardımcı olur. havuza bir kod.
Altyapıyı ve yapılandırmasını bir kod olarak sunmak, ekibin bunu müşterinin dinamik iş ihtiyaçlarını karşılamak için esnek bir kaynak olarak yönetmesini sağladı.
Şimdi bir çeşit tak ve çalıştır. Bir ekip özel olarak belirli bir sunucuya veya ağa girebilir ve bunlarda değişiklik yapabilir. Sadece provizyon sunucusunu güncellemek veya belirli bir ağda depolamayı eklemek veya değiştirmek veya hatta işletim sistemini güncellemek olabilir ve her şey bağımsız olarak esnek bir kaynak olarak güncellenebilir.
Önceden, bir konfigürasyon parametresini değiştirmek, özellikle tüm sunucularda güncelleme yapılması gerektiğinde, gerçekten çok zaman alıyordu, ama şimdi sadece bir seferde. Komut dosyasını güncelleyin ve sürüm kontrol aracına yükleyin ve hepsi bu kadar.
Mevcut altyapıyı tamamen hurdaya çıkarma ve tamamen başka bir altyapıyı kaldırma esnekliği var. Yani altyapıyı ve konfigürasyonları yönetmek artık oldukça kolay hale geldi. Bulut tabanlı çözümler, altyapının ek bilgi işlem veya depolama kaynaklarını gerektiği gibi ekleyerek ve gerekmediğinde ölçeği küçülterek otomatik olarak ölçeklenmesini sağladı.
Bu, talebe göre kaynak kullanımının optimizasyonunu sağlamıştır. Makinenin boyutunu artırarak altyapıyı büyütmek istersek hemen yapabiliriz. Benzer şekilde, ölçeği genişletmek veya belki başka bir kurulum eklemek veya daha fazla ön uç eklemek istersek, bunu sadece kodda güncelleyerek ve otomatikleştirilmiş ardışık düzeni çalıştırarak saniyeler içinde yapabiliriz.
Son olarak, kontrollü bir ortamda kod olarak sunulan altyapı, çeşitli kurulumlarda ortamların tutarlılığını korumaya yardımcı olur. Bu, sorunu gidermeye de yardımcı olur. Bu noktayı daha önce bir dereceye kadar yapılandırma sapması hakkında konuşurken ele almıştım.
İşte bu ve bu, kod olarak altyapının ve yapılandırmaların ne olduğu ve faydalarının neler olduğu konusunda DevOps'ta Yapılandırma yönetimi konusundaki konuşmamızı tamamlıyor.
Yaklaşan eğitimimizde tartışacağız DevOps'taki Sürüm Yönetimi yönleri.
PREV Eğitimi | SONRAKİ Eğitici
Önerilen Kaynaklar
- DevOps'ta Sürüm Yönetimi
- DevOps Test Eğitimi: DevOps, KG Testini Nasıl Etkileyecek?
- DevOps'ta Sürekli Test
- Örneklerle Yapılandırma Testi Eğitimi
- DevOps'ta Sürekli Dağıtım
- En İyi Açık Kaynak DevOps Araçları (Kurulum ve Yapılandırma ile)
- DevOps Testi İçin En İyi 10 Sürekli Test Aracı (2021 Listesi)
- TestLodge Test Yönetim Aracı İncelemesi