Jak zbudować własne laboratorium?

Jak wdrożyć środowisko w którym żadne rozwiązanie lub aktualizacja nie trafi do systemu produkcyjnego bez wcześniejszego przetestowania.

W idealnym świecie IT żadne rozwiązanie lub aktualizacja nie trafi do środowiska produkcyjnego bez wcześniejszego przetestowania. Każdy administrator z pewnością chciałby najpierw móc sprawdzić z czym będzie miał do czynienia i czego może się spodziewać wdrażając nowy system lub oprogramowanie. Choć świat nie jest idealny to wdrożenie środowiska testowego w firmie może nas do tego choć trochę przybliżyć.

Po co właściwie uruchamiać środowisko testowe? Według nas są dwa kluczowe powody. Po pierwsze bez problemu można sprawdzić wszelkie aktualizacje oraz nowe systemy, które chcemy wdrożyć nie angażując w to środowiska produkcyjnego. Bez większych konsekwencji można wtedy eksperymentować z różnymi zmianami i konfiguracjami, które w ostateczności zostaną uruchomione w środowisku firmowym. Po drugie lab testowy pozwala administratorom rozwijać swoje umiejętności i pogłębiać wiedzę, niekoniecznie w zakresie używanych w firmie rozwiązań. Nigdy nie wiadomo, w którym momencie ta wiedza możne się przydać.

Zobacz również:

Jakiś czas temu zbudowanie środowiska testowego wiązało się ze sporymi problemami, główne z powodów finansowych. Firmy, jeśli chciały choć w części odwzorować własną firmową infrastrukturę musiały przeznaczyć na to znaczną część budżetu. Wiązało się to z zakupem serwerów, komputerów oraz sprzętu sieciowego. Pomijając fakt, że wszystko to należało zainstalować włącznie z systemami oraz oprogramowaniem, to pewnym problemem mógłby być brak elastyczności takiego rozwiązania. Chcąc powiększyć lab o dodatkowy serwer należało go po prostu kupić, co skutkowało zmniejszeniem powierzchni w serwerowni oraz zwiększeniem zużycia energii elektrycznej. Poważnym minusem było to, że aby przetestować sprzęt sieciowy, macierzowy lub inne urządzenia należało je po prostu posiadać, co nie było proste.

Oczywiście w przypadku, gdy testowało się różne możliwości konfiguracyjne zakupionego sprzętu nie było z tym problemu, ale chcąc wybrać najbardziej odpowiadające rozwiązanie sprzętowe wśród wielu dostępnych na rynku, należałoby sprawdzić kilka modeli różnych producentów. Jedynym wyjściem było wtedy (i czasem nadal jest) zwrócenie się do producenta lub dystrybutora o udostępnienie wersji testowej urządzenia.

Aktualnie sprawa wygląda dużo prościej. Zarówno producenci sprzętu jak i oprogramowania postanowili wyjść naprzeciw potrzebom administratorów i udostępniają zwykle swoje produkty w wersjach testowych lub darmowych, ograniczonych wydajnościowo lub funkcjonalnie tylko po to, a by w prosty sposób można było sprawdzić przed wdrożeniem jakie są możliwości danego rozwiązania oraz nauczyć się jego obsługi i konfiguracji.

Wirtualizacja – minimum pracy, maksimum korzyści

Tworzenie własnych laboratoriów testowych w firmach zostało uproszczone do minimum dzięki wirtualizacji. Uruchamianie środowisk w chmurze jest szybkie łatwe i przyjemne, a do tego tanie. Zakładając, że wszyscy znamy zasady tworzenia i działania systemów wirtualnych, to wiemy, że aby uruchomić środowisko w chmurze wystarczy do tego mocny komputer z odpowiednią ilością pamięci RAM. Natomiast hosty wirtualne w klastrze ze współdzieloną macierzą pozwalają już na poważne działania.

Oczywiście zawsze należy zaplanować stworzenie labu testowego, określając cele jakie chcemy uzyskać oraz potrzeby jakie ma spełniać takie środowisko. Inaczej bowiem będziemy tworzyć infrastrukturę testową na potrzeby małych wdrożeń, sprawdzenia konfiguracji czy aktualizacji, a inaczej testować oprogramowanie bazodanowe, czy rozwiązania klastrowe.

Na podstawie poniższych przykładów chcemy pokazać, że w zależności od tego, co chcemy uzyskać środowisko testowe może powstać na bazie posiadanego sprzętu oraz darmowego programowania, ale również może być wydajnym systemem zbliżonym do środowiska produkcyjnego, które chcemy zasymulować. Nasze przykłady opieramy głównie na rozwiązaniach wirtualnych.

Pecet dobry na wszystko – najprostszy w świecie LAB

W przypadku, gdy budżet jest bardzo ograniczony lub do testów nie są wymagane wydajne zasoby sprzętowe, niewielki lab można zbudować w oparciu o zwykłego peceta. Producenci oprogramowania do wirtualizacji mają zwykle w swojej ofercie również wersje aplikacji przeznaczone na stacje robocze. Pozwalają one w prosty sposób za pomocą kilku kliknięć skonfigurować i uruchomić maszynę wirtualną. Przykładem mogą być VirtualBox od Oracle, VMware Workstation Player lub KVM. Dwa pierwsze produkty występują w wersjach zarówno dla systemów Windows jak również dla Linuksa, natomiast KVM można używać jedynie na stacjach Linuksowych.

Instalacja wersji na systemy Microsoft nie powinna przysporzyć żadnego kłopotu. Konfiguracja jest raczej prosta i intuicyjna. Niestety środowisko testowe w tej postaci ma również wiele ograniczeń. Przede wszystkim z reguły zwykłe stacje robocze posiadają dużo mniejszą moc obliczeniową niż dedykowane serwery. Tworząc wiele wirtualnych maszyn należy pamiętać, że współdzielą one zasobny z systemem macierzystym, więc ogólna wydajność spada, gdy uruchomionych jest więcej systemów. Do tego dochodzi zapewnienie odpowiedniej przestrzeni dyskowej, która konsumowana jest przez maszyny wirtualne.

Niestety Virtualbox oraz VMware Workstation Player (w wersji nielicencjonowanej przeznaczonej do niekomercyjnego użytku) choć są darmowe to posiadają sporo ograniczeń funkcjonalnych, które występują standardowo w płatnym oprogramowaniu hostów wirtualizacyjnych. Jednak w przypadku produktu Vmware Workstation można wykupić licencję, a co za tym idzie wyposażyć produkt w kilka dość znaczących funkcji dodatkowych. Można wówczas zmieniać ustawienia współdzielenia sprzętu fizycznego oraz sieci wirtualnych, uruchamiać maszyny ze wskazanym czasem wygaśnięcia, tworzyć snapshoty uruchamianych systemów, co z pewnością może się przydać podczas wykonywania testów oraz aktualizacji. Wersja VMware Workstation Pro potrafi również bezpośrednio współpracować ze środowiskiem VMware VSphere.

Jak już wspomnieliśmy takie środowisko przeznaczone jest raczej do tworzenia niewielkich labów testowych. Z pewnością może się sprawdzić w małych firmach, gdzie na szybko trzeba przetestować modyfikacje systemów bądź aktualizacje. Raczej nie nadaje się na długoterminowe testowanie oraz pracę grupową choćby z uwagi na brak ciągłości działania związaną z codzienną pracą na komputerach stacjonarnych. Zamknięcie samej aplikacji zwykle powoduje również wyłączenie maszyn wirtualnych.

Profesjonalne środowisko testowe – chmura prywatna

Stworzenie firmowego laboratorium testowego w oparciu o dedykowane rozwiązania wirtualizacyjne daje dużo większe możliwości. Przede wszystkim można stworzyć o wiele bardziej elastyczne środowisko, które w późniejszym czasie da się rozbudować. Tworząc hosty wirtualne oparte na najpopularniejszych dostawcach takich jak VMware ESXi, Microsoft Hyper-V, czy Xen Server od Oracle, administratorzy mogą korzystać z bogatych możliwości redundantnego środowiska z zaawansowanymi opcjami konfiguracji sieci wirtualnych oraz przestrzeni dyskowej. Tak utworzone środowisko pozwala na wykreowanie odseparowanego laboratorium testowego, w którym bez problemu można odwzorować środowisko produkcyjne lub jego część.

Mało tego. Producenci systemów wirtualizacyjnych dostarczają narzędzia do konwersji maszyn fizycznych na wirtualne (P2V) lub konwersji między różnymi formatami maszyn wirtualnych wielu dostawców. Dzięki temu chcąc odwzorować środowisko produkcyjne nie trzeba od podstaw instalować systemów i konfigurować ich analogicznie do rzeczywistych serwerów firmowych. Wystarczy wówczas użyć jedynie odpowiednich narzędzi.

Aktualnie wiele firm oparło swoje produkcyjne systemy o technologie wirtualne, więc utworzenie kolejnego obszaru do celów testowych wydaje się być tylko rozbudową już istniejącej infrastruktury. Można to zrobić uruchamiając kolejne hosty w bieżącej konfiguracji, odpowiednio odseparowanej pod kątem komunikacji sieciowej oraz przestrzeni dyskowej. Idealnie do tego nadaje się funkcja klastrowania, która pozwala grupować hosty wirtualne pod względem przeznaczenia, umożliwia również uruchomienie funkcji High Availability zapewniając przy tym ciągłość działania. Stworzenie kilku klastrów obok siebie, które „widzą” siebie wzajemnie choć są odseparowane pozwala również w bardzo prosty sposób na przełączenie wirtualnych maszyn po testach do środowiska produkcyjnego.

Do tego dochodzi centralne zarządzanie całym środowiskiem, które pozwala na kontrolę wirtualnej infrastruktury z jednego miejsca.

Takie laboratorium przy odrobinie samozaparcia można również stworzyć niskim kosztem. Każdy ze wspomnianych wcześniej producentów rozwiązań wirtualizacyjnych dostarcza swoje systemy w darmowej wersji. Tak jak w przypadku aplikacji na pecety, tutaj również znaleźć można pewne ograniczenia, ale i tak ich możliwości są dużo większe niż wersji desktopowych. VMware oferuje darmową wersję VSphere Hypervisor, która nie różni się zbytnio od wersji komercyjnej, jednak wieloma serwerami nie da się zarządzać centralnie za pomocą Vcenter Server, a co za tym idzie nie można zbudować klastra z ich udziałem. Chcąc zarządzać danych hostem należy się na niego zalogować bezpośrednio za pomocą narzędzia Vsphere Client.