Remote dev e inca tricky in 2023. Stackurile sunt variate, nevoile sunt diferite intre echipe. Nu exista un one size fits all.
Dar cam ce a zis si @adrian-a e un punct de plecare bun.
Disclaimer pentru ceea ce urmeaza sa zic: suna simplu de facut, rezultatul este elegant, dar munca e enorma.
Ok, deci noi toti suntem obisnuiti sa lucram local; up/down, o migratie aici, o migratie acolo, schimbi linia de cod, dai commit, faci pr, rezolvi bugul. Si vrei sa faci asta la o urgenta si cand te duci cu janghina de laptop personal acasa la ai tai printre multe pahare de vin? Super, suntem pe aceeasi pagina.
Pasul 1: lucruri de baza
Un mediu reproductibil. Docker deobicei, poate un Podman. Nu ai cum altfel, mediul tau local trebuie sa fie si undeva remote.
Masina/VM-ul de dev. Provisioned cu necesarul de care ai nevoie ca sa iti ruleze mediul. Aceasta masina, o consideram masina personala a devului. Provisioned doar pentru el cu propriile sale chei de la creere. Doar el are access pe aceasta masina.
Un DNS intern accesabil doar prin VPN. Conexiunea se face prin VPN, iar devul ca sa isi acceseze masina se va conecta la: masinamea.vpnintern.com
Pasul 2: modul de lucru
Cam la fel ca pe local, dar prin vpn si ssh se face conexiunea. Adaugi hostul in vscode, lucrezi exact ca si pe local.
Ce ajuta, dar e optional:
- sa ai imagini de baza (cam la fel cum a zis si @adrian-a, doar ca sa ai o imagine builduita din master/staging ca sa aibe buildul local un punct de pornire bun)
- un proxy pe masina de dev pre-provisioned care sa proxyuiasca trafic catre mai multe servicii care ruleaza local pe diverse porturi. Util cand vrei sa rulezi mai multe stackuri pe aceeasi masina.
- chei rotative la masini si pe masini (ajuta enorm la securitate)