.NET Core ntawm Linux, DevOps ntawm horseback

Peb tsim DevOps raws li qhov zoo tshaj plaws peb ua tau. Muaj 8 ntawm peb, thiab Vasya yog qhov txias tshaj plaws hauv Windows. Dheev Vasya sab laug, thiab kuv muaj txoj hauj lwm ntawm kev tsim ib txoj haujlwm tshiab uas tau muab los ntawm Windows kev txhim kho. Thaum kuv pov tseg tag nrho Windows kev txhim kho pawg ntawm lub rooj, kuv pom tau tias qhov xwm txheej yog qhov mob ...

Qhov no yog li cas zaj dab neeg pib Alexandra Sinchinova rau DevOpsConf. Thaum tus thawj coj Windows tshwj xeeb tawm hauv lub tuam txhab, Alexander xav tias yuav ua li cas tam sim no. Hloov mus rau Linux, tau kawg! Alexander yuav qhia koj tias nws tau tswj hwm li cas los tsim qhov ua ntej thiab hloov ib feem ntawm Windows kev txhim kho rau Linux siv tus piv txwv ntawm qhov ua tiav rau 100 cov neeg siv kawg.

.NET Core ntawm Linux, DevOps ntawm horseback

Yuav ua li cas yooj yim thiab siv zog xa ib qhov project rau RPM siv TFS, Puppet, Linux .NET core? Yuav ua li cas los txhawb kev hloov kho ntawm qhov project database yog tias pab pawg txhim kho hnov ​​​​cov lus Postgres thiab Flyway thawj zaug, thiab hnub kawg yog hnub tom qab tag kis? Yuav ua li cas koom nrog Docker? Yuav ua li cas txhawb .NET cov tsim tawm kom tso tseg Windows thiab smoothies hauv kev pom zoo ntawm Puppet thiab Linux? Yuav daws qhov kev xav tsis sib haum xeeb li cas yog tias tsis muaj lub zog, lossis lub siab xav, lossis cov peev txheej los tswj Windows hauv kev tsim khoom? Txog qhov no, nrog rau Web Deploy, xeem, CI, txog cov kev coj ua ntawm kev siv TFS hauv cov haujlwm uas twb muaj lawm, thiab, ntawm chav kawm, hais txog cov crutches tawg thiab cov kev daws teeb meem ua haujlwm, hauv cov ntawv sau tseg ntawm Alexander daim ntawv tshaj tawm.


Yog li, Vasya sab laug, txoj hauj lwm yog nyob ntawm kuv, cov neeg tsim khoom tos tsis txaus siab nrog pitchforks. Thaum kawg kuv paub tias Vasya tsis tuaj yeem rov qab los, kuv tau nqis mus ua lag luam. Pib nrog, Kuv tau ntsuas qhov feem pua ​​​​ntawm Win VMs hauv peb lub nkoj. Qhov qhab nia tsis tau pom zoo rau Windows.

.NET Core ntawm Linux, DevOps ntawm horseback

Txij li thaum peb tab tom txhim kho DevOps, Kuv pom tau tias qee yam yuav tsum tau hloov pauv hauv txoj hauv kev kom xa daim ntawv thov tshiab. Tsuas muaj ib qho kev daws teeb meem - yog tias ua tau, hloov txhua yam mus rau Linux. Google pab kuv - lub sijhawm ntawd .Net twb tau xa mus rau Linux, thiab kuv pom tau tias qhov no yog qhov kev daws teeb meem!

Vim li cas .NET core ua ke nrog Linux?

Muaj ob peb lub laj thawj rau qhov no. Ntawm "them nyiaj" thiab "tsis them", feem ntau yuav xaiv qhov thib ob - zoo li kuv. Daim ntawv tso cai rau MSDB tus nqi kwv yees li $ 1; tuav lub nkoj ntawm Windows virtual tshuab raug nqi ntau pua daus las. Rau ib lub tuam txhab loj, qhov no yog tus nqi loj. Yog vim li cas txuag - thawj vim li cas. Tsis yog qhov tseem ceeb tshaj plaws, tab sis yog ib qho tseem ceeb tshaj plaws.

Windows virtual machines siv cov peev txheej ntau dua li lawv cov kwv tij Linux - lawv hnyav. Muab qhov ntsuas ntawm lub tuam txhab loj, peb xaiv Linux.

Lub kaw lus tsuas yog muab tso rau hauv CI uas twb muaj lawm. Peb xav txog peb tus kheej nce qib DevOps, peb siv Xyoob, Jenkins thiab GitLab CI, yog li feem ntau ntawm peb txoj haujlwm khiav ntawm Linux.

Qhov kawg yog vim li cas yooj yim accompaniment. Peb yuav tsum tau txo qhov kev txwv tsis pub nkag mus rau "tus neeg saib xyuas" - cov txiv neej uas nkag siab txog kev ua haujlwm, xyuas kom tsis muaj kev cuam tshuam, thiab tswj cov kev pabcuam los ntawm kab thib ob. Lawv twb tau paub txog Linux pawg, yog li nws yooj yim dua rau lawv nkag siab, txhawb nqa thiab tswj cov khoom tshiab dua li siv cov peev txheej ntxiv kom nkag siab tib yam kev ua haujlwm ntawm software rau Windows platform.

uas yuav tsum tau

Thawj thiab foremost - yooj yim ntawm cov kev daws teeb meem tshiab rau cov neeg tsim khoom. Tsis yog txhua tus ntawm lawv tau npaj rau kev hloov pauv, tshwj xeeb tshaj yog tom qab lo lus Linux tau hais. Cov neeg tsim khoom xav kom lawv nyiam Visual Studio, TFS nrog autotests rau cov rooj sib txoos thiab smoothies. Yuav ua li cas xa mus rau kev tsim khoom tshwm sim tsis tseem ceeb rau lawv. Yog li ntawd, peb txiav txim siab tsis hloov cov txheej txheem ib txwm ua thiab tawm txhua yam tsis hloov pauv rau kev txhim kho Windows.

Qhov project tshiab xav tau integrate rau hauv CI uas twb muaj lawm. Cov kev tsheb ciav hlau twb muaj lawm thiab tag nrho cov haujlwm yuav tsum tau ua los ntawm kev ua raws li cov kev txwv ntawm kev tswj hwm kev teeb tsa, lees txais cov qauv xa khoom thiab kev saib xyuas.

Yooj yim ntawm kev txhawb nqa thiab kev ua haujlwm, raws li ib qho xwm txheej rau qhov tsawg kawg nkaus qhov pib nkag rau txhua tus neeg tuaj koom tshiab los ntawm ntau qhov kev faib tawm thiab lub chaw txhawb nqa.

Hnub kawg - nag hmo.

Win Development Group

Pab neeg Windows ua haujlwm nrog dab tsi thaum ntawd?

.NET Core ntawm Linux, DevOps ntawm horseback

Tam sim no kuv ntseeg tau hais tias IdentityServer 4 yog lwm txoj hauv kev pub dawb rau ADFS uas muaj peev xwm zoo sib xws, lossis dab tsi Nthuav lub Ncej Core - lub vaj kaj siab rau tus tsim tawm, qhov twg koj tsis tas yuav thab sau SQL scripts, tab sis piav qhia cov lus nug hauv cov ntaub ntawv hauv OOP cov lus. Tab sis tom qab ntawd, thaum lub sij hawm sib tham ntawm txoj kev npaj ua, kuv saib cov pawg no zoo li nws yog Sumerian cuneiform, lees paub tsuas yog PostgreSQL thiab Git.

Lub sijhawm ntawd peb nquag siv Menyuam dev raws li ib tug configuration tswj system. Hauv feem ntau ntawm peb cov haujlwm peb siv GitLab CI, elastic, balanced high-load kev pab cuam siv HAProxy saib xyuas txhua yam nrog Zabbix, ligaments ua grafana ΠΈ Prometheus, Mus yos hav zoov, thiab tag nrho cov no yog spinning ntawm daim hlau HPESXi rau VMware. Txhua leej txhua tus paub nws - ib tug classic ntawm ib hom ntawv nyeem.

.NET Core ntawm Linux, DevOps ntawm horseback

Cia peb saib thiab sim nkag siab tias muaj dab tsi tshwm sim ua ntej peb pib tag nrho cov kev cuam tshuam no.

Dab tsi tshwm sim

TFS yog lub zog muaj zog uas tsis yog tsuas yog xa cov cai los ntawm tus tsim tawm mus rau lub tshuab tsim khoom kawg nkaus xwb, tab sis kuj muaj cov txheej txheem rau kev sib koom ua ke yooj yim heev nrog ntau yam kev pabcuam - muab CI ntawm theem hla-platform.

.NET Core ntawm Linux, DevOps ntawm horseback
Yav tas los, cov no yog cov qhov rais khov. TFS tau siv ntau tus neeg ua haujlwm tsim, uas tau siv los sib sau ua ke ntau qhov haujlwm. Txhua tus neeg sawv cev muaj 3-4 tus neeg ua haujlwm los ua haujlwm sib luag thiab txhim kho cov txheej txheem. Tom qab ntawd, raws li cov phiaj xwm tso tawm, TFS tau xa cov khoom tsim tshiab tshiab rau Windows daim ntawv thov server.

Peb xav ua kom tiav li cas?

Peb siv TFS rau kev xa khoom thiab kev txhim kho, thiab khiav daim ntawv thov ntawm Linux Application server, thiab muaj qee yam kev ua khawv koob ntawm lawv. Qhov no Khawv koob Box thiab muaj ntsev ntawm txoj haujlwm ua ntej. Ua ntej kuv muab nws sib nrug, kuv yuav ua ib kauj ruam ib sab thiab hais ob peb lo lus hais txog daim ntawv thov.

Qhov project

Daim ntawv thov muab functionality rau tuav prepaid cards.

.NET Core ntawm Linux, DevOps ntawm horseback

Client

Muaj ob hom neeg siv. Thawj tau txais kev nkag los ntawm kev nkag mus siv daim ntawv pov thawj SSL SHA-2. U ntawm ob muaj kev nkag tau siv tus ID nkag mus thiab tus password.

HAPROxy

Tom qab ntawd tus neeg thov tau mus rau HAProxy, uas daws cov teeb meem hauv qab no:

  • kev tso cai thawj zaug;
  • Kev txiav tawm SSL;
  • kho HTTP thov;
  • thov tshaj tawm.

Daim ntawv pov thawj tus neeg siv khoom tau txheeb xyuas raws cov saw hlau. Peb - txoj cai thiab peb muaj peev xwm them taus qhov no, txij li peb tus kheej muab daim ntawv pov thawj rau cov neeg siv khoom.

Ua tib zoo saib rau lub ntsiab lus thib peb, peb yuav rov qab mus rau nws me ntsis tom qab.

backend

Lawv tau npaj ua qhov backend ntawm Linux. Lub backend cuam tshuam nrog cov ntaub ntawv, thauj cov npe tsim nyog ntawm cov cai thiab tom qab ntawd, nyob ntawm seb cov cai dab tsi uas tus neeg siv tau tso cai muaj, muab kev nkag mus rau kos npe rau cov ntaub ntawv nyiaj txiag thiab xa lawv rau kev ua tiav, lossis tsim qee yam kev tshaj tawm.

Txuag nrog HAProxy

Ntxiv nrog rau ob lub ntsiab lus uas txhua tus neeg siv tau mus, kuj tseem muaj cov ntsiab lus ntawm tus kheej. IdentityServer 4 cia li tso cai rau koj mus nkag rau hauv, qhov no yog ib tug dawb thiab haib analogue rau ADFS - Cov Kev Pabcuam Kev Ua Haujlwm Kev Ncaj Ncees.

Daim ntawv thov tus kheej tau ua tiav hauv ob peb kauj ruam. Thawj kauj ruam - tus neeg siv khoom tau nyob rau hauv lub backend, uas sib txuas lus nrog tus neeg rau zaub mov no thiab tshawb xyuas qhov muaj tus token rau tus neeg siv khoom. Yog tias nws tsis pom, qhov kev thov raug xa rov qab mus rau cov ntsiab lus uas nws tuaj, tab sis nrog kev hloov pauv, thiab nrog rau kev hloov pauv nws mus rau tus kheej.

Kauj ruam thib ob - qhov kev thov tau txais mus rau nplooj ntawv tso cai hauv IdentityServer, qhov twg tus neeg siv tau sau npe, thiab qhov token tau tos ntev tau tshwm sim hauv IdentityServer database.

Kauj ruam peb - tus neeg siv khoom raug xa rov qab mus rau lub ntsiab lus uas nws tuaj.

.NET Core ntawm Linux, DevOps ntawm horseback

IdentityServer4 muaj qhov tshwj xeeb: nws xa cov lus teb rau qhov kev thov rov qab los ntawm HTTP. Tsis muaj teeb meem ntau npaum li cas peb tawm tsam nrog kev teeb tsa lub server, txawm li cas los xij peb tau pom peb tus kheej nrog cov ntaub ntawv ntau npaum li cas, txhua zaus peb tau txais kev thov thawj tus neeg siv khoom nrog URL uas tuaj ntawm HTTPS, thiab IdentityServer rov qab tib lub ntsiab lus, tab sis nrog HTTP. Peb xav tsis thoob! Thiab peb tau hloov tag nrho cov no los ntawm tus kheej cov ntsiab lus rau HAProxy, thiab hauv cov headers peb yuav tsum hloov kho HTTP raws tu qauv rau HTTPS.

Qhov kev txhim kho yog dab tsi thiab koj txuag qhov twg?

Peb tau txuag nyiaj los ntawm kev siv cov kev daws teeb meem pub dawb rau kev tso cai rau ib pab pawg neeg siv, cov peev txheej, vim peb tsis tau tso IdentityServer4 ua ib qho ntawm qhov sib cais hauv ib ntu, tab sis siv nws ua ke nrog cov backend ntawm tib lub server uas lub backend ntawm daim ntawv thov khiav. .

Yuav tsum ua li cas

Yog li, raws li kuv tau cog lus tseg - Khawv koob Box. Peb twb nkag siab tias peb tau lees tias yuav tsiv mus rau Linux. Cia peb tsim cov haujlwm tshwj xeeb uas xav tau kev daws teeb meem.

.NET Core ntawm Linux, DevOps ntawm horseback

Puppet tshwm sim. Txhawm rau xa thiab tswj kev pabcuam thiab daim ntawv thov teeb tsa, cov zaub mov txias yuav tsum tau sau. Ib tug cwj mem eloquently qhia tau hais tias sai npaum li cas thiab ua tau zoo.

Txoj kev xa khoom. Tus qauv yog RPM. Txhua tus nkag siab tias hauv Linux koj tsis tuaj yeem ua yam tsis muaj nws, tab sis qhov project nws tus kheej, tom qab sib sau ua ke, yog txheej txheej ntawm cov ntaub ntawv DLL. Muaj txog 150 ntawm lawv, qhov project yog qhov nyuaj heev. Qhov kev sib haum xeeb nkaus xwb yog txhawm rau ntim cov binary no rau hauv RPM thiab xa daim ntawv thov los ntawm nws.

Versioning. Peb yuav tsum tau tso tawm ntau zaus, thiab peb yuav tsum txiav txim siab yuav ua li cas los tsim lub npe pob. Qhov no yog ib lo lus nug ntawm theem ntawm kev koom ua ke nrog TFS. Peb muaj tus neeg sawv cev tsim ntawm Linux. Thaum TFS xa ib txoj hauj lwm mus rau tus neeg ua haujlwm - tus neeg ua haujlwm - mus rau tus neeg sawv cev tsim, nws kuj dhau nws ntau qhov sib txawv uas xaus rau hauv ib puag ncig ntawm tus txheej txheem tuav. Cov kev hloov pauv ib puag ncig no muaj lub npe Tsim, lub npe version, thiab lwm yam hloov pauv. Nyeem ntxiv txog qhov no hauv ntu "Tsim ib pob RPM".

Teeb tsa TFS tau nqis los teeb lub Pipeline. Yav dhau los, peb tau sau tag nrho cov haujlwm Windows ntawm Windows tus neeg sawv cev, tab sis tam sim no ib tus neeg sawv cev Linux tshwm - tus neeg tsim tsim, uas yuav tsum tau suav nrog hauv pab pawg tsim, ntxiv rau qee yam khoom cuav, thiab qhia seb hom phiaj xwm twg yuav tsim rau tus neeg tsim tsim. , thiab ua li cas hloov cov yeeb nkab.

IdentityServer. ADFS tsis yog peb txoj hauv kev, peb tab tom mus rau Open Source.

Cia peb mus los ntawm cov khoom xyaw.

Khawv koob Box

Muaj plaub ntu.

.NET Core ntawm Linux, DevOps ntawm horseback

Linux Build agent. Linux, vim peb tsim rau nws - nws yog qhov laj thawj. Qhov no tau ua tiav peb kauj ruam.

  • Configure cov neeg ua haujlwm thiab tsis yog ib leeg, txij li kev faib ua haujlwm ntawm qhov project tau xav tau.
  • Nruab .NET Core 1.x. Vim li cas 1.x thaum 2.0 twb muaj nyob rau hauv tus txheej txheem repository? Vim tias thaum peb pib txhim kho, qhov ruaj khov version yog 1.09, thiab nws tau txiav txim siab los ua qhov project raws li nws.
  • Git 2.x.

RPM-repository. RPM tej pob khoom yuav tsum tau muab khaws cia rau qhov chaw. Nws tau xav tias peb yuav siv tib lub koom haum RPM repository uas muaj rau txhua tus tswv tsev Linux. Qhov ntawd yog qhov lawv ua. Lub repository server yog configured web nuv uas rub tawm pob RPM xav tau los ntawm qhov chaw teev tseg. Cov pob version tau tshaj tawm rau lub webhook los ntawm tus neeg tsim tsim.

GitLab. Nco ntsoov! GitLab ntawm no tsis yog siv los ntawm cov neeg tsim khoom, tab sis los ntawm lub chaw ua haujlwm los tswj cov ntawv thov versions, pob versions, saib xyuas cov xwm txheej ntawm txhua lub tshuab Linux, thiab nws khaws cov ntawv qhia - tag nrho cov Puppet manifests.

Menyuam dev - daws txhua qhov teeb meem tsis sib haum xeeb thiab xa tawm raws nraim qhov kev teeb tsa peb xav tau los ntawm Gitlab.

Peb pib dhia dej. DLL xa mus rau RPM ua haujlwm li cas?

Kev xa khoom DDL rau RPM

Cia peb hais tias peb muaj .NET kev txhim kho pob zeb hnub qub. Nws siv Visual Studio thiab tsim ib ceg tso tawm. Tom qab ntawd, nws uploads nws mus rau Git, thiab Git ntawm no yog TFS qhov chaw, uas yog, nws yog daim ntawv thov repository uas tus tsim tawm ua haujlwm.

.NET Core ntawm Linux, DevOps ntawm horseback

Tom qab ntawd TFS pom tias qhov kev cog lus tshiab tau los txog. Lub app twg? Hauv TFS qhov chaw muaj ib daim ntawv lo qhia tias cov peev txheej twg tus neeg sawv cev tsim muaj. Hauv qhov no, nws pom tias peb tab tom tsim .NET Core project thiab xaiv tus neeg sawv cev Linux tsim los ntawm lub pas dej.

Tus neeg sawv cev tsim tau txais cov peev txheej thiab rub tawm qhov tsim nyog vam khom los ntawm .NET repository, npm, thiab lwm yam. thiab tom qab tsim daim ntawv thov nws tus kheej thiab ntim tom qab, xa cov pob RPM mus rau RPM repository.

Ntawm qhov tod tes, cov hauv qab no tshwm sim. Lub chaw ua haujlwm engineer tau koom ncaj qha rau hauv qhov kev nthuav tawm ntawm qhov project: nws hloov cov versions ntawm pob khoom hauv Hiera nyob rau hauv repository qhov twg daim ntawv thov daim ntawv qhia yog khaws cia, tom qab uas Puppet tshwm sim yum, nqa lub pob tshiab los ntawm qhov chaw cia khoom, thiab cov ntawv tshiab ntawm daim ntawv thov tau npaj siv.

.NET Core ntawm Linux, DevOps ntawm horseback

Txhua yam yooj yim hauv cov lus, tab sis dab tsi tshwm sim hauv tus neeg sawv cev tsim nws tus kheej?

Ntim DLL RPM

Tau txais qhov project thiab tsim cov haujlwm los ntawm TFS. Tsim tus neeg sawv cev pib tsim qhov project nws tus kheej los ntawm qhov chaw. Qhov project sib dhos yog muaj nyob rau hauv ib txheej DLL cov ntaub ntawv, uas tau ntim rau hauv zip archive kom txo cov load ntawm cov ntaub ntawv kaw lus.

ZIP archive raug pov tseg mus rau RPM pob tsim directory. Tom ntej no, Bash tsab ntawv pib pib qhov hloov pauv ib puag ncig, pom qhov Tsim qauv, qhov project version, txoj hauv kev mus rau cov npe tsim, thiab khiav RPM-tsim. Thaum qhov kev tsim tiav lawm, lub pob tau luam tawm rau local repository, uas yog nyob rau ntawm Build agent.

Tom ntej no, los ntawm Tsim tus neeg sawv cev mus rau lub server hauv RPM repository JSON thov xa tuaj qhia lub npe ntawm lub version thiab tsim. Webhook, uas kuv tau tham txog ua ntej, rub tawm cov pob no los ntawm cov chaw cia khoom hauv zos ntawm tus neeg sawv cev tsim thiab ua rau lub rooj sib txoos tshiab rau kev teeb tsa.

.NET Core ntawm Linux, DevOps ntawm horseback

Vim li cas qhov kev xa khoom tshwj xeeb no rau RPM repository? Vim li cas kuv thiaj tsis tuaj yeem xa cov pob khoom sib dhos tam sim ntawd mus rau qhov chaw cia khoom? Qhov tseeb yog qhov no yog ib qho xwm txheej rau kev ua kom muaj kev nyab xeeb. Qhov xwm txheej no txwv qhov muaj peev xwm ntawm cov neeg tsis tau tso cai upload cov pob RPM rau lub server uas nkag tau rau txhua lub tshuab Linux.

Database versioning

Ntawm kev sab laj nrog pab pawg txhim kho, nws tau pom tias cov txiv neej tau nyob ze rau MS SQL, tab sis feem ntau cov haujlwm tsis yog Windows peb twb tau siv PostgreSQL nrog tag nrho lawv lub zog. Txij li thaum peb twb tau txiav txim siab tso tseg txhua yam them, peb pib siv PostgreSQL ntawm no ib yam nkaus.

.NET Core ntawm Linux, DevOps ntawm horseback

Hauv ntu no kuv xav qhia koj tias peb tau hloov kho cov ntaub ntawv li cas thiab peb xaiv li cas ntawm Flyway thiab Entity Framework Core. Cia peb saib lawv qhov zoo thiab qhov tsis zoo.

Daim ntawv

Flyway tsuas yog mus ib txoj kev, peb peb tsis tuaj yeem thim rov qab - qhov no yog qhov tsis zoo. Koj tuaj yeem sib piv nws nrog Entity Framework Core hauv lwm txoj hauv kev - hais txog kev tsim kho yooj yim. Koj nco ntsoov tias peb muab qhov no tso rau pem hauv ntej, thiab lub ntsiab lus tseem ceeb yog tsis hloov dab tsi rau kev txhim kho Windows.

Rau Flyway peb xav tau ib co wrapperkom cov txiv neej tsis sau SQL lus nug. Lawv nyob ze rau kev ua haujlwm hauv OOP cov lus. Peb tau sau cov lus qhia rau kev ua haujlwm nrog cov khoom siv database, tsim cov lus nug SQL thiab ua tiav nws. Tus tshiab version ntawm cov ntaub ntawv yog npaj txhij, sim - txhua yam zoo, txhua yam ua haujlwm.

Entity Framework Core muaj qhov rho tawm - hauv qab hnyav nws tsim SQL queries suboptimal, thiab drawdown nyob rau hauv lub database yuav tseem ceeb. Tab sis txij li thaum peb tsis muaj kev pabcuam siab, peb tsis suav cov khoom thauj hauv ntau pua RPS, peb lees txais cov kev pheej hmoo no thiab muab cov teeb meem rau peb yav tom ntej.

Yav tas los

Nthuav lub Ncej Core ua haujlwm tawm ntawm lub thawv thiab yooj yim rau kev txhim kho, thiab Flyway Yooj yim integrates rau hauv CI uas twb muaj lawm. Tab sis peb ua kom yooj yim rau cov neeg tsim khoom :)

Roll-up txheej txheem

Puppet pom tias qhov kev hloov pauv hauv pob version tab tom los, suav nrog tus uas yog lub luag haujlwm rau kev tsiv teb tsaws chaw. Ua ntej, nws nruab ib lub pob uas muaj cov ntawv tsiv teb tsaws chaw thiab cov ntaub ntawv ntsig txog kev ua haujlwm. Tom qab ntawd, daim ntawv thov uas ua haujlwm nrog cov ntaub ntawv rov pib dua. Tom ntej no yog lub installation ntawm cov khoom seem. Qhov kev txiav txim uas cov pob tau nruab thiab cov ntawv thov raug tso tawm tau piav qhia hauv Puppet manifest.

Cov ntawv thov siv cov ntaub ntawv rhiab heev, xws li tokens, database passwords, tag nrho cov no yog rub mus rau hauv config los ntawm Puppet master, qhov chaw uas lawv khaws cia rau hauv daim ntawv encrypted.

TFS teeb meem

Tom qab peb tau txiav txim siab thiab pom tau tias txhua yam ua haujlwm tiag tiag rau peb, kuv tau txiav txim siab los saib seb puas muaj dab tsi tshwm sim nrog cov rooj sib tham hauv TFS tag nrho rau Lub Tsev Haujlwm Saib Xyuas Kev Txhim Kho Win ntawm lwm cov haujlwm - txawm tias peb tab tom tsim / tso tawm sai lossis tsis, thiab nrhiav tau cov teeb meem loj nrog ceev.

Ib qho ntawm cov haujlwm tseem ceeb yuav siv sijhawm 12-15 feeb los sib sau ua ke - uas yog lub sijhawm ntev, koj tsis tuaj yeem nyob zoo li ntawd. Kev soj ntsuam ceev tau pom qhov cuam tshuam txaus ntshai hauv I / O, thiab qhov no yog nyob ntawm arrays.

Tom qab txheeb xyuas nws cov khoom los ntawm cov khoom, kuv txheeb xyuas peb foci. Ua ntej - "Kaspersky antivirus", uas scans qhov chaw ntawm txhua tus neeg sawv cev Windows Build. Thib ob - lub qhov rais Indexer. Nws tsis yog neeg xiam oob qhab, thiab txhua yam tau txheeb xyuas nyob rau lub sijhawm tiag tiag ntawm Cov Neeg Ua Haujlwm Tsim Kho thaum lub sijhawm xa mus.

Thib peb - npm install. Nws muab tawm tias nyob rau hauv feem ntau Pipelines peb siv qhov tseeb scenario. Vim li cas nws phem? Cov txheej txheem Npm nruab yog khiav thaum tsob ntoo nyob hauv pob-lock.json, qhov twg cov versions ntawm pob khoom uas yuav raug siv los tsim qhov project raug kaw. Qhov tsis zoo yog tias Npm nruab rub tawm cov pob khoom tshiab los ntawm Is Taws Nem txhua zaus, thiab qhov no yuav siv sij hawm ntau heev nyob rau hauv rooj plaub ntawm qhov project loj.

Cov neeg tsim khoom qee zaum sim ntawm lub tshuab hauv zos los sim seb ib feem lossis tag nrho cov haujlwm ua haujlwm li cas. Qee lub sij hawm nws tau pom tias txhua yam hauv zos txias, tab sis lawv tau sib sau ua ke, dov tawm, thiab tsis muaj dab tsi ua haujlwm. Peb pib los xyuas seb qhov teeb meem yog dab tsi - yog, txawv versions ntawm pob khoom nrog dependencies.

kev txiav txim siab

  • Cov peev txheej hauv AV kev zam.
  • Disable indexing.
  • Mus rau npm ci.

Qhov zoo ntawm npm ci yog peb Peb sau cov ntoo nyob ib zaug, thiab peb tau txais lub sijhawm los muab tus tsim tawm daim ntawv teev cov pob khoom tam sim no, uas nws tuaj yeem sim hauv zos ntau npaum li nws nyiam. Qhov no txuag lub sijhawm developers uas sau code.

Configuration

Tam sim no me ntsis txog lub repository configuration. Keeb kwm peb siv Nexus rau tswj repositories, suav nrog Internal REPO. Qhov chaw khaws cia sab hauv no muaj tag nrho cov khoom siv uas peb siv rau lub hom phiaj sab hauv, piv txwv li, kev soj ntsuam tus kheej.

.NET Core ntawm Linux, DevOps ntawm horseback

Peb kuj siv NuGet, raws li nws muaj caching zoo dua piv rau lwm tus neeg saib xyuas pob.

tshwm sim

Tom qab peb ua kom zoo rau Cov Neeg Ua Haujlwm, qhov nruab nrab lub sijhawm tsim tau raug txo los ntawm 12 feeb mus rau 7.

Yog tias peb suav tag nrho cov tshuab uas peb tuaj yeem siv rau Windows, tab sis hloov mus rau Linux hauv qhov project no, peb txuag tau txog $ 10. Thiab qhov ntawd tsuas yog cov ntawv tso cai, thiab ntau dua yog tias peb suav nrog cov ntsiab lus.

Cov Tswv Yim

Rau peb lub hlis tom ntej, peb tau npaj los ua haujlwm ntawm optimizing code xa.

Hloov mus rau cov duab Docker ua ntej. TFS yog qhov txias tshaj plaws nrog ntau lub plugins uas tso cai rau koj los koom ua ke rau hauv Pipeline, suav nrog kev sib dhos ua ke ntawm, hais, Docker duab. Peb xav ua qhov no ua rau tib tus pob-lock.json. Yog tias qhov sib xyaw ntawm cov khoom siv los tsim qhov project hloov pauv, peb tsim cov duab Docker tshiab. Tom qab ntawd nws yog siv los xa lub thawv nrog rau daim ntawv thov sib dhos. Qhov no tsis yog qhov teeb meem tam sim no, tab sis peb tab tom npaj hloov mus rau microservice architecture nyob rau hauv Kubernetes, uas yog nquag tsim nyob rau hauv peb lub tuam txhab thiab tau pab ntau lawm daws teeb meem rau lub sij hawm ntev.

Txoj kev xaus

Kuv yaum kom txhua tus pov tseg Windows, tab sis nws tsis yog vim kuv tsis paub yuav ua li cas. Qhov laj thawj yog tias feem ntau Opensource daws yog Linux pawg. koj puas ok txuag ntawm cov peev txheej. Hauv kuv lub tswv yim, lub neej yav tom ntej yog rau Open Source kev daws teeb meem ntawm Linux nrog lub zej zog muaj zog.

Hais lus profile ntawm Alexander Sinchinov ntawm GitHub.

DevOps Conf yog lub rooj sib tham ntawm kev sib koom ua ke ntawm kev txhim kho, kev sim thiab kev ua haujlwm rau cov kws tshaj lij los ntawm cov kws tshaj lij. Yog vim li cas qhov project uas Alexander tham txog? tau siv thiab ua haujlwm, thiab nyob rau hnub ntawm kev ua tau zoo muaj ob qhov kev tso tawm ua tiav. Ntawm DevOps Conf ntawm RIT ++ Lub Tsib Hlis 27 thiab 28 yuav muaj cov xwm txheej zoo sib xws los ntawm cov kws kho mob. Koj tseem tuaj yeem dhia mus rau hauv lub tsheb thauj neeg kawg thiab xa tsab ntawv ceeb toom los yog siv koj lub sijhawm mus rau phau ntawv daim pib. Ntsib peb hauv Skolkovo!

Tau qhov twg los: www.hab.com

Ntxiv ib saib