Windows'ta tam sanallaştırma yerine konteynerleri ne zaman kullanmalısınız?

  • Windows konteynerleri, ana bilgisayarla çekirdeği paylaşır, hafiftir, saniyeler içinde başlatılır ve modern uygulamalar, mikro hizmetler ve CI/CD ortamları için daha uygundur.
  • Sanal makineler, işletim sistemi düzeyinde güçlü bir izolasyon sağlar, birden fazla işletim sistemini destekler ve eski iş yükleri ile yüksek güvenlikli ortamlar için idealdir.
  • Windows Server'da, taşınabilirlik, hızlı dağıtım ve esnek ölçeklenebilirlik, kapsamlı sistem kontrolünden daha öncelikli olduğunda konteynerler tercih edilir.
  • Genellikle başarılı strateji, uygulama katmanında izolasyon ve uyumluluk için sanal makineleri (VM'ler) ve çeviklik ve verimlilik için konteynerleri bir araya getirir.

Windows'ta tam sanallaştırma

Arasında seçim yapmak bir Docker konteyneri Windows'ta tam sanallaştırma, hafife alınırsa daha sonra başınıza bela açacak teknik kararlardan biridir. Bir konteynerin fazlasıyla yeterli olduğu senaryolar olduğu gibi, sanal makine kurmazsanız güvenlik, uyumluluk veya performans riskleri aldığınız ve buna değmeyeceği senaryolar da vardır. Pratik farklılıkları iyi anlamak, doğru kararı vermenin anahtarıdır. Konteynerleri kullanmak ne zaman uygun, sanal makinelere güvenmeye ne zaman devam etmelisiniz? Windows Server'da.

Modern ortamlarda—Proxmox veya Hyper-V ile kurulan ev laboratuvarlarından Azure üzerindeki kümelere kadar—en yaygın yaklaşım artık sadece bir teknoloji seçmek değil, ikisini birleştirmektir. Birçok kuruluş bu şekilde çalışmaktadır. Sanal makineler içindeki Windows kapsayıcılarıHer yaklaşımın en iyi yönlerinden yararlanıyoruz: konteynerlerin esnekliği ve hızı ile sanal makinelerin güçlü izolasyonu ve olgun yönetimi. Her seçeneğin nasıl çalıştığını, Windows Server 2016, 2019, 2022 ve 2025'te neleri içerdiğini ve her şeyden önemlisi, hangi durumlarda tam sanallaştırma yerine konteyner kullanmanın tercih edilebilir olduğunu ayrıntılı olarak inceleyeceğiz.

Windows'ta konteyner mimarisi

Windows'ta bir konteyner temelde şudur: izole edilmiş ve hafif yürütme ortamı Burada uygulama, bağımlılıklarıyla birlikte çalışır ve doğrudan ana işletim sistemine güvenir. Donanımı taklit etmez veya tam bir konuk işletim sistemi yüklemez: yalnızca altta yatan Windows Server çekirdeğini kullanır ve belirli bir izolasyon seviyesiyle kullanıcı modu işlemlerini çalıştırır.

Bu mimaride, konteyner uygulamayı, kütüphanelerini, yapılandırmalarını ve bazı diğer bileşenleri içerir. Kullanıcı modunda minimum sistem hizmetleriAncak kendi çekirdeğine sahip değil. Çekirdeğin "kirli işleri" (bellek yönetimi, süreçler, ağ vb.) ana bilgisayarın Windows sistemi tarafından yapılır. Bu nedenle bir Windows konteyneri saniyeler içinde başlatılabilir ve tam bir sanal makineye göre çok daha az CPU, RAM ve disk alanı tüketir.

anlık
İlgili makale:
Anlık görüntü kılavuzu: Sanal ortamlarınızı bozmadan önceki durumları yönetin

Windows, konteynerler için çeşitli izolasyon modlarını destekler: klasik Windows konteyner modu (ana bilgisayarla çekirdeği paylaşır) ve Hyper-V izolasyonuBu, ayrımı güçlendirmek için her bir konteyneri bir mikro-VM içinde çalıştırır. İkincisi, biraz daha yüksek kaynak tüketimi pahasına, ancak tam işletim sistemine sahip geleneksel bir VM boyutuna ulaşmadan daha güçlü bir güvenlik sınırına ihtiyaç duyduğunuzda kullanılır.

Windows'ta sanal makine mimarisi

Sanal makineler çok farklı çalışır. Hyper-V, VMware veya KVM'deki bir sanal makine şunları çalıştırır: Kendi çekirdeğine sahip eksiksiz bir konuk işletim sistemi.Bu işlemlerin tamamı, hipervizör adı verilen bir sanallaştırma katmanı üzerinde gerçekleştirilir. Bu hipervizör, fiziksel sunucunun CPU, bellek, depolama ve ağ kaynaklarını çeşitli sanal makineler arasında dağıtır.

Tipik bir diyagramda şunlar bulunur: Fiziksel donanım, hipervizör ve bunların üzerine bir de çeşitli sanal makineler.Her sanal makine kendi Windows, Linux veya diğer uyumlu işletim sistemini ve kendi uygulamalarını çalıştırır. Bu, çok güçlü bir izolasyon sağlar: Hipervizör doğru şekilde yapılandırılmış ve yamalanmışsa, bir sanal makinedeki bir arıza veya güvenlik açığı ana işletim sistemini veya diğer sanal makineleri doğrudan etkilemez.

Olumsuz yanı ise her sanal makinenin tüm hizmetleri, sürücüleri ve sistem süreçleriyle birlikte eksiksiz bir işletim sistemini başlatması gerektiğidir. Bu da şu anlama gelir: daha yüksek kaynak tüketimi ve daha uzun başlatma süreleriBu işlem, bir konteynerin saniyeler süren işlemine kıyasla genellikle dakikalar sürer. Bakım karmaşıklığı da artar: her konuk işletim sisteminin yamalanması ve güncellenmesi gerekir ve imajlar, lisanslar, yedeklemeler vb. yönetilmelidir.

Konteynerler ve sanal makineler: Temel benzerlikler ve farklılıklar

Konteynerler ve sanal makineler genellikle benzer sorunları çözmek için kullanılsa da (uygulamaları izole etmek ve donanımı paylaşmak gibi), yaklaşımları ve güçlü yönleri çok farklıdır. Bu farklılıkları anlamak, doğru çözümü bulmanızı sağlar. Windows'ta tam sanallaştırma yerine konteynerleri ne zaman tercih etmelisiniz?.

İzolasyon ve güvenlik

Sanal makine şunları sağlar: ana işletim sisteminden neredeyse tamamen izole olmaHer sanal makinenin kendi çekirdeği ve bellek alanı vardır ve hipervizör bir sınır görevi görür. Bu, farklı şirketlere, hassas verilere sahip departmanlara veya aynı küme içindeki farklı kritiklik seviyelerine sahip ortamlara ait iş yüklerini ayırmanız gerektiğinde idealdir.

Windows konteynerleri, standart modlarında daha hafif bir izolasyon sunar: Çekirdeği hem ana bilgisayarla hem de diğer konteynerlerle paylaşırlar.Bu, genel giderleri azaltır, ancak güvenlik sınırını da inceltir. Bu nedenle, Hyper-V izolasyonu ile sarmaladığınız veya çok güçlü kontrollerle koruduğunuz sürece, çok sıkı uyumluluk gereksinimlerine sahip farklı istemcilerden gelen konteynerleri aynı sunucuda karıştırmak iyi bir fikir değildir.

Hyper-V'nin konteynerler için izolasyon modu bu sorunun bir kısmını hafifletiyor: her konteyner bir mikro-VM'de çalışıyor, kabın hafifliğini daha sert bir ayırma ile birleştirmekBununla birlikte, katı düzenlemelerin veya karmaşık denetimlerin olduğu senaryolarda, izolasyon birimi olarak genellikle tam bir sanal makine tercih edilmektedir.

İşletim sistemi ve uyumluluk

Bir sanal makineye kurabilirsiniz. neredeyse tüm uyumlu işletim sistemleri Hipervizör ile: farklı Windows sürümleri, Linux dağıtımları vb. Bu, çok özel bir ortam, özel sürücüler veya artık ana bilgisayarda çalıştırmak istemediğiniz (veya çalıştıramadığınız) sistemin eski sürümlerini gerektiren eski uygulamalar için destek sağlar.

  Günlük verimliliğinizi gerçekten artıran Windows 11 widget'ları

Ancak bir Windows kapsayıcısında, İşletim sistemi sürümü, ana bilgisayarın sürümüyle aynı olmalıdır.Konteynerler aynı çekirdeği paylaşır, bu nedenle örneğin, Windows Server 2022 çalıştıran bir ana bilgisayara dayalı bir konteynerin içine Windows Server 2008 koyamazsınız. Hyper-V izolasyonu ile aynı sistemin daha eski sürümlerini çalıştırabilirsiniz, ancak her zaman Microsoft'un bu mod için resmi olarak desteklediği sınırlar dahilinde.

Bu çekirdek bağımlılığı, çok eski uygulamaların veya güçlü sistem bağımlılıkları olan uygulamaların çoğunu sorunlu hale getiriyor. konteynerler için uygun olmayan adaylar ve klasik sanal makinelerde kalmaya devam ederler. Buna karşılık, iyi uygulamalarla tasarlanmış ve bağımlılıkları kontrol altında tutulan modern uygulamalar için konteyner modeli mükemmel bir uyum sağlar.

Performans, kaynak kullanımı ve başlatma süreleri

Bir sanal makinenin, tüm işletim sistemi için bellek ayırması ve çok sayıda işlemi çalıştırması gerekir. sistem hizmetleri, arka plan süreçleri ve denetleyicilerUygulamanız bu işlevselliğin yalnızca küçük bir kısmına ihtiyaç duysa bile, bu daha yüksek RAM ve CPU kullanımı, sanal makine görüntüleri için daha fazla disk alanı ve önemli ölçüde daha uzun önyükleme süreleri anlamına gelir.

Kendi çekirdekleri olmayan konteynerler, CPU, RAM ve depolama açısından çok daha hafifBir Windows konteyner imajı, yalnızca kesinlikle gerekli olan ikili dosyaları ve hizmetleri içerecek şekilde yüksek oranda optimize edilebilir. Bu hafif yapı, ana bilgisayar başına daha fazla hizmet örneğini yoğunlaştırabileceğiniz ve hızlı yatay ölçeklendirme ile yük artışlarına daha iyi yanıt verebileceğiniz anlamına gelir.

Başlangıç ​​süresine gelince, fark dikkat çekici: bir VM'nin tamamen çalışır duruma gelmesi genellikle birkaç dakika sürer.Bir konteyner saniyeler içinde, hatta daha kısa sürede kaldırılabilir; bu da otomatik ölçeklendirme senaryoları ve arızalardan hızlı kurtarma için kritik öneme sahiptir.

Ölçeklenebilirlik ve orkestrasyon

Sanal makine tabanlı bir platformu ölçeklendirmek, yeni makineler oluşturmayı, sistemleri kurmayı veya klonlamayı, yapılandırmayı, etki alanına eklemeyi, politikalar uygulamayı içerir... komut dosyalarıyla otomatikleştirseniz bile, yine de zahmetli bir iştir. nispeten ağır ve yavaş bir işlemDaha durağan veya yavaş değişen iş yükleri için uygundur.

Bu kaplar tam tersi bir amaç için tasarlanmıştır: hızlı ve yoğun bir şekilde ölçeklendirmekAzure Kubernetes Service, Kubernetes on-premises, Docker Swarm gibi bir orkestratör veya aşağıdaki araçlarla Docker Oluşturmaİş yüküne bağlı olarak konteynerleri saniyeler içinde oluşturabilir, silebilir ve yeniden dağıtabilirsiniz. Bu özellik özellikle mikro hizmet mimarileri, CI/CD işlem hatları ve bulut tabanlı uygulamalar için çok uygundur.

Windows'ta sanal makineler için yük dengeleme genellikle şunları içerir: Küme içindeki düğümler arasında çalışan sanal makineleri taşımaKonteynerlerde durum farklıdır: Konteynerin kendisini taşımazsınız, bunun yerine düzenleyici (orchestrator) bir düğümdeki örneği yok eder ve aynı imajı kullanarak başka bir düğümde yeniden oluşturur. Bu, daha değişmez ve bildirimsel bir yaklaşımdır.

İşletim sistemi güncellemeleri ve bakımı

Sanal makinelerden oluşan bir filonun bakımı şunları içerir: Her makinedeki konuk işletim sistemini yamalayın.Sürümleri, yeniden başlatmaları, anlık görüntüleri, şablonları yönetmek… ve çoğu zaman, Windows'un yeni bir sürümüne geçmek istediğinizde, yerinde yükseltme yapmak yerine sıfırdan yeni bir sanal makine oluşturup uygulamayı taşımak daha uygun maliyetlidir. Onlarca veya yüzlerce sanal makinenin bulunduğu ortamlarda bu çok zahmetli bir iş olabilir.

Konteynerler sayesinde işletim sistemi güncellemeleri genellikle çok daha kontrollü ve tekrarlanabilir hale gelir. Yükseltme işlemi normal şekilde şu şekilde gerçekleşir: Dockerfile dosyasını düzenleyerek daha yeni bir Windows temel imajına işaret edecek şekilde ayarlayın.Görüntüyü yeniden oluşturun, konteyner kayıt defterine yükleyin ve düzenleyiciyi kullanarak dağıtın. Düzenleyici, büyük ölçekli, otomatik aşamalı dağıtımlar, devreye alma ve geri alma işlemlerini gerçekleştirebilir.

Bu “değiştirilemez altyapı” yaklaşımı, yapılandırma sapmasını azaltır ve ortamın durumunu istikrarlı hale getirir. kodla tanımlanmıştırYıllardır kullanılan sanal makinelerde yapılan uzun bir manuel değişiklik zincirinden kaynaklanmıyor bu. Windows'ta DevOps'u gerçekten uygulamak istediğinizde büyük bir fark yaratıyor.

Veri depolama ve kalıcılık

Sanal makineler dünyasında, Windows'taki klasik depolama modeli şu şekildedir: Her makineye bağlı sanal sabit diskler (VHD/VHDX). Yerel veriler için veya birden fazla sunucu tarafından erişilebilen veriler için SMB paylaşımlı kaynaklar (Azure Dosyaları veya geleneksel paylaşımlar gibi) kullanılır. Sanal makine, sanal diskine "sahiptir" ve onu fiziksel bir diskmiş gibi ele alır.

Konteyner ekosisteminde, genellikle şu iki unsur arasında net bir ayrım yapılır: geçici veriler (konteynerin yaşam döngüsüne bağlı) ve kalıcı verilerİkinci seçenek için Azure'da yerel, düğüm düzeyinde depolama için Azure Disks'i ve birden fazla düğüm veya pod arasında paylaşılan depolama için Azure Files'ı (SMB) kullanabilirsiniz. Kapsayıcı, bu birimleri düzenleyici yapılandırmasına göre bağlar ve kapsayıcı yok edilip yeniden oluşturulursa, veriler onun dışında kalıcı olarak saklanır.

Bu ayrıştırma, uygulamaların şu şekilde olduğu modelleri destekler: bildirimsel ve atılabilirVeriler, her şeyin içinde bulunduğu klasik "evcil hayvan" sanal makinesine kıyasla modern uygulamalarla daha uyumlu olan, iyi yönetilen depolama hizmetlerinde saklanıyor.

Ağ ve bağlantı

Sanal makineler kullanır sanal anahtarlara bağlı sanal ağ bağdaştırıcıları Sanal makine yöneticisinde, her sanal makinenin kendi ağ yığını, güvenlik duvarı ve bağımsız yapılandırması bulunur; bu da izolasyonu artırır ancak kaynak tüketimini ve yönetim karmaşıklığını da artırır.

Öte yandan, Windows konteynerleri genellikle şunlara sahiptir: Paylaşılan sanal ağ bağdaştırıcısının izole edilmiş bir görünümüAna bilgisayar güvenlik duvarı paylaşımlıdır ve ağ sanallaştırma düzeyi biraz daha düşüktür, ancak birçok senaryo için yeterlidir. Bu, ek yükü azaltır ve düzinelerce veya yüzlerce konteynerin ana bilgisayar ağını verimli bir şekilde kullanmasına olanak tanır.

  Windows ve Linux'ta dosya türünü belirlemenin hızlı yöntemleri

Konteynerleştirmenin tipik kullanım örnekleri

Windows'ta tam sanallaştırma

Konteynerleştirme, tercih edilen seçenek haline geldi. modern, taşınabilir ve yüksek ölçeklenebilir uygulamalarWindows'ta konteynerler, belirli mimari ve operasyonel kalıplara özellikle iyi uyum sağlar.

Bulut tabanlı uygulamalar

Bulut tabanlı uygulamalar, dinamik, dağıtık ve yüksek düzeyde otomatikleştirilmiş ortamlarda çalışmak üzere tasarlanmıştır. Windows konteynerleri bunu mümkün kılar. Her hizmeti bağımlılıklarıyla birlikte paketleyin. Ve bunu dizüstü bilgisayarınızda, veri merkezinizde veya Azure'da aynı şekilde çalıştırın. Bu, hibrit ve çoklu bulut dağıtımlarını basitleştirir.

Yükün büyük ölçüde değişkenlik gösterdiği senaryolarda (örneğin, mevsimsel yoğunluk yaşayan web uygulamaları veya tek seferlik kampanyalar), şunları yapabilmeniz önemlidir: Konteynerlerin ölçeğini saniyeler içinde artırın veya azaltın. Bu, komple sanal makinelerin birleştirilmesi veya sökülmesine kıyasla önemli bir farktır.

Mikroservis Mimarileri

Mikroservis felsefesi, bir uygulamayı şu şekilde bölmeyi içerir: küçük, bağımsız ve ayrı ayrı konuşlandırılabilir bileşenlerHer bir mikro hizmet, iyi tanımlanmış API'ler sunar ve sistemin geri kalanını etkilemeden güncellenir.

Windows 11'e VirtualBox nasıl kurulur
İlgili makale:
Bilgisayarınıza VirtualBox ve Windows 11 kurulumu için adım adım kapsamlı rehber.

Konteynerler neredeyse aynı mikro hizmetler için doğal araçHer servis kendi konteynerinde çalışır, yüküne göre bağımsız olarak ölçeklenebilir ve tüm bir sanal makineyi "başlatmaya" veya "kapatmaya" gerek kalmadan kademeli olarak dağıtılabilir. Bu, geliştirme çevikliğini artırır ve değişikliklerin etkisini azaltır.

CI / CD ve DevOps

Sürekli entegrasyon ve dağıtım süreçlerinde ihtiyacınız olan şey şudur: Hızlı bir şekilde kurulup yok edilebilen, tekrarlanabilir ortamlarKonteynerler tam olarak bunu sağlar: üretimde kullandığınız aynı imajlar geliştirme ve test ortamlarında da yeniden kullanılır ve böylece klasik "benim bilgisayarımda çalışıyor" sorunu ortadan kalkar.

Ayrıca, konteynerleştirme, atıkların ele alınması fikriyle de uyumludur. kod olarak altyapıKubernetes, Helm ve Azure AKS dağıtım manifestleri gibi araçlar, istenen durumu tanımlar ve sistem bu duruma doğru yakınsamayı sağlar. Geliştirme ve operasyon ekipleri arasındaki iş birliği, herkesin bildirimsel ve öngörülebilir tanımlamalar üzerinde çalışması sayesinde gelişir.

Hızlı ölçeklendirme ve arızalardan kurtulma

Konteynerleştirmenin öne çıktığı bir diğer alan ise şudur: hızlı başlatma ve minimum kurtarma süreleri gerektiren ortamlarBir kümedeki bir düğüm arızalanırsa, düzenleyici etkilenen konteynerleri aynı imajları kullanarak ve gerekli kalıcı birimleri bağlayarak diğer düğümlerde yeniden başlatır.

Konteynerlerin saniyeler içinde yeniden oluşturulabilmesi, olay kurtarma sürecini daha da sorunlu hale getiriyor. orkestrasyon ve depolama Bu işlem, tüm sistem imajlarını geri yükleyerek birçok uygulamanın kesinti süresini azaltır.

Tam sanallaştırmanın tipik kullanım örnekleri

Konteyner teknolojisinin yükselişine rağmen, ihtiyaç duyduğunuzda hipervizör düzeyinde sanallaştırma hâlâ çok önemlidir. eksiksiz ve iyi yalıtılmış işletim sistemi ortamlarıYa da konteynerler için tasarlanmamış bir yazılımla çalıştığınızda.

Eski uygulamalar ve eski sistemler

Birçok kuruluş, yıllar önce geliştirilmiş ve bağımlı olduğu kritik uygulamaları kullanmaya devam etmektedir. Windows'un belirli sürümleri, sistem kütüphaneleri veya belirli sürücülerBu yazılımı bir konteynere sığacak şekilde yeniden yapılandırmak ekonomik veya teknik olarak mümkün olmayabilir.

Bu durumlarda yapılacak en mantıklı şey çevreyi korumaktır. Windows sanal makineleri Bu, uygulamanın beklediği işletim sistemini aslına sadık bir şekilde kopyalar. Bu sayede, eski yazılımların davranışını değiştirmeden, donanımı yeni platformlara veya hatta buluta "taşıma ve aktarma" yaklaşımlarıyla taşıyabilirsiniz.

Yüksek güvenlik ve uyumluluk ortamları

Öncelik güvenlik ve mevzuata uyumluluk olduğunda—örneğin sağlık, finans veya kamu yönetimi gibi alanlarda—sanallaştırma genellikle tercih edilir çünkü Çekirdek düzeyinde izolasyon daha güçlüdür.Her bir sanal makine, denetçiler ve güvenlik ekipleri için net bir sınır oluşturur.

Bu, konteynerlerin tanım gereği güvensiz olduğu anlamına gelmez, ancak şu anlama gelir ki... Tehdit modeli farklıdır.Son derece hassas iş yükleri için, birçok güvenlik ekibi, kendi politikaları, güvenlik aracıları ve bağımsız kontrolleriyle sanal makine düzeyinde güvenilir etki alanları tanımlamayı daha rahat bulmaktadır.

Birden çok işletim sistemiyle uyumluluk

Altyapınız aynı anda çalıştırmanızı gerektiriyorsa farklı işletim sistemleri —örneğin, Windows ve çeşitli Linux dağıtımları—Sanallaştırma doğal bir seçimdir. Her sanal makinenin kendi konuk işletim sistemi vardır ve bunları aynı fiziksel sunucuda, paylaşılan çekirdek kısıtlamaları olmadan özgürce birleştirebilirsiniz.

Konteynerlerle ise, diğer yandan, şunlara bağlı kalırsınız: ana bilgisayar çekirdek türüWindows sunucuda Windows kapsayıcıları, Linux sunucuda ise Linux kapsayıcıları çalıştırırsınız. Başka bir katman eklemeden (örneğin, Hyper-V üzerinde bir Linux sanal makinesi ve bu sanal makine üzerinde kapsayıcılar) aynı sunucuda yerel bir Linux kapsayıcısını Windows çekirdeğiyle birlikte kullanamazsınız.

Kaynakların ve altyapı yönetiminin birleştirilmesi

Sanallaştırma şu amaçla doğdu: fiziksel donanımı daha iyi kullanmakÖnceden birçok ayrı makinede bulunan işlemleri tek bir sunucuya taşıyarak gerçekleştirildi. Bugün de hizmetlerin birleştirilmesi, fiziksel sunucu sayısının azaltılması, enerji tasarrufu ve veri merkezi yönetiminin basitleştirilmesi açısından oldukça kullanışlıdır.

System Center Virtual Machine Manager, Windows Admin Center veya üçüncü taraf çözümler gibi araçlar, şunlara olanak tanır: Sanal makine tedarikini otomatikleştirin, kümeleri yönetin ve canlı geçişler gerçekleştirin. ve kaynakların ve SLA'ların çok hassas kontrolüyle büyük sanal sunucu çiftliklerini yönetmek.

  Windows'ta yetkileri bozmadan bir grubun adını nasıl değiştirebilirsiniz?

IaaS ve PaaS'te konteynerleştirme ve sanallaştırma karşılaştırması

Bulut ortamında, konteynerler ve sanal makineler arasındaki fark, modelleri karşılaştırdığınızda açıkça görülmektedir. Hizmet Olarak Altyapı (IaaS) ve Hizmet Olarak Platform (PaaS)Her ikisi de sanallaştırma ve konteynerleştirmeye dayanıyor, ancak farklı katmanlarda.

Tipik IaaS senaryoları

IaaS'te sağlayıcı size şunları sunar: sanal makineler "neredeyse çıplak" Temel bir işletim sistemiyle, gerisini siz halledersiniz. Bu, şunlar için idealdir:

  • Bulutta birden fazla işletim sistemi barındırma: Farklı Windows veya Linux sistemlerinde, ayrı ön üretim ve üretim ortamlarında vb. test yapılması.
  • Eski sistemleri "lift-and-shift" yöntemiyle yeni sisteme geçirme: Uygulamayı yeniden yazmadan sanal makineleri Azure'a veya başka bir buluta taşıyın.
  • Son derece özelleştirilmiş altyapılar inşa etmek: Ağ, depolama, güvenlik politikaları vb. üzerinde tam kontrol.
  • Sanal makine düzeyinde felaket kurtarma stratejileri tasarlayın: Makine çoğaltılması, tüm sunucu ortamının arıza durumunda devralınması.

Tüm bu durumlarda, asıl odak noktası şudur: hipervizör düzeyinde sanallaştırmaKonteynerler mevcut olabilir, ancak bunlar sanal makineler içinde kendinizin yönettiği en üst katman olarak yer alır.

Tipik PaaS senaryoları

PaaS'ta ise sağlayıcı altyapının büyük bir kısmını soyutlayarak size sunar. uygulama dağıtımına odaklanan platformlarBurada konteynerleştirme kilit önem taşıyor: birçok PaaS platformu, faaliyetlerini tam olarak sağlayıcı tarafından yönetilen konteynerler üzerine kuruyor.

Bazı tipik kullanım alanları şunlardır:

  • Bulut tabanlı uygulamalar oluşturun ve dağıtın. Altta yatan sanal makineler hakkında endişelenmeden.
  • Mikro hizmetler geliştirin Entegre orkestrasyon araçları, ölçümler ve otomatik ölçeklendirme ile.
  • CI/CD'yi otomatikleştirin Burada her commit işlemi, otomatik olarak dağıtılan yeni bir konteyner imajı oluşturur.
  • Hızlı prototipleme Veritabanları, kuyruklar, önbellekler ve diğer yönetilen hizmetler tarafından desteklenen yeni fikirler.

Bu modelde odak noktanız daha çok şuna yöneliktir: konteyner imajlarını, yapılandırmaları ve işlem hatlarını tanımlayın Sanal makineleri, sistem yamalarını veya hipervizörleri yönetmekten daha fazla.

Konteynerler ve sanallaştırma birlikte: bu bir "ya o ya bu" durumu değil.

Yaygın bir yanılgı, seçim yapmak zorunda olduğunuzu düşünmektir. konteynerler veya hipervizörler arasında Sadece bulut bilişim veya kendi sunucularında barındırma konusunda ciddi olan çoğu kuruluş, sonunda her ikisini de kullanıyor.

En yaygın yöntem, konuşlandırmayı içerir. sanal makineler içindeki konteynerlerSanal makineler güçlü izolasyon, net hata alanları, altyapı araçlarıyla entegrasyon ve uyumluluk sağlar. Konteynerler ise uygulama katmanına hız, ince ölçeklenebilirlik ve taşınabilirlik katar.

Bu, örneğin Hyper-V, Proxmox veya Nutanix üzerinde bir Windows sanal makine çiftliği çalıştırmayı ve bunların içinde uygulamalar çalıştırmayı mümkün kılar. Kubernetes veya Docker kümeleri Konteynerleştirilmiş uygulamalarla. Bu, sanal makineleri sunucular arasında taşımanıza, canlı geçişler gerçekleştirmenize, standart sanal makine yedeklemelerini korumanıza ve mikro hizmetlerinizi dinamik olarak ölçeklendirmenize olanak tanır.

Windows'ta sanal makineler yerine konteyner kullanmak ne zaman tercih edilir?

Teoriyi pratiğe dökecek olursak, Windows'ta şu durumlarda bazı gereksinimler ortaya çıkar: Tamamen sanallaştırmaya kıyasla konteyner kullanmak çok daha mantıklı.:

  • Modern, bulut tabanlı uygulamalar geliştirdiğinizde Ya da farklı ortamlarda (şirket içi ve bulut) sürprizlerle karşılaşmadan dağıtmanız gereken web hizmetleri.
  • Mikro hizmetlerle çalışırken Ayrıca küçük bileşenleri bağımsız olarak dağıtmanız, bazılarını diğerlerinden daha fazla ölçeklendirmeniz ve tüm platformu sürekli olarak güncellemeniz gerekiyor.
  • Başlangıç ​​süresi ve esnekliğin kritik olduğu durumlardaÖrneğin, yoğun trafik artışlarını absorbe etmek veya yoğun olmayan saatlerde kaynakları azaltmak için, sanal makinelerde ağır işlemlere bağımlı kalmadan.
  • DevOps ve CI/CD'yi ciddiye aldığınızdaGeliştirme, test ve üretim ortamlarının kodla tanımlanmış ve saniyeler içinde yeniden üretilebilir şekilde olabildiğince özdeş olmasını istersiniz.
  • Maksimum kaynak verimliliğine ihtiyaç duyduğunuzda Windows işletim sistemine sahip bir sunucuda: Benzer hizmetlerin onlarca veya yüzlerce örneğini çalıştıracaksanız, her bir varyant için ayrı bir sanal makine kurmaktansa bunları konteyner haline getirmek çok daha uygun maliyetlidir.
  • Önceliğiniz uygulama taşınabilirliği olduğunda Sadece işletim sisteminden daha fazlası: Aynı konteyner imajını Windows konteynerleriyle uyumlu herhangi bir ortama taşıyabilmekle ilgileniyorsunuz.

Ancak, eğer durumunuz bu durumlardan birine daha uygunsa, sanal makinelerle sanallaştırma, saf konteynerlerden daha uygun olabilir: Değiştirilmesi zor olan eski uygulamalar, aşırı güvenlik gereksinimleri ve aynı sunucuda birçok farklı işletim sisteminin bir arada kullanılması gerekliliği. veya Windows konteynerleştirme sınırlamalarıyla çatışan çok derin işletim sistemi bağımlılıkları.

Son değerlendirmeler

Yukarıda belirtilenlerin tümü göz önüne alındığında, gerçek karar nadiren siyah beyazdır: modern Windows ortamlarında, genellikle en iyi sonucu veren şey karma bir stratejidir. Sanal makineler, güçlü izolasyon, eski sistem yükleri ve yüksek düzeyde düzenlemeye tabi sistemler için ayrılmıştır.Hız, taşınabilirlik, hassas ölçeklendirme ve hızlı geliştirme döngüleri gerektiren her şeyi konteynerlerde dağıtırken.

Windows 10 ücretsiz güvenlik güncellemeleri alacak
İlgili makale:
Windows 10 ücretsiz güvenlik güncelleştirmelerine sahip olacak: Hangi değişiklikler, bunları nereden ve nasıl edinebilirsiniz?

Sonuç olarak, konteynerler ve sanallaştırma birbirleriyle rekabet etmekten ziyade birbirlerini tamamlıyorlar ve her birinin hangi alanlarda üstün olduğunu bilmek, verimli, güvenli ve büyümeye hazır altyapılar tasarlamanıza olanak tanıyor. Bilgiyi paylaşın, böylece diğer kullanıcılar da konu hakkında bilgi sahibi olsunlar.