Uzakdan ösüş gurşawy (“Bulut ösüş gurşawy” diýlip hem atlandyrylýar) mowzugyna has giç geldim. Esasy sebäbi, alty ýyldan gowrak wagt bäri ösüş toparynda işlemedim. Şeýle-de bolsa, men häzir “Loft Labs” -da işleýärin we uzakdan ösüş gurşawy önümi bar: DevPod . DevPod stendinde işleýän FOSDEM- de bolanym üçin baha teklibimize düşünmek isledim.
Öňki işläp düzüji hökmünde, her bir döredijiniň ösüş gurşawyny gurmagyň agyrysyny ýadymda. Karýeramyň başynda arhitektor ösüş maşynymy agyryly düzmeli boldy, şonuň üçinem onuň gurnamagyna meňzeýärdi. Soň bolsa, toparymyň agzalary üçinem gaýtaladym. Ösüşe täsir edip biljek gapma-garşylyklaryň gerimi diýen ýaly tükeniksiz: Operasiýa ulgamy, elbetde, SDK-laryň wersiýasy we tagamy, meselem , Java-nyň Eclipse Temurin vs SapMachine, git çeňňekleri we ş.m. Her taslamada der, zähmet we gan bardy.
Yllaryň dowamynda ösüş gurşawyny köpeltmek üçin käbir gyzykly çemeleşmeleri gördüm. Ilkibaşda VM-lerden, soň bolsa konteýnerlerden gelip çykýardylar. Wagrant meniň ünsümi çeken ilkinji gural diýip pikir edýärin: 2012-nji ýylda bir gepleşige gatnaşdym, spikeriň okuw sapaklaryndan öň maşyn gurmak üçin ulanandygyny aýtdy.
Programma arhitekturasy ýyllaryň dowamynda ep-esli ösdi we has çylşyrymly boldy. Birnäçe ýyl ozal ýeke-täk infrastruktura baglylygyň SQL maglumat bazasy bolmagy ähtimaldy. JVM ekosistemasynda, ähli SQL maglumat bazalarynda işlejek API bolan JDBC-e eýe bolmak bagtymyz boldy. Siziň etmeli zadyňyz, adaty SQL ýazmakdy we maglumat bazasynyň işini iş wagtynda düzüp bilersiňiz. Apache Derbi we H2 ýaly içerki maglumat bazalary bilen, her bir dörediji üçin aýratyn Oracle mysal gerek däldi.
Döwür üýtgedi. Programmalaryň SQL maglumat bazasyna, NoSQL maglumat bazasyna, Kafka toparyna we birnäçe goşmaça amaly hyzmatlaryna mätäç bolmagy seýrek däl. Şeýle programmalary döredýän guramalar bu çylşyrymlylygy dolandyrmak üçin eýýäm konteýner bilen baglanyşykly tehnologiýalary ulanýarlar, meselem , Docker ýa-da Kubernetes.
Başlangyç meseläni çözüp bilenok: IDE, pluginleri, SDK (lar), git çeňňekleri we beýleki zatlary nädip deňleşdirmeli? Mümkin, muny uzakdaky ösüş gurşawyndan göz öňüne getiren bolsaňyz gerek.
Girişde, RDE-leriň “Bulut ösüş gurşawy” diýilýändigini aýtdym. RDE-leriň esasy pikiri, mümkin bolan zatlaryň hemmesini “Bulutda” saklamak we ähli döredijiler bilen paýlaşmak. Mundan başga-da, iň giň ýaýran “Bulut” üpjün edijilerinde we iň köp ulanylýan IDE-lerde işlemegini isleýärsiňiz. Şeýle zerurlyk ýüze çykanda, pudak aktýorlarynyň standartyň töweregine ýygnanmagynyň wagty geldi. Microsoft, VS kody üçin Ösüş konteýner standartyny şu takyk maksat bilen aýyryň.
Ösüş konteýni (ýa-da gysgaça dev konteýner) konteýnerini doly aýratynlykly ösüş gurşawy hökmünde ulanmaga mümkinçilik berýär. Programmany işletmek, kod bazasy bilen işlemek üçin zerur gurallary, kitaphanalary ýa-da iş wagtyny aýyrmak, üznüksiz integrasiýa we synagda kömek etmek üçin ulanylyp bilner. Dev konteýnerleri ýerli ýa-da uzakdan, hususy ýa-da köpçülikleýin bulutda, dürli goldaw gurallarynda we redaktorlarda işledilip bilner.
Ösüş konteýner spesifikasiýasy, kodlaşdyrma gurşawy ýa-da üznüksiz integrasiýa we synag üçin ulanylmagy üçin ýönekeýleşdirilen, gurulmadyk ýekeje konteýner görnüşini hödürlemek bilen bir hatarda, umumy ösüş aýratyn sazlamalary, gurallary we konfigurasiýasy bilen bar bolan formatlary baýlaşdyrmagyň ýollaryny gözlemäge synanyşýar. Spesifikasiýanyň esasy meta-maglumatlaryndan başga-da, spesifikasiýa döredijilere aýratynlyklar we galyplar arkaly konteýner gurmak ädimlerini çalt paýlaşmaga we gaýtadan ulanmaga mümkinçilik berýär.
Sazlama faýly devcontainer.json
. Shema salgylanmasyny şu ýerden tapyp bilersiňiz. VS kody, Visual Studio we IntelliJ önümleri devcontainer.json
faýlyny ulanyp biler. Üpjün edijiniň tarapynda, GitHub kod kodlary, CodeSandbox we DevPod ony goldaýar.
“DevPod” devcontainer.json
peýdalanýan çözgütdir. Üç esasy häsiýeti amala aşyrýar:
“DevPod” ulanyjylara amatly we gönümel bolmak üçin döredilip, ulanmaga şemal öwüsýär. Bu ýazgyny önüme haýran galmak we pikirlerimi tertiplemek üçin ýazmagy makul bildim.
Birinji ädim, DevPod-yň özi gurmak. Men Mac-da; Homebrew resepti bar.
brew install devpod
Gurlandan soň, ony CLI ýa-da GUI-den başlap bilersiňiz. Elýeterli wariantlara düşünmäge kömek etmek üçin başda GUI-leri goldaýaryn.
DevPod üpjün edijileri hödürleýär: konteýnerleri işletmeli ýerler. Dymmaklyk Docker. Bulut üpjün edijileri we Kubernetes toparlaryny goşmak bilen goşmaça üpjün edijileri goşup bilersiňiz.
Bu ýazgy üçin Dockeri saklaryn - OrbStack ulanýaryn. Indi etiň üstünde. Iş ýerleriniň menýu elementine geçeliň. Eger eýýäm iş ýerlerini döreden bolsaňyz, olar şu ýerde peýda bolmaly. Ilkinji saparymyz bolansoň, birini dörederis. Btn: [Iş ýerini döretmek] düwmesine basyň. Geliň, iň çalt mysallardan birini synap göreliň. Meniň saýlan IDEim IntelliJ IDEA, ýöne özüňizi saýlap bilersiňiz. Surat, IDE we üpjün ediji saýlanyňyzdan soň, Iş ýerini basyň.
Bu pursatda DevPod suraty göçürip alar we IntelliJ-de OrbStack-da işleýän taslamany açar.
Mundan beýläk, her bir toparyň agzasynyň şol bir “Rust” wersiýasyny ulanýandygyna ynam bilen “Rust” taslamamyzyň üstünde işläp bileris.
Bu sazlamany ilkinji gezek ulananyňyzda, DevPod JetBrains müşderisini hem göçürip alar. Şeýle-de bolsa, bir gezeklik göçürip almak gijikdirilýär.
Mysal üçin, “Git” -iň öňünden berlen çeňňekleri hem bar. Başga bir IDE-de ösdürmegi makul bilýän bolsaňyz, işe başlanda saýlaň we gowy. Gündelik işiňiz gutaransoň, gapy saklaň. Bulutda işleýän bolsaňyz, pul tygşytlaýar. Ertesi gün konteýneriň işini dowam etdir we işiňi dowam etdir.
“DevPod”, gurallar guşagyňyzyň töwereginde ajaýyp gural bolup, ösüş toparyna (toparlara) şol bir maşyn konfigurasiýasyny kynçylyksyz paýlaşmaga mümkinçilik berýär. Bu giriş blogynda, edip biljek zatlaryňyzyň ujypsyzja bölegini görkezdim. Birmeňzeş ösüş şertleri bilen ýüzbe-ýüz bolsaňyz, güýjüni ulanmagyňyzy maslahat berýärin.
Has öňe gitmek üçin: