Kod Olarak Altyapı – Nedir, Ne Değildir, İlkeler

Yayınlanan: 2020-04-23

Geleneksel olarak kuruluşlar, BT altyapısını kurmak için her zaman manuel teknikler kullanmıştır. Bu çok uzun süredir devam ediyor. Birkaç yıl öncesine kadar, işleri daha kolay, verimli ve kesin hale getirmek için otomasyon getirilmedi. Bundan önce, sunucuların rafa yerleştirilmesi ve istiflenmesi ile ilgili görevler insanlar tarafından gerçekleştiriliyordu.

Sadece ince değil, aynı zamanda donanım da barındırılması gereken uygulamanın ve bu amaçla kullanılan işletim sisteminin gereksinimlerine ve özelliklerine göre manuel olarak yapılandırıldı. Uygulamanın donanıma yerleştirilmesiyle iş tamamlandı. Bu adıma kadar uygulama başlatılamaz.

İçindekiler

Altyapı kurma süreçleri genellikle uzun ve karmaşıktı

Her şeyin plana ve programlanan zamana göre gitmesi için düzgün bir şekilde yönetilmesi gereken birçok şey vardı. Hiçbir şeyin şansa bırakılmadığından ve gerektiği gibi halledildiğinden emin olmak için üstesinden gelinmesi gereken zorluklar vardı. İlk şey gerekli donanımı bulmaktı. Ve şu anda üreticinin stokları olmadığında hiçbir şey yapamazsınız. Doğru donanımı temin etmek genellikle aylar alırdı. Belirli spesifikasyonlara uygun hale getirilen ürünlerin, üreticinin üretim tesisinden çıkması daha fazla zaman aldı.

Farklı işleri yapacak doğru insanları işe almak da çok önemliydi ve aynı zamanda oldukça sıkıcıydı. Altyapının fiziksel kurulumu için ağ mühendislerine ihtiyaç duydunuz. Bu, donanımın genel kurulumu ve bakımındaki işlerden sadece biriydi. Tüm bunlar, genel giderlere ve yönetim maliyetlerine önemli ölçüde katkıda bulundu. Bu değildi.

Bu donanımı depolamak için veri merkezleri oluşturmak için alana ihtiyacınız var. Veri merkezleri bakım gerektirir. Dolayısıyla, diğerleri arasında HVAC, elektrik, bakım ve güvenlik şeklinde masraflar vardı. Bir uygulamayı ölçeklendirmek ve yoğun trafikle sorunsuz bir şekilde ilgilenmesini sağlamak genellikle çok zaman aldı.

Şirketler süreçleri kurarken birçok zorlukla karşılaştı

Unutmayın, donanım ayarlama süreci zaman alıcı bir süreç olmaya devam ediyor. Geçmişte, onları çalıştırmak için kullanılan donanımın çalışmaya başlaması için geçen süre nedeniyle pek çok uygulama en iyi şekilde performans gösteremiyordu. Müşterilerine istedikleri şekilde hizmet veremedikleri ve hayal ettikleri zaman diliminde ürün ve hizmetleri lanse edemedikleri için bu pek çok şirket için iyiye işaret olmadı.

Bu şirketlerin, donanım için yavaş kurulumdan kaynaklanan trafik artışlarıyla başa çıkmak için daha fazla sunucu kullanımı sağlamak zorunda kaldıkları zamanlar oldu. Bu, bu sunucuların çoğunun çoğu zaman yapacak fazla bir şeyi olmadığı anlamına geliyordu. Ancak tam kapasiteyle kullanılmayan sunucuların bakım maliyeti, tam olarak kullanılmadıkları için düşmedi.

Şimdi, daha önce de belirttiğimiz gibi, donanım manuel olarak dağıtılıyordu, bu nedenle kurulumların tutarsız olma şansı oldukça yüksekti. Bu genellikle uygulama için iyi çalışmayan tutarsızlıklara yol açtı.

Bulut Bilişime Giriş

Bulut bilişim, yukarıda bahsedilen sorunların hepsi olmasa da çoğu ile başa çıkabilmiştir. Artık donanımı rafa kaldırmaya ve istiflemeye gerek yok. Donanımın manuel olarak ayarlanmasıyla ilgili maliyetler artık mevcut değil. Ayrıca günümüzde gerçek dünyada sorunların çözümüne yardımcı olan birçok bulut bilişim uygulaması bulunmaktadır. Veritabanları, sunucular ve diğer altyapı artık kolayca döndürülebilir.

Uygulamanızın kullanılabilirliği ve ölçeklenebilirliği söz konusu olduğunda hiçbir sorun yok. Ancak, bir sorun hala devam etmektedir. Bulut bilişim için altyapının manuel olarak ayarlanmasıyla ilişkili yapılandırma tutarlılığının sağlanması sorunu hala mevcuttur. Kod Olarak Altyapının (IaC) devreye girdiği yer burasıdır.

Kod Olarak Altyapı Nedir?

Kod veya IaC olarak Altyapı, ağlar, bağlantı topolojisi, sanal makineler ve diğerleri dahil olmak üzere bulut altyapısının farklı yönlerini yönetmek için açıklayıcı bir modelin kullanılmasıdır. Yukarıda bahsedilen tanımlayıcı modelin sürümü, DevOps ekipleri tarafından kaynak kodda kullanılanla aynıdır.

IaC modelleri, aynı kaynak kodun aynı ikili dosyayı oluşturmak için kullanılabileceğini belirten DevOps ilkesine göre çalışır - Uygulandığında, IaC aynı ortamı oluşturur. IaC, önemli bir DevOps tekniği olarak kabul edilir. İstenen sonucu elde etmek için sürekli teslimat ile birleştirilir.

IaC, altyapıda değişiklik yapmak için tek seferlik komut dosyaları kullanma veya yapılandırmada değişiklik yapma gereksinimini ortadan kaldırır. Bunun yerine operasyon altyapısını, kodun geliştirilmesi için kullanılan aynı yapılar ve kurallar aracılığıyla yönetir.

Amaç, sistem mühendislerini, yöneticileri ve diğer operatörleri, kodun geliştirilmesinden itibaren yeni bir makine yapılandırmak zorunda bırakmamaktır. IaS, yeni makinenin durumundaki gerekli değişiklikleri ortaya çıkarmak için yazılı kodu sağlar. Bu kod çalıştırıldığında, makine insan müdahalesi gerektirmeden istenilen duruma doğru hareket etmelidir.

IaC, DevOps ekiplerinin, geliştirme aşamasında çok erken bir aşamada uygulamaları test etmeye başlamasına olanak tanır. Bu ekipler, güvenilir ve isteğe bağlı olarak test için bu ortamları oluşturmak için bu modeli kullanır. IaC ayrıca çeşitli dağıtım sorunlarını da ortadan kaldırmak için kullanılır. IaC'nin nasıl çalıştığına bağlı olarak, bulut genellikle ortamları kurar ve kaldırır. Bu konu hakkında daha fazla bilgi verebilecek DevOps mimarisi öğreticisi hakkında buradan daha fazla bilgi edinebilirsiniz.

IaC ne değildir?

IaC'yi ağ oluşturma ilkelerine alternatif olarak alan insanlar var ki bu çok büyük bir yanılgıdır. Bu kavramlar, yalnızca onları doğru bir şekilde anlamak için zaman ayırmayanlara benzer görünebilir. Bu kavramları bir kez iyice gözden geçirdikten sonra, aralarında net bir şekilde kesin farklılıklar olduğunu anlamakta herhangi bir sorun yaşamayacaksınız.

Altyapınızı oluşturmak için bu kavramların her ikisini de kullanabilirsiniz, ancak yine de ağ yönlendirmesinin, ağ mimarisinin, ağ trafiğinin ve ağ yapılandırmasının nasıl çalıştığını bilmeniz gerekir. Bunlar, IaC'de de kritik bir rol oynayan ağ oluşturma temelleridir. Karışıklık, her iki kavramın da birleştirici ilkeleriyle bitmiyor.

Ayrıca birçok insan IaC'nin geliştirmeye dönüştürerek operasyonları gereksiz hale getirdiğini düşünüyor. Peki, bu gerçeklerden uzak. Operasyonların her organizasyonda her zaman önemli bir rolü vardır.

Ağ oluşturma, birkaç yıl önce, yapılandırma komut dosyaları yazmayı ve altyapıyı ve ağı manuel olarak yapılandırmayı içeriyordu. Pek çok insan hala IaC'nin bu yapılandırma yönetimi için DevOps metodolojisini kullanmaktan başka bir şey olmadığını düşünüyor ki bu doğru değil. IaC, yapılandırma komut dosyalarını bile otomatikleştirir. Kod kullanılarak yapılandırılabilen ve ölçeklenebilen bir sistemin kullanımını teşvik eder.

Değişken ve değişmez altyapı

Altyapıyı otomatikleştirmek için IAC kullanırken vermeniz gereken en büyük kararlardan biri, değiştirilebilir veya değişmez altyapı sağlamak isteyip istemediğinizi seçmektir. Bu ikisinin nasıl farklı olduğunu görelim.

Değişebilir altyapı, sağlandıktan sonra güncellenebilir veya değiştirilebilir. Anlık bir güvenlik sorunu veya uygulama veya geliştirme gereksinimlerinin dikkate alınmasıyla ilgili bir sorun da dahil olmak üzere çeşitli sorunlarla başa çıkmak için geçici özelleştirmeler için gereken esnekliği sağlar.

Bu altyapının bir dezavantajı vardır - sürümler veya dağıtım arasında tutarlılığa izin vermez. Değişken altyapı ile sürüm takibi de oldukça zordur.

Bu, çoğu insanın değişmez altyapı sağlamak için IAC kullanmasının nedenlerinden biridir. Sağlandıktan sonra asla güncellenemez veya değiştirilemez. Değişmez altyapıyı değiştirmenin tek yolu onu değiştirmektir. Değişmez altyapı, muadilinden daha pratik ve uygulanabilir.

IaC'nin mantıklı bir yol izlemesini sağlayarak sunabileceği tüm faydaları sunmasını sağlar. Yapılandırma kaymasını ortadan kaldırır ve test ve dağıtım ortamlarını daha tutarlı hale getirir. Değişmez altyapı ile sürümlerin bakımı ve takibi bile çok zor değil.

IaC'nin İlkeleri

Pek çok şirket, IaC'yi kendi yararları için doğru şekilde kullanma sanatını bilmiyor. Başka bir deyişle, mevcut yapılarına uydurabilecek taktik bilgi birikimine sahip sadece birkaç şirket var.

Yani, onu uygulamanın yanlış yolları da var. IaC'yi son nesil ve eski araçlarınızla birlikte çalıştırmaya çalışmak birçok yanlış yoldan biridir. Bu sorunlarla başa çıkmanıza yardımcı olabilecek bazı ilkeler vardır.

1. Kolay sistem yeniden üretilebilirliği: IaC, çok fazla çaba harcamadan ve çok fazla zaman harcamadan altyapının herhangi bir bölümünü yeniden oluşturmak için kullanılabilir. IaC, süreçle birlikte gelen belirsizliği ortadan kaldırır. Yeni ortamlar ve hizmetler sağlamak, IaC ile çok daha güvenle yapılabilecek bir şeydir.

2. Daha fazla esneklik: Altyapınız, uygulamanızın ortaya çıkardığı sorunlar için size çözümler sunmuyorsa, başınız belaya girer. Bu sorunlar, ağ uyumluluğu, yapılandırma ve depolama dahil olmak üzere birçok farklı şeyle ilişkilendirilebilir. IaC, bunlarla ilgili sorunlar için esnek çözümler sunabilir.

3. Dinamik tasarım: IaC, değiştirilebilen bir tasarımı vurgulayan bir ilkeyi takip eder. Bir sistemin belirli bir süre boyunca geçirebileceği değişiklikleri söylemek pek kolay değildir. İster yükseltme ister modifikasyon olsun, gerektiğinde değiştirilebilen bir altyapıya sahip olmak, bu konuda çok katı bir altyapıdan her zaman daha iyidir.

Çözüm

IaC kullanan DevOps ekipleri, doğası gereği kararlı ortamları hızla sağlama yeteneğine sahiptir. Ortamları manuel olarak yapılandırmaya gerek yoktur ve bu, sürece daha fazla tutarlılık getirir. Eksik bağımlılıklar veya yapılandırma kayması, bu modeli kullanarak altyapıyı dağıttığınızda var olmayan çalışma zamanı sorunlarıdır.

Bulut bilişim makine öğrenimi hakkında daha fazla bilgi edinmek istiyorsanız, IIIT-B & upGrad'ın çalışan profesyoneller için tasarlanmış ve 450+ saat zorlu eğitim, 30'dan fazla vaka çalışması ve ödev sunan Makine Öğrenimi ve Yapay Zeka alanında PG Diplomasına göz atın. IIIT-B Mezun statüsü, 5+ pratik uygulamalı bitirme projesi ve en iyi firmalarla iş yardımı.

Yapay Zeka Güdümlü Teknolojik Devrime Öncülük Edin

IIT MADRAS & UPGRAD'DAN MAKİNE ÖĞRENİMİ VE BULUT KONUSUNDA GELİŞMİŞ SERTİFİKA
Daha fazla bilgi edin