Vyvíjíme v cloudu
Vývojářům používajícím Visual Studio Code s pluginem pro remote development umožňujeme automatizovat zřízení unifikovaného vývojového prostředí a tímto způsobem jim možno vyvíjet prakticky odkudkoliv, v extrému i na chromebooku či podobném zařízení, na kterém je Visual Studio Code možno spustit.
Důvody
- Výkon - prostředí, ve kterém vývojář vyvíjí je možno nasizovat tak, jak je v danou chvíli potřeba, tzn. např. jdeme-li re-trénovat machine learning model, přidáme GPU, paměť, a po re-trénování můžeme snížit náklady a efektivně je držet pod kontrolou
- Nezávislost na prostředí/HW
- Windows
- Mac
- Bezpečnost
- Správa a údržba HW, ramsoware
- Automatické zálohování
- Uložením zdrojových kódů je na serveru, dosahujeme mnohem vyšší bezpečnosti
- Nestárne
Kde umíme takové prostředí provozovat
- Vlastní infrastruktura
- AWS / Google cloud
- Hetzner
Setup
Pre-setup image
- Máme předem vytvořeny a uloženy image, se všemi potřebnými závislosti pro vývoj
- Docker
- JVM
- Kubectl
- VPN do interní sítě
Attach disk
- SSD, 500 GB
199 200 201 202 203 204 205 206 207
DEVICENAME=<device name> sudo mkdir -p /mnt/home sudo mkfs.ext4 -m 0 -F -E lazy_itable_init=0,lazy_journal_init=0,discard /dev/${DEVICENAME} sudo mount -o discard,defaults /dev/${DEVICENAME} /mnt/home sudo rsync -avHAX /home/ /mnt/home sudo umount /mnt/home sudo mount /dev/${DEVICENAME} /home UUID="$(sudo blkid -s UUID -o value /dev/sdb)" echo "UUID=${UUID} /home ext4 discard,defaults,nofail 0 2" | sudo tee -a /etc/fstab > /dev/null
Platí, a je třeba na to nezapomínat, že cokoliv nainstalujete/provedete mimo /mnt/home může být ztraceno při upgrade na novější image.
User setup
- git config –globál user.email vojtech.rysanek@aukro.cz
- git config –globál user.name “Vojtěch Ryšánek”
Výhodou tohoto setupu je jeho dynamičnost - možno přidat gitlab.či runner na svoje projekty (re-tranovani ML modelu)
Visual Studio Code integrace
Seamless přes https://code.visualstudio.com/docs/remote/ssh plugin.
- tunelování jakéhokoliv portu na lokální
- aplikace se tváří, jakoby běžela lokálně, podobně jako Skaffold
Gitpod - Cloud IDE
Weova verze Visual studio code, která je přímo Gitlabe & dalšími podporovna
- Umožňuje okamžitě pracovat na kódu s předehřátými prostředími (branchemi)
- Netřeba čekat na stažení balíčku & závislosti, stačí přijít a pracovat
- Možnost psát kód na levném notebooku/ipadu odkudkoliv s internetem
- Možno instalovat na kubernetes-cluster
- Případně lze hostovat na AWS/GCP
VPN/tunneling
Pro případ, že chceme interně vzájemné přistupovat na služby spuštěné buď v lokálním clusteru nebo PC, využíváme https://www.zerotier.com/ nebo https://inlets.dev
U Skaffoldu je situace o něco snazší, tam lze většinu věcí rovnou routovat na interní / veřejnou adresu dle potřeby, a která je tak pro testera/product ownera uvnitř přístupná.
Kde se můžete dočíst víc
https://borderux.com/remote-development-is-the-future/
https://engineerworkshop.com/blog/how-to-set-up-a-remote-development-server/
https://stripe.com/blog/remote-hub
https://stripe.com/en-cz/atlas/guides/scaling-eng
Pokud Tě informace a naše práce zaujaly, neváhej se podívat na Volné pozice