Zum Inhalt springen
_CORE
AI & Agentic Systems Core Information Systems Cloud & Platform Engineering Data Platform & Integration Security & Compliance QA, Testing & Observability IoT, Automation & Robotics Mobile & Digital Banking & Finance Insurance Public Administration Defense & Security Healthcare Energy & Utilities Telco & Media Manufacturing Logistics & E-commerce Retail & Loyalty
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

Vagrant — jednotné vývojové prostředí pro celý tým

20. 01. 2014 2 Min. Lesezeit CORE SYSTEMSinfrastructure
Vagrant — jednotné vývojové prostředí pro celý tým

Každý vývojář v týmu měl jiný operační systém, jinou verzi Javy, jinak nakonfigurovaný Tomcat. Výsledek? „U mě to funguje” se stalo naším neoficiálním mottem. Pak jsme objevili Vagrant a všechno se změnilo.

Problém: snowflake prostředí

V týmu dvanácti vývojářů jsme měli minimálně pět různých konfigurací. Někdo na Windows 7, někdo na Windows 8, dva kolegové na Ubuntu, jeden na Fedoře. Každý měl jinou verzi JDK, jiné environment proměnné, jiný způsob, jak spouštěl lokální databázi. Onboarding nového kolegy trval dva dny — dva dny nastavování prostředí, hledání správných verzí knihoven, řešení záhadných chyb.

Vagrant: virtuální stroj jako kód

Vagrant od HashiCorp umožňuje popsat vývojové prostředí v jednom souboru — Vagrantfile. Je to Ruby DSL, ale nepotřebujete Ruby umět. Pár řádků a máte virtuální stroj s přesně definovaným softwarem.

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/trusty64"
  config.vm.network "forwarded_port", guest: 8080, host: 8080
  config.vm.network "forwarded_port", guest: 5432, host: 5432
  config.vm.provision "shell", path: "provision.sh"
  config.vm.provider "virtualbox" do |vb|
    vb.memory = "2048"
    vb.cpus = 2
  end
end

Provisioning script nainstaluje JDK 7, Tomcat 7, PostgreSQL 9.3, Maven 3.1 — přesně ty verze, které potřebujeme. Žádné překvapení, žádné odchylky. Nový vývojář přijde, naklonuje repo, spustí vagrant up a za 10 minut má běžící prostředí.

Multi-machine setup

Pro složitější projekty Vagrant umožňuje definovat více strojů v jednom Vagrantfile. Každý stroj má svou IP v privátní síti. Tím simulujeme produkční topologii lokálně — aplikační server + databázový server + message broker.

Sdílené složky propojují zdrojové kódy z hostitelského systému do VM. Vývojář píše kód ve svém oblíbeném IDE na hostiteli, kompilace probíhá uvnitř VM.

Provisioning: Shell vs. Chef vs. Puppet

Vagrant podporuje několik provisionerů. Začali jsme se shell skriptem — srozumitelný pro každého. Důležité je, aby provisioning byl idempotentní — můžete ho spustit opakovaně bez vedlejších efektů. Když přidáte novou závislost, stačí vagrant provision a všichni ji mají.

Problémy

Výkon: VirtualBox na starších laptopech běží pomalu. Sdílené složky přes Guest Additions jsou pomalé — NFS je lepší, ale na Windows nefunguje snadno. Velikost boxů: Přes gigabajt, stahování trvá. Docker vs. Vagrant: Slyšíme o Dockeru a přemýšlíme, jestli kontejnery nenahradí VM. Zatím jsou to komplementární nástroje.

Vagrant nám ušetřil stovky hodin

Od zavedení Vagrantu je onboarding otázkou minut, ne dnů. Všichni pracují na identickém prostředí. Pokud máte tým větší než dva lidi, Vagrant je investice, která se vrátí první den.

vagrantvirtualboxautomatizacevývoj
Teilen:

CORE SYSTEMS

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.

Brauchen Sie Hilfe bei der Implementierung?

Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.

Kontaktieren Sie uns