.NET Core amin'ny Linux, DevOps amin'ny soavaly

Namolavola DevOps araka izay vitanay izahay. Nisy 8 izahay, ary i Vasya no nangatsiaka indrindra tao amin'ny Windows. Tampoka teo dia nandao i Vasya, ary nanana andraikitra hanangana tetikasa vaovao aho izay nomen'ny fampandrosoana Windows. Rehefa nariako teo ambony latabatra ny stack fampandrosoana Windows manontolo, dia tsapako fa fanaintainana ny toe-javatra ...

Toy izao no nanombohan’ny tantara Alexandra Sinchinova amin'ny DevOpsConf. Rehefa nandao ny orinasa ilay manam-pahaizana manokana momba ny Windows, dia nanontany tena i Alexander hoe inona no tokony hatao izao. Mivadika amin'ny Linux, mazava ho azy! Holazain'i Alexander aminao ny fomba nahavitany namorona ohatra iray sy nafindrany ny ampahany amin'ny fampivoarana Windows amin'ny Linux amin'ny fampiasana ny ohatra momba ny tetikasa vita ho an'ny mpampiasa farany 100.

.NET Core amin'ny Linux, DevOps amin'ny soavaly

Ahoana ny fomba fandefasana tetikasa amin'ny RPM amin'ny alàlan'ny TFS, Puppet, Linux .NET core? Ahoana no hanohanana ny famoahana angon-drakitra momba ny tetikasa raha sambany vao mandre ny teny hoe Postgres sy Flyway ny ekipan'ny fampandrosoana, ary rahampitso ny fe-potoana farany? Ahoana ny fomba hidirana amin'i Docker? Ahoana no hanosika ireo mpamorona .NET handao ny Windows sy ny smoothies ho an'ny Puppet sy Linux? Ahoana no hamahana ny fifandirana ideolojika raha tsy misy ny hery, na ny faniriana, na ny loharanon-karena hitazomana ny Windows amin'ny famokarana? Momba izany, ary koa momba ny Web Deploy, fitsapana, CI, momba ny fomba fampiasana TFS amin'ny tetikasa efa misy, ary, mazava ho azy, momba ny tapaka tapaka sy ny vahaolana miasa, ao amin'ny fandikana ny tatitry ny Alexander.


Noho izany, nandao i Vasya, eo amiko ny asa, miandry tsy manam-paharetana miaraka amin'ny pitchforks ny mpamorona. Rehefa tsapako tamin’ny farany fa tsy azo averina i Vasya, dia nanao raharaham-barotra aho. Hanombohana dia nanombana ny isan-jaton'ny Win VM ao amin'ny sambonay aho. Tsy nankasitraka ny Windows ny isa.

.NET Core amin'ny Linux, DevOps amin'ny soavaly

Koa satria mazoto mampivelatra ny DevOps izahay, dia tsapako fa misy zavatra tokony hovaina amin'ny fomba fandefasana fampiharana vaovao. Tsy nisy afa-tsy vahaolana iray ihany - raha azo atao dia alefaso any amin'ny Linux ny zava-drehetra. Nanampy ahy i Google - tamin'izany fotoana izany dia efa nafindra tany amin'ny Linux ny Net, ary tsapako fa io no vahaolana!

Nahoana no .NET core miaraka amin'ny Linux?

Nisy antony maromaro nahatonga izany. Eo anelanelan'ny "mandoa vola" sy ny "tsy mandoa", ny ankamaroany dia hifidy ny faharoa - toa ahy. Mitentina $1 eo ho eo ny fahazoan-dàlana ho an'ny MSDB; Ho an'ny orinasa lehibe dia fandaniana lehibe izany. Izany no antony tahiry - antony voalohany. Tsy ny zava-dehibe indrindra, fa iray amin'ireo manan-danja.

Ny milina virtoaly Windows dia maka loharanon-karena bebe kokoa noho ireo rahalahiny Linux - mavesatra izy ireo. Noho ny haben'ny orinasa lehibe dia nisafidy Linux izahay.

Ny rafitra dia ampidirina fotsiny amin'ny CI efa misy. Mihevitra ny tenanay izahay DevOps mandroso, mampiasa Bamboo, Jenkins ary GitLab CI izahay, ka ny ankamaroan'ny asanay dia mandeha amin'ny Linux.

Ny antony farany dia fampiratiana mety. Nila nampidina ny sakana amin'ny fidirana ho an'ny “escorts” izahay—ireo lehilahy izay mahatakatra ny ampahany ara-teknika, miantoka ny serivisy tsy tapaka, ary mitazona serivisy avy amin'ny andalana faharoa. Efa mahazatra azy ireo ny stack Linux, noho izany dia mora kokoa ho azy ireo ny mahatakatra, manohana ary mitazona vokatra vaovao noho ny mandany loharano fanampiny mba hahatakarana ny fiasa mitovy amin'ny rindrambaiko ho an'ny sehatra Windows.

fepetra takiana

Voalohany indrindra - fanamorana ny vahaolana vaovao ho an'ny developer. Tsy ny rehetra no vonona ho amin'ny fanovana, indrindra taorian'ny nitenenana ny teny hoe Linux. Ny mpamorona dia maniry ny Visual Studio tiany indrindra, TFS miaraka amin'ny autotests ho an'ny fivoriambe sy ny smoothie. Tsy zava-dehibe amin'izy ireo ny fomba fandefasana mankany amin'ny famokarana. Noho izany, nanapa-kevitra izahay fa tsy hanova ny dingana mahazatra ary hamela ny zava-drehetra tsy hiova ho an'ny fampandrosoana Windows.

Mila tetikasa vaovao ampidirina amin'ny CI efa misy. Ny lalamby dia efa teo ary ny asa rehetra dia tsy maintsy natao tamin'ny fiheverana ny mari-pamantarana ny rafitra fitantanana fanamafisana, ny fenitry ny fanaterana ary ny rafitra fanaraha-maso.

Mora ny fanohanana sy ny fandidiana, ho fepetra takiana amin'ny fetra farany ambany indrindra ho an'ny mpandray anjara vaovao rehetra avy amin'ny sampana samihafa sy ny sampana fanohanana.

Fe-potoana - omaly.

Win Development Group

Inona no niarahan'ny ekipa Windows tamin'izany?

.NET Core amin'ny Linux, DevOps amin'ny soavaly

Ankehitriny dia afaka milaza izany amim-pahatokiana aho IdentityServer4 dia safidy maimaim-poana ho an'ny ADFS manana fahaiza-manao mitovy, na inona Entity Framework Core - paradisa ho an'ny mpamorona, izay tsy mila manelingelina anao hanoratra script SQL, fa mamaritra ny fanontaniana ao amin'ny tahiry amin'ny teny OOP. Saingy avy eo, nandritra ny fifanakalozan-kevitra momba ny drafitry ny hetsika, dia nijery ity stack ity aho ho toy ny cuneiform Sumerian, izay tsy nahalala afa-tsy PostgreSQL sy Git.

Tamin'izany fotoana izany izahay dia navitrika nampiasa saribakolin'ny ho toy ny rafitra fitantanana configuration. Amin'ny ankamaroan'ny tetikasanay dia nampiasainay GitLab CI, lasitike, tolotra voalanjalanja be entana mampiasa HAProxy nanara-maso ny zava-drehetra tamin'ny Zabbix, ligaments grafana и Prometheus, Hunter, ary nihodina tamin’ny tapa-by izany rehetra izany HPESXi amin'ny VMware. Fantatry ny rehetra izany - mahazatra amin'ny karazana.

.NET Core amin'ny Linux, DevOps amin'ny soavaly

Andeha hojerentsika sy hiezaka hahatakatra ny zava-nitranga talohan'ny nanombohantsika ireo fitsabahana rehetra ireo.

Inona no nitranga

TFS dia rafitra mahery vaika izay tsy vitan'ny hoe manolotra kaody avy amin'ny mpamorona mankany amin'ny milina famokarana farany, fa manana set ihany koa ho an'ny fampidirana tena mora amin'ny serivisy isan-karazany - mba hanomezana CI amin'ny sehatra cross-platform.

.NET Core amin'ny Linux, DevOps amin'ny soavaly
Teo aloha dia varavarankely mafy ireo. Nampiasa mpiasan'ny Build maromaro ny TFS, izay nampiasaina hanangonana tetikasa maro. Ny mpiasa tsirairay dia manana mpiasa 3-4 mba hampifanaraka ny asa sy hanatsara ny dingana. Avy eo, araka ny drafitra famotsorana, ny TFS dia nanolotra ny Build vao vita amin'ny mofo ho an'ny mpizara fampiharana Windows.

Inona no tiantsika hotratrarina?

Mampiasa TFS izahay amin'ny fanaterana sy ny fampandrosoana, ary mitantana ny fampiharana amin'ny lohamilina Linux Application, ary misy karazana majika eo anelanelan'izy ireo. izany Magic Box ary misy ny fanasin'ny asa ho avy. Alohan'ny hanasaraka azy, dia miato kely aho ary milaza teny vitsivitsy momba ny fampiharana.

Ny tetikasa

Ny fampiharana dia manome fampiasa amin'ny fitantanana karatra mialoha.

.NET Core amin'ny Linux, DevOps amin'ny soavaly

Client

Nisy karazany roa ny mpampiasa. Ny voalohany nahazo alalana tamin'ny fidirana amin'ny fampiasana taratasy fanamarinana SSL SHA-2. U ny faharoa nisy ny fidirana tamin'ny fampiasana login sy tenimiafina.

HAProxy

Avy eo dia nandeha tany amin'ny HAProxy ny fangatahan'ny mpanjifa, izay namaha ireto olana manaraka ireto:

  • fanomezan-dàlana voalohany;
  • Famaranana SSL;
  • fanitsiana ny fangatahana HTTP;
  • fangatahana fampitana.

Nohamarinina tamin'ny rojo ny taratasy fanamarinana mpanjifa. Isika- fahefana ary afaka mividy izany izahay, satria izahay ihany no manome taratasy fanamarinana ho an'ny mpanjifa serivisy.

Tandremo ny teboka fahatelo, hiverina amin'izany isika aoriana kely.

Backend

Nikasa ny hanao backend amin'ny Linux izy ireo. Ny backend dia mifandray amin'ny angon-drakitra, mameno ny lisitry ny tombontsoa ilaina ary avy eo, miankina amin'ny tombontsoa ananan'ny mpampiasa nahazo alalana, dia manome fidirana amin'ny sonia antontan-taratasy ara-bola ary mandefa azy ireo ho faty, na mamorona karazana tatitra.

Savings miaraka amin'ny HAProxy

Ho fanampin'ny toe-javatra roa nolalovan'ny mpanjifa tsirairay dia nisy ihany koa ny contexte momba ny maha-izy azy. IdentityServer4 mamela anao hiditra fotsiny, izany dia maimaim-poana sy mahery analogue ho an'ny ADFS - Serivisy federasiona miasa mivantana.

Nokarakaraina tamin'ny dingana maromaro ny fangatahana famantarana. Dingana voalohany - mpanjifa niditra tao amin'ny backend, izay nifandray tamin'ity mpizara ity ary nanamarina ny fisian'ny famantarana ho an'ny mpanjifa. Raha tsy hita ilay izy dia averina amin'ny contexte nihaviany ilay fangatahana, fa miaraka amin'ny redirect, ary miaraka amin'ny redirect dia lasa any amin'ny maha-izy azy.

Dingana faharoa - voaray ny fangatahana mankany amin'ny pejy fanomezan-dàlana ao amin'ny IdentityServer, izay nisoratra anarana ny mpanjifa, ary niseho tao amin'ny angon-drakitra IdentityServer io marika efa nandrasana hatry ny ela io.

Dingana fahatelo - naverina niverina ilay mpanjifa amin'ny contexte niaviany.

.NET Core amin'ny Linux, DevOps amin'ny soavaly

IdentityServer4 dia manana endri-javatra: mamerina ny valin'ny fangatahana fiverenana amin'ny HTTP. Na manao ahoana na manao ahoana ny ezaka ataonay amin'ny fametrahana ny mpizara, na inona na inona nanazavanay ny tenanay tamin'ny antontan-taratasy, isaky ny nahazo fangatahana mpanjifa voalohany izahay miaraka amin'ny URL izay tonga amin'ny HTTPS, ary ny IdentityServer dia namerina ny contexte mitovy, fa miaraka amin'ny HTTP. Taitra izahay! Ary nafindranay tamin'ny HAProxy izany rehetra izany tamin'ny alàlan'ny tontolon'ny maha-izy azy, ary tao amin'ny lohateny dia tsy maintsy nanova ny protocol HTTP ho HTTPS izahay.

Inona no fanatsarana ary taiza no nitsitsy?

Nanangom-bola izahay tamin'ny fampiasana vahaolana maimaim-poana amin'ny fanomezana alalana vondron'olona mpampiasa, loharano, satria tsy nametraka IdentityServer4 ho node misaraka amin'ny fizarana misaraka, fa nampiasa azy io miaraka amin'ny backend amin'ny lohamilina iray izay misy ny backend ny fampiharana. .

Ahoana no tokony hiasa

Noho izany, araka ny nampanantenaiko - Magic Box. Efa takatsika fa azo antoka ny hifindra mankany amin'ny Linux. Andao hamolavola asa manokana izay mitaky vahaolana.

.NET Core amin'ny Linux, DevOps amin'ny soavaly

Fampisehoana saribakoly. Mba hanaterana sy hitantana ny serivisy sy ny fandrindrana ny fampiharana dia tsy maintsy nosoratana ireo fomba fanamboarana mahafinaritra. Ny horonan-taratasy misy pensilihazo dia mampiseho tsara ny fomba haingana sy mahomby nanaovana azy.

Fomba fanaterana. Ny fenitra dia RPM. Fantatry ny rehetra fa amin'ny Linux dia tsy afaka manao izany ianao, fa ny tetikasa mihitsy, aorian'ny fivoriambe, dia andian-drakitra DLL azo tanterahana. Nisy 150 teo ho eo izy ireo, sarotra ny tetikasa. Ny hany vahaolana mirindra dia ny mametaka ity binary ity ho RPM ary mametraka ny fampiharana avy aminy.

Versioning. Tsy maintsy namoaka matetika izahay, ary tsy maintsy nanapa-kevitra ny fomba hamoronana ny anaran'ny fonosana. Ity dia fanontaniana momba ny haavon'ny fampidirana amin'ny TFS. Nanana mpandraharaha fananganana amin'ny Linux izahay. Rehefa mandefa asa ho an'ny mpitantana - mpiasa - amin'ny mpiasan'ny Build ny TFS, dia mandefa azy io ihany koa ny andian-taranaka izay miafara amin'ny tontolon'ny fizotran'ny mpitantana. Ireo fari-piainan'ny tontolo iainana ireo dia misy ny anaran'ny Build, ny anaran'ny dikan-teny, ary ny fari-piainana hafa. Vakio bebe kokoa momba izany ao amin'ny fizarana "Manangana fonosana RPM".

Fametrahana TFS dia nidina tamin'ny fametrahana Pipeline. Nanangona tetik'asa Windows rehetra tao amin'ny Windows agents izahay teo aloha, fa ankehitriny dia misy agent Linux miseho - agent Build, izay tsy maintsy ampidirina ao amin'ny vondrona Build, manankarena amin'ny artifacts sasany, ary nilaza izay karazana tetikasa hatsangana amin'ity agent Build ity. , ary manova ny Pipeline.

IdentityServer. ADFS dia tsy lalanay fa handeha amin'ny Open Source izahay.

Andeha hojerentsika ireo singa.

Magic Box

Misy fizarana efatra.

.NET Core amin'ny Linux, DevOps amin'ny soavaly

Linux Build agent. Linux, satria manorina ho azy izahay - lojika izany. Ity ampahany ity dia natao tamin'ny dingana telo.

  • Amboary ny mpiasa ary tsy irery, satria ny fizarana asa momba ny tetikasa no andrasana.
  • Mametraka .NET Core 1.x. Nahoana no 1.x raha efa misy ny 2.0 ao amin'ny tahiry mahazatra? Satria rehefa nanomboka ny fampandrosoana izahay dia 1.09 ny version stable, ary nanapa-kevitra ny hanao ny tetikasa mifototra amin'izany.
  • Git 2.x.

RPM-repository. Ny fonosana RPM dia mila tehirizina any amin'ny toerana iray. Noheverina fa hampiasa ny tahiry RPM orinasa mitovy amin'ny azon'ny mpampiantrano Linux rehetra izahay. Izany no nataon’izy ireo. Ny mpizara repository dia voarindra web hook izay naka ny fonosana RPM ilaina avy amin'ny toerana voafaritra. Ny dikan'ny fonosana dia notaterin'ny Build agent tamin'ny webhook.

GitLab. Attention! Ny GitLab eto dia tsy ampiasain'ny mpamorona, fa ny departemantan'ny fampandehanana mba hifehezana ny dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-dikan-teny anglisy rehetra, ary ny fitahirizana ny resadresaka - ny saribakoly rehetra.

saribakolin'ny - mamaha ny olana rehetra mampiady hevitra ary manome ny config tiantsika avy amin'ny Gitlab.

Manomboka mitsoraka izahay. Ahoana no fiasan'ny fandefasana DLL amin'ny RPM?

Fandefasana DDL mankany RPM

Andeha atao hoe manana kintana rock fampandrosoana .NET isika. Mampiasa Visual Studio izy io ary mamorona sampana famoahana. Aorian'izay dia ampidiriny ao amin'ny Git izany, ary i Git eto dia sampan-draharaha TFS, izany hoe ny fitahirizana fampiharana izay iasan'ny mpamorona.

.NET Core amin'ny Linux, DevOps amin'ny soavaly

Aorian'izay dia hitan'ny TFS fa tonga ny commit vaovao. Fampiharana inona? Ao amin'ny fikandrana TFS dia misy marika manondro ny loharanon-karena ananan'ny mpandraharaha Build manokana. Amin'ity tranga ity, hitany fa manangana tetikasa .NET Core izahay ary misafidy mpandraharaha Linux Build avy amin'ny dobo.

Ny Build agent dia mandray ny loharano ary misintona izay ilaina miankina avy amin'ny tahiry .NET, npm, sns. ary aorian'ny fananganana ny rindranasa sy ny fonosana manaraka dia alefaso any amin'ny tahiry RPM ny fonosana RPM.

Etsy an-danin'izany, dia mitranga izao manaraka izao. Ny injeniera ao amin'ny departemantan'ny asa dia mandray anjara mivantana amin'ny famoahana ny tetikasa: manova ny dikan-tenin'ny fonosana izy Hiera ao amin'ny fitehirizana izay itahirizana ny resadresaka fampiharana, aorian'izay dia mipoitra ny Puppet Yum, maka ny fonosana vaovao ao amin'ny tahiry, ary ny kinova vaovao amin'ny fampiharana dia vonona hampiasaina.

.NET Core amin'ny Linux, DevOps amin'ny soavaly

Tsotra amin'ny teny ny zava-drehetra, fa inona no mitranga ao anatin'ny Build agent?

Fonosana DLL RPM

Nahazo loharanon'ny tetikasa ary asa fanorenana avy amin'ny TFS. Mpanorina trano manomboka manangana ny tetikasa avy amin'ny loharano. Ny tetikasa natambatra dia azo alaina amin'ny fitambarany DLL rakitra, izay fonosina anaty arsiva zip mba hampihenana ny entana ao amin'ny rafi-drakitra.

Ny rakitra ZIP dia nariana mankany amin'ny lahatahiry fananganana fonosana RPM. Manaraka, ny script Bash dia manomboka ny fari-piainan'ny tontolo iainana, mahita ny version Build, ny version project, ny lalana mankany amin'ny lahatahiry fananganana, ary mihazakazaka RPM-build. Rehefa vita ny fananganana dia avoaka ny fonosana tahiry eo an-toerana, izay hita ao amin'ny Build agent.

Avy eo, avy amin'ny Build agent mankany amin'ny mpizara ao amin'ny tahiry RPM Nalefa ny fangatahana JSON manondro ny anaran'ny dikan-teny sy ny fananganana. Webhook, izay noresahiko teo aloha, dia misintona ity fonosana ity avy amin'ny tahiry eo an-toerana ao amin'ny Build agent ary mametraka ny fivoriambe vaovao ho an'ny fametrahana.

.NET Core amin'ny Linux, DevOps amin'ny soavaly

Nahoana ity drafitra fanaterana fonosana manokana ity amin'ny tahiry RPM? Nahoana aho no tsy afaka mandefa avy hatrany ny fonosana tafavory any amin'ny tahiry? Ny zava-misy dia fepetra iray hiantohana ny fiarovana izany. Ity toe-javatra ity dia mametra ny fahafahan'ny olona tsy nahazo alalana hampiditra fonosana RPM amin'ny lohamilina izay azon'ny milina Linux rehetra.

Fanovana ny angona

Tamin'ny fifampidinihana tamin'ny ekipan'ny fampandrosoana dia hita fa akaiky kokoa ny MS SQL ry zalahy, fa amin'ny ankamaroan'ny tetikasa tsy Windows dia efa nampiasa PostgreSQL tamin'ny heriny rehetra izahay. Koa satria efa nanapa-kevitra ny handao ny vola rehetra izahay, dia nanomboka nampiasa PostgreSQL eto koa izahay.

.NET Core amin'ny Linux, DevOps amin'ny soavaly

Amin'ity ampahany ity dia tiako ny hilaza aminao ny fomba nanamboaranay ny angon-drakitra sy ny fomba nisafidiananay teo anelanelan'ny Flyway sy Entity Framework Core. Andeha hojerentsika ny mahatsara sy maharatsy azy.

Минусы

Lalana iray ihany no alehan'ny Flyway, izahay tsy afaka mihemotra isika - fatiantoka lehibe izany. Azonao atao ny mampitaha azy amin'ny Entity Framework Core amin'ny fomba hafa - amin'ny resaka fanamorana ny developer. Tsaroanao fa nametraka izany ho lohalaharana izahay, ary ny fepetra fototra dia ny tsy hanova na inona na inona ho an'ny fampandrosoana Windows.

Ho antsika Flyway nilaina ny karazana fononymba tsy hanoratra ry zalahy SQL fanontaniana. Izy ireo dia akaiky kokoa ny miasa amin'ny teny OOP. Nanoratra toromarika momba ny fiasana amin'ny zavatra angon-drakitra izahay, namorona fangatahana SQL ary nanatanteraka izany. Ny dikan-teny vaovao amin'ny angon-drakitra dia vonona, voazaha toetra - tsara ny zava-drehetra, mandeha ny zava-drehetra.

Ny Entity Framework Core dia manana minus - eo ambanin'ny enta-mavesatra manangana fanontaniana SQL suboptimal, ary mety ho zava-dehibe ny fisintonana ao amin'ny angon-drakitra. Saingy satria tsy manana serivisy avo lenta izahay, tsy manao kajy ny entana amin'ny RPS an-jatony izahay, dia nanaiky ireo risika ireo izahay ary nanolotra ny olana ho anay.

Плюсы

Entity Framework Core miasa ivelan'ny boaty ary mora mivoatra, ary Flyway Mora miditra amin'ny CI efa misy. Fa ataonay mety ho an'ny developer izany :)

Procédure mihodinkodina

Hitan'ny saribakoly fa ho avy ny fanovana amin'ny dikan-teny fonosana, anisan'izany ilay tompon'andraikitra amin'ny fifindra-monina. Voalohany, mametraka fonosana misy soratra fifindra-monina sy fiasa mifandraika amin'ny database izy io. Aorian'izany dia averina indray ny fampiharana izay miasa amin'ny angon-drakitra. Manaraka izany ny fametrahana ireo singa sisa. Ny filaharan'ny fametrahana fonosana sy ny fandefasana ny fampiharana dia voalaza ao amin'ny saribakoly manifest.

Mampiasa angon-drakitra saro-pady ny fampiharana, toy ny mari-pamantarana, tenimiafina momba ny angon-drakitra, izany rehetra izany dia voasintona ao amin'ny config avy amin'ny Puppet master, izay tehirizina amin'ny endrika miafina.

TFS olana

Rehefa avy nanapa-kevitra izahay ary nahatsapa fa tena miasa ho anay ny zava-drehetra, dia nanapa-kevitra ny hijery ny zava-mitranga amin'ny fivoriambe ao amin'ny TFS manontolo aho ho an'ny departemanta fampandrosoana Win amin'ny tetikasa hafa - na manangana / mamoaka haingana izahay na tsia, ary nahita olana lehibe amin'ny hafainganam-pandeha.

Ny iray amin'ireo tetikasa lehibe dia mila 12-15 minitra mba hivory - fotoana lava be izany, tsy afaka miaina toy izany ianao. Ny famakafakana haingana dia nampiseho fihenam-bidy mahatsiravina tao amin'ny I/O, ary izany dia tamin'ny array.

Taorian'ny famakafakana ny singa isaky ny singa, dia nahita foci telo aho. Voalohany - "Kaspersky antivirus", izay mikaroka loharano amin'ny mpiasan'ny Windows Build rehetra. Faharoa - Windows Indexer. Tsy kilemaina izany, ary ny zava-drehetra dia voarakitra an-tsoratra amin'ny fotoana tena izy amin'ny mpiasan'ny Build nandritra ny fizotran'ny fametrahana.

Fahatelo - Npm fametrahana. Hita fa tamin'ny ankamaroan'ny Pipelines dia nampiasa io scenario io izahay. Nahoana izy no ratsy? Ny fomba fametrahana Npm dia mandeha rehefa miforona ny hazo fiankinan-doha package-lock.json, izay misy ny dikan-tenin'ny fonosana izay hampiasaina hanamboarana ny tetikasa. Ny lafy ratsiny dia ny fametrahana ny Npm dia misintona ny dikan-teny farany amin'ny fonosana avy amin'ny Internet isaky ny mandeha, ary mitaky fotoana be izany raha misy tetikasa lehibe.

Ny mpamorona indraindray dia manandrana milina eo an-toerana mba hitsapana ny fomba fiasan'ny ampahany manokana na ny tetikasa iray manontolo. Indraindray dia hita fa nangatsiaka ny zava-drehetra teo an-toerana, saingy nanangona izany izy ireo, nanakodia, ary tsy nisy vokany. Manomboka mahita ny olana isika - eny, dikan-teny samihafa amin'ny fonosana misy fiankinan-doha.

fanapahan-kevitra

  • Loharano amin'ny AV exception.
  • Atsaharo ny indexing.
  • Mandeha npm ci.

Ny tombony amin'ny npm ci dia isika Manangona ny hazo fiankinan-doha indray mandeha izahay, ary mahazo fahafahana hanome ny developer izahay lisitry ny fonosana ankehitriny, izay ahafahany manao fanandramana eo an-toerana araka izay tiany. izany mitsitsy fotoana mpamorona izay manoratra kaody.

fanahafana

Somary kely momba ny configuration repository izao. Ara-tantara no ampiasaintsika Rohy ho an'ny fitantanana repository, anisan'izany REPO anatiny. Ity tahiry anatiny ity dia ahitana ny singa rehetra ampiasainay ho an'ny tanjona anatiny, ohatra, ny fanaraha-maso an-tsoratra.

.NET Core amin'ny Linux, DevOps amin'ny soavaly

Mampiasa koa izahay NuGet, satria manana caching tsara kokoa izy raha oharina amin'ireo mpitantana fonosana hafa.

vokatra

Rehefa avy nanatsara ny Build Agent izahay dia nihena 12 minitra ho 7 ny salan'ny fotoana fanamboarana.

Raha manisa ny milina rehetra izay azonay nampiasaina ho an'ny Windows izahay, fa nivadika tamin'ny Linux tamin'ity tetikasa ity, dia nahangona teo amin'ny $10 teo ho eo ary izany dia tamin'ny fahazoan-dàlana, ary bebe kokoa raha raisinay ny atiny.

Plans

Ho an'ny telovolana manaraka dia nikasa ny hiasa amin'ny fanatsarana ny fandefasana kaody izahay.

Mivadika amin'ny sary Docker prebuild. TFS dia zavatra mahafinaritra misy plugins maro ahafahanao miditra ao amin'ny Pipeline, ao anatin'izany ny fivoriambe mifototra amin'ny trigger, ohatra, sary Docker. Te-hanao an'io trigger io izahay ho an'ny iray ihany package-lock.json. Raha toa ka miova ny firafitry ny singa ampiasaina amin'ny fananganana ny tetikasa dia manangana sary Docker vaovao izahay. Izy io dia ampiasaina amin'ny fametrahana ny kaontenera miaraka amin'ny fampiharana mitambatra. Tsy izany no izy amin'izao fotoana izao, fa mikasa ny hifindra amin'ny maritrano microservice ao Kubernetes izahay, izay mivoatra mavitrika ao amin'ny orinasanay ary efa nanompo vahaolana famokarana hatry ny ela.

famintinana

Mamporisika ny rehetra aho mba hanary Windows, fa tsy noho ny tsy fahaizako mahandro izany. Ny antony dia ny ankamaroan'ny vahaolana Opensource dia Linux stack. ao tsara ve ianao mitsitsy harena. Raha ny hevitro, ny ho avy dia an'ny vahaolana Open Source amin'ny Linux miaraka amin'ny vondrom-piarahamonina matanjaka.

Ny mombamomba an'i Alexander Sinchinov amin'ny GitHub.

DevOps Conf dia fihaonambe momba ny fampidirana ny fampandrosoana, ny fitsapana ary ny fizotran'ny asa ho an'ny matihanina ataon'ny matihanina. Izany no mahatonga ny tetikasa noresahan'i Alexander? nampihatra sy niasa, ary tamin'ny andro nanaovana ny fampisehoana dia nisy famoahana roa nahomby. On DevOps Conf ao amin'ny RIT++ Ny 27 sy 28 mey dia mbola hisy tranga mitovy amin’izany avy amin’ireo mpitsabo. Mbola afaka mitsambikina amin'ny kalesy farany ianao ary manolotra tatitra na maka fotoana mamandrika tapakila. Hihaona aminay any Skolkovo!

Source: www.habr.com

Add a comment