paint-brush
Pojednostavljen daljinski razvoj uz DevPod - besplatan alat otvorenog kodaby@nfrankel
660 čitanja
660 čitanja

Pojednostavljen daljinski razvoj uz DevPod - besplatan alat otvorenog koda

by Nicolas Fränkel5m2025/02/08
Read on Terminal Reader

Predugo; Citati

U ovom uvodnom postu na blogu pokazao sam mali dio onoga što možete učiniti. Podstičem vas da iskoristite njegovu moć ako se suočite sa heterogenim razvojnim okruženjima.
featured image - Pojednostavljen daljinski razvoj uz DevPod - besplatan alat otvorenog koda
Nicolas Fränkel HackerNoon profile picture

Relativno kasno dolazim na temu udaljenih razvojnih okruženja (takođe poznatih kao Cloud razvojna okruženja). Glavni razlog je taj što nisam radio u razvojnom timu više od šest godina. Međutim, sada radim za Loft Labs i imamo proizvod za daljinsko razvojno okruženje: DevPod . Hteo sam da razumem našu ponudu vrednosti jer ću biti u FOSDEM- u koji vodi DevPod štand .

Problem

Kao bivši programer, živo se sjećam bola postavljanja razvojnog okruženja svakog programera. Na početku moje karijere, arhitekta je morao bolno da konfiguriše moju razvojnu mašinu, tako da je to bilo slično njegovoj postavci. Kasnije sam to isto radio za članove mog tima više puta. Opseg mogućih neslaganja koje utiču na razvoj je praktično beskonačan: operativni sistem, naravno, verzija i ukus SDK-ova, npr . Java Eclipse Temurin vs SapMachine, git hooks, itd. Bilo je znoja, truda i krvi na svakom projektu.


Tokom godina, vidio sam neke zanimljive pristupe reprodukciji razvojnih okruženja. U početku su poticali iz VM-a, a zatim iz kontejnera. Mislim da je Vagrant bio prvi alat koji mi je privukao pažnju: prisustvovao sam jednom govoru 2012. gdje je govornik spomenuo da ga je koristio za postavljanje mašina prije svojih treninga.


Arhitektura aplikacija značajno je evoluirala tokom godina, postajući složenija i sofisticiranija. Prije mnogo godina, šanse su bile da je jedina infrastrukturna ovisnost bila SQL baza podataka. U JVM ekosistemu, imali smo sreće da imamo JDBC, API koji bi radio u svim SQL bazama podataka. Sve što je trebalo da uradite je da napišete standardni SQL i mogli ste da konfigurišete instancu baze podataka u vreme izvođenja. Sa ugrađenim bazama podataka kao što su Apache Derby i H2 , nije vam bila potrebna posebna Oracle instanca za svakog programera.


Vremena su se promenila. Nije neuobičajeno da aplikacije trebaju SQL bazu podataka, NoSQL bazu podataka, Kafka klaster i nekoliko dodatnih servisa aplikacija. Organizacije koje razvijaju takve aplikacije već koriste neke tehnologije vezane za kontejnere, npr . Docker ili Kubernetes, za upravljanje ovom složenošću.


Međutim, to ne rješava početni problem: kako uskladiti IDE, njegove dodatke, SDK(ove), git kuke i sve ostalo? Vjerovatno ste to pogodili iz naslova - Remote Development Environments.

Razvojni kontejneri

U uvodu sam spomenuo da se RDE-ovi nazivaju Cloud Development Environments. Glavna ideja iza RDE-ova je da pohranite sve što možete u oblaku i podijelite sa svim programerima. Osim toga, želite da rade na najrasprostranjenijim Cloud provajderima i najčešće korištenim IDE-ovima. Kada se pojavi takva potreba, vrijeme je da se akteri u industriji okupe oko standarda. Microsoft je pokrenuo standard razvojnog kontejnera za svoj dodatak za razvoj VS Code Remove upravo za ovu svrhu.


Kontejner za razvoj (ili skraćeno dev kontejner) omogućava vam da koristite kontejner kao potpuno funkcionalno razvojno okruženje. Može se koristiti za pokretanje aplikacije, za odvajanje alata, biblioteka ili vremena izvođenja potrebnih za rad sa kodnom bazom, kao i za pomoć u kontinuiranoj integraciji i testiranju. Dev kontejneri se mogu pokretati lokalno ili daljinski, u privatnom ili javnom oblaku, u raznim pomoćnim alatima i uređivačima.


Specifikacija razvojnog kontejnera nastoji pronaći načine za obogaćivanje postojećih formata uobičajenim postavkama, alatima i konfiguracijom specifičnim za razvoj, a istovremeno pruža pojednostavljenu, neorganiziranu opciju jednog kontejnera – tako da se mogu koristiti kao okruženja za kodiranje ili za kontinuiranu integraciju i testiranje. Osim osnovnih metapodataka specifikacije, specifikacija također omogućava programerima da brzo dijele i ponovo koriste korake postavljanja kontejnera kroz značajke i predloške.


-- Šta su razvojni kontejneri?


Konfiguracijski fajl je devcontainer.json . Ovdje možete pronaći referencu šeme. Proizvodi VS Code, Visual Studio i IntelliJ mogu iskoristiti datoteku devcontainer.json . Na strani provajdera podržavaju ga GitHub Codespaces, CodeSandbox i DevPod.

Predstavljamo DevPod

DevPod je rješenje koje koristi devcontainer.json . Implementira tri glavna svojstva:


  • Otvoreni izvor: Nema zaključavanja dobavljača. 100% besplatno i otvorenog koda koje su izradili programeri za programere.


  • Samo za klijenta: Nije potrebno podešavanje na strani servera. Preuzmite desktop aplikaciju ili CLI da započnete.


  • Bez mišljenja: Ponovljivo razvojno okruženje za bilo koji infra, bilo koji IDE i bilo koji programski jezik.


DevPod je dizajniran tako da bude jednostavan za korištenje i jednostavan, što ga čini lakim za korištenje. Odlučio sam da napišem ovaj post jer sam bio impresioniran proizvodom i kako bih doveo svoje misli u red.


Prvi korak je da instalirate sam DevPod. Ja sam na Macu; postoji domaći recept.


 brew install devpod


Jednom instaliran, možete ga pokrenuti iz CLI ili GUI. Ja preferiram GUI, na početku, kako bi lakše razumjeli dostupne opcije.


DevPod Početni ekran


DevPod nudi dobavljačima: lokacije na kojima se mogu pokrenuti kontejneri. Podrazumevano je Docker. Možete dodati dodatne dobavljače, uključujući Cloud Providere i Kubernetes klastere.


Konfiguriranje novog DevPod provajdera


Za ovu objavu ću zadržati Docker—koristim OrbStack. Sada na meso. Idemo na stavku menija radnog prostora. Ako ste već kreirali radne prostore, trebali bi se pojaviti ovdje. Pošto je ovo naša prva poseta, napravićemo je. Kliknite na dugme btn:[Kreiraj radni prostor]. Isprobajmo jedan od primjera za brzi početak, tj . Rust. Moj IDE izbor je IntelliJ IDEA, ali vi možete izabrati svoj. Nakon što odaberete sliku, IDE i dobavljača, kliknite na Kreiraj radni prostor.


Pokretanje novog DevPod radnog prostora


U ovom trenutku, DevPod će preuzeti sliku i otvoriti projekat koji radi u OrbStack-u u IntelliJ-u.


Pokretanje IntelliJ-a preko JetBrains Gateway-a


Od sada možemo sa zadovoljstvom početi raditi na našem Rust projektu, uvjereni da svaki član tima koristi istu Rust verziju.

Imajte na umu da će prvi put kada koristite ovu postavku, DevPod preuzeti i JetBrains klijent. Ipak, to je jednokratno kašnjenje preuzimanja.


Preuzimanje JetBrains klijenta


Isto vrijedi i za Git pre-urezivanje zakačiva, na primjer. Ako više volite da razvijate unutar drugog IDE-a, odaberite ga u vrijeme pokretanja i sve je u redu. Kada završite sa svojim dnevnim poslom, zaustavite kontejner. Ako radite u oblaku, to štedi novac. Sljedećeg dana nastavite sa kontejnerom i nastavite s radom.

Zaključak

DevPod je lijep alat oko vašeg pojasa s alatima koji omogućava vašim razvojnim timovima da dijele istu konfiguraciju stroja bez muke. U ovom uvodnom postu na blogu pokazao sam mali dio onoga što možete učiniti. Podstičem vas da iskoristite njegovu moć ako se suočite sa heterogenim razvojnim okruženjima.


Da idemo dalje: