5 Cov Ntsiab Lus Tseem Ceeb rau Tsim Huab-Native Apps

"Huab haiv neeg" lossis tsuas yog "huab" cov ntawv thov raug tsim tshwj xeeb los ua haujlwm hauv huab vaj tsev. Lawv feem ntau ua tau raws li cov txheej txheem ntawm kev sib txuas ntawm cov microservices uas tau ntim rau hauv cov thawv, uas nyob rau hauv lem yog tswj los ntawm huab platform. Cov ntawv thov no tau npaj rau kev ua tsis tiav los ntawm lub neej ntawd, uas txhais tau hais tias lawv ua haujlwm ntseeg tau thiab ntsuas txawm tias muaj kev cuam tshuam loj hauv kev ua haujlwm tsis zoo. Lwm sab ntawm lub npib yog cov teeb tsa ntawm kev txwv (cov ntawv cog lus) uas cov huab platform tsim rau cov ntawv thov ntim kom muaj peev xwm tswj tau lawv.

5 Cov Ntsiab Lus Tseem Ceeb rau Tsim Huab-Native Apps

Thaum paub meej txog qhov xav tau thiab qhov tseem ceeb ntawm kev txav mus rau cov ntawv thov huab cua, ntau lub koom haum tseem tsis paub yuav pib qhov twg. Hauv cov ntawv tshaj tawm no, peb yuav saib ntau lub hauv paus ntsiab lus uas, yog tias ua raws li thaum tsim cov ntawv thov ntim khoom, yuav tso cai rau koj kom paub txog lub peev xwm ntawm huab platforms thiab ua tiav kev ua haujlwm txhim khu kev qha thiab ntsuas cov ntawv thov txawm tias muaj teeb meem loj ntawm IT infrastructure. qib. Lub hom phiaj tseem ceeb ntawm cov hauv paus ntsiab lus tau teev tseg ntawm no yog kawm paub tsim cov ntawv thov uas tuaj yeem tswj tau los ntawm huab platforms xws li Kubernetes.

Software Design Principles

Hauv lub ntiaj teb programming, cov ntsiab cai hais txog cov kev cai dav dav uas yuav tsum tau ua raws li thaum tsim software. Lawv tuaj yeem siv tau thaum ua haujlwm nrog txhua hom lus programming. Txhua lub hauv paus ntsiab lus muaj nws lub hom phiaj, cov cuab yeej rau kev ua tiav uas feem ntau yog cov qauv thiab kev coj ua. Kuj tseem muaj ntau lub hauv paus ntsiab lus los tsim cov software zoo, los ntawm txhua tus neeg ntws. Nov yog qee qhov piv txwv ntawm cov hauv paus ntsiab lus:

  • hnia (Ua kom yooj yim, ruam) - tsis txhob ua rau nws nyuaj;
  • QHUAV (Tsis txhob rov ua koj tus kheej) - tsis txhob rov ua koj tus kheej;
  • YAGNI (Koj yuav tsis xav tau nws) - tsis txhob tsim ib yam dab tsi uas tsis xav tau tam sim ntawd;
  • SoC Kev sib cais ntawm kev txhawj xeeb – qhia lub luag haujlwm.

Raws li koj tuaj yeem pom, cov ntsiab cai no tsis tau teeb tsa ib qho kev cai tshwj xeeb, tab sis yog nyob rau hauv qeb ntawm qhov kev txiav txim siab zoo raws li kev ua tau zoo, uas tau qhia los ntawm ntau tus neeg tsim khoom thiab cov uas lawv niaj hnub xa mus.
Ntxiv rau, muaj KHOOM NO - Cov txheej txheem ntawm thawj tsib lub hauv paus ntsiab lus ntawm cov phiaj xwm taw qhia thiab tsim qauv, tsim los ntawm Robert Martin. SOLID suav nrog cov ntsiab lus dav dav, qhib-kawg, ntxiv cov hauv paus ntsiab lus uas-thaum siv ua ke-pab tsim cov software zoo dua thiab tswj lawv zoo dua rau lub sijhawm ntev.

Cov ntsiab lus SOLID yog nyob rau hauv OOP teb thiab tau tsim los ntawm cov lus ntawm cov ntsiab lus thiab cov ntsiab lus xws li cov chav kawm, kev sib tshuam thiab kev qub txeeg qub teg. Los ntawm kev sib piv, cov qauv kev txhim kho kuj tuaj yeem tsim rau cov ntawv thov huab, tsuas yog cov ntsiab lus tseem ceeb ntawm no yuav tsis yog chav kawm, tab sis lub thawv. Los ntawm kev ua raws li cov hauv paus ntsiab lus no, koj tuaj yeem tsim cov ntawv ntim khoom uas ua tau raws li cov hom phiaj thiab cov hom phiaj ntawm huab platforms xws li Kubernetes.

Huab-native ntim: Red Hat mus kom ze

Niaj hnub no, yuav luag txhua daim ntawv thov tuaj yeem ntim tau yooj yim rau hauv ntim. Tab sis rau cov ntawv thov kom ua tau zoo automated thiab orchestrated hauv huab platform zoo li Kubernetes, yuav tsum tau siv zog ntxiv.
Lub hauv paus rau cov tswv yim piav qhia hauv qab no yog cov txheej txheem Kaum ob-Factor App thiab ntau lwm yam ua haujlwm ntawm ntau yam ntawm kev tsim lub vev xaib, los ntawm kev tswj hwm qhov chaws mus rau cov qauv ntsuas. Cov hauv paus ntsiab lus tau piav qhia tsuas yog siv rau kev txhim kho cov ntawv thov ntim khoom uas tau tsim los ntawm microservices thiab tsim rau huab platforms xws li Kubernetes. Cov ntsiab lus tseem ceeb hauv peb qhov kev sib tham yog lub thawv duab, thiab lub hom phiaj lub thawv runtime yog lub thawv orchestration platform. Lub hom phiaj ntawm cov ntsiab cai uas tau hais tseg yog los tsim cov thawv rau kev teem sijhawm, ntsuas, thiab saib xyuas cov haujlwm tuaj yeem ua haujlwm ntawm ntau lub platform orchestration. Cov ntsiab cai raug nthuav tawm tsis muaj kev txiav txim tshwj xeeb.

Txoj Cai Kev Ntseeg Ib Leeg (SCP)

Lub hauv paus ntsiab lus no muaj ntau txoj hauv kev zoo ib yam li Txoj Cai Tswjfwm Ib Leeg. SRP), uas yog ib feem ntawm SOLID teeb thiab hais tias txhua yam khoom yuav tsum muaj ib lub luag haujlwm, thiab lub luag haujlwm ntawd yuav tsum tau muab tso rau hauv ib chav kawm. Lub ntsiab lus ntawm SRP yog tias txhua lub luag haujlwm yog qhov laj thawj rau kev hloov pauv, thiab chav kawm yuav tsum muaj ib qho thiab tsuas yog ib qho laj thawj rau kev hloov pauv.

Hauv SCP, peb siv lo lus "kev txhawj xeeb" tsis yog lo lus "lub luag haujlwm" los qhia txog qib siab ntawm kev paub daws teeb meem thiab lub hom phiaj dav dav ntawm lub thawv piv rau OOP chav kawm. Thiab yog tias lub hom phiaj ntawm SRP tsuas yog muaj ib qho laj thawj rau kev hloov pauv, tom qab SCP yog qhov kev xav nthuav dav kom rov siv dua thiab hloov cov ntim khoom. Los ntawm kev ua raws li SRP thiab tsim ib lub thawv uas daws tau ib qho teeb meem thiab ua nws txoj hauv kev ua kom tiav, koj yuav ua rau muaj feem ntau ntawm kev siv cov duab ntim hauv cov ntawv thov sib txawv.

SCP txoj cai hais tias txhua lub thawv yuav tsum daws ib qho teeb meem thiab ua kom zoo. Ntxiv mus, SCP nyob rau hauv lub ntiaj teb ntim khoom yog yooj yim dua rau ua tiav SRP nyob rau hauv lub ntiaj teb no OOP, txij li thaum lub ntim feem ntau khiav ib tug txheej txheem, thiab feem ntau ntawm cov txheej txheem no daws tau ib txoj hauj lwm.

Yog tias lub thawv microservice yuav tsum daws ntau yam teeb meem ib zaug, ces nws tuaj yeem muab faib ua ib lub thawv ua haujlwm thiab sib xyaw ua ke hauv ib lub plhaub (ib chav tsev ntawm lub thawv ntim khoom xa tawm) siv cov khoom siv sab hauv thiab cov thawv ntim khoom. Tsis tas li ntawd, SCP ua rau nws yooj yim los hloov lub thawv qub (xws li lub vev xaib server lossis cov lus sib tham) nrog ib qho tshiab uas daws tau qhov teeb meem tib yam tab sis tau nthuav dav ua haujlwm lossis cov nplai zoo dua.

5 Cov Ntsiab Lus Tseem Ceeb rau Tsim Huab-Native Apps

Txoj Cai Saib Xyuas Siab (HOP)

Thaum cov thawv ntim tau siv los ua ib txoj hauv kev los ntim thiab khiav daim ntawv thov, cov ntawv thov lawv tus kheej raug kho raws li lub thawv dub. Txawm li cas los xij, yog tias cov no yog cov thawv ntim huab, ces lawv yuav tsum muab APIs tshwj xeeb rau lub sijhawm ua haujlwm los saib xyuas kev noj qab haus huv ntawm cov ntim khoom thiab, yog tias tsim nyog, ua kom tsim nyog. Yog tsis muaj qhov no, nws yuav tsis tuaj yeem koom ua ke lub automation ntawm kev hloov kho cov thawv thiab tswj lawv lub neej voj voog, uas, nyob rau hauv lem, yuav ua phem rau lub stability thiab usability ntawm lub software system.

5 Cov Ntsiab Lus Tseem Ceeb rau Tsim Huab-Native Apps
Hauv kev xyaum, daim ntawv thov ntim khoom yuav tsum, yam tsawg kawg, muaj API rau ntau hom kev kuaj mob: kuaj kev ua neej thiab kuaj kev npaj txhij. Yog tias daim ntawv thov thov ua ntau dua, nws yuav tsum muab lwm txoj hauv kev los saib xyuas nws lub xeev. Piv txwv li, sau cov xwm txheej tseem ceeb ntawm STDERR thiab STDOUT rau kev sib sau ua ke siv Fluentd, Logstash thiab lwm yam cuab yeej zoo sib xws. Ntxiv nrog rau kev koom ua ke nrog tracing thiab metrics sau cov tsev qiv ntawv, xws li OpenTracing, Prometheus, thiab lwm yam.

Feem ntau, daim ntawv thov tseem tuaj yeem raug kho raws li lub thawv dub, tab sis nws yuav tsum tau muab nrog txhua qhov APIs uas lub platform xav tau txhawm rau saib xyuas thiab tswj nws txoj hauv kev zoo tshaj plaws.

Life-cycle Conformance Principle (LCP)

LCP yog qhov kev tawm tsam ntawm HOP. Thaum HOP hais tias lub thawv yuav tsum nthuav tawm cov ntawv nyeem APIs rau lub platform, LCP xav kom daim ntawv thov tuaj yeem txais cov ntaub ntawv los ntawm lub platform. Ntxiv mus, lub thawv yuav tsum tsis tsuas yog tau txais cov xwm txheej, tab sis kuj hloov kho, ua lwm yam lus, hnov ​​​​mob rau lawv. Li no lub npe ntawm lub hauv paus ntsiab lus, uas tuaj yeem suav tias yog qhov yuav tsum tau muab lub platform nrog kev sau ntawv APIs.

5 Cov Ntsiab Lus Tseem Ceeb rau Tsim Huab-Native Apps
Platforms muaj ntau hom txheej xwm los pab tswj lub neej voj voog ntawm lub thawv. Tab sis nws yog nyob ntawm daim ntawv thov nws tus kheej los txiav txim siab qhov twg ntawm lawv pom thiab yuav ua li cas.

Nws pom tseeb tias qee qhov xwm txheej tseem ceeb dua lwm qhov. Piv txwv li, yog tias daim ntawv thov tsis zam kev sib tsoo zoo, nws yuav tsum lees txais cov teeb liab: txiav tawm (SIGTERM) cov lus thiab pib nws txoj kev txiav tawm sai li sai tau kom ntes tau lub teeb liab: tua (SIGKILL) uas tuaj tom qab SIGTERM.

Tsis tas li ntawd, cov xwm txheej xws li PostStart thiab PreStop tuaj yeem yog qhov tseem ceeb rau lub neej ntawm daim ntawv thov. Piv txwv li, tom qab tso ib daim ntawv thov, nws yuav xav tau qee lub sij hawm sov so ua ntej nws tuaj yeem teb tau cov lus thov. Los yog daim ntawv thov yuav tsum tso cov peev txheej hauv qee txoj kev tshwj xeeb thaum kaw.

Daim Duab Immutability Principple (IIP)

Nws feem ntau lees txais tias cov ntawv thov ntim khoom yuav tsum tsis hloov pauv tom qab tsim, txawm tias lawv tau khiav hauv qhov chaw sib txawv. Qhov no tsim nyog yuav tsum tau ua kom cov ntaub ntawv tso tawm sab nraud ntawm lub sijhawm ua haujlwm (piv txwv li, siv cov cuab yeej sab nraud rau qhov no) thiab tso siab rau sab nraud, lub sijhawm ua haujlwm tshwj xeeb, tsis yog hloov kho lossis tsim cov ntim tshwj xeeb rau txhua qhov chaw. Tom qab ib qho kev hloov pauv rau daim ntawv thov, lub thawv duab yuav tsum tau rov ua dua thiab xa mus rau txhua qhov chaw siv. Los ntawm txoj kev, thaum tswj hwm IT systems, ib txoj hauv kev zoo sib xws yog siv, hu ua lub hauv paus ntsiab lus ntawm kev hloov pauv ntawm servers thiab infrastructure.

Lub hom phiaj ntawm IIP yog los tiv thaiv kev tsim cov duab sib cais rau qhov chaw sib txawv ntawm lub sijhawm ua haujlwm thiab siv tib daim duab nyob txhua qhov chaw nrog rau qhov tsim nyog ib puag ncig-kev teeb tsa. Ua raws li lub hauv paus ntsiab lus no tso cai rau koj ua raws li cov kev coj ua tseem ceeb los ntawm qhov pom ntawm automation ntawm huab tshuab raws li yob rov qab thiab yob-rau pem hauv ntej ntawm daim ntawv thov hloov tshiab.

5 Cov Ntsiab Lus Tseem Ceeb rau Tsim Huab-Native Apps

Txheej Txheem Kev Tsis Txaus Siab (PDP)

Ib qho ntawm cov yam ntxwv tseem ceeb tshaj plaws ntawm lub thawv yog nws ephemerality: ib qho piv txwv ntawm lub thawv yog yooj yim tsim thiab yooj yim los rhuav tshem, yog li nws tuaj yeem hloov tau yooj yim nrog lwm qhov piv txwv txhua lub sijhawm. Nws tuaj yeem muaj ntau qhov laj thawj rau qhov kev hloov pauv no: tsis ua haujlwm ntawm kev ntsuas kev pabcuam, kev ntsuas ntawm daim ntawv thov, hloov mus rau lwm tus tswv tsev, kev qaug zog ntawm cov peev txheej platform, lossis lwm yam xwm txheej.

5 Cov Ntsiab Lus Tseem Ceeb rau Tsim Huab-Native Apps
Raws li qhov tshwm sim, cov ntawv thov ntim khoom yuav tsum tswj hwm lawv lub xeev siv qee cov txheej txheem sab nraud, lossis siv cov txheej txheem faib sab hauv nrog rov ua dua rau qhov no. Tsis tas li ntawd, daim ntawv thov yuav tsum pib sai sai thiab kaw sai, thiab npaj rau kev ua tsis tiav ntawm cov khoom lag luam tam sim ntawd.

Ib qho kev coj ua uas pab ua raws li txoj cai no yog khaws cov thawv me me. Huab ib puag ncig tuaj yeem xaiv tus tswv tsev los tso lub thawv ntim rau ntawm, yog li lub thawv me me, nws yuav pib sai dua - nws tsuas yog luam rau lub hom phiaj tus tswv hauv lub network sai dua.

Txoj Cai Tswj Tus Kheej (S-CP)

Raws li txoj cai no, nyob rau theem sib dhos, tag nrho cov khoom tsim nyog tau suav nrog hauv lub thawv. Lub thawv yuav tsum tau tsim los ntawm qhov kev xav tias lub kaw lus tsuas yog muaj cov ntshiab Linux kernel, yog li tag nrho cov tsev qiv ntawv tsim nyog ntxiv yuav tsum muab tso rau hauv lub thawv nws tus kheej. Nws kuj tseem yuav tsum muaj cov khoom xws li lub sijhawm ua haujlwm rau cov lus sib txuas lus, daim ntawv thov platform (yog tias tsim nyog), thiab lwm yam kev vam meej uas yuav tsum tau ua thaum lub thawv ntawv ua haujlwm.

5 Cov Ntsiab Lus Tseem Ceeb rau Tsim Huab-Native Apps

Kev zam yog tsim rau kev teeb tsa uas txawv ntawm ib puag ncig rau ib puag ncig thiab yuav tsum tau muab thaum lub sijhawm ua haujlwm, piv txwv li los ntawm Kubernetes ConfigMap.

Ib daim ntawv thov yuav suav nrog ntau lub thawv ntim khoom, piv txwv li, ib lub thawv DBMS cais hauv ib daim ntawv thov lub vev xaib. Raws li txoj cai S-CP, cov thawv ntim no yuav tsum tsis txhob muab tso rau hauv ib qho, tab sis yuav tsum tau ua kom lub thawv DBMS muaj txhua yam tsim nyog rau kev ua haujlwm ntawm cov ntaub ntawv, thiab lub vev xaib thov lub thawv muaj txhua yam tsim nyog rau kev ua haujlwm ntawm lub vev xaib. daim ntawv thov, tib lub web server. Yog li ntawd, thaum lub sijhawm khiav lub vev xaib thov lub thawv yuav nyob ntawm lub thawv DBMS thiab nkag mus rau nws raws li xav tau.

Runtime Confinement Txoj Cai (RCP)

Lub hauv paus ntsiab lus S-CP txhais li cas lub thawv yuav tsum tsim thiab cov duab binary yuav tsum muaj dab tsi. Tab sis lub thawv tsis yog "lub thawv dub" uas tsuas muaj ib tus yam ntxwv - cov ntaub ntawv loj. Thaum ua tiav, lub thawv yuav siv rau lwm qhov ntev: tus nqi ntawm lub cim xeeb siv, lub sijhawm CPU, thiab lwm yam kev pabcuam.

5 Cov Ntsiab Lus Tseem Ceeb rau Tsim Huab-Native Apps
Thiab ntawm no RCP txoj cai los ua ke, raws li lub thawv yuav tsum decapitate nws cov kev cai rau cov kev pab cuam thiab hloov lawv mus rau lub platform. Nrog rau txhua lub thawv ntim cov peev txheej (ntau npaum li cas CPU, nco, network, thiab cov khoom siv disk nws xav tau), lub platform tuaj yeem ua kom zoo rau kev teem sijhawm thiab autoscaling, tswj IT peev, thiab tswj SLA qib rau ntim.

Ntxiv nrog rau kev ua kom tau raws li cov kev xav tau ntawm cov thawv ntim khoom, nws tseem yog ib qho tseem ceeb rau daim ntawv thov kom tsis txhob hla nws tus kheej ciam teb. Tsis tas li ntawd, thaum muaj peev xwm tsis txaus, lub platform muaj feem ntau yuav suav nrog hauv cov npe ntawm cov ntawv thov uas yuav tsum tau txiav tawm lossis tsiv teb tsaws.

Thaum peb tham txog kev ua huab ua ntej, peb tab tom tham txog txoj kev peb ua haujlwm.
Saum toj no, peb tsim ib tug xov tooj ntawm cov hauv paus ntsiab lus uas tsim lub hauv paus txheej txheem rau kev tsim cov thawv ntawv zoo rau huab ib puag ncig.

Nco ntsoov tias ntxiv rau cov ntsiab cai dav dav no, koj tseem yuav xav tau cov kev tshaj lij ntxiv thiab cov txheej txheem rau kev ua haujlwm nrog cov ntim khoom. Tsis tas li ntawd, peb muaj qee cov lus qhia luv luv uas yog qhov tshwj xeeb thiab yuav tsum tau siv (lossis tsis siv) nyob ntawm qhov xwm txheej:

Webinar ntawm tus tshiab version ntawm OpenShift Thawv Platform - 4
Peb 11, 11.00:XNUMX

Koj yuav kawm dab tsi:

  • Immutable Red Hat Enterprise Linux CoreOS
  • OpenShift kev pabcuam mesh
  • Tus neeg ua haujlwm lub moj khaum
  • Knative framework

Tau qhov twg los: www.hab.com

Ntxiv ib saib