5 Common Sense Misimboti yekuvaka Cloud-Native Apps

"Cloud native" kana kungoti "gore" maapplication anogadzirwa kuti ashande mumafuridziro egore. Iwo anowanzo kuvakwa seti yeakasununguka akasanganiswa mamicroservices akaiswa mumidziyo, ayo anodzorwa nepuratifomu yegore. Zvikumbiro zvakadaro zvakagadzirirwa kukundikana nekutadza, izvo zvinoreva kuti vanoshanda nekuvimbika uye kuyera kunyange muchiitiko chekutadza kwakakomba kwemazinga. Rimwe divi remari ndiyo seti yezvirambidzo (zvibvumirano) zvinoisirwa gore papuratifomu pamidziyo yekushandisa kuitira kuti ugone kuzvibata wega.

5 Common Sense Misimboti yekuvaka Cloud-Native Apps

Ndichiri kuziva zvizere kudiwa uye kukosha kwekutamira kune makore-based application, masangano mazhinji haazive pekutangira. Mune ino post, isu tichatarisa akati wandei misimboti iyo, kana ikateedzerwa paunenge uchigadzira zvikumbiro zvemidziyo, zvinokutendera iwe kuti uone kugona kwemapuratifomu egore uye uwane kushanda kwakavimbika uye kuyera kwezvishandiso kunyangwe paine kutadza kwakanyanya paIT. level. Chinangwa chekupedzisira chemisimboti yatsanangurwa pano kudzidza kugadzira maapplication anogona kungoitwa otomatiki nemapuratifomu emafu seKubernetes.

Software Design Principles

Munyika yezvirongwa, misimboti inoreva mitemo yakajairwa iyo inofanirwa kuteverwa pakugadzira software. Dzinogona kushandiswa kana uchishanda nechero mutauro wepurogiramu. Nheyo yega yega ine zvibodzwa zvayo, maturusi ekuwana ayo anowanzo ari matemplate uye maitiro. Kune zvakare akati wandei emisimboti akakosha ekugadzira emhando yepamusoro software, kubva kune mamwe ese anoyerera. Heino mimwe mienzaniso yemisimboti yakakosha:

  • KISS (Ramba zviri nyore, benzi) - usazviomesera;
  • KUOMA (Usazvidzokorora) - usazvidzokorora;
  • YAGNI (Iwe hausi kuzozvida) - usagadzire chimwe chinhu chisingadiwi nekukurumidza;
  • SoC Kuparadzaniswa kwekunetseka - kugovera mabasa.

Sezvauri kuona, aya misimboti haaisi chero yakananga mitemo, asi ndeyechikamu chezvinonzi common sense kufunga zvichibva pane inoshanda ruzivo, iyo inogovaniswa nevazhinji vanogadzira uye iyo yavanogara vachitaura.
Mukuwedzera, pane SOLID -Seti yemisimboti mishanu yekutanga yekuronga-yakatarisana nechinhu uye dhizaini, yakagadzirwa naRobert Martin. SOLID inosanganisira yakafara, yakavhurika, misimboti inopindirana iyo-kana ikashandiswa pamwechete-inobatsira kugadzira zvirinani masoftware masisitimu uye nekuachengeta zvirinani nekufamba kwenguva.

Misimboti yeSOLID ndeyemunda weOOP uye inogadzirwa mumutauro wemafungiro akadaro uye pfungwa semakirasi, mainterface uye nhaka. Nekufananidza, misimboti yekusimudzira inogona zvakare kugadzirwa kune makore ekushandisa, chete chinhu chakakosha pano hachizove kirasi, asi mudziyo. Nekutevera misimboti iyi, unogona kugadzira zvikumbiro zvemidziyo zvinozadzisa zvirinani zvinangwa uye zvinangwa zvemapuratifomu efu seKubernetes.

Cloud-native midziyo: iyo Red Hat nzira

Nhasi, chero application inogona kuiswa zviri nyore mumidziyo. Asi kuti zvikumbiro zvinyatsoita otomatiki uye kurongeka mukati megore senge Kubernetes, kumwe kuedza kunodiwa.
Hwaro hwepfungwa dzakatsanangurwa pazasi yaive nzira Iyo Gumi nembiri-Factor App uye mamwe akawanda anoshanda pane akasiyana mativi ekuvaka webhu maapplication, kubva kusource kodhi manejimendi kusvika kumamodheru ekuyera. Misimboti yakatsanangurwa inongoshanda mukuvandudzwa kwemidziyo yemidziyo yakavakirwa pamusoro pemamicroservices uye akagadzirirwa makore mapuratifomu seKubernetes. Chinhu chakakosha munhaurirano yedu mufananidzo wemidziyo, uye chinongedzo chemudziyo wekumhanya ndicho chikuva chemidziyo. Chinangwa chemisimboti yakarongwa ndechekugadzira midziyo iyo kuronga, kuyera, uye yekutarisa mabasa anogona otomatiki pamapuratifomu mazhinji e orchestration. Misimboti inoratidzwa isina kurongeka.

Single Concern Principle (SCP)

Iyi nheyo yakafanana nenzira dzakawanda neSingle Responsibility Principle. SRP), inova chikamu cheSOLID yakatarwa uye inotaura kuti chinhu chimwe nechimwe chinofanira kuva nebasa rimwe chete, uye basa iroro rinofanira kunge rakaputirwa zvakakwana mukirasi. Pfungwa yeSRP ndeyekuti mutoro wega wega chikonzero chekuchinja, uye kirasi inofanirwa kuve nechikonzero chimwe chete chekuchinja.

MuSCP, tinoshandisa izwi rekuti "kufunganya" pachinzvimbo chezwi rekuti "mutoro" kuratidza mwero wepamusoro wekubvisa uye chinangwa chakakura chemudziyo uchienzaniswa nekirasi yeOOP. Uye kana chinangwa cheSRP chiri chekuve nechikonzero chimwe chete chekuchinja, ipapo kuseri kweSCP kune chishuwo chekuwedzera kugona kushandisa zvakare uye kutsiva midziyo. Nekutevera iyo SRP uye kugadzira mudziyo unogadzirisa dambudziko rimwe chete uye uchizviita nenzira inoshanda yakakwana, iwe unowedzera mikana yekushandisa zvakare iyo mudziyo mufananidzo mumamiriro akasiyana ekushandisa.

Iyo SCP musimboti inotaura kuti mudziyo wega wega unofanirwa kugadzirisa dambudziko rimwe chete uye wozviita nemazvo. Zvakare, SCP iri munyika yemidziyo iri nyore kuwana kupfuura SRP munyika yeOOP, sezvo midziyo inowanzoita imwe chete maitiro, uye kazhinji yenguva maitiro aya anogadzirisa basa rimwe chete.

Kana mudziyo microservice uchifanira kugadzirisa matambudziko akati wandei kamwechete, saka inogona kukamurwa kuita imwechete-basa midziyo uye yakasanganiswa mukati mepodhi imwe (chikamu chemudziyo weplatform deployment) uchishandisa sidecar uye init mudziyo matemplate. Pamusoro pezvo, SCP inoita kuti zvive nyore kutsiva chigadziko chekare (senge sevhavha yewebhu kana meseji broker) neitsva inogadzirisa dambudziko rimwe chete asi yakawedzera kushanda kana zviyero zviri nani.

5 Common Sense Misimboti yekuvaka Cloud-Native Apps

High Observability Principle (HOP)

Kana midziyo ichishandiswa senzira yakabatana yekurongedza nekumhanyisa maapplication, iwo maapplication pachawo anobatwa sebhokisi dema. Nekudaro, kana aya ari midziyo yegore, saka ivo vanofanirwa kupa yakakosha APIs kune yekumhanya yekutarisa hutano hwemidziyo uye, kana zvichidikanwa, tora danho rakakodzera. Pasina izvi, hazvizogone kubatanidza otomatiki yekuvandudza midziyo uye kutonga kutenderera kwehupenyu hwavo, izvo zvinozowedzera kugadzikana uye kushandiswa kwesoftware system.

5 Common Sense Misimboti yekuvaka Cloud-Native Apps
Mukuita, mudziyo wemidziyo unofanirwa, paushoma, kuve neAPI yemhando dzakasiyana dzekutarisa hutano: bvunzo dzehupenyu uye bvunzo dzekugadzirira. Kana chikumbiro chichiti chinoita zvakawanda, chinofanira kupa dzimwe nzira dzekutarisa mamiriro acho. Semuenzaniso, kutema zviitiko zvakakosha kuburikidza neSTDERR uye STDOUT yekuunganidza log uchishandisa Fluentd, Logstash uye mamwe maturusi akafanana. Zvakare nekubatanidzwa nekutsvaga uye metrics kuunganidza maraibhurari, akadai seOpenTracing, Prometheus, nezvimwe.

Muzhinji, iyo application inogona kuramba ichibatwa sebhokisi dema, asi inofanirwa kupihwa ese maAPI anodiwa nepuratifomu kuti atarise uye aibate nenzira yakanakisa.

Hupenyu-kutenderera Conformance Principle (LCP)

LCP ndiyo inopikisa yeHOP. Nepo HOP ichitaura kuti mudziyo unofanirwa kufumura kuverenga maAPI pachikuva, LCP inoda kuti application ikwanise kugamuchira ruzivo kubva pachikuva. Uyezve, mudziyo haufanire kungogamuchira zviitiko chete, asi zvakare gadzirisa, nemamwe mazwi, kuita kwavari. Nokudaro zita renheyo, iyo inogona kutorwa sechinhu chinodiwa kuti ipe chikuva nekunyora APIs.

5 Common Sense Misimboti yekuvaka Cloud-Native Apps
Mapuratifomu ane marudzi akasiyana ezviitiko kubatsira kubata lifecycle yemudziyo. Asi zviri kumashandisirwo acho pachawo kusarudza kuti ndeupi wavo wekuona uye kuti woita sei.

Zviri pachena kuti zvimwe zviitiko zvakakosha kupfuura zvimwe. Semuyenzaniso, kana application isingatenderi kuputsika zvakanaka, inofanirwa kugamuchira chiratidzo: kumisa (SIGTERM) mameseji uye kutanga maitiro ekumisa nekukasira kubata chiratidzo: uraya (SIGKILL) inouya mushure meSIGTERM.

Pamusoro pezvo, zviitiko zvakaita sePostStart uye PreStop zvinogona kukosha kuhupenyu hwekushandisa. Semuenzaniso, mushure mekutangisa application, zvingada imwe nguva yekudziya-up isati yapindura zvikumbiro. Kana iyo application inofanirwa kuburitsa zviwanikwa neimwe nzira yakakosha kana ichidzima.

Iyo Image Immutability Principle (IIP)

Zvinowanzogamuchirwa kuti zvikumbiro zvakaiswa mumidziyo zvinofanirwa kuramba zvisina kuchinjika mushure mekuvakwa, kunyangwe kana zvichiitwa munzvimbo dzakasiyana. Izvi zvinoda kudiwa kwekunze kwekuchengetedza data panguva yekumhanya (nemamwe mazwi, kushandisa maturusi ekunze eizvi) uye kuvimba nekunze, nguva-yakananga masisitimu, pane kugadzirisa kana kugadzira midziyo yakasarudzika yenzvimbo yega yega. Mushure mekuchinja kupi kwechishandiso, mufananidzo wemidziyo unofanirwa kuvakwa patsva uye kuendeswa kunzvimbo dzese dzinoshandiswa. Nenzira, kana uchitarisira maIT masisitimu, chirevo chakafanana chinoshandiswa, chinozivikanwa semusimboti wekusachinjika kwemaseva uye zvivakwa.

Chinangwa cheIIP ndechekudzivirira kusikwa kwemifananidzo yemidziyo yakaparadzana yenzvimbo dzakasiyana dzekumhanya uye kushandisa mufananidzo wakafanana kwese kwese pamwe neakakodzera nharaunda-yakatarwa kumisikidzwa. Kutevedzera iyi musimboti kunobvumidza iwe kuita maitiro akakosha akadaro kubva pakuona kweautomation yegore masisitimu se roll-back uye roll-forward yeapplication updates.

5 Common Sense Misimboti yekuvaka Cloud-Native Apps

Process Disposability Principle (PDP)

Imwe yeanonyanya kukosha maitiro emudziyo ndeye ephemerality: chiitiko chemudziyo chiri nyore kugadzira uye chiri nyore kuparadza, saka chinogona kutsiviwa nyore neimwe chiitiko chero nguva. Panogona kuve nezvikonzero zvakawanda zvekutsiva kwakadaro: kutadza bvunzo yekushandisa, kuwedzera kwechishandiso, kuendesa kune mumwe muenzi, kuneta kwezviwanikwa zvepuratifomu, kana mamwe mamiriro.

5 Common Sense Misimboti yekuvaka Cloud-Native Apps
Nekuda kweizvozvo, zvikumbiro zvakaiswa mumidziyo zvinofanirwa kuchengetedza nyika yavo vachishandisa dzimwe nzira dzekunze, kana kushandisa zvirongwa zvemukati zvakagovaniswa zvine redundancy kune izvi. Uye zvakare, iyo application inofanirwa kutanga nekukurumidza uye kuvharika nekukurumidza, uye gadzirira kungoerekana yauraya hardware kutadza.

Imwe tsika inobatsira kuita musimboti uyu kuchengeta midziyo midiki. Cloud nharaunda dzinogona kusarudza otomatiki mugadziri kuti atange bhokisi remuenzaniso, saka iyo diki mudziyo, inokurumidza kutanga - inongokopa kune inotarirwa host pamusoro petiweki nekukurumidza.

Kuzvidzora Nheyo (S-CP)

Maererano nemusimboti uyu, padanho regungano, zvese zvinodiwa zvinosanganisirwa mumudziyo. Iyo mudziyo unofanirwa kuvakwa pafungidziro yekuti sisitimu inongove neLinux kernel yakachena, saka ese anodiwa ekuwedzera maraibhurari anofanirwa kuiswa mumudziyo wega. Inofanirawo kunge iine zvinhu zvakaita senguva yekumhanya yemutauro wechirongwa unoenderana, chikuva chekunyorera (kana zvichidikanwa), uye zvimwe zvinotsamira zvinozodiwa panguva yekushandisa application.

5 Common Sense Misimboti yekuvaka Cloud-Native Apps

Kunze kunoitirwa zvigadziriso zvinosiyana kubva nharaunda nenzvimbo uye zvinofanirwa kupihwa panguva yekumhanya, semuenzaniso kuburikidza neKubernetes ConfigMap.

Chikumbiro chinogona kusanganisira akati wandei akaiswa mumidziyo, semuenzaniso, yakaparadzana DBMS mudziyo mukati memudziyo wewebhu application. Zvinoenderana neS-CP musimboti, midziyo iyi haifanirwe kusanganiswa kuita imwe, asi inofanirwa kugadzirwa kuitira kuti mudziyo weDBMS uve nezvose zvinodiwa pakushanda kwedhatabhesi, uye mudziyo wewebhu wekushandisa une zvese zvinodiwa pakushanda kwewebhu. application, iyo yakafanana web server . Nekuda kweizvozvo, panguva yekumhanya iyo webhu application mudziyo inotsamira pane DBMS mudziyo uye uwane iyo sezvinodiwa.

Runtime Confinement Principle (RCP)

Iyo S-CP musimboti inotsanangura kuti mudziyo unofanirwa kuvakwa sei uye izvo mufananidzo bhinari unofanirwa kuve uine. Asi mudziyo haungori "bhokisi dema" rine chimiro chimwe chete - saizi yefaira. Panguva yekuurayiwa, mudziyo unotora mamwe mativi: huwandu hwendangariro hunoshandiswa, CPU nguva, uye zvimwe zviwanikwa zvehurongwa.

5 Common Sense Misimboti yekuvaka Cloud-Native Apps
Uye pano iyo RCP musimboti unouya mushe, maererano neiyo mudziyo unofanirwa kudzikamisa zvinodiwa zvehurongwa zviwanikwa uye wozviendesa kuchikuva. Iine yega yega midziyo yemaprofiles (yakawanda sei CPU, ndangariro, network, uye disk zviwanikwa zvainoda), chikuva chinogona kunyatsoita kuronga uye autoscaling, kubata IT kugona, uye kuchengetedza SLA mazinga emidziyo.

Pamusoro pekusangana nezvinodiwa zvemidziyo yemudziyo, zvakakoshawo kuti chikumbiro chisapfuura miganhu yayo. Zvikasadaro, kana kushomeka kwezvishandiso kuchiitika, chikuva chinowanzo sanganisira icho mune runyorwa rwezvikumbiro zvinoda kubviswa kana kutamiswa.

Kana tichitaura nezvekuve makore-kutanga, tiri kutaura nezve mabatiro atinoita.
Pamusoro, isu takagadzira akati wandei misimboti inoisa iyo methodological hwaro hwekuvaka emhando yepamusoro midziyo yekushandisa yemakore nharaunda.

Ziva kuti mukuwedzera kune aya akajairwa misimboti, iwe unozodawo ekuwedzera nzira uye matekiniki ekushanda nemidziyo. Uye zvakare, isu tine mashoma mashoma ekurudziro akanyanya kujeka uye anofanirwa kushandiswa (kana kusaiswa) zvichienderana nemamiriro ezvinhu:

Webinar pane iyo nyowani vhezheni yeOpenShift Container Platform - 4
June 11 na11.00

Chii chauchadzidza:

  • Isingachinji Red Hat Enterprise Linux CoreOS
  • OpenShift sevhisi mesh
  • Operator framework
  • Knative framework

Source: www.habr.com

Voeg