Cand o sa lucram de pe calculatoare la distanta (VDI)?

De ce mai avem nevoie de un laptop rapid, de un desktop de gaming pentru dezvoltare de software ? (daca excludem nisele embedded si mobile - chiar daca se pot rezolva cu USB Passthrough)

Sunt deja destul de multe solutii de remote workspaces: (DaaS - Desktop as a Service sau VDI - Virtual Desktop Infrastructure)

Amazon Workspaces
Azure Virtual Desktop
Itopia pe Google Cloud
SIXA - Special pentru software development - destul de scump
Horizon Cloud
Paperspace (pe care se poate pune parsec)
Multe din ele suporta inclusiv USB passthrough si multiple monitoare.

Exista si solutii DIY cu x2go (pe linux) si ssh/mosh, parsec (daca e vorba de windows) sau NoMachine . Paperspace are un free tier iar costurile nu sunt chiar asa mari.

Am mai gasit recent:


https://guacamole.apache.org/

Toate serviciile care se folosesc de NVIDIA NVENC pot oferi latenta insesizabila.

Cu ~60$ pe luna poti obtine o instanta remote semnificativ mai rapida ca un laptop de 5000 de euro. Daca ne uitam la pachetul de 120$ utilizat pe o jumatate de luna iti ofera 32Gb RAM, 8 procesoare (semnificativ mai rapide comparat cu un laptop) si o placa video de 4Gb (care poate nu e necesara si se poate reduce) . Internetul nu trebuie sa fie foarte rapid, doar latenta conteaza mai mult, este necesara o viteza de download de 30Mbps pentru un singur monitor 4K cu compresie la detalii aproape insesizabile. (majoritatea serviciilor suporta 2-3 monitoare)

Eu vad foarte multe avantaje pentru VDI pentru programare:

  1. Securitate (two factor authentication si fara access la hardware, backup tot timpul - standarde ISO)
  2. Access aproape nelimitat instant la resurse
  • Vrei sa compilezi ceva masiv intr-un timp util ? -> Iti setezi cate core-uri iti permiti.
  • Vrei sa testezi local baza de date din productie ? -> Iti setezi 1Tb de memorie.
  • Vrei sa descarci ceva de pe internet ? -> Descarci cu 1Gb/s de pe majoritatea serverelor.
  • Vrei mai multe monitoare (2-3) -> Nu e o problema.
  1. Nu ai acces direct la codul clientului, se simte mai in siguranta daca el ofera serviciul.

Singura problema majora e daca nu ai internet sau e foarte instabil, dar asta e o problema oricum pentru majoritatea noastra.

4 Likes

Dezavantaje:

  • Vrei să lucrezi când ești în avion sau din vreun sat uitat de lume, unde ai semnal 2g?
  • Ești efectiv la mâna serviciului folosit, care poate schimba ToS din mers și te trezești suspendat. Și dacă ești suspendat, gândește-te cât de ușor dai de un om la google, de exemplu. Sau amazon…
  • Vrei să editezi video 8k? Succes, urci sute de Gb razna.
  • costurile alea ți-au dat un pic cu virgulă.

60$/lună = 720$/an. Nu știu dacă e mult sau puțin, dar noul meu sistem a costat puțin peste 1000€ (Ryzen 9, 64gb ram, SSD pcie 4, gtx 1070). Estimez că îl voi folosi pentru următorii 5+ ani (cu excepția SSD-ului, sistemul precendent m-a ținut 9 ani și a costat tot pe acolo).

Componentele care cresc (simțitor aș putea spune) prețul sunt monitoarele și stocarea.

Hardware-ul este un pic mai ieftin decât ai tu impresia, mai ales pentru task-uri normale. Vezi câte laptopuri găsești peste 3000€, darămite 5000 (ca un baseline: mac book pro de 16 full options e 6000$)

Nu știu ce faci tu, dar permite-mi să mă îndoiesc că ești în situația în care ești limitat de 32gb ram sau 12-24 cores.

5 Likes

Sunt de acord cu tine.

Eu ma gandesc in corporate/outsourcing, unde e necesar ISO la fiecare proiect, e necesar sa lucrezi pe hardware-ul angajatorului, unde ai NDO, unde primesti un laptop pe care trebuie sa instalezi 10 microservicii in background in docker ca sa iti poti rula codul pe care lucrezi si dupa iti suiera constant ventilatorul fara sa rulezi tu ceva. Unde IntelliJ cand are incarcat un monorepo iti mananca 10 Gb de memorie din 32.

Cand ai watch pe mii de fisiere si la un re-render stai 10 secunde fiindca webpack are ceva de compilat. Cand faci un build cu gradle/maven/visual studio sau cand se ruleaza toate testele inainte de commit nu mai e practic un laptop, iar un desktop e inconvenient.

Noi folosim la munca VDI. Virtualizare KVM si remote access via RDP (xrdp). Intial a fost un server local, a urmat un server mult mai puternic remote, intr-un datacenter, ne-am intors la server local pentru latenta mai mica.

Pro:

  1. mententa usoara, upgrade-uri de resurse, laptop-urile din firma sunt folosite pentru email si browsing.
  2. medii de dezvoltare similare pentru toata lumea

Contra:

  1. latenta (se simte, chiar si local)
  2. Daca ai ceva de rezolvat si nu iti merge internetul sau merge prost, nu prea e ok. De cand toata lumea lucreaza de acasa (Fiberlink 1000 nu trece de 100mbps decat pentru clienti business) letenta e mai mare.

Am incercat:

  1. x2go - acum multi, nu a trecut de faza de test, nu mai tin minte de ce.
  2. nomachine - 6.5 mergea foarte bine cu clinetul de MacOS dar nu mergea la fel de bine cu cel de Windows (si majoritatea clinetilor erau Windows).
  3. RDP (xrdp, xorg-xrd, x11rdp, etc) - cea mai buna performanta dintre toate solutiile testate de noi, problema e ca pana de curand trebuia sa compilat din surse, operatiune nu tocmai simpla. Problema asta pare ce s-ar fi rezolvat.

As vrea sa invesghez si SPICE.

VDI-uri sunt de viitor daca apare o tehnologie care sa permita o calitate buna a imagini si o latenta mica (ceva gen RemoteFX, care insa e limitat Windows to Windows via RDP).

PS: Am facut si niste teste cu Moonlight, latenta era extraodinara dar setup-ul nu putea fi adaptat la nevoile noastre.

1 Like

^^^Ce zice baiatu asta. :muscle: :muscle: :muscle: :muscle:

Un macbook pro 16" base il gasesti si la 2200 de dolari, i7 6 nuclee, 16gb de ram, placa video decenta si duce cam ce fac 60-70% din programatorii pe care ii stiu eu. Il duci pe unde vrei tu, nu depinzi de conexiunea la net, tine 3-4 ani lejeeer.

Am exact macbook pro de 16’ cu i9, cu 32gb ram si in opinia mea e asa si asa pentru web development, in special cu Docker fiindca cand ti-e lumea mai draga atunci abia se misca. E totusi un laptop subtirel, cum se incalzeste face throttling si ti se duce performanta i9-ului. Pe cand un desktop remote ar avea o performanta constanta.

Asa arata in idle:

Eu inteleg ce zici tu, dar uite ce frumos lucrezi tu acolo pe laptop. Ideea e super ok DAR devii dependent de o conexiune buna la net, esti practic legat ca de un desktop la conexiunea de net si nu e nici asa de ieftin pe cat pare la prima vedere.

2 Likes

De câteva luni am același Macbook Pro 16’ (i9, 32GB RAM) și câteodată lucrez cu monorepo-uri, ceea ce înseamnă că pornesc 4-8 servicii simultan. Da, când trebuie să fac build la aplicațiile de Angular (mai ales dacă trebuie să rulez npm/yarn install de 0), load-ul este mare, pronesc ventilatoarele. Dar problema aici nu e hardware-ul, mai mult decât suficient web-development, ci sofware-ul. Docker for Mac în mod special, ecosistemul Node, care de ceva vreme te pun să compilezi node-sass și alte librării care aveau prebuilt binaries și așa mai departe.

Mergând pe infrastructura VDI nu o să aloc fiecareuri developer către 16 core-uri la 4GHz doar pentru că Docker for Mac are probleme sau ecosistemul Node a luat-o un pic razna. Desktop-ul virtual pe care lucrez din când în când e mai slab că specs decât Macbook-ul și își face treaba la fel de bine (pentru că rulează Linux și Docker e nativ).

Consider că VDI-urile sunt viitorul, dar tehnologia încă nu e acolo. Poate Microsoft să facă un push cu RDP (care e cel mai bun protocol pentru remote desktop în momentul ăsta) și să suporte dezvoltarea lui și pentru Linux (ca server). Sau poate NX va reuși să ia titlul (potențial are). Până atunci trebuie să faci compromisuri orice ai alege. Personal, aleg să lucrez cu Mac direct pentru calitatea imaginii - programator cum sunt, dacă tot stau în fața ecranului atâtea ore, măcar să fie unul bun.

2 Likes
2 Likes

Păi cumva e normal… Nu există resurse nelimitate nici măcar în Cloud și chiar daca furnizorii de servicii au mereu extra-hardware și cacacitate pregatită pentru noi clienti sau extinderea celor existentenți, asta se bazeazaă pe niște previzunii și nu a cumpărat/fabricat nimeni zeci de mii de servere în caz de pandemie. Plus probleme cu aprovizionare si furnizorii din China. Sunt convins că și AWS sau GCP au probleme de genul sau vor avea în curând.

Dar VDI poate fi și intr-un datacenter sau chiar self-hosted. Sau de ce nu combinație. :smiley:

Aici problema este cu Macbook nu cu parametri. Apple a decazut foarte mult pe partea de software in ultimii 5 ani. Eu am fost disperat, la fel ca tine, pe un MacBook Pro 2012, i7, 16GB RAM. Am instalat pe el Linux si este alt calculator. Merge de 2 ori mai repede.
Pun pariu ca ce ai tu remote nu este un MacOS X, este altceva.
Colegii mei mai nou au laptop-uri dell cu Linux. Merg mult mai bine decat Mac-urile care au costat dublu.

1 Like