.NET Core ku-Linux, i-DevOps egibele ihhashi

Sithuthukise i-DevOps ngokusemandleni ethu. Sasingu-8, futhi uVasya wayepholile kunabo bonke ku-Windows. Kungazelelwe uVasya wahamba, futhi ngaba nomsebenzi wokwethula iphrojekthi entsha enikezwe ukuthuthukiswa kweWindows. Lapho ngilahla sonke isitaki sokuthuthukiswa kweWindows etafuleni, ngabona ukuthi lesi simo sasibuhlungu...

Iqala kanje indaba Alexandra Sinchinova on I-DevOpsConf. Lapho uchwepheshe ophambili weWindows eshiya inkampani, u-Alexander wazibuza ukuthi enzeni manje. Shintshela ku-Linux, kunjalo! U-Alexander uzokutshela ukuthi ukwazile kanjani ukwenza isendlalelo futhi adlulisele ingxenye yokuthuthukiswa kweWindows ku-Linux esebenzisa isibonelo sephrojekthi eqediwe yabasebenzisi bokugcina abayi-100.

.NET Core ku-Linux, i-DevOps egibele ihhashi

Ungalethela kanjani kalula futhi kalula iphrojekthi ku-RPM usebenzisa i-TFS, iPuppet, i-Linux .NET core? Ungakusekela kanjani ukuguqulwa kwesizindalwazi sephrojekthi uma ithimba labathuthukisi lizwa amagama athi Postgres nelithi Flyway okokuqala, futhi umnqamulajuqu ungongakusasa? Indlela yokuhlanganisa ne-Docker? Ungabakhuthaza kanjani abathuthukisi be-NET ukuthi balahle ama-Windows nama-smoothies bavune iPuppet ne-Linux? Ungazixazulula kanjani izingxabano zemibono uma kungekho amandla, noma isifiso, noma izinsiza zokugcina iWindows ekukhiqizweni? Mayelana nalokhu, kanye ne-Web Deploy, ukuhlolwa, i-CI, mayelana nemikhuba yokusebenzisa i-TFS kumaphrojekthi akhona, futhi, yiqiniso, mayelana nezinduku eziphukile kanye nezixazululo zokusebenza, ekubhalweni kombiko ka-Alexander.


Ngakho-ke, u-Vasya washiya, umsebenzi uphezu kwami, abathuthukisi balinde ngokungapheli nge-pitchforks. Lapho ekugcineni ngiqaphela ukuthi uVasya wayengenakubuyiswa, ngaqala ibhizinisi. Okokuqala, ngihlole iphesenti lama-Win VM emikhumbi yethu. Isikolo besingahambisani neWindows.

.NET Core ku-Linux, i-DevOps egibele ihhashi

Njengoba sithuthukisa i-DevOps, ngibone ukuthi kukhona okudinga ukushintshwa endleleni yokuletha uhlelo olusha lokusebenza. Kwakunesixazululo esisodwa kuphela - uma kungenzeka, dlulisela yonke into ku-Linux. I-Google yangisiza - ngaleso sikhathi i-.Net yayisivele ithuthelwe ku-Linux, futhi ngabona ukuthi lesi kwakuyisixazululo!

Kungani i-.NET core ihlangene ne-Linux?

Kwakunezizathu eziningana zalokhu. Phakathi "kokukhokha imali" kanye "nokungakhokhi", iningi lizokhetha okwesibili - njengami. Ilayisensi ye-MSDB ibiza cishe u-$1; ukunakekela uxhaxha lwemishini ebonakalayo ye-Windows kubiza amakhulu amadola. Enkampanini enkulu lokhu kuyizindleko ezinkulu. Yingakho ke iyonga - isizathu sokuqala. Akuyona ebaluleke kakhulu, kodwa enye ebaluleke kakhulu.

Imishini ebonakalayo yeWindows ithatha izinsiza eziningi kunabafowabo beLinux - bayasinda. Ngokunikezwa kwesilinganiso senkampani enkulu, sikhethe i-Linux.

Uhlelo luvele luhlanganiswe ne-CI ekhona. Sizibheka njengama-DevOps athuthukayo, sisebenzisa i-Bamboo, i-Jenkins ne-GitLab CI, ngakho-ke umsebenzi wethu omningi usebenza ku-Linux.

Isizathu sokugcina sithi ukuhambisana okulula. Bekudingeka sehlise umgoqo wokungena β€œkokuphelezelwa”—abafana abaqonda ingxenye yobuchwepheshe, baqinisekise isevisi engaphazamiseki, futhi banakekele izinsizakalo ezivela kulayini wesibili. Bebevele bejwayelene nesitaki se-Linux, ngakho-ke kulula kakhulu kubo ukuthi baqonde, basekele futhi bagcine umkhiqizo omusha kunokuchitha izinsiza ezengeziwe ukuze baqonde ukusebenza okufanayo kwesoftware yesikhulumi seWindows.

izidingo

Okokuqala nokubalulekile - ukusebenziseka kwesixazululo esisha sabathuthukisi. Akubona bonke abebekulungele ukushintshwa, ikakhulukazi ngemuva kokuthi kukhulunywe igama elithi Linux. Onjiniyela bafuna i-Visual Studio yabo abayintandokazi, i-TFS enokuhlolwa okuzenzakalelayo kwama-assemblies nama-smoothies. Ukuthi ukulethwa ekukhiqizeni kwenzeka kanjani akubalulekile kubo. Ngakho-ke, sinqume ukungashintshi inqubo evamile futhi sishiye konke kungashintshile ekuthuthukisweni kweWindows.

Kudingeka iphrojekthi entsha hlanganisa ku-CI ekhona. Amareyili ayesevele ekhona futhi wonke umsebenzi bekufanele wenziwe kubhekwa imingcele yohlelo lokuphatha ukucushwa, amazinga amukelekile okulethwa kanye nezinhlelo zokuqapha.

Ukusekela nokusebenza kalula, njengombandela womkhawulo omncane wokungena wabo bonke ababambiqhaza abasha abavela ezigabeni ezihlukene kanye nomnyango wokusekela.

Umnqamulajuqu - izolo.

Win Development Group

Iqembu le-Windows lalisebenza ngani ngaleso sikhathi?

.NET Core ku-Linux, i-DevOps egibele ihhashi

Manje ngingakusho lokho ngokuzethemba IdentityServer4 iyindlela epholile yamahhala ye-ADFS enamakhono afanayo, noma yini I-Entity Framework Core - ipharadesi likanjiniyela, lapho kungadingeki ukuthi uzihluphe ngokubhala imibhalo ye-SQL, kodwa chaza imibuzo kusizindalwazi ngemibandela ye-OOP. Kodwa-ke, phakathi nengxoxo yohlelo lokusebenza, ngibheke lesi sitaki njengokungathi yi-cuneiform yaseSumerian, ngiqaphela i-PostgreSQL ne-Git kuphela.

Ngaleso sikhathi sasisebenza ngenkuthalo Ipipi njengohlelo lokuphatha ukucushwa. Kumaphrojekthi ethu amaningi sasisebenzisa IGitLab CI, Nokunwebeka, kusetshenziswa izinsiza ezinomthwalo omkhulu I-HAProxy uqaphe yonke into nge Zabbix, izicubu UGrafana ΠΈ Prometheus, Hunter, futhi konke lokhu kwakuphotha izingcezu zensimbi HPESXi on VMware. Wonke umuntu uyazi - uhlobo lwakudala.

.NET Core ku-Linux, i-DevOps egibele ihhashi

Ake sibheke futhi sizame ukuqonda ukuthi kwenzekeni ngaphambi kokuba siqale zonke lezi zinhlelo zokungenelela.

Kwenzenjani

I-TFS iwuhlelo olunamandla olungagcini nje ngokuletha ikhodi kusuka kumthuthukisi ukuya emshinini wokugcina wokukhiqiza, kodwa futhi inesethi yokuhlanganiswa okuvumelana nezimo nezinsizakalo ezihlukahlukene - ukuhlinzeka nge-CI ezingeni le-cross-platform.

.NET Core ku-Linux, i-DevOps egibele ihhashi
Ngaphambili, lawa bekungamafasitela aqinile. I-TFS yasebenzisa ama-Build agents amaningana, ayesetshenziselwa ukuhlanganisa amaphrojekthi amaningi. I-ejenti ngayinye inezisebenzi ezi-3-4 zokufanisa imisebenzi nokwandisa inqubo. Ngemuva kwalokho, ngokwezinhlelo zokukhipha, i-TFS yaletha i-Build esanda kubhakwa kuseva yesicelo seWindows.

Yini ebesifuna ukuyizuza?

Sisebenzisa i-TFS ekuletheni nasekuthuthukisweni, futhi siqhuba uhlelo kuseva ye-Linux Application, futhi kukhona uhlobo oluthile lomlingo phakathi kwayo. Lokhu Ibhokisi lomlingo futhi kukhona usawoti womsebenzi ozayo. Ngaphambi kokuthi ngiyihlukanise, ngizothatha isinyathelo eceleni futhi ngisho amagama ambalwa mayelana nesicelo.

Le phrojekthi

Uhlelo lokusebenza luhlinzeka ngokusebenza kokuphatha amakhadi esikhokhelwa.

.NET Core ku-Linux, i-DevOps egibele ihhashi

Client

Kwakukhona izinhlobo ezimbili zabasebenzisi. Okokuqala ithole ukufinyelela ngokungena ngemvume isebenzisa isitifiketi se-SSL SHA-2. U okwesibili kube nokufinyelela kusetshenziswa ukungena ngemvume nephasiwedi.

HAProxy

Bese isicelo seklayenti saya ku-HAProxy, eyaxazulula izinkinga ezilandelayo:

  • ukugunyazwa okuyisisekelo;
  • Ukuqedwa kwe-SSL;
  • ukulungisa izicelo ze-HTTP;
  • izicelo zokusakaza.

Isitifiketi seklayenti saqinisekiswa eceleni kochungechunge. Thina - Igunya futhi singakwazi ukukukhokhela lokhu, njengoba thina ngokwethu sikhipha izitifiketi kumakhasimende esevisi.

Naka iphuzu lesithathu, sizobuyela kulo ngemva kwesikhashana.

Emuva emuva

Bahlela ukwenza i-backend ku-Linux. I-backend isebenzisana nesizindalwazi, ilayisha uhlu oludingekayo lwamalungelo bese, kuye ngokuthi yimaphi amalungelo umsebenzisi ogunyaziwe anawo, inikeza ukufinyelela kokusayina imibhalo yezezimali futhi iwathumele ukuze asetshenziswe, noma enze uhlobo oluthile lombiko.

Ukonga nge-HAProxy

Ngaphezu kwalezi zimo ezimbili iklayenti ngalinye elizizulile, bekubuye kube khona umongo wobunikazi. IdentityServer4 ikuvumela ukuthi ungene ngemvume, lena i-analogue yamahhala nenamandla ADFS - Izinsizakalo ze-Active Directory Federation.

Isicelo sikamazisi sicutshungulwe ngezinyathelo ezimbalwa. Isinyathelo sokuqala - ikhasimende wangena ngemuva, exhumene nale seva futhi yahlola ukuba khona kwethokheni yeklayenti. Uma singatholwanga, isicelo sibuyiselwe engqikithini esiphuma kuyo, kodwa ngokuqondisa kabusha, futhi ngokuqondisa kabusha siye kubunikazi.

Isinyathelo sesibili - isicelo samukelwe ekhasini lokugunyaza ku-IdentityServer, lapho iklayenti libhalise khona, futhi lelothokheni osekunesikhathi lilindelwe livele kusizindalwazi se-IdentityServer.

Isinyathelo sesithathu - iklayenti liqondiswe kabusha emuva kumongo eyavela kuwo.

.NET Core ku-Linux, i-DevOps egibele ihhashi

I-IdentityServer4 inesici: ibuyisela impendulo esicelweni sokubuyisela nge-HTTP. Kungakhathaliseki ukuthi sithwale kanzima kangakanani ukusetha iseva, kungakhathaliseki ukuthi sizikhanyisele kangakanani ngamadokhumenti, isikhathi ngasinye lapho sithola isicelo sokuqala seklayenti esine-URL eza nge-HTTPS, futhi i-IdentityServer ibuyisela umongo ofanayo, kodwa nge-HTTP. Sashaqeka! Futhi sidlulisele konke lokhu ngomongo wobunikazi ku-HAProxy, futhi kuzihloko bekufanele siguqule umthetho olandelwayo we-HTTP ube yi-HTTPS.

Kuyini ukuthuthuka futhi wonge kuphi?

Songa imali ngokusebenzisa isixazululo samahhala sokugunyaza iqembu labasebenzisi, izinsiza, njengoba asizange sibeke i-IdentityServer4 njengenodi ehlukile engxenyeni ehlukile, kodwa siyisebenzise kanye ne-backend kuseva efanayo lapho i-backend yohlelo lokusebenza isebenza khona. .

Kufanele isebenze kanjani

Ngakho, njengoba ngithembisile - Magic Box. Sesivele siyaqonda ukuthi siqinisekisiwe ukuthi sizodlulela ku-Linux. Ake sakhe imisebenzi ethile edinga izixazululo.

.NET Core ku-Linux, i-DevOps egibele ihhashi

Upopayi uyazibonakalisa. Ukuletha nokuphatha isevisi nokucushwa kwesicelo, izindlela zokupheka ezimnandi bekufanele zibhalwe. Umqulu wepensela ubonisa ngokucacile ukuthi kwenziwa ngokushesha nangempumelelo kangakanani.

Indlela yokulethwa. Izinga i-RPM. Wonke umuntu uyaqonda ukuthi ku-Linux awukwazi ukwenza ngaphandle kwayo, kodwa iphrojekthi ngokwayo, ngemva komhlangano, yayiyisethi yamafayela e-DLL asebenzisekayo. Babengaba ngu-150, umsebenzi wawunzima kakhulu. Okuwukuphela kwesixazululo esivumelanayo ukupakisha le kanambambili ku-RPM futhi kusetshenziswe uhlelo lokusebenza kuyo.

Inguqulo. Kwakudingeka sikhiphe kaningi, futhi kwakudingeka sinqume ukuthi sizolenza kanjani igama lephakheji. Lona umbuzo wezinga lokuhlanganiswa ne-TFS. Besine-ejenti yokwakha ku-Linux. Lapho i-TFS ithumela umsebenzi kusiphathi - isisebenzi - kumenzeli woKwakha, futhi iwudlulisela inqwaba yezinto eziguquguqukayo ezigcina zisendaweni yenqubo yesibambi. Lezi zinhlobonhlobo zemvelo ziqukethe igama elithi Yakha, igama lenguqulo, nokunye okuguquguqukayo. Funda kabanzi mayelana nalokhu esigabeni esithi β€œUkwakha iphakheji le-RPM”.

Isetha i-TFS yehla izomisa iPipeline. Ngaphambilini, siqoqe wonke amaphrojekthi e-Windows kuma-ejenti we-Windows, kodwa manje sekuvela i-ejenti ye-Linux - i-ejenti ye-Build, edinga ukufakwa eqenjini lokwakha, inothiswe ngezinto ezithile zobuciko, futhi itshelwe ukuthi hlobo luni lwamaphrojekthi azokwakhiwa kule agent ye-Build. , futhi ngandlela thize ulungise iPipeline.

IdentityServer. I-ADFS akuyona indlela yethu, siya ku-Open Source.

Ake sidlule izingxenye.

Ibhokisi lomlingo

Iqukethe izingxenye ezine.

.NET Core ku-Linux, i-DevOps egibele ihhashi

I-ejenti ye-Linux Build. I-Linux, ngoba siyakhela yona - inengqondo. Le ngxenye yenziwe ngezinyathelo ezintathu.

  • Lungiselela abasebenzi futhi hhayi yedwa, njengoba kwakulindelwe umsebenzi owabiwe kulo msebenzi.
  • Faka i-.NET Core 1.x. Kungani i-1.x lapho i-2.0 isivele itholakala endaweni yokugcina evamile? Ngoba lapho siqala ukuthuthukiswa, inguqulo ezinzile yayingu-1.09, futhi kwanqunywa ukwenza iphrojekthi isekelwe kuyo.
  • I-Git 2.x.

Inqolobane ye-RPM. Amaphakheji e-RPM adingeka ukuthi agcinwe ndawana thize. Kucatshangwe ukuthi sizosebenzisa inqolobane ye-RPM yebhizinisi efanayo etholakala kubo bonke abasingathi be-Linux. Yilokho abakwenza. Iseva yenqolobane imisiwe ihuku lewebhu elande iphakheji ye-RPM edingekayo endaweni eshiwo. Inguqulo yephakheji ibikwe ku-webhook yi-ejenti ye-Build.

IGitLab. Qaphela! I-GitLab lapha ayisetshenziswa onjiniyela, kodwa umnyango wokusebenza ukulawula izinguqulo zezinhlelo zokusebenza, izinguqulo zamaphakheji, ukuqapha isimo sayo yonke imishini ye-Linux, futhi igcina iresiphi - yonke i-Puppet ibonakala.

Ipipi - ixazulula zonke izinkinga eziyimpikiswano futhi ilethe ngqo ukucushwa esikufunayo ku-Gitlab.

Siqala ukutshuza. Ngabe kusebenza kanjani ukulethwa kwe-DLL ku-RPM?

Ukulethwa kwe-DDL ku-RPM

Ake sithi sinenkanyezi yokuthuthukisa i-NET. Isebenzisa i-Visual Studio futhi idale igatsha lokukhulula. Ngemuva kwalokho, ilayisha ku-Git, futhi i-Git nansi inhlangano ye-TFS, okungukuthi, iyinqolobane yohlelo lokusebenza umthuthukisi asebenza ngayo.

.NET Core ku-Linux, i-DevOps egibele ihhashi

Ngemuva kwalokho i-TFS ibona ukuthi isivumelwano esisha sesifikile. Iluphi uhlelo lokusebenza? Kuzilungiselelo ze-TFS kunelebula ekhombisa ukuthi i-ejenti ethile ye-Build inaziphi izinsiza. Kulokhu, uyabona ukuthi sakha iphrojekthi ye-NET Core futhi sikhetha i-ejenti ye-Linux Build ku-pool.

I-ejenti ye-Build ithola imithombo bese ilanda okudingekayo ukuncika kusukela ku-.NET repository, npm, njll. futhi ngemva kokwakha uhlelo lokusebenza ngokwalo kanye nokupakishwa okulandelayo, ithumela iphakheji ye-RPM endaweni yokugcina ye-RPM.

Ngakolunye uhlangothi, okulandelayo kwenzeka. Unjiniyela womnyango wokusebenza ubambe iqhaza ngokuqondile ekukhishweni kwephrojekthi: ushintsha izinguqulo zamaphakheji ku Hiera endaweni yokugcina lapho kugcinwa khona iresiphi yesicelo, emva kwalokho i-Puppet iqala Yum, ilanda iphakheji entsha endaweni yokugcina, futhi inguqulo entsha yohlelo lokusebenza isilungele ukusetshenziswa.

.NET Core ku-Linux, i-DevOps egibele ihhashi

Konke kulula ngamagama, kodwa kwenzekani ngaphakathi kwe-ejenti Yokwakha ngokwayo?

Ukupakisha i-DLL RPM

Ithole imithombo yephrojekthi futhi yakha umsebenzi ovela ku-TFS. I-ejenti yokwakha iqala ukwakha iphrojekthi ngokwayo kusuka emithonjeni. Iphrojekthi ehlanganisiwe iyatholakala njengesethi DLL amafayela, ezipakishwe kungobo yomlando ye-zip ukuze kwehliswe umthwalo ohlelweni lwefayela.

Ingobo yomlando ye-ZIP ilahliwe kuhla lwemibhalo lokwakha iphakheji le-RPM. Okulandelayo, iskripthi se-Bash siqala ukuguquguquka kwemvelo, sithola inguqulo Yakha, inguqulo yephrojekthi, indlela eya kumkhombandlela wokwakha, futhi isebenzisa i-RPM-build. Uma ukwakhiwa sekuqediwe, iphakheji ishicilelwa ku inqolobane yendawo, etholakala ku-ejenti ye-Build.

Okulandelayo, kusuka kumenzeli wokwakha kuya kuseva endaweni ye-RPM Isicelo se-JSON sithunyelwe okubonisa igama lenguqulo nokwakha. I-Webhook, engikhulume ngayo ekuqaleni, ilanda yona kanye leli phakheji endaweni yokugcina yendawo ku-ejenti Yokwakha futhi yenza umhlangano omusha utholakale ukuze ufakwe.

.NET Core ku-Linux, i-DevOps egibele ihhashi

Kungani lolu hlelo oluthile lokulethwa kwephakheji endaweni ye-RPM? Kungani ngingakwazi ukuthumela ngokushesha iphakheji ehlanganisiwe endaweni yokugcina? Iqiniso liwukuthi lesi yisimo sokuqinisekisa ukuphepha. Lesi simo sikhawulela amathuba okuba abantu abangagunyaziwe balayishe amaphakheji e-RPM kuseva efinyeleleka kuyo yonke imishini ye-Linux.

Ukuguqulwa kwesizindalwazi

Ekubonisaneni nethimba lezokuthuthukiswa, kwavela ukuthi abafana babeseduze ne-MS SQL, kodwa kumaphrojekthi amaningi okungewona ama-Windows sase sivele sisebenzisa i-PostgreSQL ngamandla abo onke. Njengoba besesivele sinqume ukushiya yonke into ekhokhelwe, saqala ukusebenzisa i-PostgreSQL nalapha.

.NET Core ku-Linux, i-DevOps egibele ihhashi

Kule ngxenye ngifuna ukukutshela ukuthi siyiguqule kanjani isizindalwazi nokuthi sikhethe kanjani phakathi kwe-Flyway ne-Entity Framework Core. Ake sibheke ubuhle nobubi babo.

ΠœΠΈΠ½ΡƒΡΡ‹

I-Flyway ihamba ngendlela eyodwa kuphela, thina asikwazi ukuhlehla - lokhu kuyinkinga enkulu. Ungayiqhathanisa ne-Entity Framework Core ngezinye izindlela - ngokuphathelene nokunethezeka konjiniyela. Uyakhumbula ukuthi sibeka lokhu phambili, futhi umbandela oyinhloko bekuwukungashintshi lutho ekuthuthukisweni kweWindows.

Okwe-Flyway us kwakudingeka uhlobo oluthile lokugoqaukuze abafana bangabhali Imibuzo ye-SQL. Asondele kakhulu ekusebenzeni ngemibandela ye-OOP. Sabhala imiyalelo yokusebenza ngezinto zesizindalwazi, sakha umbuzo we-SQL futhi sawenza. Inguqulo entsha ye-database isilungile, ihlolwe - konke kuhamba kahle, konke kuyasebenza.

I-Entity Framework Core inokususa - ngaphansi kwemithwalo esindayo yakha imibuzo engaphansi kwe-SQL, futhi ukwehla kusizindalwazi kungaba okubalulekile. Kodwa njengoba singenayo isevisi enomthwalo omkhulu, asibali umthwalo ngamakhulu ama-RPS, sazamukela lezi zingozi futhi sadlulisela inkinga kithina esikhathini esizayo.

ΠŸΠ»ΡŽΡΡ‹

I-Entity Framework Core isebenza ngaphandle kwebhokisi futhi kulula ukuyithuthukisa, kanye neFlyway Ihlanganisa kalula ku-CI ekhona. Kodwa sikwenza kube lula kubathuthukisi :)

Inqubo yokugoqa

I-Puppet ibona ukuthi inguqulo yephakheji iyeza, kuhlanganise naleyo enesibopho sokufuduka. Okokuqala, ifaka iphakheji equkethe imibhalo yokuthutha kanye nokusebenza okuhlobene nesizindalwazi. Ngemuva kwalokhu, uhlelo lokusebenza olusebenza ne-database luqalwa kabusha. Okulandelayo kuza ukufakwa kwezingxenye ezisele. Uhlelo okufakwa ngalo amaphakheji nezinhlelo zokusebenza luchazwa ku-Puppet manifest.

Izinhlelo zokusebenza zisebenzisa idatha ebucayi, njengamathokheni, amagama ayimfihlo esizindalwazi, konke lokhu kudonselwa kulungiselelo ku-Puppet master, lapho agcinwa khona ngendlela ebethelwe.

Izinkinga ze-TFS

Ngemva kokunquma futhi ngabona ukuthi konke kwakusisebenzela ngempela, nganquma ukubheka ukuthi kwenzekani ngemihlangano ye-TFS iyonke yomnyango wezokuthuthukiswa kweWin kwamanye amaphrojekthi - noma ngabe sakha / sikhulula ngokushesha noma cha, futhi uthole izinkinga ezinkulu ngesivinini.

Enye yamaphrojekthi amakhulu ithatha imizuzu eyi-12-15 ukuhlangana - isikhathi eside, awukwazi ukuphila kanjalo. Ukuhlaziya okusheshayo kubonise ukwehla okubi ku-I/O, futhi lokhu bekukumalungu afanayo.

Ngemva kokuyihlaziya ngengxenye, ngikhombe ama-foci amathathu. Okokuqala - "Kaspersky antivirus", eskena imithombo kuwo wonke ama-ejenti we-Windows Build. Okwesibili - Windows Inkomba. Ayizange ikhutshazwe, futhi yonke into yayikhonjwe ngesikhathi sangempela kuma-ejenti oKwakha phakathi nenqubo yokuthunyelwa.

Okwesithathu - Npm ufake. Kuvele ukuthi kumaPipelines amaningi sisebenzise lesi simo esiqondile. Kungani emubi? Inqubo yokufaka i-Npm iqhutshwa lapho isihlahla sokuncika senziwa phakathi package-lock.json, lapho izinguqulo zamaphakheji azosetshenziselwa ukwakha iphrojekthi zirekhodwa. Okubi ukuthi i-Npm install ikhipha izinguqulo zakamuva zamaphakheji ku-inthanethi ngaso sonke isikhathi, futhi lokhu kuthatha isikhathi esiningi esimweni sephrojekthi enkulu.

Onjiniyela kwesinye isikhathi bazama emshinini wasendaweni ukuze bahlole ukuthi ingxenye ethile noma yonke iphrojekthi isebenza kanjani. Kwesinye isikhathi kuvele ukuthi yonke into ipholile endaweni, kodwa bayayihlanganisa, bayikhiphe, kwangalunga lutho. Siqala ukuthola ukuthi yini inkinga - yebo, izinguqulo ezahlukene zamaphakeji ezinokuncika.

Isixazululo

  • Imithombo kokuhlukile kwe-AV.
  • Khubaza ukukhomba.
  • Iya ku npm ci.

Izinzuzo ze-npm ci ukuthi thina Siqoqa isihlahla sokuncika kanye, futhi sithola ithuba lokuhlinzeka ngonjiniyela uhlu lwamanje lwamaphakheji, angalinga ngakho endaweni yakini ngokuthanda kwakhe. Lokhu yonga isikhathi onjiniyela ababhala amakhodi.

Ukucushwa

Manje kancane mayelana nokucushwa kwendawo yokugcina. Ngokomlando sisebenzisa Nexus yokuphatha izinqolobane, okuhlanganisa I-REPO yangaphakathi. Le nqolobane yangaphakathi iqukethe zonke izakhi esizisebenzisela izinjongo zangaphakathi, isibonelo, ukuqapha okuzibhalela wena.

.NET Core ku-Linux, i-DevOps egibele ihhashi

Siphinde sisebenzise I-NuGet, njengoba ine-caching engcono uma iqhathaniswa nabanye abaphathi bephakheji.

Umphumela

Ngemuva kokuthi silungiselele ama-Build Agents, isikhathi sokwakha esimaphakathi sehlisiwe ukusuka kumaminithi angu-12 ukuya ku-7.

Uma sibala yonke imishini ebesingayisebenzisela i-Windows, kodwa sishintshele ku-Linux kule phrojekthi, silondoloze cishe u-$10. Futhi lokho kukumalayisensi nje, nokunye okwengeziwe uma sicabangela okuqukethwe.

Izinhlelo

Ngekota elandelayo, sihlele ukusebenzela ekuthuthukiseni ukulethwa kwamakhodi.

Ukushintshela kusithombe se-Docker esakhiwe ngaphambilini. I-TFS iyinto epholile enama-plugin amaningi akuvumela ukuthi uhlanganise ku-Pipeline, okuhlanganisa ukuhlangana okusekelwe ku-trigger, yithi, isithombe se-Docker. Sifuna ukwenza lokhu kucupha okufanayo package-lock.json. Uma ukwakheka kwezingxenye ezisetshenziselwa ukwakha iphrojekthi kushintsha ngandlela thile, sakha isithombe esisha se-Docker. Kamuva isetshenziselwa ukuphakela isiqukathi nohlelo lokusebenza oluhlanganisiwe. Akunjalo manje, kodwa sihlela ukushintshela esakhiweni se-microservice e-Kubernetes, esathuthuka ngenkuthalo enkampanini yethu futhi sesinesikhathi eside sinikeza izixazululo zokukhiqiza.

Isifingqo

Ngikhuthaza wonke umuntu ukuthi alahle amafasitela, kodwa akungoba angazi ukuthi aphekwa kanjani. Isizathu ukuthi izixazululo eziningi ze-Opensource ziyi Isitaki se-Linux. Ingabe ulungile yonga ezinsizeni. Ngokubona kwami, ikusasa lingele-Open Source izixazululo ku-Linux nomphakathi onamandla.

Iphrofayili yesikhulumi sika-Alexander Sinchinov ku-GitHub.

I-DevOps Conf iyingqungquthela yokuhlanganiswa kokuthuthukiswa, ukuhlolwa kanye nezinqubo zokusebenza kochwepheshe ngochwepheshe. Yingakho iphrojekthi u-Alexander akhuluma ngayo? kwasetshenziswa futhi kwasebenza, futhi ngosuku lokwenziwa kwaba khona ukukhishwa okubili okuyimpumelelo. Vuliwe I-DevOps Conf ku-RIT++ NgoMeyi 27 no-28 kuzoba namacala afanayo nakakhulu avela kodokotela. Usengagxumela enqoleni yokugcina futhi hambisa umbiko noma uthathe isikhathi sakho incwadi ithikithi. Hlangana nathi e-Skolkovo!

Source: www.habr.com

Engeza amazwana