Porównanie kontenerów z maszynami wirtualnymi

Ukończone

Wirtualizacja sprzętu umożliwia jednoczesne uruchamianie wielu izolowanych wystąpień systemów operacyjnych na tym samym sprzęcie fizycznym. Kontenery reprezentują kolejny etap wirtualizacji zasobów obliczeniowych.

Wirtualizacja oparta na kontenerach umożliwia wirtualizację systemu operacyjnego. Takie podejście umożliwia uruchamianie wielu aplikacji w tym samym wystąpieniu systemu operacyjnego przy zachowaniu izolacji między aplikacjami. Kontenery na maszynie wirtualnej zapewniają funkcje podobne do tych maszyn wirtualnych na serwerze fizycznym.

Informacje o kontenerach a maszynach wirtualnych

Aby lepiej zrozumieć wirtualizację opartą na kontenerach, porównajmy kontenery i maszyny wirtualne.

Compare Kontenery Maszyny wirtualne
Izolacja Kontener zwykle zapewnia uproszczoną izolację od hosta i innych kontenerów, ale kontener nie zapewnia tak silnej granicy zabezpieczeń jak maszyna wirtualna. Maszyna wirtualna zapewnia pełną izolację od systemu operacyjnego hosta i innych maszyn wirtualnych. Ta separacja jest przydatna, gdy silna granica zabezpieczeń ma kluczowe znaczenie, takie jak hostowanie aplikacji od konkurencyjnych firm na tym samym serwerze lub klastrze.
System operacyjny Kontenery uruchamiają część systemu operacyjnego w trybie użytkownika i można je dostosować tak, aby zawierały tylko potrzebne usługi dla aplikacji. Takie podejście ułatwia korzystanie z mniejszej liczby zasobów systemowych. Maszyny wirtualne uruchamiają kompletny system operacyjny, w tym jądro, które wymaga większej ilości zasobów systemowych (procesora CPU, pamięci i magazynu).
Wdrożenie Poszczególne kontenery można wdrożyć przy użyciu platformy Docker za pośrednictwem wiersza polecenia. Wiele kontenerów można wdrożyć przy użyciu orkiestratora, takiego jak usługa Azure Kubernetes Service. Poszczególne maszyny wirtualne można wdrożyć przy użyciu programu Windows Administracja Center lub Menedżera funkcji Hyper-V. Można wdrożyć wiele maszyn wirtualnych przy użyciu programu PowerShell lub programu System Center Virtual Machine Manager.
Magazyn trwały Kontenery używają dysków platformy Azure dla magazynu lokalnego dla jednego węzła lub usługi Azure Files (udziałów SMB) dla magazynu współużytkowanego przez wiele węzłów lub serwerów. Maszyny wirtualne używają wirtualnego dysku twardego (VHD) dla magazynu lokalnego dla jednej maszyny lub udziału plików SMB dla magazynu współużytkowanego przez wiele serwerów.
Odporność na uszkodzenia Jeśli węzeł klastra ulegnie awarii, wszystkie kontenery uruchomione w węźle zostaną szybko odtworzone przez koordynatora w innym węźle klastra. Maszyny wirtualne mogą przejść w tryb failover na inny serwer w klastrze, gdzie system operacyjny maszyny wirtualnej jest uruchamiany ponownie na nowym serwerze.

Kwestie do rozważenia podczas korzystania z kontenerów

Kontenery oferują kilka zalet w porównaniu z maszynami fizycznymi i wirtualnymi. Zapoznaj się z poniższymi korzyściami i zastanów się, jak można zaimplementować kontenery dla aplikacji wewnętrznych w firmie.

  • Rozważ elastyczność i szybkość. Uzyskaj większą elastyczność i szybkość podczas tworzenia i udostępniania kodu aplikacji konteneryzowanej.

  • Rozważ przetestowanie. Wybierz kontenery dla konfiguracji, aby umożliwić uproszczone testowanie aplikacji.

  • Rozważ wdrożenie aplikacji. Zaimplementuj kontenery w celu uzyskania usprawnionego i przyspieszonego wdrażania aplikacji.

  • Rozważ gęstość obciążenia. Obsługa większej gęstości obciążeń i ulepszanie wykorzystania zasobów przez pracę z kontenerami.

Omówienie obrazów kontenerów

Wszystkie kontenery są tworzone na podstawie obrazów kontenerów. Obraz kontenera to lekki, autonomiczny, wykonywalny pakiet oprogramowania, który hermetyzuje wszystkie elementy potrzebne do uruchomienia aplikacji. W jego skład wchodzi następujący element:

  • Kod: kod źródłowy aplikacji.
  • Środowisko uruchomieniowe: środowisko wymagane do wykonania aplikacji.
  • Narzędzia systemowe: narzędzia niezbędne do działania aplikacji.
  • Biblioteki systemowe: biblioteki udostępnione używane przez aplikację.
  • Ustawienia: Parametry konfiguracji specyficzne dla aplikacji.

Podczas tworzenia obrazu kontenera staje się to przenośna jednostka, która może działać spójnie w różnych środowiskach obliczeniowych. Te obrazy to bloki konstrukcyjne kontenerów, które są wystąpieniami tych obrazów uruchomionych w czasie wykonywania.