W 2013 roku Nvidia postanowiła umożliwić graczom dostęp do najwyższej klasy gier na sprzęcie najwyższej jakości bez konieczności wydawania fortuny na komputer do gier. W ten sposób powstał GeForce NOW — platforma umożliwiająca grę na komputerach z szybkim GPU umieszczonych w chmurze, dostępnych dla użytkowników z całego świata. GeForce NOW zdobyło ogromną popularność i obecnie może pochwalić się bazą 25 milionów subskrybentów. Pomimo tej popularności, Nvidia musiała zmierzyć się z wyzwaniem, jakim było skalowanie tej usługi na dużą skalę.
Skalowanie GeForce NOW — Wyzwania Technologiczne
Początkowa architektura platformy GeForce NOW opierała się na maszynach wirtualnych (VM), co w pewnym momencie zaczęło sprawiać problemy. Choć Nvidia preferuje nowoczesne technologie IT, początkowa wersja platformy była oparta nie na kontenerach Linux, a właśnie na maszynach wirtualnych, które nie są tak elastyczne, jeśli chodzi o szybkie skalowanie w górę i w dół. Skalowanie takiej usługi jest idealnym przypadkiem użycia dla kontenerów zarządzanych przez Kubernetes, ale Nvidia musiała znaleźć sposób na połączenie obu technologii — maszyn wirtualnych i kontenerów — w jeden zintegrowany ekosystem.
Wprowadzenie KubeVirt
Tutaj na scenę wchodzi KubeVirt, otwartoźródłowa platforma umożliwiająca uruchamianie zarówno kontenerów, jak i maszyn wirtualnych w środowisku lokalnym lub w chmurze. KubeVirt pozwala na zarządzanie maszynami wirtualnymi z poziomu oprogramowania do zarządzania Kubernetes, co umożliwia zespołom IT zarządzanie zarówno kontenerami, jak i maszynami wirtualnymi przy użyciu tych samych narzędzi.
KubeVirt umieszcza maszynę wirtualną wewnątrz kontenera Linux, co oznacza, że można nimi zarządzać tak samo, jak innymi zasobami kontenerowymi. Platforma zapewnia pełną funkcjonalność maszyn wirtualnych, w tym snapshoty, migracje na żywo, wtykanie i wyjmowanie pamięci, dostęp do wielkiej pamięci (huge pages) oraz wirtualne sieci i magazyn danych.
Jak Nvidia Skaluje Usługi z KubeVirt
Nvidia musiała sprostać oczekiwaniom tysięcy graczy, którzy oczekiwali doświadczenia porównywalnego do gry na komputerze stacjonarnym, mimo że korzystali z usługi w chmurze. Na konferencji KubeCon w Paryżu w 2024 roku, przedstawiciele Nvidii, Ryan Hallisey i Alay Patel, zaprezentowali benchmarki wydajności KubeVirt, pokazując, jak społeczność open-source zwiększyła wydajność tej platformy. Nvidia poszukiwała sposobu na przejście do bardziej zwinnej, opartej na mikroserwisach architektury, jednocześnie nie rezygnując całkowicie z dotychczasowych inwestycji w maszyny wirtualne.
Hallisey powiedział: „Jak zrobić to, nie porzucając naszych dotychczasowych inwestycji? Tutaj pojawiła się koncepcja adopcji KubeVirt. Następna generacja infrastruktury GeForce NOW bazuje na KubeVirt i Kubernetesie”.
Zarządzanie i Automatyzacja Infrastrukturą Maszyn Wirtualnych na KubeVirt
KubeVirt działa jako warstwa hostingowa dla maszyn wirtualnych w środowisku Kubernetes, natomiast dodatkowe narzędzia zapewniają automatyzację i zarządzanie. Ansible to jedno z doskonałych narzędzi automatyzacyjnych dla KubeVirt, podobnie jak GitOps, który pozwala na utrzymanie stanu klastrów w repozytorium Git.
Migracja istniejących obciążeń z innych platform wirtualizacyjnych do KubeVirt jest również możliwa dzięki projektowi open-source o nazwie Konveyor Forklift, który pozwala na płynne przenoszenie maszyn wirtualnych do ekosystemu KubeVirt.
Aktywna Społeczność i Przyszłość KubeVirt
Społeczność open-source wokół KubeVirt jest bardzo aktywna. Na konferencji DevConf w czerwcu 2024 roku Lee Yarwood z Red Hat omówił aktualny stan tworzenia maszyn wirtualnych na KubeVirt, a w trakcie Cloud Native Rejekts 2023, Shane Kumpf z Cloudera zaprezentował, jak firma przeszła na infrastrukturę hiperzbieżną opartą na KubeVirt. Jeśli jesteś zainteresowany tą technologią, warto dołączyć do społeczności KubeVirt i śledzić jej rozwój.
Podsumowanie
KubeVirt umożliwia współistnienie maszyn wirtualnych i kontenerów na jednej platformie, zarządzanej za pomocą standardowych narzędzi Kubernetes. Dzięki skalowalności i elastyczności, KubeVirt jest idealnym rozwiązaniem dla firm, które chcą migrować swoje istniejące obciążenia do bardziej nowoczesnych, kontenerowych ekosystemów, jednocześnie zachowując pełną funkcjonalność maszyn wirtualnych.
Migracja obciążeń z innych platform wirtualizacyjnych do KubeVirt może rozpocząć się dzięki narzędziu Konveyor, a zarządzanie i automatyzacja mogą być realizowane przy użyciu Ansible lub GitOps. KubeVirt oferuje pełne wsparcie dla standardowych funkcji maszyn wirtualnych, a także szerokie możliwości skalowania wydajności na dużą skalę, co czyni go godnym uwagi rozwiązaniem w kontekście współczesnych wyzwań technologicznych.