Vagrant – co to za cudo?

wpis w: webdev | 0

Gdy pracujemy jako webdeveloper często jednocześnie bierzemy udział w wielu projektach. Gdy projekty są ze sobą jakoś technologicznie związane to możemy używać jednego środowiska, na którym uruchamiamy poszczególne wymagane usługi i działamy. Najczęściej jest to środowisko lokalne. Teraz wyobraźmy sobie że posiadamy 2 cyfrową ilość projektów, każdy używa innej wersji php, wraz z bibliotekami, różnych serwerów bazodanowych: mysql/sqlite/postgresql i najlepszy miks usług, które się gryzą ze sobą jeśli są uruchomione jednocześnie lub nawet zainstalowane.

Możemy oczywiście ręcznie uruchamiać poszczególne usługi i w razie potrzeby wyłączyć. Mieć pod każdy projekt listę pojedynczych usług i nawet napisać skrypt, który będzie nam je uruchamiał. Teraz pytanie, czy to ma jakikolwiek sens? Sam czas jaki poświęcimy na te czynności jest czasem straconym. Projekt przez to nie rozwija się, a my przecież pracujemy. Teraz wyobraźmy sobie, że jest rozwiązanie, które nam to automatyzuje. Wybieramy projekt, w którym mamy listę wymaganych usług, czekamy minutę i możemy zająć się tym, za co nam faktycznie płacą. Takimi programami jest Vagrant oraz Docker, które potrafią ze sobą współpracować. Ja osobiście głównie pracuje na tym pierwszym, więc o nim trochę opowiem.

 

mediawiki_vagrant_visualization

 

Vagrant tworzy nam wirtualne środowisko w oparciu o VirtualBox’a (inaczej – lokalnego VPS’a). Konfiguruje wszystkie potrzebne usługi, instaluje wymagana pakiety i zależności oraz umożliwia współdzielić zasoby. Wyobraźcie sobie że posiadacie 2 komputery. Jeden z Windowsem 10, a drugi z Mintem 18. Na jednym i drugim chcecie pracować. Instalujecie samo IDE (Netbeans, phpStorm), Virtualboxa, Vagranta (wszystkie te aplikacje są multiplatformowe) + pewne dodatki do windowsa. Nie musicie lokalnie instalować serwera http, czy php. Następnie na jednym i drugim komputerze uruchamiacie vagrant’a, który wykrywa pliki konfiguracyjne projektu. Tworzy virtualną maszynę, ściąga obraz systemu, następnie konfiguruje sieć, instaluje usługi, a na końcu współdzieli pliki z systemem głównym. Co otrzymujemy? Dwa takie same środowiska na dwóch różnych komputerach. Współdzielenie zasobów umożliwia nam edycje kodu aplikacji z poziomu systemu głównego, gdzie w tle na wirtualnym środowisku chodzi nam skonfigurowany system pod projekt.

Co nam daje takie rozwiązanie? Jak już wspomniałem środowisko pod każdy projekt oraz porządek w samych projektach. Gdyż separujemy projekty, a na systemie matce przetrzymujemy kody źródłowe oraz edytor. Często zdarza się, że nad jednym projektem pracuje wiele osób. Każdy ma lokalnie inne środowisko. Gdy używamy vagranta każdy będzie posiadał takie same lecz wirtualne, nie gorsze od lokalnego. Często nawet w repozytoriach przetrzymuje się Vagrantfile by żaden członek ekipy nie został pokrzywdzony. No i ostatnią rzeczą chyba jest multiplatformowść. Co prawda bywają często problemy z uruchomieniem vagranta głównie na Windowsie 8 i 10, ale można sobie z tym poradzić. O tym najprawdopodobniej wspomnę w następnym wpisie, bo mam w tym bogate doświadczenie. Jedynie co musimy poświęcić na początku to czas by skonfigurować projekt, a następnie by wirtualna maszyna nam się ściągnęła i skonfigurowała. Mając odpowiednie doświadczenie i szybki sprzęt oraz łącze może to trwać 20 minut. Później każde uruchomienie środowiska to 10-60 sekund.

 

Źródła:
https://www.vagrantup.com/
https://www.mediawiki.org/wiki/MediaWiki-Vagrant

Zostaw Komentarz