Wirtualizacja tworzenia aplikacji internetowych

Co zrobić, gdy tworzona aplikacja internetowa musi pracować na kilku systemach operacyjnych, a udostępnianie każdemu deweloperowi kilku komputerów jest nieopłacalne?

Co zrobić, gdy tworzona aplikacja będzie działać na innym systemie operacyjnym niż ten używany do jej tworzenia?

Co zrobić, gdy wielu deweloperów pracuje nad nowymi funkcjonalnościami serwisu, a zmiany przez nich wprowadzane mogą uniemożliwić pracę innym, gdy dzielą oni środowisko deweloperskie?

Co zrobić, gdy deweloperzy pracują na kilku gałęziach kodu, a każda z nich potrzebuje swojego środowiska Continuous Integration?

Z pomocą w takich przypadkach przychodzi wirtualizacja.

Załóżmy, że aplikacja PHP będzie pracować na FreeBSD, a baza danych potrzebuje Linuksa RedHat. Dodatkowo, ulubionym środowiskiem pracy każdego z programistów jest Windows XP. Aby udostępnić każdemu z nich odizolowane środowisko pracy potrzebujemy po 3 komputery.

Dzięki wirtualizacji, wszystkie te systemy operacyjne mogą pracować na tym samym komputerze. Równocześnie i za darmo.

Systemem operacyjnym zainstalowanym na komputerze-hoście może być zarówno Windows XP, jak i Linux. Po pobraniu i zainstalowaniu VMware Server oraz przydzieleniu zasobów każdemu z wirtualnych komputerów, możemy zainstalować wybrane systemy operacyjne. Oczywiście potrzebujemy pobrać klucze aktywacyjne, jeśli nie zrobiliśmy tego wcześniej.

VMware Server - Lista komputerów wirtualnych

Dla każdej z wirtualnych maszyn możemy określić ilość pamięci operacyjnej, umożliwić dostęp do urządzeń peryferyjnych i zdefiniować przestrzeń dyskową (plik lub oddzielna partycja).

Ustawienia wirtualnego komputera

VMware Server tworzy wirtualne interfejsy sieciowe, dzięki czemu wirtualne komputery mogą pracować w kilku trybach:

  • mogą być widoczne w sieci dzięki swojemu osobnemu adresowi IP (Bridge)
  • mogą pracować z translacją adresu (NAT) poprzez adres IP hosta
  • mogą być widoczne jedynie z komputera-hosta bez możliwości kontaktu z siecią zewnętrzną.

Możliwa jest także zaawansowana konfiguracja połączenia.

Najczęstszym sposobem konfiguracji jest opcja Bridge (wtedy komputer wirtualny jest widoczny jako kolejna maszyna w sieci zewnętrznej) lub NAT (wtedy komputer wirtualny nie jest widoczny z zewnątrz i komunikuje się poprzez interfejs sieciowy hosta). W ostatnim rozwiązaniu możliwe jest ustawienie translacji adresów i zmapowanie portów komputera wirtualnego na porty hosta, dzięki czemu można na przykład udostępnić w sieci zewnętrznej aplikację webową działającą na wirtualnym komputerze.

Ustawienia mapowania portów

Dzięki wirtualnym maszynom każdy deweloper może dysponować swoim własnym środowiskiem pracy: serwerem WWW, bazą danych oraz innymi serwisami, których współdzielenie jest niemożliwe lub utrudnione. Wiążą się z tym oczywiście koszty: dzięki wirtualizacji każdy programista może pracować na jednym komputerze (z nieco większą ilością pamięci operacyjnej i przestrzeni dyskowej). Dzięki temu koszty takiej instalacji są o wiele mniejsze, niż zakup oddzielnych komputerów. Dodatkowo, taka instalacja jest o wiele bardziej przenośna i z powodzeniem może działać na laptopie.

Podobna konfiguracja może być także wykorzystana do budowania środowiska CI, które za każdym razem, gdy potrzebne jest testowanie kolejnej wersji oprogramowania, może być łatwo zerowane i odbudowywane.

Ten wpis został opublikowany w kategorii Architektura, Internet, PHP i oznaczony tagami , , , , . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

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

*

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>