5 Prinċipji ta' Sens Komuni għall-Bini ta' Apps Cloud-Native

Applikazzjonijiet "cloud native" jew sempliċiment "cloud" huma maħluqa speċifikament biex jaħdmu fl-infrastrutturi tal-cloud. Dawn huma tipikament mibnija bħala sett ta 'mikroservizzi akkoppjati b'mod laxk ippakkjati f'kontenituri, li min-naħa tagħhom huma ġestiti minn pjattaforma sħaba. Dawn l-applikazzjonijiet huma ppreparati għal fallimenti b'mod awtomatiku, li jfisser li jaħdmu b'mod affidabbli u jiskalaw anke fil-każ ta' fallimenti serji fil-livell tal-infrastruttura. In-naħa l-oħra tal-munita hija s-settijiet ta’ restrizzjonijiet (kuntratti) li l-pjattaforma tal-cloud timponi fuq l-applikazzjonijiet tal-kontejners sabiex tkun tista’ timmaniġġjahom awtomatikament.

5 Prinċipji ta' Sens Komuni għall-Bini ta' Apps Cloud-Native

Filwaqt li huma kompletament konxji tal-ħtieġa u l-importanza li nimxu għal applikazzjonijiet ibbażati fuq il-cloud, ħafna organizzazzjonijiet għadhom ma jafux minn fejn jibdew. F'din il-kariga, se nħarsu lejn għadd ta' prinċipji li, jekk jiġu segwiti meta jiġu żviluppati applikazzjonijiet fil-kontejners, jippermettulek tirrealizza l-potenzjal tal-pjattaformi tal-cloud u tikseb tħaddim affidabbli u skalar tal-applikazzjonijiet anke f'każ ta' fallimenti serji fl-infrastruttura tal-IT. livell. L-għan aħħari tal-prinċipji deskritti hawn huwa li titgħallem kif tibni applikazzjonijiet li jistgħu jiġu ġestiti awtomatikament minn pjattaformi cloud bħal Kubernetes.

Prinċipji tad-Disinn tas-Softwer

Fid-dinja tal-ipprogrammar, il-prinċipji jirreferu għal regoli pjuttost ġenerali li jridu jiġu segwiti meta jiġi żviluppat softwer. Jistgħu jintużaw meta jaħdmu ma 'kwalunkwe lingwa ta' programmar. Kull prinċipju għandu l-għanijiet tiegħu, l-għodod għall-kisba li normalment huma mudelli u prattiki. Hemm ukoll numru ta 'prinċipji fundamentali għall-ħolqien ta' softwer ta 'kwalità għolja, li minnhom joħorġu l-oħrajn kollha. Hawn huma xi eżempji ta’ prinċipji fundamentali:

  • KISS (Żommha sempliċi, stupid) - tikkomplikahiex;
  • DRY (Trepetix lilek innifsek) - tirrepetix lilek innifsek;
  • YAGNI (M'intix ser ikollok bżonnha) - toħloqx xi ħaġa li mhix meħtieġa immedjatament;
  • SoC Separazzjoni ta' tħassib – taqsam ir-responsabbiltajiet.

Kif tistgħu taraw, dawn il-prinċipji ma jistabbilixxu l-ebda regoli speċifiċi, iżda jappartjenu għall-kategorija tal-hekk imsejħa kunsiderazzjonijiet tas-sens komun ibbażati fuq esperjenza prattika, li huma kondiviżi minn ħafna żviluppaturi u li għalihom jirreferu regolarment.
Barra minn hekk, hemm SOLIDU – Sett ta' l-ewwel ħames prinċipji ta' programmazzjoni u disinn orjentati lejn l-oġġetti, ifformulati minn Robert Martin. SOLID jinkludi prinċipji wesgħin, miftuħa u komplementari li—meta jiġu applikati flimkien—jgħinu biex jinħolqu sistemi ta’ softwer aħjar u jinżammu aħjar fuq medda twila ta’ żmien.

Il-prinċipji SOLID jappartjenu għall-qasam tal-OOP u huma fformulati fil-lingwa ta 'kunċetti u kunċetti bħal klassijiet, interfaces u wirt. B'analoġija, il-prinċipji ta 'żvilupp jistgħu wkoll jiġu fformulati għal applikazzjonijiet ta' sħab, l-element bażiku biss hawnhekk mhux se jkun klassi, iżda kontenitur. Billi ssegwi dawn il-prinċipji, tista 'toħloq applikazzjonijiet f'kontejners li jilħqu aħjar l-għanijiet u l-għanijiet ta' pjattaformi cloud bħal Kubernetes.

Kontenituri cloud-native: l-approċċ Red Hat

Illum, kważi kull applikazzjoni tista 'tiġi ppakkjata relattivament faċilment f'kontenituri. Iżda biex l-applikazzjonijiet ikunu awtomatizzati u orkestrati b'mod effettiv fi ħdan pjattaforma cloud bħal Kubernetes, jeħtieġ sforz addizzjonali.
Il-bażi għall-ideat deskritti hawn taħt kienet il-metodoloġija L-App tat-Tnax-il Fatturi u ħafna xogħlijiet oħra fuq diversi aspetti tal-bini ta' applikazzjonijiet tal-web, mill-ġestjoni tal-kodiċi tas-sors għal mudelli ta' skalar. Il-prinċipji deskritti japplikaw biss għall-iżvilupp ta' applikazzjonijiet f'kontejners li huma mibnija fuq mikroservizzi u ddisinjati għal pjattaformi cloud bħal Kubernetes. L-element bażiku fid-diskussjoni tagħna huwa l-immaġni tal-kontenitur, u r-runtime tal-kontenitur fil-mira hija l-pjattaforma tal-orkestrazzjoni tal-kontenitur. L-għan tal-prinċipji proposti huwa li jinħolqu kontenituri li għalihom l-iskedar, l-iskala, u l-kompiti ta 'monitoraġġ jistgħu jiġu awtomatizzati fuq il-biċċa l-kbira tal-pjattaformi tal-orkestrazzjoni. Il-prinċipji huma ppreżentati fl-ebda ordni partikolari.

Prinċipju ta' Tħassib Uniku (SCP)

Dan il-prinċipju huwa f'ħafna modi simili għall-Prinċipju ta' Responsabbiltà Unika. SRP), li huwa parti mis-sett SOLID u jiddikjara li kull oġġett għandu jkollu responsabbiltà waħda, u dik ir-responsabbiltà għandha tkun kompletament inkapsulata fi klassi. Il-punt tal-SRP huwa li kull responsabbiltà hija raġuni għall-bidla, u klassi għandu jkollha raġuni waħda u waħda biss għall-bidla.

Fl-SCP, nużaw il-kelma "tħassib" minflok il-kelma "responsabbiltà" biex nindikaw il-livell ogħla ta 'estrazzjoni u l-iskop usa' ta 'kontenitur meta mqabbel ma' klassi OOP. U jekk l-għan ta 'SRP huwa li jkun hemm raġuni waħda biss għall-bidla, allura wara SCP hemm ix-xewqa li tespandi l-abbiltà li jerġgħu jintużaw u jissostitwixxu l-kontenituri. Billi ssegwi l-SRP u toħloq kontenitur li jsolvi problema waħda u jagħmel dan b'mod funzjonalment komplut, iżżid iċ-ċansijiet li terġa 'tuża dik l-immaġni tal-kontenitur f'kuntesti ta' applikazzjoni differenti.

Il-prinċipju SCP jgħid li kull kontenitur għandu jsolvi problema waħda u jagħmel dan tajjeb. Barra minn hekk, SCP fid-dinja tal-kontejners huwa aktar faċli biex jinkiseb minn SRP fid-dinja OOP, peress li l-kontenituri normalment imexxu proċess wieħed, u ħafna mill-ħin dan il-proċess isolvi kompitu wieħed.

Jekk mikroservizz tal-kontejner irid isolvi diversi problemi f'daqqa, allura jista 'jinqasam f'kontenituri ta' kompitu wieħed u kkombinat fi ħdan pod wieħed (unità ta 'skjerament ta' pjattaforma tal-kontejners) bl-użu ta 'sidecar u mudelli ta' kontenitur init. Barra minn hekk, SCP jagħmilha faċli li tissostitwixxi kontenitur antik (bħal server tal-web jew sensar tal-messaġġi) b'wieħed ġdid li jsolvi l-istess problema iżda espandiet il-funzjonalità jew tiskala aħjar.

5 Prinċipji ta' Sens Komuni għall-Bini ta' Apps Cloud-Native

Prinċipju ta' Osservabbiltà Għolja (HOP)

Meta l-kontenituri jintużaw bħala mod unifikat biex jippakkjaw u jmexxu l-applikazzjonijiet, l-applikazzjonijiet infushom jiġu ttrattati bħala kaxxa sewda. Madankollu, jekk dawn huma kontenituri sħaba, allura għandhom jipprovdu APIs speċjali lir-runtime biex jimmonitorjaw is-saħħa tal-kontenituri u, jekk meħtieġ, jieħdu azzjoni xierqa. Mingħajr dan, mhux se jkun possibbli li tiġi unifikata l-awtomazzjoni tal-aġġornament tal-kontenituri u l-ġestjoni taċ-ċiklu tal-ħajja tagħhom, li, min-naħa tiegħu, se jaggravaw l-istabbiltà u l-użabilità tas-sistema tas-softwer.

5 Prinċipji ta' Sens Komuni għall-Bini ta' Apps Cloud-Native
Fil-prattika, applikazzjoni fil-kontejners għandu, għall-inqas, ikollha API għal diversi tipi ta’ kontrolli tas-saħħa: testijiet tal-ħajja u testijiet ta’ prontezza. Jekk applikazzjoni ssostni li tagħmel aktar, trid tipprovdi mezzi oħra ta' monitoraġġ tal-istat tagħha. Pereżempju, illoggjar ta' avvenimenti importanti permezz ta' STDERR u STDOUT għall-aggregazzjoni ta' log bl-użu ta' Fluentd, Logstash u għodod oħra simili. Kif ukoll integrazzjoni mal-libreriji tal-ġbir tat-traċċar u tal-metriċi, bħal OpenTracing, Prometheus, eċċ.

B'mod ġenerali, l-applikazzjoni xorta tista 'tiġi ttrattata bħala kaxxa sewda, iżda għandha tiġi pprovduta bl-APIs kollha li l-pjattaforma teħtieġ sabiex timmonitorjaha u timmaniġġjaha bl-aħjar mod possibbli.

Prinċipju ta' Konformità taċ-ċiklu tal-ħajja (LCP)

LCP hija l-antiteżi tal-HOP. Filwaqt li l-HOP jiddikjara li l-kontenitur għandu jesponi l-APIs tal-qari għall-pjattaforma, LCP jeħtieġ li l-applikazzjoni tkun tista 'taċċetta informazzjoni mill-pjattaforma. Barra minn hekk, il-kontenitur għandu mhux biss jirċievi avvenimenti, iżda wkoll jadatta, fi kliem ieħor, jirreaġixxi għalihom. Għalhekk l-isem tal-prinċipju, li jista 'jitqies bħala rekwiżit biex tipprovdi lill-pjattaforma bil-kitba APIs.

5 Prinċipji ta' Sens Komuni għall-Bini ta' Apps Cloud-Native
Il-pjattaformi għandhom tipi differenti ta’ avvenimenti biex jgħinu fil-ġestjoni taċ-ċiklu tal-ħajja ta’ kontenitur. Iżda huwa f'idejn l-applikazzjoni nnifisha li tiddeċiedi liema minnhom tipperċepixxi u kif tirreaġixxi.

Huwa ċar li xi avvenimenti huma aktar importanti minn oħrajn. Pereżempju, jekk applikazzjoni ma tittollerax il-ħabtiet sew, trid taċċetta messaġġi ta' sinjal: ittemm (SIGTERM) u tibda r-rutina ta' terminazzjoni tagħha kemm jista' jkun malajr biex taqbad is-sinjal: joqtol (SIGKILL) li jiġi wara SIGTERM.

Barra minn hekk, avvenimenti bħal PostStart u PreStop jistgħu jkunu importanti għaċ-ċiklu tal-ħajja ta’ applikazzjoni. Pereżempju, wara t-tnedija ta' applikazzjoni, jista' jkun jeħtieġ xi żmien ta' tisħin qabel ma tkun tista' tirrispondi għat-talbiet. Jew l-applikazzjoni trid tirrilaxxa riżorsi b'xi mod speċjali meta tagħlaq.

Il-Prinċipju tal-Immutabilità tal-Immaġni (IIP)

Huwa ġeneralment aċċettat li l-applikazzjonijiet fil-kontejners għandhom jibqgħu mhux mibdula wara li jinbnew, anke jekk jitħaddmu f'ambjenti differenti. Dan jeħtieġ il-ħtieġa li tiġi esternalizzata l-ħażna tad-dejta waqt ir-runtime (fi kliem ieħor, li tuża għodod esterni għal dan) u li tistrieħ fuq konfigurazzjonijiet esterni, speċifiċi għar-runtime, aktar milli timmodifika jew toħloq kontenituri uniċi għal kull ambjent. Wara kwalunkwe tibdil fl-applikazzjoni, l-immaġni tal-kontenitur għandha tinbena mill-ġdid u tiġi skjerata fl-ambjenti kollha użati. Mill-mod, meta jiġu mmaniġġjati s-sistemi tal-IT, jintuża prinċipju simili, magħruf bħala l-prinċipju tal-immutabilità tas-servers u l-infrastruttura.

L-għan tal-IIP huwa li jipprevjeni l-ħolqien ta 'immaġini ta' kontenitur separati għal ambjenti ta 'runtime differenti u li tuża l-istess immaġni kullimkien flimkien mal-konfigurazzjoni xierqa speċifika għall-ambjent. Is-segwitu ta' dan il-prinċipju jippermettilek li timplimenta prattiki importanti bħal dawn mil-lat tal-awtomazzjoni tas-sistemi tal-cloud bħal roll-back u roll-forward tal-aġġornamenti tal-applikazzjoni.

5 Prinċipji ta' Sens Komuni għall-Bini ta' Apps Cloud-Native

Prinċipju tad-Disponibbiltà tal-Proċess (PDP)

Waħda mill-aktar karatteristiċi importanti ta 'kontenitur hija l-effimeralità tiegħu: eżempju ta' kontenitur huwa faċli biex tinħoloq u faċli biex tinqered, u għalhekk tista 'tiġi sostitwita faċilment b'istanza oħra fi kwalunkwe ħin. Jista 'jkun hemm ħafna raġunijiet għal tali sostituzzjoni: falliment ta' test ta 'servizz, skalar tal-applikazzjoni, trasferiment għal host ieħor, eżawriment tar-riżorsi tal-pjattaforma, jew sitwazzjonijiet oħra.

5 Prinċipji ta' Sens Komuni għall-Bini ta' Apps Cloud-Native
Bħala konsegwenza, l-applikazzjonijiet fil-kontejners iridu jżommu l-istat tagħhom billi jużaw xi mezzi esterni, jew jużaw skemi distribwiti interni b'redundancy għal dan. Barra minn hekk, l-applikazzjoni trid tibda malajr u tintefa malajr, u tkun ippreparata għal falliment fatali f'daqqa tal-hardware.

Prattika waħda li tgħin biex timplimenta dan il-prinċipju hija li l-kontenituri jinżammu żgħar. L-ambjenti tas-sħab jistgħu awtomatikament jagħżlu ospitanti biex imexxu istanza ta' kontenitur fuqha, għalhekk iktar ma jkun żgħir il-kontenitur, iktar ikun malajr jibda—jiġi kkupjat aktar malajr lill-ospitant fil-mira fuq in-netwerk.

Prinċipju ta' Awtokonteniment (S-CP)

Skont dan il-prinċipju, fl-istadju tal-assemblaġġ, il-komponenti kollha meħtieġa huma inklużi fil-kontenitur. Il-kontenitur għandu jinbena fuq is-suppożizzjoni li s-sistema għandha biss għadma Linux pura, għalhekk il-libreriji addizzjonali kollha meħtieġa għandhom jitqiegħdu fil-kontenitur innifsu. Għandu jkun fih ukoll affarijiet bħall-runtime għal-lingwa ta 'programmar korrispondenti, il-pjattaforma tal-applikazzjoni (jekk meħtieġ), u dipendenzi oħra li jkunu meħtieġa waqt li tkun qed taħdem l-applikazzjoni tal-kontenitur.

5 Prinċipji ta' Sens Komuni għall-Bini ta' Apps Cloud-Native

Isiru eċċezzjonijiet għal konfigurazzjonijiet li jvarjaw minn ambjent għal ambjent u jridu jiġu pprovduti waqt ir-runtime, pereżempju permezz ta' Kubernetes ConfigMap.

Applikazzjoni tista' tinkludi diversi komponenti fil-kontejners, pereżempju, kontenitur DBMS separat f'applikazzjoni tal-web fil-kontejners. Skont il-prinċipju S-CP, dawn il-kontenituri m'għandhomx jingħaqdu f'wieħed, iżda għandhom isiru sabiex il-kontenitur DBMS ikun fih dak kollu meħtieġ għat-tħaddim tad-database, u l-kontenitur tal-applikazzjoni tal-web fih dak kollu meħtieġ għat-tħaddim tal-web applikazzjoni, l-istess web server . Bħala riżultat, waqt ir-runtime il-kontenitur tal-applikazzjoni tal-web se jiddependi fuq il-kontenitur DBMS u jaċċessah kif meħtieġ.

Prinċipju ta' Konfinament ta' Runtime (RCP)

Il-prinċipju S-CP jiddefinixxi kif il-kontenitur għandu jinbena u x'għandu jkun fih l-immaġini binarja. Iżda kontenitur mhuwiex biss "kaxxa sewda" li għandha karatteristika waħda biss - id-daqs tal-fajl. Matul l-eżekuzzjoni, il-kontenitur jieħu dimensjonijiet oħra: l-ammont ta 'memorja użata, ħin tas-CPU, u riżorsi oħra tas-sistema.

5 Prinċipji ta' Sens Komuni għall-Bini ta' Apps Cloud-Native
U hawn il-prinċipju tal-RCP huwa utli, li skontu l-kontenitur għandu jneħħi r-rekwiżiti tiegħu għar-riżorsi tas-sistema u jittrasferihom fuq il-pjattaforma. Bil-profili tar-riżorsi ta 'kull kontenitur (kemm CPU, memorja, netwerk, u riżorsi tad-disk teħtieġ), il-pjattaforma tista' twettaq l-aħjar skedar u awtoskala, timmaniġġja l-kapaċità tal-IT, u żżomm livelli SLA għall-kontenituri.

Minbarra li tissodisfa r-rekwiżiti tar-riżorsi tal-kontenitur, huwa importanti wkoll li l-applikazzjoni ma tmurx lil hinn mill-konfini tagħha stess. Inkella, meta jkun hemm nuqqas ta' riżorsi, il-pjattaforma hija aktar probabbli li tinkludiha fil-lista ta' applikazzjonijiet li jridu jiġu terminati jew emigrati.

Meta nitkellmu dwar li nkunu cloud-native, qed nitkellmu dwar il-mod kif naħdmu.
Hawn fuq, ifformulajna għadd ta 'prinċipji ġenerali li jistabbilixxu l-pedament metodoloġiku għall-bini ta' applikazzjonijiet ta 'kontenituri ta' kwalità għolja għal ambjenti sħab.

Innota li minbarra dawn il-prinċipji ġenerali, ser ikollok bżonn ukoll metodi u tekniki avvanzati addizzjonali biex taħdem ma 'kontenituri. Barra minn hekk, għandna ftit rakkomandazzjonijiet qosra li huma aktar speċifiċi u għandhom jiġu applikati (jew mhux applikati) skont is-sitwazzjoni:

Webinar dwar il-verżjoni l-ġdida ta’ OpenShift Container Platform – 4
11 ta’ Ġunju fis-11.00

Dak li se titgħallem:

  • Immutabbli Red Hat Enterprise Linux CoreOS
  • Malja tas-servizz OpenShift
  • Qafas tal-operatur
  • Qafas knative

Sors: www.habr.com

Żid kumment