Czym jest maszyna wirtualna? #
Maszyna wirtualna (virtual machine, VM) to symulacja fizycznego serwera – poprzez podzielenie i wykorzystanie zasobów maszyny fizycznej (host) można stworzyć środowiska, które interpretowane są jako oddzielne maszyny (guests).
Zasady działania VM #
Zasada działania maszyn wirtualnych opiera się na hypervisorze. Hypervisor to oprogramowanie, które umożliwia podzielenie komputera na hosts – fizyczne maszyny, oraz quests – maszyny wirtualne. Hypervisor traktuje zasoby obliczeniowe (np. procesor, pamięć RAM) jako pulę, którą może rozdzielić między maszynami wirtualnymi.
Główne korzyści z VM #
Oszczędność kosztów #
Przed wprowadzeniem wirtualizacji pojedynczą maszynę fizyczną wykorzystywano do jednego zadania, bądź wynajmowano ją dla jednej firmy. Prowadziło to często do sytuacji, w których zasoby maszyny nie były w pełni wykorzystywane. Przykładowo, programy, które uruchamiał na niej klient korzystały jedynie z małej części mocy obliczeniowej serwera.
W takich przypadkach maszyny wirtualne stanową idealne rozwiązanie, gdyż pozwalają na uruchomienie wielu środowisk wirtualnych na jednej maszynie. Dzięki temu zasoby serwera są użytkowane w całości.
Migracja #
Wielką zaletą maszyn wirtualnych jest możliwość przeprowadzania migracji pamięci (storage migration) oraz migracji na żywo (live migration, nazywana też hot migration). Podczas takich procesów migracji, maszyna nie przestaje pracować, więc idealnie wpisują się w ideę Business Continuity.
Storage migration pozwala na migrację systemu plików z jednego systemu pamięci masowej do drugiego, natomiast live migration to przeniesienie maszyny na nowego hosta oraz (opcjonalnie) dysków lub folderu maszyny wirtualnej do innego magazynu danych.
Skalowalność #
Jeśli nie korzystamy z VM, w razie braku zasobów musimy dodać nowe komponenty do fizycznej maszyny. Jest to jednak rozwiązanie nieoptymalne, prowadzące do dłuższych przerw w działaniu usług. Maszyny wirtualne znacznie ułatwiają proces skalowania, poprzez możliwość dynamicznego rozszerzania parametrów maszyny wirtualnej – np. CPU czy pamięci RAM.
Trzeba jednak pamiętać, że VM pracują na fizycznym sprzęcie, więc w pewnym momencie zasobów również może zabraknąć. W takim wypadku maszyny wirtualne umożliwiają dołożenie kolejnego hosta do klastra klienta. Jest to rozwiązanie o tyle wygodne, że wszystkie maszyny wirtualne mogą podczas całego procesu pracować bez przerw.
Elastyczność #
Przystosowanie maszyn wirtualnych do wielu systemów operacyjnych umożliwia korzystanie z programów, które wymagają starszego OS. Rozwiązaniem tego problemu bez użycia VM byłaby migracja całego systemu do starszej wersji. Jest to jednak nieoptymalne i może doprowadzić do sytuacji, w której inne usługi korzystające z nowszych wersji systemu będą dla nas niedostępne.
Zastosowanie VM w biznesie #
W jakich obszarach działalności biznesowej korzysta się z maszyn wirtualnych? Poniżej znajduje się kilka przykładów z różnych branż:
- Księgowość – maszyny wirtualne izolują dane, zwiększając bezpieczeństwo informacji finansowych.
- Przetwarzanie danych – VM umożliwiają stworzenie izolowanych środowisk do analizy, edycji i przechowywania danych. Dzięki nim można też dostosowywać zasoby, skalować środowiska oraz szybko przywracać wcześniejsze stany systemu.
- Tworzenie aplikacji (Kubernetes, Docker) – maszyny wirtualne są używane do tworzenia odizolowanych środowisk testowych. Pozwalają testować aplikacje w kontrolowanych warunkach – na różnych systemach operacyjnych i w dowolnej konfiguracji.
- Sklepy internetowe – VM pozwalają na dynamiczne skalowanie zasobów serwera w momentach wzmożonego ruchu, jak i na balansowanie tego ruchu.
- Logistyka – maszyny wirtualne umożliwiają utrzymanie ciągłości działania systemów IT, co jest kluczową kwestią w tej branży. Ponadto ważną cechą VM w kontekście logistyki jest dynamiczne przydzielanie zasobów.
- Sprawdź chmurę dla logistyki
- Streaming wideo i muzyki – podobnie jak w przypadku sklepów internetowych, dynamiczne zwiększanie lub zmniejszanie zasobów pomaga poradzić sobie ze wzmożonym ruchem.
Przechowywanie dokumentów – maszyny wirtualne umożliwiają tworzenie odizolowanych środowisk, a elastyczne zarządzanie zasobami pozwala na szybkie zwiększenie przestrzeni dysku na potrzeby rosnącej liczby dokumentów.
Maszyny wirtualne – dla kogo? #
Warto zainteresować się rozwiązaniem, jakim są maszyny wirtualne, jeżeli:
- Chcesz optymalizować koszty – osiągniesz to poprzez optymalne wykorzystanie przydzielonych zasobów oraz dowolne zwiększanie oraz zmniejszanie ich według Twoich potrzeb.
- Zależy Ci na stałym dostępie do usług – korzystanie maszyn wirtualnych ułatwia zabezpieczenie się przed awariami. W przypadku awarii maszyny fizycznej, ulokowana na niej usługa nie będzie działać, dopóki maszyna nie zostanie naprawiona. W przypadku VM przeniesie się ona na inny klaster, dzięki czemu czas przestoju (downtime) będzie bardzo krótki.
- Posiadasz szybko rozwijającą się firmę – chmura pozwala na łatwe rozszerzanie środowisk IT.
- Pracujesz z różnych miejsc na całym świecie – rozwiązanie to zapewnia dostęp do wszystkich Twoich danych z każdego miejsca na świecie, jeżeli tylko masz połączenie z Internetem.
Czym jest bare metal? #
Bare metal jest technologią starszą od maszyn wirtualnych, jednak w zależności od potrzeb klienta może być rozwiązaniem optymalnym.
Bare metal, nazywany również serwerem dedykowanym, to fizyczny serwer, który przydzielony jest tylko do jednego klienta. Jego największą zaletą jest właśnie to, że zasoby serwera nie są dzielone pomiędzy różnymi klientami. Jest to ważne, ponieważ przy podziale, nawet pomimo użyciam load balancingu może wystąpić noisy neighbourhood effect.
Kolejną zaletą bare metalu jest szersza możliwość adaptacji urządzenia pod potrzeby klienta – jeżeli priorytetem jest bezpieczeństwo, bare metal wygrywa z maszynami wirtualnymi przez brak konieczności użycia hypervisora. Jeżeli jednak istnieje taka potrzeba, można go użyć.
Czym jest konteneryzacja? #
Kontenery to samodzielne pakiety oprogramowania, zawierające wszystkie komponenty niezbędne do uruchomienia aplikacji: kod źródłowy, środowisko uruchomieniowe, narzędzia i biblioteki systemowe oraz pliki konfiguracyjne.
Taka budowa pozwala na łatwe przenoszenie kontenerów między dowolnymi środowiskami, a także wydajne wykorzystywanie sprzętu fizycznego – a co za tym idzie oszczędności.
Kontenery należy omówić przy opisywaniu maszyn wirtualnych, ponieważ we współczesnych środowiskach te dwie technologie ze sobą współpracują.
Rodzaje kontenerów #
Najpopularniejsze sposoby wykorzystania technologii konteneryzacji to:
- Kontenery systemowe – podobnie jak VM oferują środowisko określonego systemu operacyjnego razem z zainstalowanymi bibliotekami oraz narzędziami. Tak jak systemy na maszynach wirtualnych mają za zadanie działać przez dłuższy okres.
- Kontenery aplikacyjne – służą do uruchomienia określonej aplikacji lub fragmentu aplikacji w przypadku architektury mikroserwisowej. W przypadku tych kontenerów instancja jest chwilowa. Przy nowym wdrożeniu obraz aplikacji zmieni się i wdrażany jest nowy kontener, a poprzedni kasowany.
Współpraca maszyn wirtualnych i kontenerów #
Pomimo tego, że kontenery oraz maszyny wirtualne służą do podobnych celów i oferują podobne korzyści, współpraca między nimi jest możliwa. Co więcej, maszyny wirtualne są idealnym miejscem na instalację oprogramowania służącego do konteneryzacji. Jako że kontenery nie wymagają oddzielnego systemu operacyjnego, każdy z nich potrzebuje o wiele mniej zasobów od VM. Takie połączenie zapewnia wiele korzyści, takich jak:
- Zwiększenie izolacji i bezpieczeństwa – połączenie maszyn wirtualnych i kontenerów może zwiększyć bezpieczeństwo środowiska poprzez izolację zasobów. Kontenery umożliwiają izolację aplikacji, a maszyny wirtualne zapewniają separację na poziomie systemu operacyjnego. Kombinacja obu pozwala na lepszą kontrolę nad zasobami oraz izolację potencjalnych zagrożeń, co przekłada się na wzrost ogólnej odporności na ataki i błędy. Taka konfiguracja nie zapewnia jednak pełnej ochrony – środowisko dalej będzie podatne np. na ataki wirusów.
- Oszczędność zasobów – w miejscu, gdzie do wykonania danego zadania nie jest potrzebne tworzenie kolejnej maszyny wirtualnej, można wykorzystać kontenery. Znacząco obniża to wymagania sprzętowe naszej infrastruktury.
- Prędkość działania i Business Continuity – jako że czas włączania się kontenerów jest znacząco krótszy od maszyn wirtualnych, minimalizują one okres, w którym usługa jest wyłączona. Ponowne włączenie maszyny wirtualnej może zająć nawet kilka minut, co jest niedopuszczalne w wielu firmach.
Narzędzia do wirtualizacji #
Przykładowe narzędzia Enterprise służące do wirtualizacji to:
- VMware,
- OpenStack,
- Citrix,
- Hyper-V,
- Proxmox,
- KVM.
Dlaczego wybraliśmy VMware? #
Wybór oprogramowania VMware wiąże się z wieloma korzyściami. Oto kilka powodów, cech i funkcjonalności, które przemawiają za tym sposobem na wirtualizację:
- VMware vSphere Storage APIs – Data Protection – jest to następna generacja struktury ochrony danych VMware, która umożliwia produktom do tworzenia backupu wykonywanie scentralizowanych, wydajnych, niezależnych od sieci LAN poza hostem kopii zapasowych maszyn wirtualnych vSphere.
- VMware Site Recovery Manager – rozwiązanie, które umożliwia automatyzację oraz zarządzanie procesem odtwarzania infrastruktury IT po awarii. SRM pozwala szybko przywrócić działanie aplikacji i usług poprzez replikację wirtualnych maszyn między lokalizacjami. Tym samym zapewnia ciągłość biznesową i minimalizuje przestoje w działaniu systemów.
- VMware vSphere High Availability – automatyzuje ponowne uruchomienie maszyn wirtualnych i hostów vSphere w przypadku awarii serwera lub systemu operacyjnego wykrytych w środowisku vSphere.
- Monitoruje wszystkie hosty VMware vSphere i maszyny wirtualne w klastrze vSphere.
- Zapewnia wysoką dostępność większości aplikacji działających na maszynach wirtualnych, niezależnie od systemu operacyjnego.
VMware NSX – jest to platforma, która umożliwia tworzenie, zarządzanie i zabezpieczanie sieci wirtualnych w środowiskach Data Center.
VMware Tanzu – Narzędzie dzielące się na 3 sektory:
- VMware Tanzu Kubernetes Grid – pomaga instalować i uruchamiać środowiska Kubernetes na dowolnie wybranej infrastrukturze IT.
- VMware Tanzu Mission Control – umożliwia zarządzanie klastrami Kubernetes za pośrednictwem interfejsów API.
- VMware Tanzu Application Catalog – katalog zawierający oprogramowanie Open Source i aplikacje gotowe do wykorzystania w środowiskach produkcyjnych aplikacje.
VMware vCloud – platforma do budowy, zarządzania i dostarczania usług chmurowych opartych na wirtualizacji. Oto kilka najważniejszych funkcjonalności VMware vCloud:
- Wirtualizacja zasobów – vCloud umożliwia wirtualizację zasobów sprzętowych, co pozwala na elastyczne zarzadzanie infrastrukturą IT oraz dynamiczne alokowanie zasobów w chmurze,
- Zarządzanie zasobami – vCloud Director daje użytkownikom końcowym możliwość zarządzania wyizolowanym fragmentem infrastruktury współdzielonej. Jest to funkcjonalność szczególnie doceniana przeznaszych klientów, ponieważ zapewnia im dedykowany panel do zarządzania swoim środowiskiem.
- Zarządzanie wieloma chmurami – vCloud umożliwia zarządzanie wieloma chmurami (Virtual Data Center) z jednego centralnego punktu kontrolnego, co ułatwia skalowanie i optymalizację infrastruktury chmurowej.
Nie spotkałeś się nigdy z vCloud? Nie martw się, przygotowaliśmy dla Ciebie poradnik wideo, jak zarządzać swoim środowiskiem w tym oprogramowaniu.
Przykłady zastosowań VM w biznesie #
Chcesz dowiedzieć się, jak inne firmy stosują chmurę w praktyce? Zapoznaj się z przykładami Case Studies naszych klientów, którzy korzystają z maszyn wirtualnych oraz cenią sobie to rozwiązanie.
Jak maszyny wirtualne oferują ciągłość działania usług? #
Dzięki swojej charakterystyce maszyny wirtualne wpisują się w ideę Business Continuity. Oto kilka z ich cech, które mają wpływ na zachowanie ciągłości biznesowej:
- Możliwość tworzenia Snapshotów (migawek) maszyny. Taka funkcjonalność umożliwia „zamrożenie” stanu maszyny, a dzięki temu, pozwala przywrócić jej stan do zapamiętanego wcześniej punktu. Operacja tworzenia migawki nie powoduje przerwy w działaniu usług.
- Elastyczność – backup maszyny wirtualnej można odtworzyć nawet w innej lokacji czy innym centrum danych.
- Maszyny wirtualne ułatwiają skalowalność środowisk. Dzięki nim można je rozszerzać bez zakupu dodatkowych zasobów. Dodatkowo pozwalają lepiej dopasować ilość zasobów do potrzeb – klient może np. poprosić o chwilowe rozszerzenie dysku np. o 10 GB, co w przypadku maszyny fizycznej byłoby praktycznie niemożliwe.
Przyszłość maszyn wirtualnych #
Pomimo tego, że maszyny wirtualne nie są nową technologią, to nadal doskonale sprawdzają się w nowoczesnym IT. VM stały się kluczową częścią środowisk informatycznych, a rynek rozwija się w kierunku łączenia maszyn wirtualnych i innych technologii (np. kontenerów), zamiast wypierania ich przez nowsze technologie. Nie ma wątpliwości, że maszyny wirtualne będą powszechnie używane jeszcze przez długi czas.