.NET Core ma Linux, DevOps ma ka lio

Ua hoʻomohala mākou i nā DevOps e like me ka mea hiki iā mākou. He 8 mākou, a ʻo Vasya ka mea ʻoluʻolu loa ma Windows. Ua haʻalele koke ʻo Vasya, a ua loaʻa iaʻu ka hana o ka hoʻomaka ʻana i kahi papahana hou i hoʻolako ʻia e ka hoʻomohala ʻana o Windows. I koʻu hoʻolei ʻana i ka waihona hoʻomohala Windows holoʻokoʻa ma ka papaʻaina, ʻike wau he ʻeha ke kūlana ...

Pēlā e hoʻomaka ai ka moʻolelo Alexandra Sinchinova maluna o DevOpsConf. I ka haʻalele ʻana o ka loea Windows alakaʻi i ka hui, ua noʻonoʻo ʻo Alexander i ka mea e hana ai i kēia manawa. E hoʻololi i Linux, ʻoiaʻiʻo! E haʻi aku ʻo Alexander iā ʻoe pehea ʻo ia i hana ai i kahi precedent a hoʻololi i kahi ʻāpana o ka hoʻomohala ʻana o Windows i Linux me ka hoʻohana ʻana i ka laʻana o kahi papahana i hoʻopau ʻia no nā mea hoʻohana hope 100.

.NET Core ma Linux, DevOps ma ka lio

Pehea e hāʻawi maʻalahi ai i kahi papahana i RPM me ka hoʻohana ʻana iā TFS, Puppet, Linux .NET core? Pehea e kākoʻo ai i ka hoʻololi ʻana o kahi waihona pāhana inā lohe ka hui hoʻomohala i nā huaʻōlelo Postgres a me Flyway no ka manawa mua, a ʻo ka lā palena ma ka lā ʻapōpō? Pehea e hoʻohui pū ai me Docker? Pehea e hoʻoikaika ai i nā mea hoʻomohala .NET e haʻalele i ka Windows a me ka smoothies no ka Puppet a me Linux? Pehea e hoʻoholo ai i nā hakakā ideological inā ʻaʻohe ikaika, ʻaʻole makemake, ʻaʻole nā ​​kumuwaiwai e mālama i ka Windows i ka hana? E pili ana i kēia, a me ka Web Deploy, ho'āʻo, CI, e pili ana i nā hana o ka hoʻohana ʻana i ka TFS i nā papahana e kū nei, a, ʻoiaʻiʻo hoʻi, e pili ana i nā koʻokoʻo haʻihaʻi a me nā hopena hana, ma ka transcript o ka hōʻike a Alexander.


No laila, haʻalele ʻo Vasya, aia ka hana ma luna oʻu, ke kali nei nā mea hoʻomohala me ke ahonui me nā pitchforks. I koʻu ʻike ʻana ʻaʻole hiki ke hoʻihoʻi ʻia ʻo Vasya, ua iho wau i ka ʻoihana. I ka hoʻomaka ʻana, ua loiloi au i ka pākēneka o Win VMs i kā mākou ʻauwaʻa. ʻAʻole i makemake ka helu iā Windows.

.NET Core ma Linux, DevOps ma ka lio

No ka mea ke hoʻomohala nei mākou i nā DevOps, ua ʻike wau he pono ke hoʻololi ʻia i ke ala e hoʻopuka ai i kahi noi hou. Hoʻokahi wale nō hoʻonā - inā hiki, e hoʻololi i nā mea āpau i Linux. Ua kōkua ʻo Google iaʻu - i kēlā manawa ua hoʻokomo ʻia ʻo Net i Linux, a ʻike wau ʻo ia ka hopena!

No ke aha .NET core i hui pū me Linux?

He mau kumu no keia. Ma waena o "uku kālā" a "ʻaʻole uku", e koho ka hapa nui i ka lua - e like me aʻu. He $1 ke kumukūʻai o ka laikini no MSDB; ʻo ka mālama ʻana i nā ʻauwaʻa o nā mīkini virtual Windows he mau haneli kālā. No kahi ʻoihana nui he uku nui kēia. ʻo ia ke kumu e hoola ana - kumu mua. ʻAʻole ka mea nui, akā kekahi o nā mea nui.

ʻOi aku ka nui o nā kumuwaiwai Windows ma mua o ko lākou mau hoahānau Linux - kaumaha lakou. Ma muli o ka nui o ka hui nui, ua koho mākou i Linux.

Hoʻopili wale ʻia ka ʻōnaehana i loko o ka CI i loaʻa. Manaʻo mākou iā mākou iho e holomua DevOps, hoʻohana mākou i ka Bamboo, Jenkins a me GitLab CI, no laila holo ka hapa nui o kā mākou hana ma Linux.

ʻO ke kumu hope loa ʻoluʻolu hoʻi. Pono mākou e hoʻohaʻahaʻa i ka pale i ke komo ʻana no nā "escorts" - nā kāne i hoʻomaopopo i ka ʻāpana ʻenehana, e hōʻoia i ka lawelawe ʻole ʻia, a mālama i nā lawelawe mai ka laina ʻelua. Ua kamaʻāina mua lākou i ka waihona Linux, no laila ʻoi aku ka maʻalahi o lākou e hoʻomaopopo, kākoʻo a mālama i kahi huahana hou ma mua o ka hoʻolilo ʻana i nā kumuwaiwai hou aʻe e hoʻomaopopo i ka hana like o ka polokalamu no ka paepae Windows.

koi

ʻO ka mea mua loa - ʻoluʻolu o ka hoʻonā hou no nā mea hoʻomohala. ʻAʻole mākaukau lākou a pau no ka hoʻololi ʻana, ʻoi aku ma hope o ka ʻōlelo ʻana o Linux. Makemake nā mea hoʻomohala i kā lākou Visual Studio punahele, TFS me nā autotests no nā hui a me nā smoothies. ʻAʻole koʻikoʻi iā lākou ke ʻano o ka lawe ʻana i ka hana. No laila, ua hoʻoholo mākou ʻaʻole e hoʻololi i ke kaʻina hana maʻamau a waiho i nā mea āpau no ka hoʻomohala ʻana o Windows.

Pono ka papahana hou hoʻohui i loko o ka CI i loaʻa. Aia nā kaʻaahi a pono e hana ʻia nā hana a pau me ka noʻonoʻo ʻana i nā ʻāpana o ka ʻōnaehana hoʻonohonoho hoʻonohonoho, ʻae ʻia nā kūlana lawe a me nā ʻōnaehana nānā.

ʻO ka maʻalahi o ke kākoʻo a me ka hana, ma ke ʻano he kūlana no ka paepae komo haʻahaʻa loa no nā poʻe hou a pau mai nā māhele like ʻole a me ke keʻena kākoʻo.

Ka lā hoʻopau - i nehinei.

Win Development Group

He aha ka hana a ka hui Windows ia manawa?

.NET Core ma Linux, DevOps ma ka lio

I kēia manawa hiki iaʻu ke ʻōlelo me ka wiwo ʻole IdentityServer4 He koho manuahi ʻoluʻolu no ADFS me nā mana like, a i ʻole Hui Pūʻulu Core - he paradaiso no ka mea hoʻomohala, kahi ʻaʻole pono ʻoe e hoʻopilikia i ke kākau ʻana i nā palapala SQL, akā wehewehe i nā nīnau ma ka waihona ma nā huaʻōlelo OOP. Akā, i ka wā e kūkākūkā ai i ka hoʻolālā hana, nānā au i kēia pūʻulu me he mea lā ʻo Sumerian cuneiform, ʻike wale ʻo PostgreSQL a me Git.

I kēlā manawa mākou e hoʻohana ikaika nei ʻAʻaka ma ke ʻano he ʻōnaehana hoʻonohonoho hoʻonohonoho. Ma ka hapa nui o kā mākou papahana i hoʻohana ai mākou GitLab CI, Elastic, kaulike kiʻekiʻe-haawe lawelawe hoʻohana HAProxy nānā i nā mea a pau me ʻO Zabbix, ligaments grafana и IHILA, ʻO Jaeger, a ke wili nei keia mau mea a pau ma na apana hao HPESXi maluna o VMware. Ua ʻike nā kānaka a pau - he ʻano maʻamau o ke ʻano.

.NET Core ma Linux, DevOps ma ka lio

E nānā a hoʻāʻo e hoʻomaopopo i ka mea i hana ʻia ma mua o ka hoʻomaka ʻana i kēia mau hana āpau.

He aha i hana ai

He ʻōnaehana ikaika loa ʻo TFS e hāʻawi wale i nā code mai ka mea hoʻomohala a hiki i ka mīkini hana hope loa, akā loaʻa pū kekahi no ka hoʻohui maʻalahi me nā lawelawe like ʻole - e hāʻawi iā CI ma kahi pae cross-platform.

.NET Core ma Linux, DevOps ma ka lio
Ma mua, he mau puka makani paʻa kēia. Ua hoʻohana ʻo TFS i kekahi mau mea hana Build, i hoʻohana ʻia e hōʻuluʻulu i nā papahana he nui. Loaʻa i kēlā me kēia luna nā limahana 3-4 e hoʻohālikelike i nā hana a hoʻopaʻa i ke kaʻina hana. A laila, e like me ka hoʻokuʻu ʻana i nā hoʻolālā, hāʻawi ʻo TFS i ka Build hou i kālua ʻia i ke kikowaena noi Windows.

He aha kā mākou i makemake ai e hoʻokō?

Hoʻohana mākou i ka TFS no ka lawe ʻana a me ka hoʻomohala ʻana, a holo i ka noi ma kahi kikowaena Linux Application, a aia kekahi ʻano kilokilo ma waena o lākou. ʻO kēia ʻO ka Magic Box a aia ka paakai o ka hana e hiki mai ana. Ma mua o koʻu wehe ʻana iā ia, e hele au i kahi ʻaoʻao a ʻōlelo i kekahi mau huaʻōlelo e pili ana i ka noi.

ʻO ka papahana

Hāʻawi ka palapala noi i ka hana no ka mālama ʻana i nā kāleka prepaid.

.NET Core ma Linux, DevOps ma ka lio

Client

ʻElua ʻano mea hoʻohana. ʻO ka mua loaʻa ke komo ʻana ma ka hoʻohana ʻana i kahi palapala SSL SHA-2. U ʻo ka lua ua loaʻa ke komo me ka hoʻohana ʻana i ka login a me ka ʻōlelo huna.

HAProxy

A laila hele ka noi o ka mea kūʻai aku iā HAProxy, nāna i hoʻoponopono i kēia mau pilikia:

  • mana mua;
  • Hoʻopau SSL;
  • hoʻolohe i nā noi HTTP;
  • noi hoʻolaha.

Ua hōʻoia ʻia ka palapala mea kūʻai aku ma ke kaulahao. mākou - mana a hiki iā mākou ke hāʻawi i kēia, ʻoiai ʻo mākou iho e hāʻawi i nā palapala hōʻoia i nā mea kūʻai aku lawelawe.

E hoʻolohe i ke kolu o ka helu, e hoʻi hou mākou ma hope iki.

Hoʻihoʻi

Ua hoʻolālā lākou e hana i ka backend ma Linux. Hoʻopili ka backend me ka waihona, hoʻouka i ka papa inoa pono o nā pono a laila, e pili ana i nā pono i loaʻa i ka mea hoʻohana i ʻae ʻia, hāʻawi i ke komo ʻana e kau inoa i nā palapala kālā a hoʻouna iā lākou no ka hoʻokō ʻana, a i ʻole e hana i kekahi ʻano hōʻike.

Mālama me HAProxy

Ma waho aʻe o nā pōʻaiapili ʻelua i hoʻokele ʻia e kēlā me kēia mea kūʻai aku, aia kekahi pōʻaiapili ʻike. IdentityServer4 hiki wale iā ʻoe ke komo i loko, he analogue manuahi kēia no ADFS - Nā lawelawe lawelawe ʻo Directory Directory.

Ua hana ʻia ka noi ʻike ma kekahi mau ʻanuʻu. ʻO ka hana mua - mea kūʻai aku komo i ka hope, i kamaʻilio pū me kēia kikowaena a nānā i ka loaʻa ʻana o kahi hōʻailona no ka mea kūʻai aku. Inā ʻaʻole i ʻike ʻia, ua hoʻihoʻi ʻia ka noi i ka pōʻaiapili kahi i hele mai ai, akā me ka hoʻihoʻi hou ʻana, a me ka hoʻihoʻi hou ʻana ua hele i ka ʻike.

ʻO ka lua - ua loaʻa ka noi i ka ʻaoʻao ʻae ma IdentityServer, kahi i hoʻopaʻa inoa ai ka mea kūʻai aku, a ua ʻike ʻia kēlā hōʻailona i kali lōʻihi ʻia ma ka waihona IdentityServer.

ʻEkolu ʻanuʻu - ua hoʻihoʻi ʻia ka mea kūʻai aku i ka pōʻaiapili i puka mai ai.

.NET Core ma Linux, DevOps ma ka lio

He hiʻona ko IdentityServer4: hoʻihoʻi ia i ka pane i ka noi hoʻihoʻi ma o HTTP. No ka nui o kā mākou paʻakikī i ka hoʻonohonoho ʻana i ke kikowaena, ʻaʻole pili i ka nui o kā mākou hoʻomālamalama ʻana iā mākou iho me ka palapala, i kēlā me kēia manawa i loaʻa iā mākou kahi noi mea kūʻai mua me kahi URL i hele mai ma HTTPS, a ua hoʻihoʻi ʻo IdentityServer i ka pōʻaiapili like, akā me HTTP. Pīhoihoi mākou! A ua hoʻololi mākou i kēia mau mea a pau ma o ka ʻike ʻike i HAProxy, a ma nā poʻomanaʻo pono mākou e hoʻololi i ka protocol HTTP i HTTPS.

He aha ka hoʻomaikaʻi a ma hea ʻoe i mālama ai?

Ua mālama mākou i ke kālā ma ka hoʻohana ʻana i kahi hopena manuahi no ka ʻae ʻana i kahi pūʻulu o nā mea hoʻohana, nā kumuwaiwai, ʻoiai ʻaʻole mākou i hoʻonoho i ka IdentityServer4 ma ke ʻano he node kaʻawale i kahi ʻāpana ʻokoʻa, akā ua hoʻohana pū me ka backend ma ka server like kahi e holo ai ka hope o ka noi. .

Pehea e hana ai

No laila, e like me kaʻu i hoʻohiki ai - Magic Box. Ua maopopo iā mākou ua hōʻoia ʻia mākou e neʻe i Linux. E hoʻolālā i nā hana kikoʻī e pono ai nā hoʻonā.

.NET Core ma Linux, DevOps ma ka lio

Hōʻike papeti. No ka hāʻawi ʻana a me ka mālama ʻana i ka lawelawe a me ka hoʻonohonoho noiʻi, pono e kākau ʻia nā ʻōlelo aʻoaʻo maikaʻi. Hōʻike maikaʻi ka ʻōwili penikala i ka wikiwiki a me ka maikaʻi o ka hana ʻana.

Kaʻina hoʻouna. ʻO ka maʻamau ka RPM. Hoʻomaopopo ka poʻe āpau ma Linux ʻaʻole hiki iā ʻoe ke hana me ka ʻole, akā ʻo ka papahana ponoʻī, ma hope o ka hui ʻana, he hoʻonohonoho o nā faila DLL hiki ke hoʻokō. Aia ma kahi o 150 o lākou, paʻakikī loa ka papahana. ʻO ka hopena hoʻokahi wale nō ka hoʻopili ʻana i kēia binary i RPM a kau i ka noi mai ia mea.

Hoʻololi ʻana. Pono mākou e hoʻokuʻu pinepine, a pono mākou e hoʻoholo pehea e hana ai i ka inoa pūʻolo. He nīnau kēia o ka pae o ka hoʻohui ʻana me TFS. Loaʻa iā mākou kahi luna kūkulu ma Linux. Ke hoʻouna ʻo TFS i kahi hana i kahi mea lawelawe - limahana - i ka mea hana Build, hāʻawi pū ʻo ia i kahi pūʻulu o nā ʻano like ʻole e pau i ke kaiapuni o ke kaʻina hana. Loaʻa i kēia mau ʻano hoʻololi kaiapuni ka inoa Build, ka inoa mana, a me nā ʻano ʻē aʻe. E heluhelu hou e pili ana i kēia ma ka ʻāpana "Ke kūkulu ʻana i kahi pūʻolo RPM".

Hoʻonohonoho i ka TFS iho mai e kukulu i ka Pipeline. Ma mua, ua hōʻiliʻili mākou i nā papahana Windows āpau ma nā ʻelele Windows, akā i kēia manawa ua ʻike ʻia kahi luna Linux - kahi Build agent, pono e hoʻokomo ʻia i ka hui kūkulu, hoʻonui ʻia me kekahi mau mea waiwai, a haʻi i ke ʻano o nā papahana e kūkulu ʻia ma luna o kēia Build agent. , a hoʻololi i ka Pipeline.

IdentityServer. ʻAʻole ʻo ADFS ko mākou ala, ke hele nei mākou no Open Source.

E hele kāua i nā ʻāpana.

ʻO ka Magic Box

Aia i ʻehā ʻāpana.

.NET Core ma Linux, DevOps ma ka lio

ʻAikana kūkulu Linux. ʻO Linux, no ka mea, kūkulu mākou no ia - kūpono. Ua hana ʻia kēia ʻāpana i ʻekolu mau ʻanuʻu.

  • Hoʻonohonoho i nā limahana 'a'ole ho'okahi wale nō, no ka mea, ua mana'o 'ia nā hana ho'olaha ma ka papahana.
  • E hoʻouka i ka .NET Core 1.x. No ke aha ʻo 1.x inā loaʻa ka 2.0 i ka waihona maʻamau? No ka mea i ka wā i hoʻomaka ai mākou i ka hoʻomohala ʻana, ʻo 1.09 ka mana paʻa, a ua hoʻoholo ʻia e hana i ka papahana ma luna o ia.
  • Git 2.x.

RPM- waihona. Pono e mālama ʻia nā pūʻolo RPM ma kahi. Ua manaʻo ʻia e hoʻohana mākou i ka waihona RPM hui like i loaʻa i nā pūʻali Linux āpau. ʻO ia kā lākou i hana ai. Hoʻonohonoho ʻia ke kikowaena waihona pūnaewele puni honua nāna i hoʻoiho i ka pūʻolo RPM i koi ʻia mai kahi i kuhikuhi ʻia. Ua hōʻike ʻia ka mana o ka pūʻolo i ka webhook e ka Build agent.

ʻO GitLab. Nānā! ʻAʻole hoʻohana ʻia ʻo GitLab ma aneʻi e nā mea hoʻomohala, akā na ka ʻoihana hana e hoʻomalu i nā mana noiʻi, nā ʻano pūʻolo, e nānā i ke kūlana o nā mīkini Linux āpau, a mālama ia i ka meaʻai - nā hōʻike Puppet āpau.

ʻAʻaka - hoʻoholo i nā pilikia hoʻopaʻapaʻa āpau a hāʻawi pololei i ka hoʻonohonoho a mākou e makemake ai mai Gitlab.

Hoʻomaka mākou e luʻu. Pehea ka lawe ʻana o DLL i ka RPM?

Hoʻouna i ka DDL i RPM

E ʻōlelo kākou he hōkū pōhaku hoʻomohala .NET. Hoʻohana ia i Visual Studio a hana i kahi lālā hoʻokuʻu. Ma hope o kēlā, hoʻouka iā ia i Git, a ʻo Git eia kahi hui TFS, ʻo ia hoʻi, ʻo ia ka waihona noi e hana ai ka mea hoʻomohala.

.NET Core ma Linux, DevOps ma ka lio

A laila ʻike ʻo TFS ua hiki mai kahi hana hou. ʻO ka polokalamu hea? Ma nā hoʻonohonoho TFS aia kahi lepili e hōʻike ana i nā kumuwaiwai i loaʻa i kahi mea hana Build. I kēia hihia, ʻike ʻo ia ke kūkulu nei mākou i kahi papahana .NET Core a koho i kahi mea hana Linux Build mai ka loko.

Loaʻa i ka luna Build nā kumu a hoʻoiho i nā mea e pono ai nā dependencies mai ka waihona .NET, npm, etc. a ma hope o ke kūkulu ʻana i ka noi ponoʻī a me ka hoʻopili hope ʻana, e hoʻouna i ka pūʻolo RPM i ka waihona RPM.

Ma kekahi ʻaoʻao, hiki mai kēia. Hoʻopili pololei ʻia ka ʻenehana ʻoihana hana i ka ʻōwili ʻana o ka papahana: hoʻololi ʻo ia i nā mana o nā pūʻolo i loko Hiera i loko o ka waihona kahi i mālama ʻia ai ka palapala noi noi, a laila hoʻomaka ka Puppet Yum, kiʻi i ka pūʻolo hou mai ka waihona, a ua mākaukau ka mana hou o ka noi e hoʻohana.

.NET Core ma Linux, DevOps ma ka lio

He mea maʻalahi nā mea a pau i nā huaʻōlelo, akā he aha ka mea i loko o ka Build agent ponoʻī?

Hoʻopili DLL RPM

Loaʻa i nā kumu papahana a kūkulu i ka hana mai TFS. Agena kukulu hoʻomaka ke kūkulu ʻana i ka papahana ponoʻī mai nā kumu. Loaʻa ka papahana i hui ʻia ma ke ʻano he hoʻonohonoho Nā faila DLL, i hoʻopili ʻia i loko o kahi waihona zip e hoʻemi i ka ukana ma ka ʻōnaehana faila.

Kiola ʻia ka waihona ZIP i ka papa kuhikuhi kūkulu hale waihona RPM. A laila, hoʻomaka ka Bash script i nā ʻano like ʻole, ʻike i ka mana Build, ka mana o ka papahana, ke ala i ka papa kuhikuhi kūkulu, a holo i ka RPM-build. Ke hoʻopau ʻia ke kūkulu ʻana, paʻi ʻia ka pūʻolo i waihona kūloko, aia ma ka luna Build.

A laila, mai ka Build agent i ke kikowaena ma ka waihona RPM Hoʻouna ʻia ke noi JSON e hōʻike ana i ka inoa o ka mana a me ke kūkulu. ʻO Webhook, ka mea aʻu i kamaʻilio ai ma mua, e hoʻoiho i kēia pūʻulu mai ka waihona kūloko ma ka Build agent a hoʻolako i ka hui hou no ka hoʻonohonoho.

.NET Core ma Linux, DevOps ma ka lio

No ke aha kēia hoʻolālā hoʻopuka kikoʻī i ka waihona RPM? No ke aha ʻaʻole hiki iaʻu ke hoʻouna koke i ka pūʻolo i hui ʻia i ka waihona? ʻO ka ʻoiaʻiʻo he kūlana kēia no ka hōʻoia ʻana i ka palekana. Hoʻopili kēia hiʻohiʻona i ka hiki ʻana o nā poʻe ʻae ʻole e hoʻouka i nā pūʻolo RPM i kahi kikowaena hiki ke loaʻa i nā mīkini Linux āpau.

Hoʻololi ʻikepili

Ma kahi kūkākūkā me ka hui hoʻomohala, ua ʻike ʻia ua kokoke nā kāne iā MS SQL, akā i ka hapa nui o nā papahana Windows ʻole ua hoʻohana mākou i ka PostgreSQL me ko lākou ikaika āpau. No ka mea ua hoʻoholo mākou e haʻalele i nā mea āpau i uku ʻia, hoʻomaka mākou e hoʻohana i ka PostgreSQL ma aneʻi.

.NET Core ma Linux, DevOps ma ka lio

Ma kēia ʻāpana makemake wau e haʻi iā ʻoe pehea mākou i hoʻololi ai i ka waihona a pehea mākou i koho ai ma waena o Flyway a me Entity Framework Core. E nānā kākou i kā lākou pono a me nā pōʻino.

Минусы

Hoʻokahi wale nō ala hele ʻo Flyway, mākou ʻaʻole hiki iā mākou ke ʻōwili i hope - he pōʻino koʻikoʻi kēia. Hiki iā ʻoe ke hoʻohālikelike me Entity Framework Core ma nā ʻano ʻē aʻe - ma ke ʻano o ka maʻalahi o ka mea hoʻomohala. Hoʻomanaʻo ʻoe ua kau mākou i kēia ma ke alo, a ʻo ke kumu nui ʻaʻole ia e hoʻololi i kekahi mea no ka hoʻomohala ʻana o Windows.

No Flyway iā mākou ua makemake ʻia kekahi ʻano ʻōwilii ʻole kākau nā kāne Nā nīnau SQL. Ua kokoke loa lākou i ka hana ma nā ʻōlelo OOP. Ua kākau mākou i nā ʻōlelo aʻoaʻo no ka hana ʻana me nā mea waihona, hana i kahi nīnau SQL a hoʻokō. Ua mākaukau ka mana hou o ka waihona, ho'āʻo - maikaʻi nā mea a pau, hana nā mea a pau.

He emi ko Entity Framework Core - ma lalo o nā ukana kaumaha kūkulu i nā nīnau SQL suboptimal, a he mea nui ka huki ʻana i ka waihona. Akā no ka loaʻa ʻole o kā mākou lawelawe haʻahaʻa kiʻekiʻe, ʻaʻole mākou helu i ka ukana i nā haneli o RPS, ua ʻae mākou i kēia mau pilikia a hāʻawi i ka pilikia iā mākou e hiki mai ana.

Плюсы

Hui Pūʻulu Core hana ma waho o ka pahu a maʻalahi ka hoʻomohala ʻana, a me Flyway Hoʻohui maʻalahi i ka CI i loaʻa. Akā hana mākou i mea maʻalahi no nā mea hoʻomohala :)

Kaʻina hana ʻōwili

ʻIke ʻo Puppet e hiki mai ana ka hoʻololi ʻana i ka mana pūʻolo, me ka mea nāna ke kuleana no ka neʻe ʻana. ʻO ka mea mua, hoʻokomo ia i kahi pūʻolo i loaʻa nā palapala neʻe a me nā hana pili i ka waihona. Ma hope o kēia, hoʻomaka hou ka noi e hana pū me ka waihona. ʻO ka mea e hiki mai ana ka hoʻokomo ʻana i nā ʻāpana i koe. ʻO ke ʻano o ka hoʻokomo ʻia ʻana o nā pūʻolo a hoʻomaka ʻia nā noi i wehewehe ʻia ma ka hōʻike Puppet.

Hoʻohana nā noi i nā ʻikepili koʻikoʻi, e like me nā hōʻailona, ​​nā ʻōlelo huna waihona, ua huki ʻia kēia mau mea a pau i loko o ka config mai Puppet master, kahi e mālama ʻia ai lākou ma ke ʻano i hoʻopili ʻia.

Nā pilikia TFS

Ma hope o ko mākou hoʻoholo ʻana a ʻike i ka hana maoli ʻana o nā mea āpau no mākou, ua hoʻoholo wau e nānā i nā mea e hana nei me nā ʻaha ma TFS holoʻokoʻa no ka ʻoihana hoʻomohala Win ma nā papahana ʻē aʻe - inā mākou e kūkulu / hoʻokuʻu koke a ʻaʻole paha, a ʻike ʻia nā pilikia nui me ka wikiwiki .

ʻO kekahi o nā papahana nui he 12-15 mau minuke e ʻākoakoa ai - he manawa lōʻihi ia, ʻaʻole hiki iā ʻoe ke ola e like me ia. Ua hōʻike ʻia kahi loiloi wikiwiki i kahi drawdown weliweli ma I/O, a aia kēia ma nā arrays.

Ma hope o ka nānā ʻana i ka ʻāpana ma ka ʻāpana, ʻike wau i ʻekolu foci. Ka mua - "Kaspersky antivirus", nāna e nānā i nā kumu ma nā ʻelele Windows Build a pau. Ka lua - Windows Mea kuhikuhi. ʻAʻole i hoʻopau ʻia, a ua kuhikuhi ʻia nā mea āpau i ka manawa maoli ma nā mea hana Build i ka wā o ke kaʻina hana.

Ke kolu - Npm hoʻokomo. Ua ʻike ʻia ma ka hapa nui o nā Pipeline ua hoʻohana mākou i kēia ʻano kikoʻī. No ke aha ʻo ia i hewa ai? Holo ʻia ke kaʻina hana Npm i ka wā i hoʻokumu ʻia ai ka lāʻau hilinaʻi package-lock.json, kahi i hoʻopaʻa ʻia ai nā mana o nā pūʻolo e hoʻohana ʻia e kūkulu i ka papahana. ʻO ka haʻahaʻa, ʻo ka Npm install e huki i nā mana hou o nā pūʻolo mai ka Pūnaewele i kēlā me kēia manawa, a he manawa nui kēia i ka hihia o kahi papahana nui.

I kekahi manawa hoʻokolohua nā mea hoʻomohala i kahi mīkini kūloko e hoʻāʻo i ka hana ʻana o kahi ʻāpana a i ʻole ka papahana holoʻokoʻa. I kekahi manawa ua ʻike ʻia he maʻalili nā mea āpau ma ka wahi, akā ua hōʻuluʻulu lākou, ʻōwili ʻia, ʻaʻohe mea i hana. Hoʻomaka mākou e noʻonoʻo i ka pilikia - ʻae, nā ʻano like ʻole o nā pūʻolo me nā hilinaʻi.

olelo hooholo

  • Nā kumu ma nā ʻokoʻa AV.
  • Hoʻopau i ka helu ʻana.
  • E hele npm ci.

ʻO nā pōmaikaʻi o npm ci ʻo mākou ʻOhi mākou i ka lāʻau hilinaʻi i hoʻokahi manawa, a loaʻa iā mākou ka manawa kūpono e hoʻolako i ka mea hoʻomohala papa inoa o nā pūʻolo i kēia manawa, hiki iā ia ke hoʻokolohua kūloko e like me kona makemake. ʻO kēia mālama i ka manawa nā mea hoʻomohala e kākau code.

Kauoa

I kēia manawa e pili ana i ka hoʻonohonoho waihona. Ma ka mōʻaukala mākou hoʻohana Nexus no ka mālama ʻana i nā waihona, me REPO kuloko. Aia i loko o kēia waihona i nā ʻāpana āpau a mākou e hoʻohana ai no nā kumu kūloko, no ka laʻana, ka nānā ʻana iā ia iho.

.NET Core ma Linux, DevOps ma ka lio

Hoʻohana pū mākou NuGet, no ka mea, ʻoi aku ka maikaʻi o ka caching i hoʻohālikelike ʻia me nā luna hoʻokele ʻē aʻe.

hopena

Ma hope o kā mākou hoʻomaikaʻi ʻana i ka Build Agents, ua hoʻemi ʻia ka manawa hana maʻamau mai 12 mau minuke a i 7.

Inā mākou e helu i nā mīkini a pau i hiki iā mākou ke hoʻohana no Windows, akā ua hoʻololi mākou i Linux ma kēia papahana, ua mālama mākou ma kahi o $ 10. A ʻo ia wale nō ma nā laikini, a ʻoi aku inā mākou e noʻonoʻo i ka ʻike.

Hoʻolālā

No ka hapaha aʻe, ua hoʻolālā mākou e hana i ka hoʻonui ʻana i ka hoʻopuka code.

Ke hoʻololi nei i kahi kiʻi Docker prebuild. He mea ʻoluʻolu ʻo TFS me nā plugins he nui e hiki ai iā ʻoe ke hoʻohui i ka Pipeline, me ka hui pū ʻana o ka trigger, e ʻōlelo, he kiʻi Docker. Makemake mākou e hana i kēia kumu no ka mea like package-lock.json. Inā hoʻololi ke ʻano o nā ʻāpana i hoʻohana ʻia e kūkulu i ka papahana, kūkulu mākou i kahi kiʻi Docker hou. Hoʻohana ʻia ia ma hope e kau i ka ipu me ka noi i hui ʻia. ʻAʻole kēia ka hihia i kēia manawa, akā ke hoʻolālā nei mākou e hoʻololi i kahi hoʻolālā microservice ma Kubernetes, e ulu ikaika nei i kā mākou hui a ke lawelawe nei i nā hoʻonā hana no ka manawa lōʻihi.

Hōʻuluʻulu

Paipai au i nā mea a pau e hoʻolei i ka Windows, akā ʻaʻole no ka ʻike ʻole i ka kuke ʻana. ʻO ke kumu ʻo ka hapa nui o nā hoʻonā Opensource Pūʻulu Linux. maikaʻi paha ʻoe mālama i nā kumuwaiwai. I koʻu manaʻo, ʻo ka wā e hiki mai ana nā Open Source solutions ma Linux me kahi kaiāulu ikaika.

ʻO ka moʻolelo haʻiʻōlelo o Alexander Sinchinov ma GitHub.

DevOps Conf he hālāwai kūkā e pili ana i ka hoʻohui ʻana o ka hoʻomohala ʻana, ka hoʻāʻo ʻana a me nā kaʻina hana no ka poʻe ʻoihana e nā ʻoihana. ʻO ia ke kumu o ka papahana a Alexander i kamaʻilio ai? hoʻokō ʻia a hana ʻia, a ma ka lā o ka hana he ʻelua hoʻokuʻu kūleʻa. Ma ka DevOps Conf ma RIT++ Ma ka lā 27 a me 28 o Mei e nui aʻe nā hihia like mai nā kauka. Hiki iā ʻoe ke lele i ke kaʻa hope loa a waiho i ka hoike a i ʻole e lawe i kou manawa e hoʻopaʻa puke tiketi. E hui iā mākou ma Skolkovo!

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka