I roto i tenei tuhinga, ka korero ahau mo te ahuatanga o te kaupapa e mahihia ana e ahau mai i te monolith nui ki te huinga o nga ratonga miihini.
I timata te kaupapa i tona hitori i mua noa atu, i te timatanga o te tau 2000. Ko nga putanga tuatahi i tuhia ki Visual Basic 6. I te roanga o te wa, ka marama ko te whakawhanaketanga o tenei reo ka uaua ki te tautoko i nga ra kei mua, mai i te IDE a, ko te reo ake ano he ngoikore te whakawhanake. I te mutunga o nga tau 2000, i whakatauhia kia huri ki te C# tino pai ake. Ko te putanga hou i tuhia i roto i te whakarara me te whakahounga o te mea tawhito, ka piki haere te maha o nga waehere i tuhia ki .NET. Ko te backend i C# i arotahi tuatahi ki te hoahoanga ratonga, engari i te wa o te whakawhanaketanga, i whakamahia nga wharepukapuka noa me te arorau, ka whakarewahia nga ratonga i roto i te mahi kotahi. Ko te hua ko te tono i kiia e matou he "monolith ratonga."
Ko tetahi o nga painga iti o tenei huinga ko te kaha o nga ratonga ki te waea tetahi ki tetahi ma te API o waho. He maamaa nga whakaritenga mo te whakawhiti ki te ratonga tika ake, a, mo nga ra kei te heke mai, te hoahoanga microservice.
I timata ta matou mahi whakangao i te tau 2015. Kaore ano kia eke ki te ahua tino pai - he waahanga o te kaupapa nui e kore e taea te kiia he monoliths, engari kaore ano i te ahua o te microservices. Heoi, he mea nui te ahunga whakamua.
Ka korero ahau mo taua mea i roto i te tuhinga.

Tuhinga
Te hoahoanga me nga raruraru o te otinga o naianei
I te timatanga, he penei te ahua o te hoahoanga: ko te UI he tono motuhake, ko te waahanga monolithic kua tuhia ki Visual Basic 6, ko te tono .NET he huinga o nga ratonga e pa ana ki te mahi me te papaarangi tino nui.
Nga huakore o te otinga o mua
Kotahi te waahi o te kore
Kotahi tonu te waahi i rahua ai: ko te tono .NET kei te whakahaere i te mahi kotahi. Mena i rahua tetahi o nga waahanga, i rahua te tono katoa, me whakaara ano. I te mea ka whakaaunoa matou i te maha o nga tukanga mo nga kaiwhakamahi rereke, na te kore o tetahi o ratou, kaore i taea e ratou katoa te mahi mo etahi wa. A, na te hapa o te rorohiko, kare ano hoki te taapiri i awhina.
Tutira whakapai ake
Ko tenei drawback he tino whakahaere. He maha nga kaihoko a taatau tono, a kei te pirangi ratou katoa ki te whakapai wawe tonu. I mua, kaore e taea te mahi i tenei i roto i te whakarara, ka tu nga kaihoko katoa i te raina. He kino tenei tukanga mo nga pakihi na te mea me whakaatu he mea nui ta raatau mahi. A i whakapau te roopu whanaketanga ki te whakarite i tenei rarangi. He nui te wa me te whakapau kaha, a, i te mutunga kaore e taea e te hua te whakarereke tere i ta raatau i pai ai.
Te whakamahi iti rawa o nga rauemi
I te wa e manaaki ana i nga ratonga i roto i te mahi kotahi, ka kape tonu matou i te whirihoranga mai i te tūmau ki te tūmau. I hiahia matou ki te wehe wehe i nga ratonga tino utaina kia kore ai e moumou rawa nga rawa, kia ngawari ake te whakahaere i a maatau kaupapa tuku.
He uaua ki te whakatinana i nga hangarau hou
He raruraru e mohiotia ana e nga kaihanga katoa: he hiahia ki te whakauru i nga hangarau hou ki roto i te kaupapa, engari kaore he huarahi. Na te otinga monolithic nui, ko nga whakahoutanga o te whare pukapuka o naianei, kaua e whakahua i te whakawhiti ki tetahi mea hou, ka huri hei mahi kore-iti. He roa te wa ki te whakaatu ki te kaihautu o te roopu ka nui ake nga putea ka nui ake i te ngau kino.
He uaua ki te whakaputa huringa
Koinei te raru nui rawa atu - ka tukuna e matou nga whakaputanga ia rua marama.
Ko ia tukunga ka huri hei tino kino mo te peeke, ahakoa nga whakamatautau me nga mahi a nga kaihanga. I mohio te pakihi i te timatanga o te wiki karekau e mahi etahi o ana mahi. Na ka mohio nga kaihanga kei te tatari mo te wiki o nga aitua nui.
He hiahia nga tangata katoa ki te whakarereke i te ahuatanga.
Nga tumanako mai i nga ratonga miihini
Te whakaputanga o nga waahanga ina rite. Te whakaputanga o nga waahanga i te mea e reri ana ma te whakakore i te otinga me te wehe i nga tikanga rereke.
Nga roopu hua iti. He mea nui tenei na te mea he uaua te whakahaere i tetahi roopu nui e mahi ana i te monolith tawhito. I peia taua kapa ki te mahi i runga i te tikanga tino uaua, engari i hiahia ratou kia nui ake te mahi auaha me te mana motuhake. Ka taea e nga kapa iti anake te utu.
Wehenga o nga ratonga i roto i nga tukanga motuhake. Ko te mea pai, me wehe kē i roto i ngā ipu, engari he maha ngā ratonga kua tuhia ki te .NET Framework ka rere noa i raro i WindowsKei te puta mai ngā ratonga e hangai ana ki te .NET Core, engari he torutoru tonu.
Te tukungawari. Kei te pirangi matou ki te whakakotahi i nga ratonga kia rite ki ta matou e hiahia ana, kaua ki te peera e te waehere.
Te whakamahi i nga hangarau hou. He mea pai tenei ki nga kaiwhakatakoto kaupapa.
Nga take whakawhiti
Ko te tikanga, mehemea he ngawari ki te wawahi i te monolith ki nga microservices, kaore he take ki te korero mo nga huihuinga me te tuhi tuhinga. He maha nga mahanga i roto i tenei mahi, ka whakaahuahia e au nga mea nui i aukati i a maatau.
Tuatahi raru angamaheni mo te nuinga o nga monoliths: hononga arorau pakihi. Ina tuhia e matou he monolith, ka hiahia matou ki te whakamahi ano i o maatau karaehe kia kore ai e tuhia he waehere taapiri. A, no te neke ki nga ratonga miihini, ka raru tenei: he tino hono nga waehere katoa, he uaua ki te wehe i nga ratonga.
I te wa i timata ai te mahi, he nui atu i te 500 nga kaupapa me te neke atu i te 700 mano nga rarangi waehere. He otinga nui tenei. raruraru tuarua. Kaore i taea te tango noa me te wehewehe ki nga ratonga miihini.
raruraru tuatoru - Te kore o nga hanganga e tika ana. Inaa, i mahi matou ki te kape a-ringa o te waehere puna ki nga kaitoro.
Me pehea te neke mai i te monolith ki te microservices
Te tohatoha o nga ratonga moroiti
Tuatahi, i whakatau tonu matou ma matou ake ko te wehenga o nga ratonga moroiti he mahi haere tonu. I nga wa katoa e hiahiatia ana kia whakawhanakehia nga mahi pakihi i nga wa katoa. Me pehea te whakatinana i tenei mahi hangarau ko to maatau raru. Na reira, i whakarite matou mo te tukanga tukurua. Kare e mahi rereke mena he tono nui to, a kaore ano kia reri i te tuatahi kia tuhia ano.
He aha nga tikanga hei wehe i nga ratonga moroiti?
Ko te ara tuatahi — nukuhia nga waahanga o mua hei ratonga. I runga i tenei ahuatanga, i waimarie matou: kua rehitatia nga ratonga i mahi ma te whakamahi i te kawa WCF. I wehea ratou ki nga huihuinga motuhake. Ka wehea e matou i a raatau, me te taapiri i tetahi kaiwhakarewa iti ki ia hanga. I tuhia ma te whakamahi i te whare pukapuka Topshelf whakamiharo, ka taea e koe te whakahaere i te tono hei ratonga me te papatohu. He watea tenei mo te patuiro i te mea kaore he kaupapa taapiri e hiahiatia i roto i te otinga.
I honohia nga ratonga ma te arorau pakihi, i te mea i whakamahia e ratou nga huihuinga noa me te mahi tahi me te papaa raraunga noa. He uaua ki te kii i a raatau microservices i roto i to raatau ahua parakore. Heoi, ka taea e matou te whakaputa motuhake i enei ratonga, i roto i nga tikanga rereke. Na tenei i taea ai te whakaiti i o raatau awe ki a raatau ano, me te whakaiti i te raru ki te whakawhanaketanga whakarara me te waahi kotahi o te kore.
Ko te huihuinga me te kaihautu he rarangi waehere i roto i te akomanga Papatono. I hunahia e matou nga mahi me Topshelf i roto i te karaehe awhina.
namespace RBA.Services.Accounts.Host
{
internal class Program
{
private static void Main(string[] args)
{
HostRunner<Accounts>.Run("RBA.Services.Accounts.Host");
}
}
}
Ko te huarahi tuarua hei wehe i nga ratonga miihini: hangaia hei whakaoti rapanga hou. Mena i te wa ano kaore te monolith e tipu, he tino pai tenei, ko te tikanga kei te neke tatou i te huarahi tika. Hei whakaoti rapanga hou, i ngana matou ki te hanga ratonga motuhake. Mena he waahi penei, ka hangaia e matou etahi atu ratonga "canonical" e tino whakahaere ana i o raatau ake tauira raraunga, he papaarangi motuhake.
Ko matou, pera i etahi atu, i timata me nga ratonga motuhēhēnga me te whakamanatanga. He tino pai ratou mo tenei. He motuhake ratou, hei tikanga, he tauira raraunga motuhake ta ratou. Ko ratou ake kaore e mahi tahi me te monolith, ko te korero anake ki a raatau ki te whakaoti rapanga. I runga i enei ratonga, ka taea e koe te tiimata i te whakawhiti ki tetahi hoahoanga hou, te patuiro i nga hanganga kei runga i a raatau, ngana etahi huarahi e pa ana ki nga whare pukapuka whatunga, aha atu. Karekau he roopu i roto i ta maatau whakahaere kaore e taea te mahi ratonga motuhēhēnga.
Ko te huarahi tuatoru hei wehe i nga ratonga moroiti, e whakamahia ana e matou, he mea motuhake ki a matou. Koinei te tangohanga o te arorau pakihi mai i te paparanga UI. Ko ta maatau tono UI matua he papamahi, he rite ki te tuara, kua tuhia ki C #. Ka hapa nga kaihanga i ia wa, ka whakawhitia nga waahanga o te arorau ki te UI me noho ki te tuara ka whakamahia ano.
Mena ka titiro koe ki tetahi tauira tino mai i te waehere o te waahanga UI, ka kite koe ko te nuinga o tenei otinga kei roto i te tino arorau pakihi, e whai hua ana ki etahi atu tukanga, ehara i te mea mo te hanga i te puka UI anake.

Ko te tino arorau UI kei reira ko nga rarangi e rua whakamutunga. I whakawhitia e matou ki te tūmau kia taea ai te whakamahi ano, na reira ka whakaiti i te UI me te whakatutuki i te hoahoanga tika.
Tuawha, he huarahi tino nui ki te wehe i nga ratonga miihini, ka taea e koe te whakaiti i te monolith, ko te tango i nga ratonga o mua me te tukatuka. Ina tangohia e matou nga waahanga o mua, kaore nga kaiwhakawhanake e pai ki te hua, ka mutu pea te mahi pakihi mai i te hanganga o te mahi. Na roto i te refactoring, ka taea e taatau te tautoko i tetahi mahi pakihi hou na te mea kei te huri haere tonu nga whakaritenga pakihi. Ka taea e tatou te whakapai ake i te waehere puna, te tango i nga hapa e mohiotia ana, te hanga tauira raraunga pai ake. He maha nga painga ka puta.
Ko te wehe i nga ratonga mai i te tukatuka he hononga hono ki te kaupapa o te horopaki here. He ariā tenei mai i te hoahoa-a-rohe. Ko te tikanga he waahanga o te tauira rohe kei roto i nga kupu katoa o te reo kotahi te tautuhi motuhake. Whakaarohia te horopaki o te inihua me nga pire hei tauira. Kei a matou he tono monolithic, a he mea tika kia mahi tahi me te kaute i roto i te inihua. Ko te tumanako ka kitea e te kaiwhakawhanake he karaehe Kaute kei roto i tetahi atu huihuinga, tohutoro mai i te karaehe Inihua, ka whai waehere mahi. Ka whakautehia te kaupapa DRY, ka tere ake te mahi ma te whakamahi i te waehere o naianei.
Ko te mutunga, ka puta ko nga horopaki o nga kaute me nga inihua e hono ana. Ka tae mai nga whakaritenga hou, ka raru tenei hononga ki te whakawhanaketanga, ka taapiri i te uaua ki te arorau pakihi uaua. Hei whakaoti i tenei raruraru, me rapu koe i nga rohe i waenga i nga horopaki i roto i te waehere me te tango i o raatau takahi. Hei tauira, i roto i te horopaki o nga inihua, ka taea pea ko te nama 20-mati o te putea Central Bank me te ra whakatuwhera i te kaute ka ranea.
Hei wehe i enei horopaki here tetahi ki tetahi me te timata i te mahi tango microservices mai i te otinga monolithic, i whakamahia e matou he huarahi penei i te hanga API o waho i roto i te tono. Mēnā i mōhio mātou ka noho ētahi kōwae hei ratonga moroiti, ka huri i roto i te hātepe, katahi ka waea tonu matou ki te arorau no tetahi atu horopaki iti na roto i nga waea o waho. Hei tauira, ma REST, WCF ranei.
I tino whakatau matou ma matou ake e kore matou e karo i nga waehere e hiahia ana ki nga whakawhitinga tohatoha. I roto i to maatau, he ngawari noa te whai i tenei ture. I tenei wa, kare ano matou i pa ki nga ahuatanga penei i te wa e tino hiahiatia ana nga whakawhitinga toha kaha - he tino nui te ritenga whakamutunga i waenga i nga waahanga.
E hi‘opoa ana‘e i te hoê hi‘oraa taa ê. Kei a matou te kaupapa o te kaitoi - he paipa e whakahaere ana i te mauri o te "tono". Ka hangaia e ia he kaihoko, he kaute, me te kaari putea. Mena ka pai te hanga o te kiritaki me te kaute, engari ka rahua te hanga kaari, kaore te tono e uru ki te mana "angitu" ka noho tonu ki te "kaari kaore i hanga". Hei nga ra kei mua, ma te mahi papamuri e tiki ka mutu. Kua roa te punaha i roto i te ahua koretake, engari i te nuinga o te wa ka makona matou ki tenei.
Mena ka puta ake he ahuatanga e tika ana kia tiakina i nga wa katoa tetahi waahanga o nga raraunga, ka kaha ake taatau ki te whakanui ake i te ratonga kia taea ai te whakahaere i tenei i roto i te mahi kotahi.
Whakaarohia he tauira mo te tohatoha ratonga moroiti. Me pehea te noho haumaru ki te kawe mai ki te whakaputanga? I tenei tauira, he waahanga motuhake ta matou o te punaha - he waahanga utu utu, tetahi o nga waahanga waehere e hiahia ana matou ki te hanga microservice.

Tuatahi, ka hangaia e matou he microservice ma te tuhi ano i te waehere. Ka whakapai ake i etahi waahanga kaore i pai ki a maatau. Ka whakatinanahia e matou nga whakaritenga pakihi hou mai i te kaihoko. Ka taapirihia e matou ki te paihere i waenga i te UI me te tuara o te API Gateway, ka tuku waea whakamua.

I muri mai, ka tukuna e matou tenei whirihoranga ki te mahi, engari i roto i te ahua pairati. Ko te nuinga o o maatau kaiwhakamahi kei te mahi tonu me nga tukanga pakihi tawhito. Mo nga kaiwhakamahi hou, kei te hangaia e matou he putanga hou o te tono monolithic kaore i roto i tenei tukanga. Inaa, he roopu monolith me te microservice kei te mahi i te ahua o te kaiurungi.

Ma te pairati angitu, ka mohio matou he tino mahi te whirihoranga hou, ka taea e matou te tango i te monolith tawhito mai i te whārite me te waiho i te whirihoranga hou hei whakakapi i te otinga tawhito.

I te katoa, ka whakamahia e matou nga tikanga katoa mo te wehe i te waehere puna o te monolith. Ka taea e enei katoa te whakaiti i te rahi o nga waahanga o te tono me te whakamaori ki nga whare pukapuka hou, kia pai ake ai te waehere puna.
Te mahi me te patengi raraunga
Ka taea te wehewehea te papaaarangi he kino atu i te waehere puna, na te mea ehara i te mea ko te aronuinga o naianei anake, engari ko nga raraunga o mua kua kohia.
Ko ta matou putunga raraunga, pera i etahi atu, he raru nui ano - tona rahi nui. I hoahoatia tenei patengi raraunga i runga i te arorau pakihi uaua o te monolith, me nga hononga i whakaemihia i waenga i nga ripanga o nga momo horopaki rohe.
I roto i to maatau, i runga ake i nga raruraru katoa (he papaaarangi nui, he maha nga hononga, i etahi wa kaore e taea te mohio nga rohe i waenga i nga ripanga), he raruraru i puta i roto i te maha o nga kaupapa nui: ko te whakamahi i te tauira papaarangi korero. I tangohia nga raraunga mai i nga ripanga ma nga tirohanga, ma te tukurua, ka tukuna ki etahi atu punaha e hiahiatia ana tenei tukurua. Ko te mutunga mai, kaore i taea e matou te nuku nga ripanga ki tetahi aronuinga motuhake, na te mea i kaha te whakamahi.
I roto i te wehenga, ko te wehewehenga ki nga horopaki iti i roto i te waehere ka awhina i a maatau. I te nuinga o te waa ka tino pai te whakaaro me pehea e pakaru ai nga raraunga i te taumata papaa raraunga. Kei te mohio matou ko nga ripanga kei roto i tetahi horopaki rohe me tehea ki tetahi atu.
E rua nga huarahi o te ao ki te wehe i te papaaarangi: wehea nga ripanga o naianei ka wehea ki te tukatuka.
Ko te wehewehe i nga ripanga o naianei he mahi pai ki te whakamahi mena he pai te hanganga raraunga, ka tutuki nga whakaritenga pakihi, ka koa te katoa. I tenei take, ka taea e tatou te toha nga ripanga o naianei ki tetahi aronuinga motuhake.
Ko te peka me te tukatuka e hiahiatia ana i te wa kua rereke te tauira pakihi, kaore ano nga tepu e makona i a maatau.
Te wehewehe i nga ripanga o naianei. Me whakatau he aha ta tatou e wehe ai. Ki te kore tenei matauranga, kaore he mea e mahi, i konei ka awhina te wehenga o nga horopaki here i roto i te waehere. Hei tikanga, ki te mohio koe ki nga rohe o nga horopaki i roto i te waehere puna, ka marama ko nga ripanga me whakauru ki te rarangi mo te tari.
Whakaarohia kei a maatau he otinga e rua nga waahanga monolith e pahekoheko ana me te papaunga raraunga kotahi. Me whakarite kia kotahi noa te waahanga e pahekoheko ana me te wahanga o nga ripanga wehea, ka timata tetahi atu ki te mahi tahi ma te API. Hei tiimata, he nui noa te rekoata ka mahia ma te API. He tikanga tika tenei kia taea ai e tatou te korero mo te motuhake o nga ratonga miihini. Ka noho tonu nga hononga panui mena karekau he raru nui.

Ko te mahi e whai ake nei ka taea e tatou te wehe i te waahanga o te waehere e mahi ana me nga ripanga wehe, me te kore ranei o te tukatuka, ki roto i te ratonga miihini motuhake me te whakahaere i roto i te waahanga motuhake, he ipu. He ratonga motuhake tenei me te hononga ki te papaunga raraunga monolith me aua ripanga karekau e hono tika ki a ia. Ka taunekeneke tonu te monolith mo te panui me te waahanga wetekina.

I muri mai ka tangohia e matou tenei hononga, ara, ko te panui i nga raraunga mai i te tono monolithic mai i nga ripanga wehe ka tukuna ano ki te API.

I muri mai, ka tohua e matou mai i te putunga raraunga whanui nga ripanga e mahi ana te microservice hou. Ka taea e tatou te nuku i nga ripanga ki tetahi aronuinga motuhake, ki tetahi papaa raraunga tinana motuhake ranei. He hononga panui tonu kei waenga i te microservice me te papaunga raraunga monolith, engari kaore he mea hei awangawanga, i tenei whirihoranga ka taea te noho mo te wa roa.

Ko te mahi whakamutunga ko te tango katoa i nga hononga. I tenei keehi, ka hiahia pea tatou ki te heke i nga raraunga mai i te papaunga raraunga matua. I etahi wa ka hiahia matou ki te whakamahi ano i etahi raraunga, whaiaronga ranei i tukuna mai i nga punaha o waho i roto i nga papaa raraunga maha. Kei a tatou tenei i ia wa.

Te tari tukatuka. He tino rite tenei tikanga ki te tuatahi, ko te tikanga whakamuri anake. Ka tohatohahia e matou he putunga raraunga hou me tetahi ratonga miihini hou e mahi tahi ana me te monolith ma te API. Engari i te wa ano, kei te noho tonu he huinga ripanga raraunga e hiahia ana matou ki te whakakore i nga ra kei mua. Ka kore e hiahiatia e matou, kua whakakapihia e matou ki te tauira hou.

Kia whai hua tenei kaupapa, tera pea ka hiahiatia he wa whakawhiti.
I muri mai, e rua nga huarahi ka taea.
Ko te tuatahi: ka taritehia e matou nga raraunga katoa i roto i nga papaa raraunga hou me te tawhito. I tenei keehi, kei a matou te taapiri raraunga me nga raru tukutahi ka ara ake. Engari ka taea e taatau te tango i nga kaihoko rereke e rua. Ka mahi tahi me te putanga hou, ko tetahi me te mea tawhito.
Ko te tuarua: te wehewehe raraunga i runga i etahi huanga pakihi. Hei tauira, e 5 nga hua kei roto i te punaha, kei te rongoa i roto i te paataka tawhito. Ko te tuaono, i roto i te anga o te mahi pakihi hou, ka tuuhia e matou ki roto i te putunga raraunga hou. Engari e hiahia ana matou ki te API Gateway e tukutahi ana i enei raraunga me te whakaatu ki te kaihoko kei hea me te aha hei tango.
Ka mahi nga huarahi e rua, whiriwhiri i runga i te ahuatanga.
I muri i to maatau mohio kei te mahi nga mea katoa, ka taea te whakakore i te waahanga o te monolith e mahi tahi ana me nga hanganga papaarangi tawhito.

Ko te mahi whakamutunga ko te tango i nga hanganga raraunga tawhito.

Ko te whakarapopototanga, ka taea e matou te kii he raru to matou ki te paataka raraunga: he uaua ki te mahi ki a ia ka whakaritea ki te waehere puna, he uaua ake te wehe, engari ka taea me te mahi. Kua kitea e matou etahi huarahi e taea ai e koe te mahi i tenei mea ma te haumaru, engari he maamaa ake te pohehe i nga raraunga i to te waehere puna.
Te mahi me te waehere puna
Koinei te ahua o te hoahoa waehere puna i te wa i timata taatau ki te tarai i te kaupapa monolithic.

Ka taea te wehea kia toru nga papahanga. He paparanga tenei o nga waahanga whakahaere, monomai, ratonga me nga mahi takitahi. Inaa, he waahi urunga enei i roto i te otinga monolithic. Ka mau katoa ki te paparanga Common. He arorau pakihi i tohatohahia i waenga i nga ratonga me te maha o nga hononga. Ko ia ratonga me te mono i whakamahia ki te 10 neke atu ranei nga huihuinga noa, i runga i to raatau rahi me te hinengaro o nga kaihanga.
I waimarie matou, he whare pukapuka hanganga ka taea te whakamahi wehe.
I etahi wa ka puta he ahuatanga i te mea kaore etahi o nga mea noa i uru ki tenei paparanga, engari he whare pukapuka hangahanga. I whakatauhia tenei ma te whakaingoa ano.
Ko nga horopaki kua herea te tino awangawanga. E 3-4 nga horopaki i konatunatua ki te huihuinga kotahi, ka whakamahia tetahi ki tetahi i roto i nga mahi pakihi kotahi. He mea tika kia mohio ki hea ka wehewehea me te aha nga rohenga, me te aha hei mahi i muri mai me te mapi i tenei wehenga ki nga huihuinga waehere puna.
He maha nga ture i hangaia e matou mo te tukanga wehewehe waehere.
Ko te tuatahi: Kaore matou i hiahia ki te tiri i nga whakaaro pakihi i waenga i nga ratonga, nga mahi me nga taapiri. I pirangi matou kia noho motuhake te arorau pakihi i roto i nga ratonga miihini. I tetahi atu taha, ko nga microservices, ko te tikanga, ka kiia he ratonga e noho motuhake ana. Ki taku whakaaro he ahua moumou tenei huarahi, he uaua ki te whakatutuki, na te mea, hei tauira, ka honoa nga ratonga C# e te whare pukapuka paerewa tonu. Kua tuhia to maatau punaha ki te C #, kaore ano kia whakamahia etahi atu hangarau. Na reira, i whakatau matou ka taea e matou te whakamahi i nga hanga hangarau noa. Ko te mea nui kaore he waahanga o te arorau pakihi. Mēnā he takai pai koe huri noa i te ORM e whakamahia ana e koe, he tino utu nui te kape mai i tetahi ratonga ki tetahi ratonga.
Ko ta matou roopu he powhiriwhiri mo te hoahoa-a-rohe, no reira he pai te hoahoanga riki mo matou. Ko te kaupapa i roto i a maatau ratonga ehara i te paparanga urunga raraunga, engari he huihuinga me te arorau rohe, kei roto anake te arorau pakihi me te kore hononga ki te hanganga. I te wa ano, ka taea e tatou te whakamahine motuhake i te huihuinga rohe ki te whakaoti rapanga e pa ana ki nga anga.
I tenei wahanga, i tutaki matou ki te raru nui tuatahi. Me korero te ratonga ki tetahi huihuinga rohe, i pirangi matou kia motuhake te arorau, a na te kaupapa DRY i tino whakararu i a matou i konei. I hiahia nga kaiwhakawhanake ki te whakamahi ano i nga karaehe mai i nga huihuinga tata ki te karo i te taarua, na reira, i timata ano nga waahi ki te hono tahi. I tātarihia e matou nga hua ka whakatauhia pea ko te raru kei te waahi o te taputapu rokiroki waehere puna. He putunga nui ta matou kei roto nga waehere puna katoa. He tino uaua te otinga mo te kaupapa katoa ki te hanga ki runga miihini o te rohe. Na reira, i hangaia etahi otinga iti motuhake mo etahi waahanga o te kaupapa, a kaore tetahi i aukati i te taapiri i etahi huihuinga noa, rohe ranei ki a raatau me te whakamahi ano. Ko te taputapu anake kaore i whakaaetia kia mahia e matou ko te waehere arotake. Engari i etahi wa i rahua ano.
Na ka timata matou ki te neke ki tetahi tauira me nga putunga motuhake. Ko te arorau pakihi kua kore e rere mai i tetahi ratonga ki tetahi ratonga, kua tino motuhake nga rohe. Ka kaha ake te tautoko i nga horopaki here. Me pehea te whakamahi ano i nga whare pukapuka hanganga? I wehea e matou ki roto i tetahi putunga motuhake, katahi ka maka ki roto i nga kohinga Nuget, ka tukuna e matou ki te Artifactory. Ki nga huringa, ka puta aunoa te huihuinga me te whakaputanga.

I timata a maatau ratonga ki te tohutoro mo nga kohinga hanganga-a-roto kia rite ki nga waahanga o waho. Ka tango matou i nga whare pukapuka o waho mai i Nuget. Ki te mahi tahi me Artifactory, i tuuhia e matou enei kete, i whakamahia e matou e rua nga kaiwhakahaere kete. I roto i nga putunga iti, i whakamahia ano e matou a Nuget. I roto i nga putunga me nga ratonga maha, i whakamahia e matou a Paket, e whakarato ana i te riterite o te putanga i waenga i nga waahanga.

No reira, ma te mahi i runga i te waehere puna, te whakarereke paku i te hoahoanga me te wehe i nga putunga, ka motuhake ake a maatau ratonga.
Nga take hangahanga
Ko te nuinga o nga ngoikoretanga ki te heke ki nga ratonga miihini e pa ana ki nga hanganga. Ka hiahia koe ki te tuku aunoa, ka hiahia koe ki nga whare pukapuka hou hei whakahaere i nga hanganga.
Te whakauru a-ringa ki nga taiao
I te tuatahi, i whakauruhia e matou te otinga ki runga i nga taiao. Hei whakaaunoa i tenei mahi, kua hanga e matou he paipa CI/CD. I whiriwhiria e matou te tukanga tuku tonu, na te mea kaore e whakaaetia te tuku tonu mo matou mai i te tirohanga o nga mahi pakihi. Na reira, ko te tuku ki te mahi ka mahia ma te paatene, me te whakamatautau - aunoa.

Ka whakamahia e matou te Atlassian, Bitbucket mo te rokiroki puna, me te Bamboo mo te hanga. He pai ki a matou te tuhi i nga tuhinga hanga ki te Keke na te mea he rite tonu te C#. Ka tae mai nga kete kua rite ki Artifactory, ka tae aunoa a Ansible ki nga kaitoro whakamatautau, ka mutu ka taea te whakamatautau tonu.

Takitaki wehe
I tetahi wa, ko tetahi o nga whakaaro o te monolith ko te tuku rakau tiritiri. Me whai whakaaro ano maatau me aha nga raarangi takitahi kei runga i nga kōpae. Ka tuhia nga rangitaki ki nga konae tuhinga. I whakatau matou ki te whakamahi i te puranga ELK paerewa. Kaore matou i tuhi tika ki te ELK na roto i nga kaiwhakarato, engari i whakatau maatau ka whakatauhia nga raarangi tuhinga me te tuhi i te tohu tohu ki roto hei tohu tohu, me te taapiri i te ingoa ratonga kia taea ai enei raarangi te tarai.

Mā te Filebeat ka taea e mātou te kohikohi i ā mātou rangitaki mai i tūmau, kātahi ka hurihia, whakamahia a Kibana hei hanga patai i roto i te UI, me te tirotiro me pēhea te ara o te waea i waenga i ngā ratonga. He tino āwhina ngā ID Aroturuki mō tēnei.
Te whakamatautau me te patuiro i nga ratonga e pa ana
I te timatanga, kaore matou i tino mohio me pehea e taea ai e matou te patuiro i nga ratonga e whakawhanake ana matou. He ngawari nga mea katoa me te monolith, i whakahaerehia e matou i runga i te miihini o te rohe. I te tuatahi, ka ngana ratou ki te mahi pera ano me nga microservices, engari i etahi wa, kia tino whakarewahia tetahi microservice, me whakarewa e koe etahi atu, a he mea whakararu tenei. I mohio matou he mea tika ki te neke ki te tauira ka waiho noa e matou te ratonga, ratonga ranei e hiahia ana matou ki te patuiro ki te miihini o te rohe. Ko nga ratonga e toe ana ka whakamahia mai i nga kaitoro e rite ana ki te whirihoranga me te prod. I muri i te patuiro, i te wa o te whakamatautau, mo ia mahi, ko nga ratonga rereke anake ka tukuna ki te tūmau whakamatautau. No reira, ka whakamatauria te otinga i roto i te ahua ka hokona a muri ake nei.
He tūmau kei runga anake nga putanga whakaputa o nga ratonga ka whakauruhia. Ko enei tūmau e hiahiatia ana mo nga aitua, mo nga arowhai tuku i mua i te tuku, me nga whakangungu o roto.
Kua taapirihia e matou he tukanga whakamatautau aunoa ma te whakamahi i te whare pukapuka Specflow rongonui. Ko nga whakamatautau ka whakahaerehia aunoa e NUnit i te wa ka tukuna mai i Ansible. Mena he tino aunoa te kapinga mahi, kaore he take mo te whakamatautau a-ringa. Ahakoa i etahi wa ka hiahiatia etahi atu whakamatautau a-ringa. Hei whakatau kohea nga whakamatautau ka whakahaerehia mo tetahi take, ka whakamahia e matou nga tohu i Jira.
Hei taapiri, kua piki ake te hiahia mo te whakamatautau kawenga, i mua i mahia i roto i nga keehi onge. Ka whakamahia e matou a JMeter ki te whakahaere i nga whakamatautau, InfluxDB ki te penapena i a raatau, me Grafana ki te tarai i te mahi.
He aha ta tatou i tutuki?
Tuatahi, kua whakakorehia e matou te kaupapa o te "tuku". E rua marama te roa o nga tukunga kino i ngaro i te wa i tukuna ai tenei colossus ki roto i te taiao whakangao, ka pakaru nga mahi pakihi mo te wa poto. Inaianei ka tukuna e matou nga ratonga i runga i te toharite ia 1,5 ra, ka whakarōpūhia, na te mea ka mahi i muri i te whakaaetanga.
Karekau he tukinga mate i roto i ta maatau punaha. Mena ka tukuna e matou he ratonga moroiti me te bug, ka pakaru nga mahi e pa ana ki a ia, ka kore e pa ki etahi atu mahi. Ma tenei ka tino pai ake te wheako kaiwhakamahi.
Ka taea e tatou te whakahaere i te kaupapa tuku. Ka taea e koe te wehe wehe i nga roopu ratonga mai i era atu otinga, mena e tika ana.
I tua atu, kua tino whakaitihia e matou te raruraru me te nui o nga rarangi whakapai ake. He roopu hua motuhake kei a maatau e mahi takitahi ana me etahi o nga ratonga. He pai kee te tukanga Scrum ki konei. Ka taea e tetahi roopu motuhake tetahi Kaipupuri Hua motuhake hei tuku mahi ki a ia.
Whakarāpopoto
- He pai rawa nga ratonga moroiti mo te pirau i nga punaha uaua. I roto i te tukanga, ka timata tatou ki te mohio he aha kei roto i to tatou punaha, he aha nga waahi iti, kei hea o raatau rohe. Ma tenei ka taea e koe te tohatoha tika i nga whakapainga ki nga waahanga me te aukati i te whakapouri o te waehere.
- Ka whakawhiwhia e nga Microservices nga painga whakahaere. He maha nga korero e korerohia ana ko te hoahoanga anake, engari ko nga hoahoanga katoa e hiahiatia ana hei whakaoti i nga hiahia pakihi, kaua ko ia anake. Na reira, ka taea e matou te kii he pai nga ratonga miihini mo te whakaoti rapanga i roto i nga roopu iti, na te mea he tino rongonui a Scrum inaianei.
- Ko te wehenga he tukanga auau. Kaore e taea e koe te tango i tetahi tono ka wehe noa ki nga ratonga miihini. Ko te hua ka puta kaore pea e taea te mahi. I te whakanui i nga ratonga miihini, he pai ki te tuhi ano i nga taonga tuku iho, ara, ka huri hei waehere e pai ana ki a maatau me te pai ake ki te whakatutuki i nga hiahia o te pakihi mo te mahi me te tere.
He whakatupato iti: He tino nui nga utu mo te heke ki nga ratonga miihini. He roa te wa ki te whakaoti i te raruraru o te hanganga. Na, ki te mea he iti to tono karekau e hiahiatia kia tauine motuhake, mena he maha nga kaihoko e whakataetae ana mo te aro me te wa o to roopu, kare pea nga microservices e hiahia ana koe i tenei ra. He tino utu. Mena ka timata koe i te mahi ma te microservices, ka nui ake nga utu i te tuatahi ki te timata koe i te kaupapa kotahi me te whanaketanga o te monolith.
PS He korero kare ano (me te mea ki a koe ake) - na .
Anei te putanga katoa o te purongo.
Source: will.com
