Eğitmen: Bulut bilişimin amaçlanan
maliyet tasarrufu ve verimliliği elde edebilmesi
için büyük ölçüde sanallaştırmaya dayanması gerekir.
Artık sanallaştırma kullanılarak tek
bir fiziksel sunucu üzerine çok sayıda mantıksal
sunucu yerleştirilebilir.
Bu da veri merkezlerimizde gerekli olan fiziksel
alan, güç ve soğutma miktarını azaltır.
Ayrıca, sanallaştırma kullanarak, ihtiyaç
duyduğumuzda ek sanal sunucular açarak daha yüksek
düzeyde kullanılabilirlik elde edebiliriz.
Bellek ve CPU kaynaklarını dinamik olarak
sağlama yeteneği, bulut bilişimin
en önemli avantajlarından biridir.
Şimdi, bulut bilişimin birçok farklı faydası
olsa da, hala göz önünde bulundurmamız gereken
çok sayıda güvenlik sorunu var.
Fiziksel sunucularda yaşadığımız
güvenlik sorunlarının çoğu
bulut ortamına da taşınıyor.
Çoğu zaman yöneticiler buluta geçmenin tüm sorunlarını
çözeceğini düşünürler, ancak
durum asla böyle değildir.
Sanallaştırma kullanıldığında, bir veya daha fazla mantıksal
sunucu tek bir fiziksel sunucuda bulunur.
Bunu başarmak için, hipervizör olarak bilinen özel yazılım
parçalarını kullanırız.
Hipervizör, işlemci, bellek ve sabit
disk kullanılabilirliği gibi tüm kaynakların
dağıtımını kontrol eder.
Esasen, hipervizör fiziksel bir makineyi taklit eder,
böylece işletim sistemi
ve tüm uygulamaları sanal bir ortamda
çalıştıklarının farkına bile varmazlar.
Şimdi, hipervizörler iki kategoriye ayrılır: Tip
bir veya çıplak metal hipervizörler ve tip
iki veya barındırılan hipervizör.
Şimdi çıplak metal ile barındırılan
hiper yönetici türlerini karşılaştırırken,
güvenlik açısından tek temel fark, barındırılan türlerde
altta yatan işletim sisteminin de uygun şekilde
güvence altına alındığından ve yamalandığından
emin olmamız gerektiğidir.
Performans açısından bakıldığında,
çıplak metal, barındırılan muadilinden daha hızlı
ve daha verimli olacaktır.
Sahip olduğumuz bir başka sanallaştırma seçeneği
de konteyner tabanlı sanallaştırma veya konteynerleştirme olarak bilinir.
Bu türde, bir hipervizör hiç kullanılmaz, bunun yerine her konteyner,
bu konteynerlerin her biri için temel olarak ortak bir işletim sistemine
dayanır, her konteyner aynı temel işletim sistemini
paylaşırken, her konteyner
kendi ihtiyaçları için özelleştirilebilen
kendi ikili dosyalarına, kütüphanelerine ve uygulamalarına sahip olabilir.
Şu anda, konteyner tabanlı sanallaştırma
neredeyse sadece Linux ile temel işletim
sistemi olarak kullanılmaktadır.
Konteyner tabanlı sanallaştırma ayrıca her bir konteyner
için işletim sisteminin kendi kopyasını gerektirmediğinden,
birinci veya ikinci tip sanallaştırmadan
daha az kaynak kullanır.
Birçok bulut hizmeti sağlayıcısı, hiper birleşik
altyapı ile sanallaştırmayı bir adım öteye taşıdı.
Bu, sağlayıcının donanım değişiklikleri
yapmak zorunda kalmadan depolamayı, ağları ve sunucuları
tamamen entegre etmesine olanak tanır.
Bunun yerine, tüm entegrasyonları gerçekleştirmek
için yazılım ve sanallaştırma teknolojisine
güveniyorlar.
Tüm bunları, altta yatan tüm satıcı çözümleri hakkında
endişelenmek zorunda kalmadan tek bir
arayüzden veya bir cihazdan yönetebiliriz.
Uygulama sanallaştırma, temel ana bilgisayarımız
için ek güvenlik oluşturmak amacıyla
yaygın olarak kullanılan bir başka sanallaştırma türüdür.
Uygulama sanallaştırma, bilgisayar programlarını
üzerinde çalıştırıldıkları temel
işletim sisteminden ayıran
bir yazılım teknolojisidir.
Tamamen sanallaştırılmış bir
uygulama geleneksel anlamda yüklenmemiş
olsa da, yine de yüklenmiş gibi çalıştırılır.
Uygulama sanallaştırma ile Windows
XP veya Windows 7 gibi ömrünü tamamlamış bir işletim
sistemi için tasarlanmış eski uygulamaları daha modern
bir işletim sisteminin üzerinde çalıştırabilir veya hatta Android
uygulamaları gibi çapraz platform yazılımlarını bir Windows
makinesinde çalıştırabilirsiniz.
Birçok bulut sağlayıcısı VDI veya sanal Masaüstü
Altyapısı da sunmaktadır.
Artık VDI, bir bulut sağlayıcısının merkezi bir sunucudan
son kullanıcılarınıza tam bir masaüstü işletim sistemi
sunmasına olanak tanıyor.
Bu yaklaşımı kullanmanın pek çok güvenlik avantajı vardır.
Bir örnek vermek gerekirse, birlikte çalıştığım
bir kuruluş, her kullanıcı için sabah oturum açtıklarında yeni
bir sanal masaüstü görüntüsü oluşturuyordu.
Bu masaüstü kalıcı değildi, bu nedenle bir
saldırgan tarafından istismar edilse bile, kullanıcı
oturumu kapatır kapatmaz veya her gün gece yarısı
yok edildi, bu da saldırganın kötü amaçlı
yazılım yüklenmiş olsa bile o son kullanıcının
masaüstünde kalıcı olma yeteneğini etkili bir şekilde
ortadan kaldırdı.
Sanallaştırmanın bir başka harika kullanımı da bir sandbox oluşturmaktır.
Artık bir sandbox, virüsleri, solucanları,
Truva atlarını ve diğer kötü amaçlı yazılım parçalarını bir konuk
işletim sistemi içinde analiz edebileceğiniz yalıtılmış bir
ortam oluşturmanıza olanak tanır.
Şimdi, izole edilmiş bir sanal makinenin
içinde bulunan bu sanal kum havuzunda olduğu için, altta yatan
ana bilgisayar işletim sistemi veya altta yatan hipervizör
olarak onu barındıran kendi bilgisayarınıza virüs bulaştıramayacağınızdan
emin olabilirsiniz.
Bir siber güvenlik analisti olarak çalıştığınızda,
kötü amaçlı yazılım analizi yapmak için sandbox'ları çok kullanırsınız,
özellikle de bir kötü amaçlı yazılım parçasını alıp çalıştıracağınız
ve ardından bu kötü amaçlı yazılım belirli bir konuk
işletim sisteminde çalıştığında neler olduğunu belirleyeceğiniz dinamik kötü
amaçlı yazılım analizi yaparken.
Sanal makinelerin bir başka iyi kullanımı
da platformlar arası sanallaştırma içindir.
Örneğin, birincil makinem olarak bir MacBook Pro kullanıyorum.
Dolayısıyla, farklı işletim sistemleri için bazı yazılım
uygulamalarını test etmek istersem,
gidip bu işletim sistemlerinin her biri için yeni
makineler alabilirim; örneğin Windows
için bir dizüstü bilgisayar, Linux için bir
dizüstü bilgisayar, Mac için bir dizüstü bilgisayar gibi.
Ancak sanallaştırma kullanırsam,
bunun yerine MacBook Pro'mda VMware, Parallels
veya VirtualBox gibi bir yazılımla barındırılan bir
sistem kullanarak platformlar arası
sanallaştırma yapabilir ve bu konuk işletim
sistemlerini mevcut Mac OS
ortamımın üzerine yükleyebilirim.
Bu sayede hangi işletim sistemine ihtiyaç
duyduklarına bakmaksızın tüm yazılım parçalarını
test edebilecek ve nasıl etkileşime gireceklerini
görebileceğim.
Bu özellikle web geliştiricileri için
harika, çünkü bir web geliştiricisi
olarak web sitemi oluşturduğumda Windows 10, Windows
11, Mac, Chromebook, iPhone, Android cihaz veya başka herhangi bir şeyde çalıştığından
emin olmak istiyorum ve sanallaştırmayı
kullanarak tüm bunları tek bir
makinede test edebilmek geliştiriciler olarak
bizim için harika bir kaynak.
Sanallaştırma için bir başka harika kullanım alanı da eğitimdir.
İnsanların bu sanal makineleri kullanarak canlı
bir işletim sistemi üzerinde pratik
yapabilmeleri için kurulmuş laboratuvar ortamları oluşturabilirsiniz.
Örneğin, çeşitli CompTIA sertifikalarınız
için çalışırken, kursunuzu diontraining'den satın
alırsanız. com'da yerleşik uygulamalı
laboratuvarlarla birlikte gelirler.
Bu laboratuvarlar, bulut tabanlı ortamımızda oturum açmanıza
ve ardından Linux sistemleri, Windows 10 sistemleri,
Windows Server sistemleri ve diğer şeyler üzerinde
güvenli ve emniyetli bir şekilde işlem yapabilmenize
olanak tanır ve bu, üretim ortamımızı etkilemez
çünkü hepsi bu eğitim alanına veya bu eğitim sanal alanına
izole edilmiştir.
Bir eğitim veya laboratuvar ortamı için sanal makineler
kullanmanın bir başka harika yanı da, çeşitli
noktalarda anlık görüntüler alabilmeniz ve daha sonra bu
anlık görüntüyü aldığınız yerden tekrar devam edebilmenizdir.
Örneğin, derslerimi şahsen verdiğimde, aslında Windows
7'nin bozuk makinelerini yaratırdım ve A + öğrencilerimin
daha sonra sorun gidermeleri
için farklı sorunlara sahip olurdum.
Onlara sanal makineyi verirdim, makineyi açardım,
makineyi bozduğum son güvenli noktadan geri
yüklerdim ve sonra makinede
neyin yanlış olduğunu ve nasıl düzeltebileceklerini
bulmalarını isterdim.
Bu, eğitiminizin içinde sanal makineler kullanmanın
harika bir kullanımıdır.
Çalışmalarınıza devam ettikçe ve Linux, Windows,
sunucu ortamları, Mac OS ve bunun gibi diğer şeyler hakkında
bilgi edinmeye başladıkça, bu konuk işletim sistemlerini
içeren farklı sanal makineleri çalıştırabilir
ve becerilerinizi güvenli ve emniyetli bir
ortamda uygulayabilirsiniz.
Tartışmamız gereken son
şey emülasyon kavramıdır çünkü
birçok kişi emülasyonu sanallaştırma ile karıştırmaktadır.
Şimdi emülasyon, başka bir sistemi taklit
eden bir sistem kullanmayı içerir.
Sanallaştırma ile belirli bir donanım parçasının
sanal bir örneği oluşturulmakta ve kullanılmaktadır.
Yani gerçekte, yazılım tarafından temsil edilen yeni bir
fiziksel makine kullanıyorsunuz.
Ancak bir emülatörde, bir yazılım parçası
ortamı gerçek zamanlı olarak çevirerek başka
bir şeymiş gibi davranır.
Örneğin, MacBook Pro'mda eski bir
Super Nintendo oyununu oynamak istersem,
OpenEmu gibi bir Super Nintendo emülatörü indirebilirim ve ardından
oyun kodunu gerçek zamanlı olarak Mac'imin
anlayabileceği talimatlara çevirecektir.
Sanallaştırma ile, çalıştırılan yazılım
makinenizin donanımına fiziksel olarak erişebilir
ve bu da bir emülatör kullanmaktan çok çok daha hızlı hale gelir.
Peki ne zaman sanallaştırma yerine bir emülatör
kullanmak isteyebilirsiniz?
Mac veya Windows makinede Super Nintendo
gibi başka bir donanım türü için tasarlanmış
bir işletim sistemi çalıştırmanız gerekiyorsa, o zaman bir emülatör
kullanmanız gerekecektir.
ARM işlemci üzerinde çalışmak
üzere tasarlanmış bir Android gibi farklı bir işletim
sistemi için tasarlanmış bir yazılımı çalıştırmak
istiyorsanız, ancak Intel işlemciniz ve
Windows işletim sisteminiz varsa,
o zaman yine emülatörler sizin için doğru seçim olacaktır çünkü farklı
temel donanımlarla uğraşıyorsunuz.
Öte yandan, yüksek hıza ve daha iyi performansa
ihtiyacınız varsa, bir sanallaştırma
çözümü kullanmak istersiniz.
Ancak sanallaştırma ile işlemcinizin altında
yatan belirli bir donanım için kodlanmış yazılımı
çalıştırmakla sınırlı olduğunuzu unutmayın.
Normalde, çoğumuz x86 veya x64 tabanlı işlemciler kullanıyoruz, bu nedenle Windows, Linux
veya Mac çalıştırıyorsunuz veya bu üç işletim sisteminden
herhangi biri sanallaştırma ile bu tür sistemlerde
gayet iyi çalışacaktır.
Ancak bir ARM işlemci için tasarlanmış bir işletim
sistemi çalıştırmaya çalışıyorsanız,
sanallaştırma ile çalışmayacaktır, bir emülatör
kullanmanız gerekir.
Şimdi genel olarak, emülatör yerine çoğu zaman
sanallaştırma kullanacaksınız, çünkü
daha hızlı ve daha verimli ve çoğu
şey bir x86 veya x64 işlemci üzerinde
çalışmak üzere yazılmıştır.
Ancak yine de, farklı bir işlemci için bir
şey çalıştırmanız gerekiyorsa,
o zaman bir emülatör kullanmanız gerekecektir.