NET Core lori Linux, DevOps lori ẹṣin

A ṣe idagbasoke DevOps bi o ti dara julọ ti a le. Àwa mẹ́jọ ló wà, Vasya ló sì máa ń tutù jù lọ lórí Windows. Lojiji Vasya lọ, ati pe Mo ni iṣẹ-ṣiṣe ti ifilọlẹ iṣẹ akanṣe tuntun kan ti a pese nipasẹ idagbasoke Windows. Nigbati Mo sọ gbogbo akopọ idagbasoke Windows sori tabili, Mo rii pe ipo naa jẹ irora…

Eyi ni bi itan naa ṣe bẹrẹ Alexandra Sinchinova on DevOpsConf. Nigbati alamọja Windows ti o jẹ olori kuro ni ile-iṣẹ naa, Alexander ṣe iyalẹnu kini lati ṣe ni bayi. Yipada si Linux, dajudaju! Alexander yoo sọ fun ọ bi o ṣe ṣakoso lati ṣẹda iṣaaju ati gbigbe apakan ti idagbasoke Windows si Linux nipa lilo apẹẹrẹ ti iṣẹ akanṣe ti o pari fun awọn olumulo ipari 100.

NET Core lori Linux, DevOps lori ẹṣin

Bii o ṣe le ni irọrun ati lainidi lati fi iṣẹ akanṣe ranṣẹ si RPM ni lilo TFS, Puppet, Linux .NET mojuto? Bii o ṣe le ṣe atilẹyin ikede ti ibi ipamọ data iṣẹ akanṣe ti ẹgbẹ idagbasoke ba gbọ awọn ọrọ Postgres ati Flyway fun igba akọkọ, ati pe akoko ipari jẹ ọjọ lẹhin ọla? Bii o ṣe le ṣepọ pẹlu Docker? Bii o ṣe le ru awọn oludasilẹ .NET lati kọ Windows ati awọn smoothies silẹ ni ojurere ti Puppet ati Lainos? Bii o ṣe le yanju awọn ija arojinle ti ko ba si agbara, tabi ifẹ, tabi awọn orisun lati ṣetọju Windows ni iṣelọpọ? Nipa eyi, bakannaa nipa Web Deploy, idanwo, CI, nipa awọn iṣe ti lilo TFS ni awọn iṣẹ ti o wa tẹlẹ, ati, dajudaju, nipa awọn crutches ti o fọ ati awọn iṣeduro ṣiṣẹ, ni iroyin Alexander.


Nitorinaa, Vasya lọ kuro, iṣẹ-ṣiṣe wa lori mi, awọn olupilẹṣẹ n duro de awọn apọn pẹlu aisisuuru. Nígbà tí mo wá rí i pé a ò lè dá Vasya padà, mo bẹ̀rẹ̀ sí í ṣòwò. Lati bẹrẹ pẹlu, Mo ṣe ayẹwo ipin ogorun Win VMs ninu awọn ọkọ oju-omi kekere wa. Awọn Dimegilio je ko ni ojurere ti Windows.

NET Core lori Linux, DevOps lori ẹṣin

Niwọn bi a ti n ṣe idagbasoke DevOps ni itara, Mo rii pe ohun kan nilo lati yipada ni ọna lati ṣe ifilọlẹ ohun elo tuntun kan. Ojutu kan nikan wa - ti o ba ṣeeṣe, gbe ohun gbogbo lọ si Linux. Google ṣe iranlọwọ fun mi - ni akoko yẹn .Net ti tẹlẹ ti gbe lọ si Linux, ati pe Mo rii pe eyi ni ojutu!

Kini idi ti .NET mojuto ni idapo pelu Linux?

Awọn idi pupọ lo wa fun eyi. Laarin “sanwo owo” ati “ko sanwo”, pupọ julọ yoo yan keji - bii emi. Iwe-aṣẹ kan fun MSDB n sanwo nipa $1; mimu awọn ọkọ oju-omi kekere ti awọn ẹrọ foju Windows n san awọn ọgọọgọrun dọla. Fun ile-iṣẹ nla kan eyi jẹ inawo nla kan. Iyẹn ni idi fifipamọ - akọkọ idi. Ko ṣe pataki julọ, ṣugbọn ọkan ninu awọn pataki julọ.

Awọn ẹrọ foju Windows gba awọn orisun diẹ sii ju awọn arakunrin Linux wọn lọ. wọn wuwo. Fi fun iwọn ti ile-iṣẹ nla, a yan Linux.

Awọn eto ti wa ni nìkan ese sinu tẹlẹ CI. A ro ara wa DevOps ilọsiwaju, a lo Bamboo, Jenkins ati GitLab CI, nitorinaa pupọ julọ iṣẹ wa n ṣiṣẹ lori Linux.

Idi ti o kẹhin ni rọrun acpaniment. A nilo lati dinku idena si titẹsi fun “awọn alabobo” — awọn eniyan buruku ti o loye apakan imọ-ẹrọ, rii daju iṣẹ ti ko ni idilọwọ, ati ṣetọju awọn iṣẹ lati laini keji. Wọn ti mọ tẹlẹ pẹlu akopọ Linux, nitorinaa o rọrun pupọ fun wọn lati ni oye, ṣe atilẹyin ati ṣetọju ọja tuntun ju lati lo awọn orisun afikun lati loye iṣẹ ṣiṣe sọfitiwia ti o jọra fun iru ẹrọ Windows.

awọn ibeere

Ohun akọkọ ati pataki julọ ni wewewe ti titun ojutu fun Difelopa. Kii ṣe gbogbo wọn ti ṣetan fun iyipada, paapaa lẹhin ọrọ Linux ti sọ. Awọn olupilẹṣẹ fẹ Studio wiwo wiwo ayanfẹ wọn, TFS pẹlu awọn idanwo adaṣe fun awọn apejọ ati awọn smoothies. Bii ifijiṣẹ si iṣelọpọ waye ko ṣe pataki fun wọn. Nitorinaa, a pinnu lati ma yi ilana deede pada ki o fi ohun gbogbo silẹ ko yipada fun idagbasoke Windows.

Titun ise agbese ti nilo ṣepọ sinu CI ti o wa tẹlẹ. Awọn oju opopona ti wa tẹlẹ ati pe gbogbo iṣẹ ni lati ṣe ni akiyesi awọn aye ti eto iṣakoso iṣeto, awọn iṣedede ifijiṣẹ ti o gba ati awọn eto ibojuwo.

Irọrun ti atilẹyin ati iṣẹ, gẹgẹbi ipo fun ẹnu-ọna titẹsi ti o kere julọ fun gbogbo awọn alabaṣepọ titun lati awọn ipin oriṣiriṣi ati ẹka atilẹyin.

Akoko ipari - lana.

Win Development Group

Kini ẹgbẹ Windows n ṣiṣẹ pẹlu lẹhinna?

NET Core lori Linux, DevOps lori ẹṣin

Bayi Mo le ni igboya sọ iyẹn IdentityServer4 ni a itura free yiyan si ADFS pẹlu iru awọn agbara, tabi ohun ti? Nkankan Framework Core - Párádísè kan fún olùgbéejáde, níbi tí o kò ti ní láti ṣàníyàn nípa kíkọ àwọn àfọwọ́kọ SQL, ṣùgbọ́n ṣàpéjúwe àwọn ìbéèrè nínú ibùdó dátà ní àwọn ìlànà OOP. Ṣugbọn lẹhinna, lakoko ijiroro ti ero iṣe, Mo wo akopọ yii bi ẹnipe kuneiform Sumerian, ni idanimọ PostgreSQL ati Git nikan.

Ni akoko ti a ni won actively lilo Puppet bi eto isakoso iṣeto ni. Ninu ọpọlọpọ awọn iṣẹ akanṣe wa ti a lo GitLab CI, Rirọ, Iwontunwonsi awọn iṣẹ fifuye giga pẹlu iranlọwọ HAProxy ṣe abojuto ohun gbogbo pẹlu iranlọwọ Zabbix, awọn iṣan Grafana и Ipolowo, Ogboju ode, ati gbogbo eyi ti nyi lori awọn ege ohun elo HPESXi on VMware. Gbogbo eniyan ni imọran pẹlu awọn alailẹgbẹ ti oriṣi.

NET Core lori Linux, DevOps lori ẹṣin

Jẹ ki a wo ki a gbiyanju lati ni oye ohun ti o ṣẹlẹ ṣaaju ki a to bẹrẹ gbogbo awọn ilowosi wọnyi.

Kini o ti ṣẹlẹ

TFS jẹ eto ti o ni agbara ti o lagbara ti kii ṣe koodu nikan lati ọdọ olupilẹṣẹ si ẹrọ iṣelọpọ ikẹhin, ṣugbọn tun ni eto fun isọpọ irọrun pupọ pẹlu awọn iṣẹ lọpọlọpọ - lati pese CI lori ipele pẹpẹ-agbelebu.

NET Core lori Linux, DevOps lori ẹṣin
Ni iṣaaju, iwọnyi jẹ awọn ferese to lagbara. TFS lo ọpọlọpọ awọn aṣoju Kọ, lori eyiti ọpọlọpọ awọn iṣẹ akanṣe ti kojọpọ. Aṣoju kọọkan ni awọn oṣiṣẹ 3-4 lati ṣe afiwe awọn iṣẹ ṣiṣe ati mu ilana naa dara si. Lẹhinna, ni ibamu si awọn ero itusilẹ, TFS fi jiṣẹ Kọ tuntun ti a yan si olupin ohun elo Windows.

Ohun ti a fe lati se aseyori

Fun ifijiṣẹ ati idagbasoke ti a lo TFS, ati awọn ti a ṣiṣe awọn ohun elo lori Linux elo server, ati nibẹ ni diẹ ninu awọn Iru idan laarin wọn. Eyi Apoti Magic ati iyọ iṣẹ wa niwaju. Ṣaaju ki Mo to ya sọtọ, Emi yoo gbe igbesẹ kan ni apakan ki o sọ awọn ọrọ diẹ nipa ohun elo naa.

Ise agbese na

Ohun elo naa pese iṣẹ ṣiṣe fun mimu awọn kaadi sisanwo tẹlẹ.

NET Core lori Linux, DevOps lori ẹṣin

Ni ose

Nibẹ wà meji orisi ti awọn olumulo. Ni igba akọkọ ni iraye si nipa wíwọlé ni lilo ijẹrisi SSL SHA-2. U keji wiwọle si wa nipa lilo wiwọle ati ọrọigbaniwọle.

HAProxy

Lẹhinna ibeere alabara lọ si HAProxy, eyiti o yanju awọn iṣoro wọnyi:

  • iwe-aṣẹ akọkọ;
  • SSL ifopinsi;
  • yiyi HTTP ibeere;
  • igbohunsafefe ibeere.

Ijẹrisi alabara jẹ idaniloju pẹlu ẹwọn kan. Awa - aṣẹ ati pe a le fun eyi, niwọn bi awa tikararẹ ṣe funni ni awọn iwe-ẹri si awọn alabara iṣẹ.

San ifojusi si aaye kẹta, a yoo pada si i diẹ diẹ.

Backend

A ti gbero afẹyinti lati kọ sori Linux. Ifẹhinti ẹhin ṣe ajọṣepọ pẹlu ibi ipamọ data, ṣajọpọ atokọ pataki ti awọn anfani ati lẹhinna, da lori kini awọn anfani ti olumulo ti a fun ni aṣẹ ni, pese iraye si awọn iwe aṣẹ owo ati firanṣẹ fun ipaniyan, tabi ṣe agbekalẹ iru ijabọ kan.

Awọn ifowopamọ pẹlu HAProxy

Ni afikun si awọn aaye meji ti alabara kọọkan rin nipasẹ, ipo idanimọ tun wa. IdentityServer4 o kan gba ọ laaye lati wọle, eyi jẹ afọwọṣe ọfẹ ati agbara fun ADFS - Awọn iṣẹ Federation Directory ti nṣiṣe lọwọ.

Ibere ​​fun idanimo ti ni ilọsiwaju ni awọn igbesẹ pupọ. Igbese akọkọ - alabara ni sinu backend, eyi ti o ṣe ibaraẹnisọrọ pẹlu olupin yii ati ṣayẹwo fun wiwa ti ami kan fun onibara. Ti ko ba ri, ibeere naa ni a da pada si aaye ti o ti wa, ṣugbọn pẹlu àtúnjúwe, ati pẹlu àtúnjúwe o lọ si idanimọ.

Igbese keji - ibeere naa ti gba si oju-iwe aṣẹ ni IdentityServer, nibiti alabara ti forukọsilẹ, ati pe ami ti a ti nreti pipẹ han ninu ibi ipamọ data IdentityServer.

Igbese kẹta ni onibara ti a darí pada sí àyíká ọ̀rọ̀ tí ó ti wá.

NET Core lori Linux, DevOps lori ẹṣin

IdentityServer4 ni ẹya kan: o pada idahun si ibeere ipadabọ nipasẹ HTTP. Laibikita bawo ni a ṣe tiraka pẹlu iṣeto olupin naa, laibikita bawo ni a ṣe tàn ara wa pẹlu iwe-ipamọ naa, akoko kọọkan a gba ibeere alabara akọkọ pẹlu URL kan ti o wa nipasẹ HTTPS, ati IdentityServer pada ipo kanna, ṣugbọn pẹlu HTTP. Ẹ̀rù bà wá! Ati pe a gbe gbogbo eyi nipasẹ ipo idanimọ si HAProxy, ati ninu awọn akọle a ni lati yipada ilana HTTP si HTTPS.

Kini ilọsiwaju ati nibo ni o fipamọ?

A fi owo pamọ nipasẹ lilo ojutu ọfẹ fun aṣẹ fun ẹgbẹ kan ti awọn olumulo, awọn orisun, nitori a ko gbe IdentityServer4 bi oju-ọna lọtọ ni apakan lọtọ, ṣugbọn lo pẹlu ẹhin ẹhin lori olupin kanna nibiti ẹhin ohun elo nṣiṣẹ. .

Bawo ni o yẹ ki o ṣiṣẹ

Nitorina, bi mo ti ṣe ileri - Magic Box. A ti loye tẹlẹ pe a ni iṣeduro lati lọ si Linux. Jẹ ki a ṣe agbekalẹ awọn iṣẹ-ṣiṣe kan pato ti o nilo awọn ojutu.

NET Core lori Linux, DevOps lori ẹṣin

Puppet farahan. Lati firanṣẹ ati ṣakoso iṣeto ti iṣẹ ati ohun elo, awọn ilana ti o tutu ni lati kọ. Yipo ti ikọwe fihan lainidii fihan bi o ṣe yarayara ati daradara.

Ọna ifijiṣẹ. Iwọnwọn jẹ RPM. Gbogbo eniyan loye pe ni Lainos o ko le ṣe laisi rẹ, ṣugbọn iṣẹ akanṣe funrararẹ, lẹhin apejọ, jẹ eto ti awọn faili DLL ti o ṣiṣẹ. Nibẹ wà nipa 150 ti wọn, ise agbese wà oyimbo soro. Ojutu isokan nikan ni lati ṣajọ alakomeji yii sinu RPM ati mu ohun elo naa lọ lati ọdọ rẹ.

Ti ikede. A ni lati tu silẹ nigbagbogbo, ati pe a ni lati pinnu bi a ṣe le ṣe orukọ package naa. Eyi jẹ ibeere ti ipele ti iṣọpọ pẹlu TFS. A ní a Kọ oluranlowo lori Linux. Nigbati TFS ba fi iṣẹ-ṣiṣe ranṣẹ si olutọju - oṣiṣẹ - si oluranlowo Kọ, o tun kọja ni opo awọn oniyipada ti o ṣubu sinu ayika ti ilana imudani. Awọn oniyipada ayika wọnyi ni orukọ Kọ, orukọ ẹya, ati awọn oniyipada miiran ninu. Ka diẹ sii nipa eyi ni apakan “Ṣiṣe package RPM kan”.

Ṣiṣeto TFS wá si isalẹ lati ṣeto soke Pipeline. Ni iṣaaju, a kojọpọ gbogbo awọn iṣẹ akanṣe Windows lori awọn aṣoju Windows, ṣugbọn nisisiyi aṣoju Linux kan han - Aṣoju Kọ, eyiti o nilo lati wa ninu ẹgbẹ ti o kọ, ti idarato pẹlu awọn ohun-ọṣọ kan, ati sọ iru awọn iṣẹ akanṣe ti yoo pejọ lori aṣoju Kọ yii. , ati bakan yipada Pipeline.

Olupin Identity. ADFS kii ṣe ọna wa, a wa fun Orisun Ṣii.

Jẹ ká lọ nipasẹ awọn irinše.

Apoti Magic

Ni awọn ẹya mẹrin.

NET Core lori Linux, DevOps lori ẹṣin

Linux Kọ oluranlowo. Lainos, nitori a kọ fun rẹ - o jẹ ọgbọn. A ṣe apakan yii ni awọn igbesẹ mẹta.

  • Ṣe atunto awọn oṣiṣẹ ati ki o ko nikan, niwon pin iṣẹ lori ise agbese ti a ti ṣe yẹ.
  • Fi sori ẹrọ .NET Core 1.x. Kini idi ti 1.x nigbati 2.0 ti wa tẹlẹ ni ibi ipamọ boṣewa? Nitoripe nigba ti a bẹrẹ idagbasoke, ẹya iduroṣinṣin jẹ 1.09, ati pe o pinnu lati ṣe iṣẹ akanṣe lori rẹ.
  • Git 2.x.

RPM-ipamọ. Awọn idii RPM nilo lati wa ni ipamọ ni ibikan. O ti ro pe a yoo lo ibi ipamọ RPM ile-iṣẹ kanna ti o wa fun gbogbo awọn agbalejo Lainos. Bẹ́ẹ̀ ni wọ́n sì ṣe. Olupin ibi ipamọ ti tunto oju -iwe ayelujara eyiti o ṣe igbasilẹ package RPM ti a beere lati ipo ti a sọ. Ẹya idii naa jẹ ijabọ si webhook nipasẹ aṣoju Kọ.

GitLab. Ifarabalẹ! GitLab nibi kii ṣe nipasẹ awọn olupilẹṣẹ, ṣugbọn nipasẹ ẹka iṣẹ ṣiṣe lati ṣakoso awọn ẹya ohun elo, awọn ẹya package, ṣe atẹle ipo ti gbogbo awọn ẹrọ Linux, ati pe o tọju ohunelo naa - gbogbo awọn ifihan Puppet.

Puppet - yanju gbogbo awọn ọran ariyanjiyan ati ṣafihan iṣeto ni deede ti a fẹ lati Gitlab.

A bẹrẹ lati besomi. Bawo ni ifijiṣẹ DLL ṣiṣẹ ni RPM?

Ifijiṣẹ DDL si RPM

Jẹ ki a sọ pe a ni irawọ idagbasoke .NET kan. O nlo Studio Visual ati ṣẹda ẹka itusilẹ. Lẹhin iyẹn, o gbejade si Git, ati Git nibi ni nkan TFS kan, iyẹn ni, o jẹ ibi ipamọ ohun elo ti olupilẹṣẹ n ṣiṣẹ pẹlu.

NET Core lori Linux, DevOps lori ẹṣin

Lẹhin eyi TFS rii pe adehun tuntun ti de. Ohun elo wo? Ninu awọn eto TFS aami kan wa ti o nfihan kini awọn orisun ti aṣoju Kọ pato kan ni. Ni ọran yii, o rii pe a n kọ iṣẹ akanṣe .NET Core kan ati yan aṣoju Kọ Linux kan lati adagun-odo.

Aṣoju Kọ gba awọn orisun ati ṣe igbasilẹ awọn pataki awọn igbẹkẹle c .NET awọn ibi ipamọ, npm, ati be be lo. ati lẹhin kikọ ohun elo funrararẹ ati apoti ti o tẹle, firanṣẹ package RPM si ibi ipamọ RPM.

Lori awọn miiran ọwọ, awọn wọnyi ṣẹlẹ. Ẹlẹrọ Ẹka iṣiṣẹ naa ni ipa taara ninu yiyi iṣẹ akanṣe naa: o yipada awọn ẹya ti awọn idii ninu Hiera ni ibi ipamọ ibi ti ohun elo ohun elo ti wa ni ipamọ, lẹhin eyi ti Puppet nfa yum, gba package tuntun lati ibi ipamọ, ati ẹya tuntun ti ohun elo naa ti ṣetan fun lilo.

NET Core lori Linux, DevOps lori ẹṣin

Ohun gbogbo ni o rọrun ni awọn ọrọ, ṣugbọn kini o ṣẹlẹ inu lori aṣoju Kọ funrararẹ?

Iṣakojọpọ DLL RPM

A gba awọn orisun ise agbese ati iṣẹ-ṣiṣe apejọ lati TFS. Aṣoju kọ bẹrẹ ṣiṣe iṣẹ akanṣe funrararẹ lati awọn orisun. Ise agbese ti o pejọ wa bi ṣeto Awọn faili DLL, eyiti a ṣajọ sinu ibi ipamọ zip lati dinku fifuye lori eto faili naa.

Ile-ipamọ ZIP ti ju silẹ to RPM package Kọ liana. Nigbamii ti, iwe afọwọkọ Bash ṣe ipilẹṣẹ awọn oniyipada ayika, wa ẹya Kọ, ẹya iṣẹ akanṣe, ọna si itọsọna kikọ, ati ṣe ifilọlẹ RPM-kọ. Ni kete ti kikọ ba ti pari, package ti wa ni atẹjade si ibi ipamọ agbegbe, eyi ti o wa lori Kọ Agent.

Nigbamii, lati aṣoju Kọ si olupin ni ibi ipamọ RPM JSON ìbéèrè ti wa ni rán afihan orukọ ti ikede ati kọ. Webhook, eyiti Mo ti sọrọ tẹlẹ, ṣe igbasilẹ package yii pupọ lati ibi ipamọ agbegbe lori aṣoju Kọ ati jẹ ki apejọ tuntun wa fun fifi sori ẹrọ.

NET Core lori Linux, DevOps lori ẹṣin

Kini idi ti ero pataki yii fun jiṣẹ package kan si ibi ipamọ RPM? Kini idi ti Emi ko le firanṣẹ lẹsẹkẹsẹ package ti o pejọ si ibi ipamọ naa? Oro naa ni pe eyi jẹ ibeere fun ailewu. Oju iṣẹlẹ yii ṣe idiwọn iṣeeṣe ti awọn eniyan laigba aṣẹ ikojọpọ awọn idii RPM si olupin ti o wa si gbogbo awọn ẹrọ Linux.

Data ti ikede

Ni ijumọsọrọ pẹlu ẹgbẹ idagbasoke, o han pe awọn eniyan ni o sunmọ MS SQL, ṣugbọn ninu ọpọlọpọ awọn iṣẹ akanṣe ti kii ṣe Windows a ti lo PostgreSQL tẹlẹ pẹlu gbogbo agbara wa. Niwọn bi a ti pinnu tẹlẹ lati fi ohun gbogbo ti o san silẹ, a bẹrẹ lati lo PostgreSQL nibi paapaa.

NET Core lori Linux, DevOps lori ẹṣin

Ni apakan yii Mo fẹ lati sọ fun ọ bawo ni a ṣe ṣe ikede data data ati bii a ṣe yan laarin Flyway ati Ohun elo Framework Core. Jẹ ká wo ni wọn Aleebu ati awọn konsi.

Минусы

Flyway nikan lọ ọna kan, a a ko le yiyi pada - Eyi jẹ aila-nfani pataki. O le ṣe afiwe rẹ pẹlu Core Framework Core ni awọn ọna miiran - lati oju-ọna ti irọrun idagbasoke. O ranti pe a fi eyi si iwaju, ati pe ami akọkọ kii ṣe lati yi ohunkohun pada fun idagbasoke Windows.

Fun Flyway wa diẹ ninu awọn Iru wrapper ti a niloki awọn enia buruku ko ba kọ SQL ibeere. O sunmo pupọ fun wọn lati ṣiṣẹ ni awọn ofin OOP. A kọ awọn ilana fun ṣiṣẹ pẹlu awọn ohun data data, ti ipilẹṣẹ SQL ibeere ati ki o ṣiṣẹ o. Ẹya tuntun ti data ti ṣetan, o ti ni idanwo - ohun gbogbo dara, ohun gbogbo ṣiṣẹ.

Ohun elo Framework Core ni iyokuro - labẹ awọn ẹru wuwo o kọ iha-ti aipe SQL ibeere, ati idinku ninu ibi ipamọ data le jẹ pataki. Ṣugbọn niwọn igba ti a ko ni iṣẹ fifuye giga, a ko ṣe iṣiro fifuye ni awọn ọgọọgọrun ti RPS, a gba awọn eewu wọnyi ati fi iṣoro naa si iwaju wa.

Плюсы

Nkankan Framework Core ṣiṣẹ jade kuro ninu apoti ati ki o rọrun lati se agbekale, ati Flyway Ni irọrun ṣepọ sinu CI ti o wa tẹlẹ. Ṣugbọn a jẹ ki o rọrun fun awọn olupilẹṣẹ :)

Ilana yipo

Puppet rii pe iyipada ninu ẹya package n bọ, pẹlu eyiti o jẹ iduro fun ijira. Ni akọkọ, o fi sori ẹrọ package kan ti o ni awọn iwe afọwọkọ iṣiwa ati iṣẹ ṣiṣe ti o ni ibatan si data data. Lẹhin eyi, ohun elo ti o ṣiṣẹ pẹlu data data ti tun bẹrẹ. Next ba wa ni fifi sori ẹrọ ti awọn ti o ku irinše. Ilana ninu eyiti awọn idii ti fi sori ẹrọ ati awọn ohun elo ti ṣe ifilọlẹ ni a ṣapejuwe ninu iṣafihan Puppet.

Awọn ohun elo lo data ifura, gẹgẹbi awọn ami-ami, awọn ọrọ igbaniwọle data data, gbogbo eyi ni a fa sinu atunto lati ọdọ titunto si Puppet, nibiti wọn ti fipamọ sinu fọọmu ti paroko.

Awọn iṣoro TFS

Lẹhin ti a pinnu ati rii pe ohun gbogbo n ṣiṣẹ fun wa gaan, Mo pinnu lati wo ohun ti n ṣẹlẹ pẹlu awọn apejọ ni TFS ni gbogbogbo fun Ẹka idagbasoke Win lori awọn iṣẹ akanṣe miiran - boya a yoo kọ / tu silẹ ni iyara tabi rara, ati ṣe awari awọn iṣoro pataki pẹlu iyara.

Ọkan ninu awọn iṣẹ akanṣe akọkọ gba iṣẹju 12-15 lati pejọ - iyẹn pẹ, o ko le gbe bii iyẹn. Onínọmbà iyara ṣe afihan iyasilẹ ẹru ni I/O, ati pe eyi wa lori awọn akojọpọ.

Lẹhin ti gbeyewo paati nipasẹ paati, Mo ṣe idanimọ awọn foci mẹta. Akoko - "Kaspersky antivirus", eyiti o ṣawari awọn orisun lori gbogbo awọn aṣoju Kọ Windows. Keji - Windows Atọka. Ko ṣe alaabo, ati pe ohun gbogbo ti o wa ninu ilana imuṣiṣẹ ni a ṣe atọkasi ni akoko gidi lori awọn aṣoju Kọ.

Kẹta - Npm fi sori ẹrọ. O wa ni jade wipe ni julọ Pipelines a lo pato yi ohn. Kini idi ti o buru? Ilana fifi sori ẹrọ Npm ti ṣiṣẹ nigbati igi igbẹkẹle ba ṣẹda ninu package-lock.json, nibiti a ti gbasilẹ awọn ẹya ti awọn idii ti yoo lo lati kọ iṣẹ naa. Ilẹ isalẹ ni pe Npm fi sori ẹrọ fa awọn ẹya tuntun ti awọn idii lati Intanẹẹti ni gbogbo igba, ati pe eyi gba akoko pupọ ninu ọran ti iṣẹ akanṣe nla kan.

Awọn olupilẹṣẹ nigbakan ṣe idanwo lori ẹrọ agbegbe lati ṣe idanwo bii apakan kan tabi gbogbo iṣẹ akanṣe n ṣiṣẹ. Nigba miiran o wa jade pe ohun gbogbo dara ni agbegbe, ṣugbọn wọn kojọ, ti yiyi jade, ko si si ohun ti o ṣiṣẹ. A n bẹrẹ lati ṣawari kini iṣoro naa jẹ - Bẹẹni, awọn ẹya oriṣiriṣi ti awọn idii pẹlu awọn igbẹkẹle.

Ipinnu

  • Awọn orisun ni awọn imukuro AV.
  • Pa atọka ṣiṣẹ.
  • Lọ si npmci.

Awọn anfani ti npm ci ni pe awa A gba igi igbẹkẹle lẹẹkan, ati awọn ti a gba awọn anfani lati pese awọn Olùgbéejáde lọwọlọwọ akojọ ti awọn jo, pẹlu eyiti o le ṣe idanwo ni agbegbe bi o ṣe fẹ. Eyi fi akoko pamọ kóòdù ti o kọ koodu.

Iṣeto ni

Bayi diẹ nipa iṣeto ibi ipamọ. Ni itan-akọọlẹ a ti lo Nexus fun iṣakoso awọn ibi ipamọ, pẹlu REPO ti abẹnu. Ibi ipamọ inu inu ni gbogbo awọn paati ti a lo fun awọn idi inu, fun apẹẹrẹ, ibojuwo ti ara ẹni.

NET Core lori Linux, DevOps lori ẹṣin

A tun lo NuGet, niwọn bi o ti ṣafipamọ dara julọ ju awọn alakoso package miiran lọ.

Esi

Lẹhin ti a ṣe iṣapeye Awọn Aṣoju Kọ, akoko kikọ apapọ ti dinku lati awọn iṣẹju 12 si 7.

Ti a ba ka gbogbo awọn ero ti a le ti lo fun Windows, ṣugbọn yipada si Linux ni iṣẹ yii, a ti fipamọ nipa $ 10. Ati pe eyi jẹ nikan lori awọn iwe-aṣẹ, ati pe ti a ba ṣe akiyesi akoonu, diẹ sii.

Awọn eto

Eto fun mẹẹdogun ti nbọ ni lati ṣiṣẹ lori jijẹ ifijiṣẹ koodu.

Yipada si aworan Docker ti o ti kọ tẹlẹ. TFS jẹ ohun ti o tutu pẹlu ọpọlọpọ awọn afikun ti o gba ọ laaye lati ṣepọ sinu Pipeline, pẹlu awọn ipilẹ ti o da lori okunfa, sọ, aworan Docker kan. A fẹ lati ṣe okunfa yii lori ọkan kanna package-lock.json. Ti akopọ ti awọn paati ti a lo lati kọ iṣẹ akanṣe bakan yipada, a kọ aworan Docker tuntun kan. O ti wa ni ti paradà lo lati ran a eiyan pẹlu ohun elo topejo. Eyi kii ṣe ọran ni bayi, ṣugbọn a n gbero lati yipada si faaji microservice ni Kubernetes, eyiti o dagbasoke ni itara ni ile-iṣẹ wa ati ti n ṣiṣẹ awọn solusan iṣelọpọ fun igba pipẹ.

Akopọ

Mo gba gbogbo eniyan niyanju lati jabọ Windows, ṣugbọn kii ṣe nitori Emi ko mọ bi a ṣe le ṣe e. Idi ni pe ọpọlọpọ awọn solusan Opensource jẹ Linux akopọ. Ṣe o dara? fipamọ lori oro. Ni ero mi, ọjọ iwaju wa ni Awọn ipinnu Orisun Ṣiṣii lori Linux pẹlu agbegbe ti o lagbara.

Profaili agbọrọsọ ti Alexander Sinchinov lori GitHub.

DevOps Conf jẹ apejọ kan lori isọpọ ti idagbasoke, idanwo ati awọn ilana ṣiṣe fun awọn akosemose nipasẹ awọn akosemose. Ti o ni idi ise agbese ti Alexander sọrọ nipa? imuse ati ṣiṣe, pẹlu awọn idasilẹ aṣeyọri meji ni ọjọ iṣẹ naa. Tan-an DevOps Conf ni RIT ++ Ni Oṣu Karun ọjọ 27 ati ọjọ 28, awọn ọran ti o jọra paapaa yoo wa lati ọdọ awọn oṣiṣẹ. O tun le fo sinu awọn ti o kẹhin gbigbe ati fi iroyin tabi gba akoko rẹ lati iwe Tiketi. Pade wa ni Skolkovo!

orisun: www.habr.com

Fi ọrọìwòye kun