Znany z filozofii "eat your own dog food" Microsoft poinformował o całkowitym zwirtualizowaniu przy pomocy Hyper-V platformy obsługującej dwie spore witryny techniczne dla programistów oraz specjalistów IT - MSDN oraz TechNet. Dokument opisujący techniczne aspekty całego procesu, który pobrać można ze stron firmy, świadczyć ma o niewątpliwych korzyściach z wirtualizacji i pokazać, jak od kuchni wygląda i sprawdza się taka wirtualna platforma.
Opracowanie istotnie jest bardzo interesujące, to lektura dobra nie tylko na weekend. Warto jednak przyjrzeć się scenariuszowi nieco bardziej krytycznym okiem... Pierwsza ciekawostka to fakt, do którego dokopał się serwis virtualization.info - flagowe witryny Microsoft notują niewiele więcej niż 100 mln wywołań stron miesięcznie. W dobie serwisów Web 2.0 nie jest to wcale jakoś wyjątkowo dużo. Do tego, Microsoft zdecydował się wyłącznie na wirtualizację tzw. frontendu platformy - czyli samych serwerów IIS.
Najciekawsza część dokumentu to rezultaty testów i porównań wydajności. Pierwsza obserwacja - sam hypervisor okazał się odpowiedzialny za nie więcej niż 6% obciążenia procesorów fizycznych maszyn. Niestety, to nie jedyne koszty związane z obsługą środowiska wirtualnego - zaobserwowano także trzyprocentowe straty na całkowitej wydajności maszyn fizycznych związane z dynamiczną alokacją dwóch procesorów dla trzech instancji wirtualnych.
Biorąc pod uwagę zalety wirtualizacji, straty te byłyby całkowicie do zaakceptowania. Byłyby, gdyby na nich się skończyło - jak jednak czytamy w kolejnych punktach raportu, fizyczna platforma do hostingu MSDN obsługiwała 21% więcej wywołań na sekundę na 1% CPU niż platforma wirtualna. Ten dość pokrętny wskaźnik jest najważniejszym podsumowaniem ogólnej wydajności całej nowej platformy i sugeruje spadek wydajności rzędu 21% na samych serwerach obsługujących IIS - a to nie jest już mało. Fakt, że nie zdecydowano się na wirtualizację backendu, w tym serwerów SQL, znaczyć może że w scenariuszu wirtualizacji tego elementu spadek wydajności byłby jeszcze większy, na tyle spory by przekreślić sensowność wirtualizacji.
Dodatkowo, zredukowanie ilości serwerów fizycznych - co wskazywane jest jako kluczowa zaleta wirtualizacji - wiązała sie głównie z wymianą starych naszyn na nowe. Można zatem postawić przewrotne pytanie - o ile bardziej dałoby się zredukować liczbę serwerów, gdyby zdecydować się na upgrade bez stosowania wirtualizacji. W chwili obecnej wymiana kilkuletnich maszyn oznacza w większości przypadków naprawdę znaczny skok - z 32-bitowych, jednordzeniowych procesorów do wielordzeniowych, 64-bitowych platform na dużo szybszych szynach i nowych dyskach SAS. Fakt, że nowe platformy są o tyle mocniejsze, by nawet po obciążeniu ich kosztami wirtualizacji osiągnąć tak znaczną redukcję ilości potrzebnego w środowisku produkcyjnym sprzętu, nie musi automatycznie oznaczać że warto decydować się na poświęcenie niemałej części zasobów nowego nabytku na wirtualizację.
Owszem, zalety wirtualizacji całości środowiska składającego się z serwerów pełniących różne role i pracujących pod różnymi platformami będą olbrzymie. Scenariusz opisywany przez Microsoft zakłada jednak wirtualizację jedynie części środowiska - a co za tym idzie, zamiast uproszczenia infrastruktury które miałoby miejsce w przypadku wirtualizacji całości, mamy tylko dodatkowy element komplikujący układankę - i co więcej, wirtualizuje się homogeniczne środowisko składające się z maszyn o identycznej roli, identycznym oprogramowaniu i prawdopodobnie o identycznej konfiguracji.
Dobrze zatem zastanowić się, czy jest to warte straty wydajności, którą lepiej uzmysłowić sobie mniej marketingowo, niż określenie spadku jako "21% na 1% CPU" - wygodnie pomija ono bowiem fakt, że 1% obciążenia procesora nowego typu to znacznie więcej zasobów, niż 1% procesora sprzed kilku lat. Dla Microsoft odpowiedź jest prosta - warto, bo to nieoceniona promocja Hyper-V. We własnym przypadku warto jednak przeprowadzić naprawdę gruntowną analizę i nie dać wmówić sobie na fali zafascynowania wirtualizacją usług serwerowych, że przy faktycznie coraz mocniejszych procesorach już teraz nie można przejść obok niej obojętnie.
PS. Dla porządku trzeba zwrócić uwagę, że testowany przez Microsoft scenariusz zakładał wykorzystanie wersji RC0 platformy Hyper-V oraz mniej wydajnej witualizacji w oparciu o obrazy dysków VHD. Ciekawe, na ile wyniki zmieniłyby sie wraz poprawą tych dwóch parametrów, ciekawe też jak wyglądałoby porównanie w takim scenariuszu różnych hypervisorów.