Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Umqondisi Wokusebenza kwengosi ye-Banki.ru u-Andrey Nikolsky ukhulume engqungqutheleni yangonyaka odlule I-DevOpsDays eMoscow mayelana nezinkonzo zezintandane: indlela yokuhlonza intandane kwingqalasizinda, kungani izinkonzo zezintandane zimbi, kwenziwani ngazo, nokuthi yini okufanele yenziwe uma kungasizi lutho.

Ngezansi kokusikiwe kunenguqulo yombhalo yombiko.


Sawubona ozakwethu! Igama lami ngingu-Andrey, ngihola imisebenzi e-Banki.ru.

Sinezinsizakalo ezinkulu, lezi yizinsizakalo ezinjalo ze-monolithic, kunezinsizakalo ngomqondo we-classical, futhi kukhona ezincane kakhulu. Kumagama ami omsebenzi-abalimi, ngithi uma isevisi ilula futhi incane, khona-ke incane, futhi uma ingelula kakhulu futhi incane, khona-ke iyisevisi nje.

Izinzuzo zezinsizakalo

Ngizodlula ngokushesha izinzuzo zezinsizakalo.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Okokuqala ukukala. Ungenza okuthile ngokushesha kusevisi futhi uqale ukukhiqiza. Uthole ithrafikhi, wenze insizakalo. Unethrafikhi eningi, uyenzile futhi uhlala nayo. Lena ibhonasi enhle, futhi, ngokomthetho, lapho siqala, kwakubhekwa njengento ebaluleke kakhulu kithi, kungani senza konke lokhu.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Okwesibili, ukuthuthukiswa okukodwa, lapho unamaqembu amaningana okuthuthukiswa, abathuthukisi abaningana abahlukene eqenjini ngalinye, futhi iqembu ngalinye lithuthukisa insizakalo yalo.

Ngamaqembu kukhona umehluko. Onjiniyela bahlukile. Futhi kukhona, ngokwesibonelo, abantu beqhwa. Ngaqala ukubona lokhu noMaxim Dorofeev. Kwesinye isikhathi abantu beqhwa basemaqenjini athile hhayi kwamanye. Lokhu kwenza izinsiza ezahlukene ezisetshenziswa kuyo yonke inkampani zilingane.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Bheka isithombe: lo ungumthuthukisi omuhle, unezandla ezinkulu, angenza okuningi. Inkinga enkulu ukuthi lezi zandla zivelaphi.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Izinsizakalo zenza kube lula ukusebenzisa izilimi zokuhlela ezilungele imisebenzi eyahlukene. Enye isevisi iku-Go, enye iku-Erlang, enye iku-Ruby, into ethile iku-PHP, into ethile ikuPython. Ngokuvamile, ungakwazi ukwandisa kakhulu. Kukhona ama-nuances lapha futhi.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

I-architecture egxile kusevisi ngokuyinhloko imayelana nama-devops. Okusho ukuthi, uma ungenayo i-automation, ayikho inqubo yokuthunyelwa, uma uyilungiselela mathupha, ukulungiselelwa kwakho kungashintsha kusukela kusibonelo sesevisi kuya kusibonelo, futhi kufanele uye lapho ukuze wenze okuthile, khona-ke usesihogweni.

Isibonelo, unezinsizakalo ezingu-20 futhi udinga ukuzisebenzisa ngesandla, unama-consoles angu-20, futhi ngesikhathi esifanayo ucindezela "enter" njenge-ninja. Akukuhle kakhulu.

Uma unesevisi ngemva kokuhlolwa (uma kukhona ukuhlolwa, kunjalo), futhi usadinga ukuyiqeda ngefayela ukuze isebenze ekukhiqizeni, nami nginezindaba ezimbi kuwe.

Uma uthembela ezinsizeni ezithile ze-Amazon futhi usebenza eRussia, ezinyangeni ezimbili ezedlule ububuye waba nokuthi "Yonke into ekhona iyasha, ngiyaphila, konke kuhamba kahle."

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Sisebenzisa i-Ansible ukwenza ngokuzenzakalelayo ukuthunyelwa, i-Puppet yokuhlangana, i-Bamboo ukwenza ukuthunyelwa ngokuzenzakalela, kanye ne-Confluence ukuze ngandlela thize ukuchaza konke.

Ngeke ngigxile kulokhu ngokuningiliziwe, ngoba umbiko umayelana nezinqubo zokusebenzisana, hhayi mayelana nokusetshenziswa kobuchwepheshe.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Isibonelo, sibe nezinkinga lapho i-Puppet kuseva isebenza no-Ruby 2, kodwa olunye uhlelo lokusebenza lubhalelwe i-Ruby 1.8, futhi azisebenzi ndawonye. Kukhona okungahambi kahle lapho. Futhi uma udinga ukusebenzisa izinguqulo eziningi zeRuby emshinini owodwa, ngokuvamile uqala ukuba nezinkinga.

Isibonelo, sinikeza unjiniyela ngamunye inkundla okukhona kuyo cishe yonke into esinayo, zonke izinsiza ezingathuthukiswa, ukuze abe nendawo eyedwa, akwazi ukuyiphula futhi ayakhe ngendlela athanda ngayo.

Kwenzeka ukuthi udinga iphakheji ehlanganiswe ngokukhethekile nokusekelwa kokuthile lapho. Kunzima impela. Ngilalele umbiko lapho isithombe se-Docker sinesisindo esingu-45 GB. Ku-Linux, yiqiniso, kulula, konke kuncane lapho, kodwa noma kunjalo, ngeke kube nesikhala esanele.

Nokho, kukhona ukuncika okungqubuzanayo, lapho ingxenye yephrojekthi incike kumtapo wolwazi wenguqulo eyodwa, enye ingxenye yephrojekthi incike kwenye inguqulo, futhi imitapo yolwazi ayifakwanga ndawonye nhlobo.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Sinezingosi nezinsizakalo ku-PHP 5.6, sinamahloni ngabo, kodwa yini esingayenza? Lena isayithi yethu eyodwa. Kukhona amasayithi nezinsizakalo ku-PHP 7, kunezinye zazo, asinamahloni ngazo. Futhi umthuthukisi ngamunye unesisekelo sakhe lapho abona khona ngenjabulo.

Uma ubhala enkampanini ngolimi olulodwa, imishini ebonakalayo emithathu ngonjiniyela ngamunye izwakala ijwayelekile. Uma unezilimi zokuhlela ezihlukene, isimo siba sibi kakhulu.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Unamasayithi nezinsizakalo kulokhu, kulokhu, bese kuba enye isiza ye-Go, isayithi elilodwa likaRuby, kanye namanye amaRedis eceleni. Ngenxa yalokho, konke lokhu kuphenduka insimu enkulu yokusekelwa, futhi ngaso sonke isikhathi okunye kungaphuka.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Ngakho-ke, sishintshe izinzuzo zolimi lokuhlela ngokusetshenziswa kwezinhlaka ezihlukene, njengoba izinhlaka ze-PHP zihluke kakhulu, zinamakhono ahlukene, imiphakathi ehlukene, nokusekelwa okuhlukile. Futhi ungabhala isevisi ukuze usuvele unokuthile oyilungele.

Inkonzo ngayinye ineqembu layo

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Inzuzo yethu enkulu, eye yacwebezela iminyaka eminingana, ukuthi insizakalo ngayinye ineqembu layo. Lokhu kulungele iphrojekthi enkulu, ungagcina isikhathi kumadokhumenti, abaphathi bayazi kahle iphrojekthi yabo.

Ungakwazi ukuthumela kalula imisebenzi evela kusekelo. Isibonelo, isevisi yomshwalense yephuka. Futhi ngokushesha ithimba elibhekene nomshwalense liyahamba liyokulungisa.

Izici ezintsha zidalwa ngokushesha, ngoba uma unesevisi eyodwa ye-athomu, ungakwazi ukukrufula okuthile kuyo ngokushesha.

Futhi uma uphula isevisi yakho, futhi lokhu kwenzeka nakanjani, awuzange uthinte izinsiza zabanye abantu, futhi onjiniyela abanamabhithi avela kwamanye amaqembu abezi kuwe begijima bathi: "O, ungakwenzi lokho."

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Njengoba njalo, kukhona ama-nuances. Sinamaqembu azinzile, abaphathi babethelwe isipikili eqenjini. Kukhona imibhalo ecacile, abaphathi baqaphe ngokucophelela yonke into. Ithimba ngalinye elinomphathi linezinsizakalo ezimbalwa, futhi kukhona iphuzu elithile lokufaneleka.

Uma amaqembu entanta (nathi ngezinye izikhathi sisebenzisa lokhu), kunendlela enhle ebizwa ngokuthi "imephu yenkanyezi".

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Unohlu lwezinsizakalo nabantu. Inkanyezi isho ukuthi umuntu unguchwepheshe kule nkonzo, incwadi isho ukuthi umuntu ufunda le nkonzo. Umsebenzi womuntu ukushintsha ibhukwana libe inkanyezi. Futhi uma kungekho okubhaliwe phambi kwenkonzo, izinkinga ziqala, engizokhuluma ngazo ngokuqhubekayo.

Zivela kanjani izinkonzo zezintandane?

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Inkinga yokuqala, indlela yokuqala yokuthola usizo lwezintandane kwingqalasizinda yakho ukuxosha abantu. Ingabe ukhona owake waba nezinsuku zokugcina zebhizinisi ngaphambi kokuba imisebenzi ihlolwe? Kwesinye isikhathi kuyenzeka ukuthi izikhathi ezibekiwe zincane futhi asikho isikhathi esanele sokwenza imibhalo. "Kumele sinikeze insiza ekukhiqizeni, bese siyengeza."

Uma iqembu lilincane, kuyenzeka kube nonjiniyela oyedwa obhala yonke into, abanye basemaphikweni. "Ngibhale i-architecture eyisisekelo, ake sengeze i-interfaces." Khona-ke ngesinye isikhathi umphathi, isibonelo, uyahamba. Futhi phakathi nalesi sikhathi, lapho umphathi ehambile futhi engakaqokwa omusha, abathuthukisi ngokwabo banquma ukuthi isevisi iya kuphi nokuthi kwenzekani lapho. Futhi njengoba sazi (ake sibuyele emuva kumaslayidi ambalwa), kwamanye amaqembu kukhona abantu abanekhekheba leqhwa, ngezinye izikhathi umholi weqembu leqhwa. Bese eyeka, sithole inkonzo yezintandane.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Ngaso leso sikhathi, imisebenzi evela ekusekelweni nasebhizinisini ayishabalali, igcina isilele emuva. Uma kube namaphutha ezakhiwo ngesikhathi sokuthuthukiswa kwesevisi, nawo agcina elele emuva. Isevisi iya iwohloka kancane.

Indlela yokubona intandane?

Lolu hlu luchaza kahle isimo. Obani abafunde okuthile ngengqalasizinda yabo?

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Mayelana nokusebenza okubhaliwe okubhaliwe: kukhona isevisi futhi, ngokuvamile, iyasebenza, inebhukwana elinamakhasi amabili mayelana nendlela yokusebenza ngayo, kodwa akekho owaziyo ukuthi isebenza kanjani ngaphakathi.

Noma, ngokwesibonelo, kukhona uhlobo oluthile lwesifinyezo sesixhumanisi. Isibonelo, okwamanje sinezinqamuleli ezintathu zezixhumanisi ezisetshenziselwa izinjongo ezihlukene kumasevisi ahlukene. Lena imiphumela nje.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Manje ngizoba ukapteni wezinto ezisobala. Yini okufanele yenziwe? Okokuqala, sidinga ukudlulisela isevisi komunye umphathi, elinye iqembu. Uma ukuhola kwethimba lakho kungakayeki, khona-ke kuleli elinye iqembu, lapho uqonda ukuthi inkonzo ifana nentandane, udinga ukufaka umuntu oqondayo okungenani okuthile ngayo.

Into esemqoka: kufanele ube nezinqubo zokudlulisa ezibhalwe egazini. Esimweni sethu, ngivame ukuqapha lokhu, ngoba ngidinga ukuthi konke kusebenze. Abaphathi badinga ukuthi ilethwe ngokushesha, futhi okwenzeka kuyo kamuva akusabalulekile kangako kubo.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Indlela elandelayo yokwenza intandane ithi “Sizoyenza sisebenzela ngaphandle, izoshesha, bese siyidlulisela eqenjini.” Kuyacaca ukuthi wonke umuntu unezinhlelo ezithile eqenjini, ijika. Ngokuvamile ikhasimende lebhizinisi licabanga ukuthi umthengisi uzokwenza into efanayo nomnyango wezobuchwepheshe inkampani enayo. Nakuba abagqugquzeli babo behlukene. Kukhona izixazululo eziyinqaba zobuchwepheshe kanye nezixazululo eziyinqaba ze-algorithmic ekukhipheni umsebenzi.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Ngokwesibonelo, sasinesevisi eyayine-Sphinx ezindaweni ezihlukahlukene esingalindelekile. Ngizokutshela kamuva ukuthi yini okufanele ngiyenze.

Abasebenzi bangaphandle banezinhlaka abazibhalele zona. Lena i-PHP engenalutho ene-copy-paste evela kuphrojekthi yangaphambilini, lapho ungathola khona zonke izinhlobo zezinto. Izikripthi zokuthunyelwa ziyi-drawback enkulu uma udinga ukusebenzisa ezinye izikripthi ze-Bash eziyinkimbinkimbi ukuze uguqule imigqa eminingana efayeleni, futhi lezi zikripthi zokuthunyelwa zibizwa ngeskripthi esithile sesithathu. Ngenxa yalokho, ushintsha uhlelo lokuthumela, khetha enye into, gxuma, kodwa isevisi yakho ayisebenzi. Ngoba lapho kwakudingeka ukuthi kufakwe ezinye izixhumanisi ezingu-8 phakathi kwamafolda ahlukene. Noma kwenzeka ukuthi amarekhodi ayinkulungwane ayasebenza, kodwa ayizinkulungwane eziyikhulu awasasebenzi.

Ngizoqhubeka nokuba ukapteni. Ukwamukela isevisi yangaphandle kuyinqubo eyimpoqo. Ingabe ukhona owake waba nenkonzo ephuma ngaphandle efika futhi ingamukelwa ndawo? Lokhu akudumile, yebo, njengenkonzo yezintandane, kodwa namanje.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Isevisi idinga ukuhlolwa, isevisi idinga ukubuyekezwa, amagama ayimfihlo adinga ukushintshwa. Sibe necala lapho besinikeza isevisi, kukhona iphaneli yomqondisi “uma ungena == 'admin' && password == 'admin'...”, ibhalwe khona kanye kukhodi. Sihlezi sicabange, futhi abantu babhale lokhu ngo-2018?

Ukuhlola umthamo wesitoreji nakho kuyinto edingekayo. Udinga ukubheka ukuthi kuzokwenzekani kumarekhodi ayizinkulungwane eziyikhulu, ngisho nangaphambi kokufaka le sevisi ekukhiqizeni endaweni ethile.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Akufanele kube namahloni ekuthumeleni isevisi ukuze ithuthukiswe. Uma nithi: “Ngeke siyemukele le nkonzo, sinemisebenzi engama-20, yenzeni, bese siyakwamukela,” kuyinto evamile lokhu. Unembeza wakho akufanele uphathwe kabi ngokuthi usungula umphathi noma ibhizinisi limosha imali. Ibhizinisi lizosebenzisa imali ethe xaxa.

Saba necala lapho sinquma ukukhipha iphrojekthi yokuhlola.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Ilethwe ngesikhathi, futhi lokhu kwakuwukuphela kwesimo sekhwalithi. Yingakho senza enye iphrojekthi yokuhlola, eyayingaseyena umshayeli wendiza ngempela. Lezi zinsizakalo zamukelwa, futhi ngezindlela zokuphatha zathi, nansi ikhodi yakho, nali ithimba, nangu umphathi wakho. Izinsizakalo seziqalile kakade ukwenza inzuzo. Ngesikhathi esifanayo, empeleni, baseyizintandane, akekho oqondayo ukuthi basebenza kanjani, futhi abaphathi benza konke okusemandleni abo ukuphika imisebenzi yabo.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Kukhona omunye umqondo omuhle - ukuthuthukiswa kwama-guerrilla. Uma umnyango othile, ngokuvamile umnyango wezokukhangisa, ufuna ukuhlola umbono bese uyala yonke isevisi ukuthi ikhishwe ngaphandle. Kusuke izimoto kutheleke kuyo, bavale amaphepha, basayine nenkontileka, baqale ukusebenza bathi: “Bafo, sinenkonzo lapha, isinezimoto, isilethela imali, asamukele.” Sasingathi, “Oppa, kungenzeka kanjani lokho.”

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Futhi enye indlela yokuthola inkonzo yezintandane: lapho iqembu elithile lizithola lithwele kanzima, abaphathi bathi: “Asidlulisele inkonzo yaleli qembu kwelinye iqembu, linomthwalo omncane.” Bese sizoyidlulisela eqenjini lesithathu bese sishintsha umphathi. Futhi ekugcineni sinentandane futhi.

Yini inkinga ngezintandane?

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Ubani ongazi, lena indiza yempi i-Wasa eyakhuliswa eSweden, edume ngokuthi yacwila emizuzwini emi-5 iqalile. Futhi iNkosi yaseSweden, ngendlela, ayizange ibulale muntu ngalokhu. Yakhiwa izizukulwane ezimbili zonjiniyela ababengakwazi ukwakha imikhumbi enjalo. Umphumela wemvelo.

Umkhumbi wawungase ucwile, ngendlela, ngendlela embi kakhulu, isibonelo, lapho inkosi isivele igibele kuwo endaweni ethile esiphepho. Ngakho-ke, waminza ngaso leso sikhathi, ngokusho kuka-Agile kuhle ukwehluleka kusenesikhathi.

Uma sehluleka kusenesikhathi, ngokuvamile azikho izinkinga. Isibonelo, ngesikhathi sokwamukelwa kwathunyelwa ukuze kubuyekezwe. Kodwa uma sihluleka kakade ekukhiqizeni, lapho imali itshaliwe, khona-ke kungase kube nezinkinga. Imiphumela, njengoba ibizwa kanjalo ebhizinisini.

Kungani izinsiza zezintandane ziyingozi:

  • Isevisi ingase iphule ngokuzumayo.
  • Isevisi ithatha isikhathi eside ukulungisa noma ayilungiswa nhlobo.
  • Izinkinga zokuphepha.
  • Izinkinga ngokuthuthukiswa kanye nezibuyekezo.
  • Uma isevisi ebalulekile ibhidlika, isithunzi senkampani siyalimala.

Yini okufanele uyenze ngezinkonzo zezintandane?

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Ngizophinda ukuthi ngenzeni futhi. Okokuqala, kufanele kube nemibhalo. Iminyaka engu-7 e-Banki.ru yangifundisa ukuthi abahloli akufanele bathathe izwi labathuthukisi, futhi ukusebenza akufanele kuthathe izwi lawo wonke umuntu. Kudingeka sihlole.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Okwesibili, kuyadingeka ukubhala imidwebo yokusebenzisana, ngoba kwenzeka ukuthi izinsizakalo ezingatholwanga kahle ziqukethe ukuncika okungekho muntu owathi ngakho. Isibonelo, onjiniyela bafake isevisi kukhiye wabo kwenye i-Yandex.Maps noma iDadata. Uphelelwe umkhawulo wamahhala, konke konakele, futhi awazi ukuthi kwenzekeni nhlobo. Wonke amaraki anjalo kufanele achazwe: isevisi isebenzisa idatha, i-SMS, enye into.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Okwesithathu, ukusebenza ngesikweletu sobuchwepheshe. Lapho wenza uhlobo oluthile lwezinduku noma wamukela inkonzo futhi uthi kufanele kwenziwe okuthile, kudingeka uqiniseke ukuthi uyenziwa. Ngoba khona-ke kungase kuvele ukuthi imbobo encane ayincane kakhulu, futhi uzowela kuyo.

Ngemisebenzi yezakhiwo, saba nendaba nge-Sphinx. Enye yezinkonzo isebenzise i-Sphinx ukuze ifake uhlu. Uhlu olunezinhlayiya nje, kodwa lwalukhonjwa kabusha njalo ebusuku. Yayiqoqwe kusuka ezinkombeni ezimbili: eyodwa enkulu yayikhonjiswa njalo ebusuku, futhi kwakukhona nenkomba encane eyayikhonjiswa kuyo. Nsuku zonke, ngamathuba angu-50% okuthi kuqhunyiswe amabhomu noma cha, inkomba iye yaphahlazeka ngesikhathi kubalwa, futhi izindaba zethu zayeka ukubuyekezwa ekhasini eliyinhloko. Ekuqaleni kwathatha amaminithi angu-5 ukuze inkomba iphinde ifakwe ohlwini, bese inkomba yakhula, futhi ngesikhathi esithile yaqala ukuthatha imizuzu engu-40 ukuphinda inkomba. Lapho sinqamula lokhu, saphefumula, ngoba kwakusobala ukuthi kwakuzodlula isikhathi esincane futhi inkomba yethu izophinde ikhonjiswe ngokugcwele. Lokhu kuzoba ukwehluleka kwengosi yethu, azikho izindaba amahora ayisishiyagalombili - yilokho nje, ibhizinisi limile.

Hlela ukusebenza nensizakalo yezintandane

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Eqinisweni, lokhu kunzima kakhulu ukukwenza, ngoba ama-devops amayelana nokuxhumana. Ufuna ukusebenzelana kahle nozakwenu, futhi uma ushaya osebenza nabo kanye nabaphathi bakho ngemithethonqubo, bangase babe nemizwa engqubuzanayo ngalabo bantu abenza lokhu.

Ngaphezu kwawo wonke la maphuzu, kukhona enye into ebalulekile: abantu abathile kufanele babe nomthwalo wemfanelo wenkonzo ngayinye ethile, esigabeni ngasinye esithile senqubo yokuthunyelwa. Uma bengekho abantu futhi kufanele uhehe abanye abantu ukuthi bafunde lonke lolu daba, kuba nzima.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Uma konke lokhu akusizanga, futhi inkonzo yakho yezintandane kuseyintandane, akekho ofuna ukuyithatha, ayibhalwanga imibhalo, ithimba elabizelwa kule nkonzo linqaba ukwenza lutho, kunendlela elula - ukwenza kabusha. konke .

Okusho ukuthi, uthatha izidingo zesevisi kabusha bese ubhala isevisi entsha, kangcono, endaweni engcono kakhulu, ngaphandle kwezixazululo eziyinqaba zobuchwepheshe. Futhi ufudukela kuwo ngempi.

Izinsizakalo zezintandane: uhlangothi oluphansi lwe-(micro)service architecture

Sibe nesimo lapho sithatha isevisi ku-Yii 1 futhi sabona ukuthi asikwazanga ukuyithuthukisa ngokuqhubekayo, ngoba siphelelwe onjiniyela abakwazi ukubhala kahle ku-Yii 1. Bonke onjiniyela babhala kahle ku-Symfony XNUMX. Okufanele ngikwenze? Sabela isikhathi, sabela ithimba, sabela umphathi, sabhala kabusha iphrojekthi futhi sashintsha kalula ithrafikhi kuyo.

Ngemva kwalokhu, isevisi endala ingasuswa. Lena inqubo engiyithandayo, lapho udinga ukuthatha futhi uhlanze insiza ethile ohlelweni lokuphatha ukucushwa bese udlula futhi ubone ukuthi zonke izimoto ezikhiqizwayo zikhutshaziwe, ukuze abathuthukisi bangabi nawo umkhondo osele. Indawo yokugcina ihlala ku-Git.

Yilokhu kuphela ebengifuna ukukhuluma ngakho, ngilungele ukuxoxa, isihloko sithi holivar, abaningi babhukude kuso.

Amaslayidi athi nihlanganise izilimi. Isibonelo kwakuwukushintsha usayizi wezithombe. Ingabe kuyadingeka ngempela ukuyikhawulela ngolimi olulodwa? Ngoba ukushintsha usayizi wesithombe ku-PHP, empeleni, kungenziwa e-Golang.

Eqinisweni, kuyakhethwa, njengazo zonke izenzo. Mhlawumbe, kwezinye izimo, kuyinto engathandeki. Kepha udinga ukuqonda ukuthi uma unomnyango wezobuchwepheshe enkampanini yabantu abangama-50, abangama-45 kubo bangochwepheshe be-PHP, abanye aba-3 bangama-devops azi iPython, Ansible, Puppet nokunye okunjalo, futhi munye kuphela wabo obhala kwezinye. uhlobo lolimi.abanye isevisi yokushintsha usayizi wesithombe se-Go, bese kuthi uma isihamba, ubuhlakani buhambisane nayo. Futhi ngesikhathi esifanayo, uzodinga ukubheka umthuthukisi oqondene nemakethe owazi lolu limi, ikakhulukazi uma lungavamile. Okusho ukuthi, ngokombono wenhlangano, lokhu kuyinkinga. Ngokombono we-devops, ngeke nje udinge ukuhlanganisa isethi esenziwe ngomumo yezincwadi zokudlala ozisebenzisayo ukuze ukhiphe izinsiza, kodwa kuzodingeka uzibhale futhi.

Okwamanje sakha isevisi ku-Node.js, futhi lena kuzoba nje inkundla eseduze yonjiniyela ngamunye onolimi oluhlukile. Kodwa sahlala sacabanga ukuthi umdlalo wawufanele ikhandlela. Okungukuthi, lo ngumbuzo okufanele uhlale futhi ucabange ngawo.

Uwaqapha kanjani amasevisi akho? Uwaqoqa futhi uwaqaphe kanjani amalogi?

Siqoqa amalogi ku-Elasticsearch futhi siwabeke e-Kibana, futhi kuye ngokuthi indawo yokukhiqiza noma yokuhlola, abaqoqi abahlukene bayasetshenziswa lapho. Kwenye indawo uLumberjack, kwenye indawo enye into, angikhumbuli. Futhi kusenezindawo ezithile ezinsizeni ezithile lapho sifaka i-Telegraf futhi sithwebule kwenye indawo ngokwehlukana.

Ungahlala kanjani noPuppet kanye ne-Ansible endaweni efanayo?

Eqinisweni, manje sinezindawo ezimbili, enye i-Puppet, enye i-Ansible. Sisebenzela ukuwahlanganisa. I-Ansible iwuhlaka oluhle lokusetha kokuqala, i-Puppet iwuhlaka olubi lokusetha kokuqala ngoba idinga ukusebenza ngezandla ngokuqondile endaweni yesikhulumi, futhi i-Puppet iqinisekisa ukuhlangana kokucushwa. Lokhu kusho ukuthi inkundla izigcina isesimweni sakamuva, futhi ukuze umshini owenziwe isebenze ugcinwe usesikhathini samanje, udinga ukusebenzisa izincwadi zokudlala kuwo ngaso sonke isikhathi ngefrikhwensi ethile. Yilokho umehluko.

Ukugcina kanjani ukuhambisana? Ingabe unokucupha kukho kokubili i-Ansible kanye ne-Puppet?

Lona ubuhlungu bethu obukhulu, sigcina ukuhambisana ngezandla zethu futhi sicabange ukuthi singaqhubeka kanjani nakho konke lokhu endaweni ethile manje. Kuvele ukuthi i-Puppet ikhipha amaphakheji futhi igcine ezinye izixhumanisi lapho, futhi i-Ansible, isibonelo, ikhipha ikhodi futhi ilungise ukulungiselelwa kwakamuva kohlelo lokusebenza lapho.

Isethulo sasimayelana nezinguqulo ezahlukene zeRuby. Iliphi ikhambi?

Sihlangabezane nalokhu endaweni eyodwa, futhi kufanele sikugcine emakhanda ethu ngaso sonke isikhathi. Simane sacisha ingxenye eyayisebenza ku-Ruby eyayingahambisani nezinhlelo zokusebenza futhi sayigcina ihlukene.

Ingqungquthela yalo nyaka I-DevOpsDays eMoscow izoba ngoDisemba 7 eTechnopolis. Samukela izicelo zemibiko kuze kube umhlaka-11 Novemba. Bhala nathi uma uthanda ukukhuluma.

Ukubhaliswa kwabahlanganyeli kuvuliwe, sijoyine!

Source: www.habr.com

Engeza amazwana