5 Prensip Bon Sans pou Bati Aplikasyon Cloud-Native

Aplikasyon "nwaj natif natal" oswa tou senpleman "nwaj" yo kreye espesyalman pou travay nan enfrastrikti nwaj yo. Yo tipikman bati kòm yon seri mikwosèvis ki lach makonnen pake nan resipyan, ki an vire yo jere pa yon platfòm nwaj. Aplikasyon sa yo prepare pou echèk pa default, ki vle di yo travay seryezman ak echèl menm nan evènman an nan echèk grav nan nivo enfrastrikti. Lòt bò pyès monnen an se ansanm restriksyon (kontra) ke platfòm nwaj la enpoze sou aplikasyon veso yo pou kapab jere yo otomatikman.

5 Prensip Bon Sans pou Bati Aplikasyon Cloud-Native

Pandan ke yo totalman okouran de bezwen ak enpòtans nan deplase nan aplikasyon ki baze sou nwaj, anpil òganizasyon toujou pa konnen ki kote yo kòmanse. Nan pòs sa a, nou pral gade nan yon kantite prensip ki, si yo swiv lè w ap devlope aplikasyon pou kontenè, pral pèmèt ou reyalize potansyèl la nan platfòm nwaj yo ak reyalize operasyon serye ak dechèl aplikasyon yo menm nan evènman an nan echèk grav nan enfrastrikti IT la. nivo. Objektif final la nan prensip yo dekri isit la se aprann kijan pou konstwi aplikasyon ki ka otomatikman jere pa platfòm nwaj tankou Kubernetes.

Prensip konsepsyon lojisyèl

Nan mond lan pwogramasyon, prensip yo refere a jistis jeneral règ ki dwe swiv lè w ap devlope lojisyèl. Yo ka itilize lè w ap travay ak nenpòt langaj pwogramasyon. Chak prensip gen pwòp objektif li yo, zouti pou reyalize ki se nòmalman modèl ak pratik. Genyen tou yon kantite prensip fondamantal pou kreye lojisyèl-wo kalite, ki soti nan ki tout lòt yo koule. Men kèk egzanp prensip fondamantal:

  • KISS (Kenbe li senp, estipid) - pa konplike li;
  • DRY (Pa repete tèt ou) - pa repete tèt ou;
  • YAGNI (Ou pa pral bezwen li) - pa kreye yon bagay ki pa nesesè imedyatman;
  • SoC Separasyon enkyetid - pataje responsablite yo.

Kòm ou ka wè, prensip sa yo pa mete okenn règ espesifik, men fè pati kategori sa yo rele konsiderasyon bon sans ki baze sou eksperyans pratik, ki fè yo pataje pa anpil devlopè ak yo regilyèman refere.
Anplis de sa, gen SOLID – Yon seri senk premye prensip pwogramasyon ak konsepsyon ki oryante sou objè, Robert Martin te fòme. SOLID gen ladan prensip konplemantè laj, ki louvri, ki—lè yo aplike ansanm—ede kreye pi bon sistèm lojisyèl ak pi byen kenbe yo sou tèm long la.

Prensip SOLID yo fè pati domèn OOP epi yo fòme nan langaj konsèp ak konsèp tankou klas, koòdone ak eritaj. Pa analoji, prensip devlopman yo kapab tou formul pou aplikasyon nwaj yo, se sèlman eleman debaz la isit la pa pral yon klas, men yon veso. Lè w suiv prensip sa yo, ou ka kreye aplikasyon nan kontenè ki pi byen satisfè objektif ak objektif platfòm nwaj yo tankou Kubernetes.

Kontenè nwaj natif natal: apwòch Red Hat la

Jodi a, prèske nenpòt aplikasyon ka pake relativman fasil nan resipyan. Men, pou aplikasyon yo ka efektivman otomatize ak òkestre nan yon platfòm nwaj tankou Kubernetes, efò adisyonèl nesesè.
Baz pou lide ki endike anba a se metodoloji a App a Douz Faktè ak anpil lòt travay sou divès aspè nan bati aplikasyon pou entènèt, ki soti nan jesyon kòd sous jiska modèl dekale. Prensip yo dekri yo aplike sèlman nan devlopman aplikasyon nan kontenè ki bati sou mikwosèvis epi ki fèt pou platfòm nwaj tankou Kubernetes. Eleman debaz nan diskisyon nou an se imaj veso a, ak tan sib veso a se platfòm orchestration veso a. Objektif prensip yo pwopoze yo se kreye kontenè pou orè, echèl, ak siveyans travay yo ka otomatize sou pifò platfòm òkestrasyon yo. Prensip yo prezante nan okenn lòd patikilye.

Prensip Sèl Enkyetid (SCP)

Prensip sa a se nan plizyè fason menm jan ak Prensip Responsablite sèl la. SRP), ki se yon pati nan seri SOLID la epi li deklare ke chak objè dwe gen yon sèl responsablite, epi responsablite sa a dwe konplètman ankapsule nan yon klas. Pwen SRP se ke chak responsablite se yon rezon pou chanjman, epi yon klas dwe gen yon sèl ak yon sèl rezon pou chanjman.

Nan SCP, nou itilize mo "enkyetid" olye de mo "responsabilite" pou endike pi wo nivo abstraksyon ak objektif pi laj yon veso konpare ak yon klas OOP. Men, si objektif la nan SRP se gen yon sèl rezon pou chanjman, Lè sa a, dèyè SCP se dezi a elaji kapasite nan reitilize ak ranplase resipyan yo. Lè w suiv SRP a epi kreye yon veso ki rezoud yon sèl pwoblèm epi fè li nan yon fason fonksyonèl konplè, ou ogmante chans pou w reitilize imaj veso sa a nan diferan kontèks aplikasyon.

Prensip SCP a di ke chak veso ta dwe rezoud yon sèl pwoblèm epi fè li byen. Anplis, SCP nan mond veso a pi fasil pou reyalize pase SRP nan mond OOP, paske kontenè yo anjeneral kouri yon sèl pwosesis, e pifò nan tan pwosesis sa a rezoud yon sèl travay.

Si yon mikwosèvis veso dwe rezoud plizyè pwoblèm nan yon fwa, Lè sa a, li ka divize an resipyan yon sèl travay epi konbine nan yon sèl gous (yon inite deplwaman platfòm veso) lè l sèvi avèk sidecar ak modèl veso init. Anplis de sa, SCP rann li fasil pou ranplase yon ansyen veso (tankou yon sèvè entènèt oswa yon koutye mesaj) ak yon nouvo ki rezoud menm pwoblèm nan men ki te elaji fonksyonalite oswa balans pi byen.

5 Prensip Bon Sans pou Bati Aplikasyon Cloud-Native

Prensip Obsèvabilite segondè (HOP)

Lè resipyan yo itilize kòm yon fason inifye pou pake ak kouri aplikasyon yo, aplikasyon yo tèt yo trete kòm yon bwat nwa. Sepandan, si sa yo se resipyan nwaj yo, Lè sa a, yo dwe bay API espesyal nan tan an pou kontwole sante resipyan yo epi, si sa nesesè, pran aksyon apwopriye. San sa a, li pa pral posib pou inifye automatisation nan mete ajou resipyan ak jere sik lavi yo, ki, nan vire, ap vin pi mal estabilite ak itilizasyon sistèm lojisyèl an.

5 Prensip Bon Sans pou Bati Aplikasyon Cloud-Native
Nan pratik, yon aplikasyon nan kontenè ta dwe, nan yon minimòm, gen yon API pou divès kalite chèk sante: tès vivan ak tès preparasyon. Si yon aplikasyon reklame fè plis, li dwe bay lòt mwayen pou kontwole eta li. Pou egzanp, anrejistreman evènman enpòtan atravè STDERR ak STDOUT pou agrégasyon boutèy demi lit lè l sèvi avèk Fluentd, Logstash ak lòt zouti ki sanble. Osi byen ke entegrasyon ak trase ak bibliyotèk koleksyon metrik, tankou OpenTracing, Prometheus, elatriye.

An jeneral, aplikasyon an ka toujou trete kòm yon bwat nwa, men li dwe bay tout API yo ke platfòm la bezwen yo nan lòd yo kontwole ak jere li nan pi bon fason posib.

Prensip konfòmite sik lavi (LCP)

LCP la vle di antitèz HOP. Pandan ke HOP deklare ke veso a dwe ekspoze API lekti sou platfòm la, LCP egzije aplikasyon an pou kapab aksepte enfòmasyon ki soti nan platfòm la. Anplis, veso a pa dwe sèlman resevwa evènman, men tou, adapte yo, nan lòt mo, reyaji ak yo. Pakonsekan non prensip la, ki ka konsidere kòm yon kondisyon pou bay platfòm la ak ekri APIs.

5 Prensip Bon Sans pou Bati Aplikasyon Cloud-Native
Platfòm yo gen diferan kalite evènman pou ede jere sik lavi yon veso. Men, li se jiska aplikasyon an tèt li deside kilès nan yo wè ak ki jan yo reyaji.

Li klè ke kèk evènman yo pi enpòtan pase lòt. Pa egzanp, si yon aplikasyon pa tolere aksidan byen, li dwe aksepte mesaj siyal: fini (SIGTERM) epi kòmanse woutin revokasyon li pi vit posib pou trape siyal: touye (SIGKILL) ki vini apre SIGTERM.

Anplis de sa, evènman tankou PostStart ak PreStop ka enpòtan nan sik lavi yon aplikasyon. Pou egzanp, apre yo fin lanse yon aplikasyon, li ka mande pou kèk tan chofe anvan li ka reponn a demann. Oswa aplikasyon an dwe lage resous nan kèk fason espesyal lè fèmen.

Prensip Immuabilite Imaj (IIP)

Anjeneral yo aksepte aplikasyon pou kontenè yo ta dwe rete san chanjman apre yo fin bati, menm si yo kouri nan diferan anviwònman. Sa a nesesite pou ekstèn done depo nan tan an (nan lòt mo, sèvi ak zouti ekstèn pou sa) ak konte sou ekstèn, konfigirasyon egzekite espesifik, olye ke modifye oswa kreye resipyan inik pou chak anviwònman. Apre nenpòt chanjman nan aplikasyon an, imaj veso a dwe rebati epi deplwaye nan tout anviwònman yo itilize. By wout la, lè jere IT sistèm yo, yo itilize yon prensip menm jan an, ke yo rekonèt kòm prensip immuabilite nan serveurs ak enfrastrikti.

Objektif IIP se anpeche kreyasyon imaj veso separe pou diferan anviwònman ègzekutabl epi sèvi ak menm imaj la toupatou ansanm ak konfigirasyon ki apwopriye pou anviwònman an. Swiv prensip sa a pèmèt ou aplike pratik enpòtan sa yo nan pwen de vi nan automatisation nan sistèm nwaj yo kòm woule-back ak woule-pi devan nan mizajou aplikasyon an.

5 Prensip Bon Sans pou Bati Aplikasyon Cloud-Native

Prensip Disposabilite Pwosesis (PDP)

Youn nan karakteristik ki pi enpòtan nan yon veso se efemèr li: yon egzanp yon veso fasil pou kreye epi fasil pou detwi, kidonk li ka fasil pou ranplase ak yon lòt egzanp nenpòt ki lè. Ka gen anpil rezon pou yon ranplasman konsa: echèk nan yon tès sèvis, dekale aplikasyon an, transfere nan yon lòt lame, fatig resous platfòm, oswa lòt sitiyasyon.

5 Prensip Bon Sans pou Bati Aplikasyon Cloud-Native
Kòm yon konsekans, aplikasyon pou kontenè dwe kenbe eta yo lè l sèvi avèk kèk mwayen ekstèn, oswa itilize rapid distribye entèn ak redondance pou sa. Anplis de sa, aplikasyon an dwe kòmanse byen vit epi fèmen byen vit, epi yo dwe prepare pou echèk pyès ki nan konpitè toudenkou fatal.

Yon pratik ki ede aplike prensip sa a se kenbe veso yo piti. Anviwònman nwaj yo ka otomatikman chwazi yon lame pou lanse yon egzanp veso sou, kidonk pi piti veso a, pi vit li pral kòmanse - li pral tou senpleman kopye nan lame sib la sou rezo a pi vit.

Prensip otokontinasyon (S-CP)

Dapre prensip sa a, nan etap asanble a, tout eleman ki nesesè yo enkli nan veso a. Veso a ta dwe bati sou sipozisyon ke sistèm lan sèlman gen yon nwayo Linux pi bon kalite, kidonk tout bibliyotèk adisyonèl ki nesesè yo ta dwe mete nan veso a li menm. Li ta dwe genyen tou bagay tankou ègzekutabl la pou langaj pwogramasyon ki koresponn lan, platfòm aplikasyon an (si sa nesesè), ak lòt depandans ki pral mande pandan aplikasyon veso a ap kouri.

5 Prensip Bon Sans pou Bati Aplikasyon Cloud-Native

Yo fè eksepsyon pou konfigirasyon ki varye de yon anviwonman an nan yon lòt epi yo dwe bay yo nan moman ekzekisyon, pou egzanp atravè yon Kubernetes ConfigMap.

Yon aplikasyon ka gen ladan plizyè konpozan kontenè, pou egzanp, yon veso DBMS separe nan yon aplikasyon entènèt ki nan kontenè. Dapre prensip S-CP a, kontenè sa yo pa ta dwe konbine nan yon sèl, men yo ta dwe fèt pou veso DBMS la gen tout bagay ki nesesè pou operasyon baz done a, ak veso aplikasyon entènèt la gen tout bagay ki nesesè pou operasyon entènèt la. aplikasyon, menm sèvè entènèt la. Kòm yon rezilta, nan ègzekutabl veso a aplikasyon entènèt pral depann de veso a DBMS ak jwenn aksè nan li jan sa nesesè.

Prensip Konfineman Runtime (RCP)

Prensip S-CP la defini ki jan veso a ta dwe bati ak sa ki binè imaj la ta dwe genyen. Men, yon veso se pa sèlman yon "bwat nwa" ki gen yon sèl karakteristik - gwosè dosye. Pandan ekzekisyon, veso a pran lòt dimansyon: kantite memwa yo itilize, tan CPU, ak lòt resous sistèm.

5 Prensip Bon Sans pou Bati Aplikasyon Cloud-Native
Ak isit la prensip la RCP vini an sou la men, dapre ki veso a dwe dekapite kondisyon li yo pou resous sistèm yo epi transfere yo nan platfòm la. Avèk pwofil resous chak veso (ki kantite CPU, memwa, rezo, ak resous disk li bezwen), platfòm la kapab byen fè orè ak autoscaling, jere kapasite IT, epi kenbe nivo SLA pou veso yo.

Anplis satisfè kondisyon resous veso a, li enpòtan tou pou aplikasyon an pa ale pi lwen pase pwòp limit li yo. Sinon, lè yon mank de resous rive, platfòm la gen plis chans pou mete li nan lis aplikasyon ki bezwen sispann oswa imigre.

Lè nou pale sou yo se nwaj-premye, nou ap pale sou fason nou travay.
Pi wo a, nou te fòme yon kantite prensip jeneral ki tabli fondasyon metodolojik pou bati aplikasyon pou veso bon jan kalite pou anviwònman nwaj yo.

Remake byen ke anplis prensip jeneral sa yo, w ap bezwen tou metòd avanse ak teknik adisyonèl pou travay ak resipyan. Anplis de sa, nou gen kèk rekòmandasyon kout ki pi espesifik epi yo ta dwe aplike (oswa pa aplike) selon sitiyasyon an:

Webinar sou nouvo vèsyon OpenShift Container Platform - 4
11 jen a 11.00

Ki sa ou pral aprann:

  • Immuable Red Hat Enterprise Linux CoreOS
  • OpenShift sèvis may
  • Fondasyon operatè
  • Knative kad

Sous: www.habr.com

Add nouvo kòmantè