Praca na maszynach wirtualnych

Maszyny wirtualne to standard panujący w prawie każdej infrastrukturze IT. Otwiera to nowe rozwiązania i możliwości zarówno dla programistów jak i administratorów. Wirtualizacja znalazła również swoje zastosowanie na stacjach roboczych. Jak z niej korzystać? Czy niesie to ze sobą jakieś korzyści? Czy ta technologia nadaje się tylko do serwerów? W tym wpisie postaram się zapoznać was z pracą na maszynach wirtualnych, czyli z punktu widzenia specjalisty kontenerach, które potrafią nie tylko usprawnić nasze zadania, ale i również zachować stabilność i nieprzerwane działanie.

Maszyny wirtualne na serwerach, w przeważającej części przypadków, odseparowują pracę kluczowych dla biznesu aplikacji tym samym zapewniając im komfortowe warunki i stabilne działanie. Niwelując konflikty zmniejszamy ryzyko zawieszania się systemu. Technologia pozwala również w bardziej efektywny sposób przydzielać zasoby. Dobrze skonfigurowane środowisko nie dopuszcza do sytuacji kiedy maszyny czy aplikacje muszą o nie walczyć. Wirtualizacja pozwoliła zastąpić wiele komputerów fizycznych w jeden, pełni wykorzystywane, stanowisko generująca znacznie niższe koszty w porównaniu do farmy serwerów. Przykładem są chociażby firmy hostingowe oferujące swoje usługi na wynajmowaniu mocy obliczeniowej i powierzchni dyskowej. W tradycyjnym stylu byłoby to po prostu nieopłacalne. Maszyna wirtualna zapewnia pełną separację i gwarantuje, że klient nie wpłynie w żaden sposób na konfigurację infrastruktury dając mu jednocześnie pełną swobodę nad swoimi usługami.

Zdalne stacje robocze

Maszyny wirtualne to nie tylko kontenery serwerowe, ale również stacje robocze wykorzystywane przez użytkowników końcowych. Coraz więcej firm rezygnuje z tradycyjnych komputerów PC zastępując je mini terminalami. Taki terminal wyposażony jest w odpowiednie oprogramowanie służy do łączenia się z zdalnym pulpitem. Zdalny pulpit natomiast jest udostępniany przez maszynę wirtualną lub serwer wirtualizacji. W ten sposób mamy środowisko pracy, do którego możemy łączyć się z każdego miejsca i urządzenia na świecie. Takie rozwiązanie ma oczywiście swoje wady jak i zalety, ale podając ten przykład chciałem przybliżyć możliwości jakie oferuje maszyna wirtualna. Potrafi ona w pełni zastąpić tradycyjny komputer fizyczny.

Idea pracy na maszynach wirtualnych nie powoduje żadnych konfliktów w kwestii współpracy na tym samym urządzeniu. Wyjątkiem mogą być zasoby, które są celowo współdzielone pomiędzy kilkoma maszynami. Zarówno system operacyjny jak i zainstalowane na nim oprogramowanie może już być indywidualną sprawą każdego środowiska. Użytkownicy nie będą odczuwali, że pracują na tym samym komputerze. Rozwiązanie jest jednak bardziej wymagające i nie każdy sprzęt potrafi temu podołać.

Wirtualizacja na stacji roboczej

Do tej pory przytoczone przykłady tyczyły się głównie serwerów. Nie zapominajmy jednak o stacjach roboczych. Wirtualizacja również tutaj znalazła swoją rolę. Do najpopularniejszych należy przede wszystkim wirtualne laboratorium. Nie pierwszy raz spotykam się z sytuacją kiedy podczas wdrożenia czy ogólnie usprawnienia pracy kończyły się całkowitą reinstalacją i liczeniem strat. Odkąd jednak pojawiła się wirtualizacja, wszelkie próby dodania czegoś nowego mogą być wstępnie za symulowane. Prosty przykład. Chcemy wdrożyć nową usługę do serwera plików. Na maszynie wirtualnej możemy ją wstępnie zainstalować. Poznać jej zasadę działania, ale również problemy podczas wdrażania. Możemy również wystawić ją do środowiska produkcyjnego, lecz bez pełnej integracji z infrastrukturą. Sprawdzimy, więc jej wydajność w rzeczywistych warunkach, ale bez wpływu na pracę. Drugi przykład. Firma zleca nam do instalowanie dodatkowego oprogramowania, na którym są już uruchomione pewne usługi. Chcemy przewidzieć co się stanie. Tworzymy zatem maszynę wirtualną lub konwertujemy, albo kopiujemy (jeśli to już jest maszyna wirtualna) i gdzieś w odizolowanej sieci instalujemy oprogramowanie.

Producenci klientów wirtualizacji oferują coraz to większy zakres obsługiwanych systemów operacyjnych w roli gościa (czyli zdolnych do instalacji na maszynie wirtualnej). Daje to większe możliwości symulacji różnych urządzeń, które każde z nich musi sprawdzać się w innej roli. W dobie smartphone, tabletów i Internetu rzeczy popularne stają się też systemy mobilne. A co za tym idzie potrzeba pisania i testowania aplikacji. Tutaj producenci również wypuszczają wersję swoich systemów na architekturę x86, dzięki temu na maszynie wirtualnej możemy stworzyć symulację np. telefonu.

Zróżnicowana praca

Czytając różne artykuły na temat optymalizacji systemów operacyjnych Windows, można wyczytać, że jedną z złotych zasad jest minimalizacja konieczności instalowania oprogramowania. Dla tradycyjnych komputerów nie stanowi to żadnego problemu, ale dla stacji typu All-In-One to poważna przeszkoda. Wyobraźmy sobie sytuację, w której prowadzimy dwa zlecenia. Programistyczne, wymagające środowiska Visual Studio w dwóch różnych konfiguracjach. Bo i takie sytuacje się zdarzają. Zainstalowanie tego wszystkiego na jednym systemie tak, aby działało to bez zarzutu graniczy z cudem. Tym bardziej, że czasami musimy doinstalowywać ciężkie komponenty, które dodatkowo zabierają moc obliczeniową, szczególnie gdy pracujemy nad tym drugim projektem. W takich właśnie sytuacjach preferuję maszyny wirtualne. Tworzymy dwie. Na każdej z nich tworzymy to co jest nam w danym zleceniu potrzebne. Dostosowane środowiska na czystym systemie operacyjnym działają znacznie sprawniej i stabilniej. Oprócz tego gdyby przydarzyło nam się pracować na obydwóch jednocześnie to mamy gwarancję, że żadne z nich nie będzie opóźniać oraz wstrzymywać pracę.

Bardzo dość istotną cechą dla tego trybu jest też bezpieczeństwo. Pracując na wirtualnych kontenerach zmniejszamy obszar ataku. Niektóre maszyny wirtualne nie muszą mieć połączenia z siecią lub internetem, a wymiana plików może odbywać się z systemem gospodarza (system, na którym pracuję oprogramowanie do wirtualizacji). Wiele klientów wirtualizacji pozwala też na tworzenie wewnętrznych, odseparowanych sieci, w której komunikują się tylko maszyny wirtualne. Mogą mieć zablokowany dostęp do Internetu. Z kolei dyski wirtualne można szyfrować tak jak fizyczne. Dostęp do nich uzyskiwać z poziomu maszyny wirtualnej. Bezpieczeństwo to dość istotne zagadnienie szczególnie dla stanowisk, które przechowują wrażliwe dane.

Przenoszalność

Zagadnienie bardziej doceniane w środowiskach serwerowych, ale zdarzają się również sytuację kiedy maszyną wirtualną musimy podzielić się z kimś innym lub przenieść na przykład na laptopa. Przenoszenie programów czy ich konfiguracji z jednego na drugi system stanowi dość spore wyzwanie, szczególnie przy bardziej rozbudowanych środowiskach. Tego sposobu oczywiście nie preferuje. Jest czasochłonne i mało skuteczne. Zawsze znajdzie się coś czego zabrakło. Maszyny wirtualne w tych kwestiach zdecydowanie królują. Chodź do ich obsługi potrzebny jest nieco mocniejszy komputer. Dla starszych pozostaje pulpit zdalny z poziomu systemu maszyny lub gospodarza. Przykładów sytuacji, gdzie potrzebna była ta cecha mam bardzo mało, ale ostatnio spotkałem się z jedną. Oczywiście dotyczy to środowiska programistycznego. A konkretnie Java NetBeans. Na stacji musiałem przygotować maszynę oraz zainstalować na niej odpowiednie oprogramowanie. Związku z tym, że było to bardziej edukacyjne i dostosowane środowisko, nie chciałem niepotrzebnie zaśmiecać fizycznego systemu. Maszynę przerzucam na laptopa, ponieważ na zajęciach korzystamy z niej. Sprowadza się to jednak głównie do prostych rzeczy jak doinstalowanie dodatkowych bibliotek, konfiguracja środowiska itd. Gdy wracam do domu przenoszę maszynę z powrotem na stację roboczą, gdzie mogę na niej odrabiać pracę domową. Przykład może głupi, ale za to prosty.

Cechy przenoszalności przydają się również wśród specjalistów IT, którzy maszyny wirtualne przygotowują na swoich stacjach roboczych, a potem wdrażają je na serwerach. W Internecie dostępne są również portale, które oferują gotowe maszyny z konkretnie zainstalowanym oprogramowaniem takie jak TurnKey Linux czy VMware Solution Exchange. Dzięki nim możemy stawiać mini kontenery z np. Bazą danych MySQL czy narzędziami do monitorowania sieci. Bez konieczności konfiguracji. Bardzo często przydaje się to do środowisk testowych, czyli wtedy kiedy nie mamy zbytnio czasu na konfigurowanie.

Podsumowanie

Tego typu technikę pracy polecam wszystkim, którzy czują potrzebę wprowadzenia usprawnień w swojej codziennej pracy. Oczywiście osoby dysponujące dość słabym sprzętem zalecam jego rozbudowę, ponieważ każda maszyna wirtualna to tak naprawdę kolejny komputer, w którym działa system operacyjny, a on też potrzebuje zasoby. Zwirtualizowane środowisko pracuje o 30% mniej wydajniej niż rzeczywiste. W większości klientów wirtualizacji brakuje również akceleracji graficznej. Jednak większość procesorów z sprzętowym wsparciem wirtualizacji nie odczuwa spadku wydajności, a programy nie służące do obróbki grafiki, mający prosty interfejs nie wykorzystują karty graficznej.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *