petak, 19 aprila, 2024
Kako da...?

Vagrant (1. deo)

Autor: Ivan Radeljić

Uvod

Kada razvijate aplikacije, veoma je bitno dobro podesiti svoje razvojno okruženje. Svako od nas ima svoje navike, svoje tekstualne uređivače (editore) i ostali softver koji je potreban tokom procesa izrade aplikacija. S druge strane, svaka od aplikacija ima svoje zavisnosti koje takođe treba uskladiti. Ponekad je potrebno razvijati više različitih aplikacija u isto vreme, pa sve to sinhronizovati sa ostatkom razvojnog tima. Ovakve situacije ponekad mogu da se iskomplikuju i da prouzrokuju da aplikacija ili jedan njen deo kod jednog člana tima funkcioniše bez problema, dok se kod drugih pojavljuju određeni problemi. Da bismo sve to izbegli, pravo rešenje je da koristimo Vagrant (engl. Vagrant).

Zašto Vagrant?

Vagrant povećava produktivnost razvojnog tima. To je alat kojim kreiramo lagana, prenosiva razvojna okruženja koja se iznova mogu ponovo koristiti. To znači da nas Vagrant oslobađa svih podešavanja i da samo u jednoj konfiguracionoj datoteci biramo koja svojstva ćemo koristiti. Vagrant koristi vodeće provajdere za virtuelizaciju i može biti snabdeven na Virtualboksu (engl. VirtualBox), VMVeru (engl. VMWare), AWS-u i drugima. Za instalaciju potrebnih zavisnosti i softverskih paketa, kao i za njihovo automatsko podešavanje, koristimo šel (shell) skripte, Čef (engl. Chef), Papet (engl. Puppet) ili Ansibl (engl. Ansible).

Neke od prednosti ovog softverskog alata su:

  • Vagrant čini identično razvojno okruženje svim članovima tima, a da pri tom ne žrtvuje ništa od alata u kojima su programeri navikli da rade (to podrazumeva tekstualne uređivače, IDE1, brauzere, pa i sam operativni sistem).
  • Omogućava programerima da se fokusiraju na sam kod, a ne na konfiguraciju razvojnog okruženja.
  • Konfiguracija se obavlja kroz jednu konfiguracionu datoteku i kroz dodatne skripte za automatsko podešavanje paketa i instalaciju istih.
  • Konfiguracione datoteke se mogu (i treba) distribuirati u samom repozitorijumu kontrole verzija, kao što je Git (engl. Git).

Ako ste jedan od operacionih inženjera, Vagrant vam omogućava jedno lako zamensko okruženje za testiranje, gde možete razvijati i testirati svoje skripte koje posle možete primetiti na serverima u produkciji.

Ako ste dizajner, sa Vagrantom takođe dobijate sve već unapred definisano (podešeno) i vaše je samo da se fokusirate na dizajn. Neće vam više biti potreban programer da vam pomogne da pokrenete aplikaciju na vašem razvojnom okruženju kako biste mogli da izvršite potrebne promene u dizajnu.

Jedna od najvećih prednosti Vagranta – ako vam u bilo kom stepenu razvoja aplikacije zatreba još neka zavisnost, ili ste zaboravili da je na početku dodate, dovoljno je da Vagrantom izmenite konfiguracionu datoteku (vagrantfile) i svi u timu će imati identičnu verziju softvera bez obzira na njihovo lokalno okruženje, jer se sva konfiguracija nalazi na sistemu za kontrolu verzija.

1IDE (eng. Integrated Development Environment) – integrisano razvojno okruženje.