5 Mga Prinsipyo sa Common Sense alang sa Pagtukod sa Cloud-Native Apps

Ang "Cloud native" o yano nga "cloud" nga mga aplikasyon gihimo nga espesipiko aron magtrabaho sa mga imprastraktura sa panganod. Kasagaran kini gitukod ingon usa ka hugpong sa mga loosely combed microservices nga giputos sa mga sudlanan, nga sa baylo gidumala sa usa ka cloud platform. Ang ingon nga mga aplikasyon giandam alang sa mga kapakyasan pinaagi sa default, nga nagpasabut nga sila nagtrabaho nga kasaligan ug sukod bisan kung adunay grabe nga pagkapakyas sa lebel sa imprastraktura. Ang pikas nga bahin sa sensilyo mao ang mga set sa mga pagdili (mga kontrata) nga gipahamtang sa cloud platform sa mga aplikasyon sa sudlanan aron awtomatik nga madumala kini.

5 Mga Prinsipyo sa Common Sense alang sa Pagtukod sa Cloud-Native Apps

Samtang hingpit nga nahibal-an ang panginahanglan ug kahinungdanon sa pagbalhin sa mga aplikasyon nga nakabase sa panganod, daghang mga organisasyon ang wala pa mahibal-an kung asa magsugod. Sa kini nga post, tan-awon namon ang daghang mga prinsipyo nga, kung gisunod kung nag-develop sa mga containerized nga aplikasyon, magtugot kanimo nga mahibal-an ang potensyal sa mga platform sa panganod ug makab-ot ang kasaligan nga operasyon ug pag-scale sa mga aplikasyon bisan kung adunay grabe nga mga kapakyasan sa imprastraktura sa IT. lebel. Ang katapusang tumong sa mga prinsipyo nga gilatid dinhi mao ang pagkat-on unsaon paghimo og mga aplikasyon nga mahimong awtomatik nga madumala sa mga cloud platform sama sa Kubernetes.

Mga Prinsipyo sa Disenyo sa Software

Sa kalibutan sa pagprograma, ang mga prinsipyo nagtumong sa patas nga kinatibuk-an nga mga lagda nga kinahanglan sundon sa paghimo og software. Mahimo kini gamiton kung nagtrabaho sa bisan unsang programming language. Ang matag prinsipyo adunay kaugalingong mga tumong, ang mga himan alang sa pagkab-ot nga kasagaran mga templates ug mga praktis. Adunay usab usa ka ubay-ubay nga sukaranan nga mga prinsipyo alang sa paghimo og taas nga kalidad nga software, diin ang tanan nga uban nag-agay. Ania ang pipila ka mga pananglitan sa sukaranang mga prinsipyo:

  • halok (Ipadayon kini nga yano, hungog) - ayaw kini komplikado;
  • uga nga (Ayaw pag-usab sa imong kaugalingon) - ayaw pag-usab sa imong kaugalingon;
  • YAGNI (Dili nimo kinahanglan kini) - ayaw paghimo usa ka butang nga dili kinahanglan dayon;
  • SoC Pagbulag sa mga kabalaka - pagpaambit sa mga responsibilidad.

Sama sa imong makita, kini nga mga prinsipyo wala magbutang sa bisan unsang piho nga mga lagda, apan nahisakop sa kategorya nga gitawag nga mga konsiderasyon sa sentido komon nga gibase sa praktikal nga kasinatian, nga gipaambit sa daghang mga developer ug diin sila kanunay nga nagtumong.
Dugang pa, adunay SOLID – Usa ka set sa unang lima ka mga prinsipyo sa object-oriented programming ug design, gimugna ni Robert Martin. Ang SOLID naglakip sa lapad, bukas, komplementaryong mga prinsipyo nga—kon gamiton nga dungan—makatabang sa paghimo og mas maayong mga sistema sa software ug mas maayong mamentinar kini sa taas nga panahon.

Ang SOLID nga mga prinsipyo nahisakop sa natad sa OOP ug giporma sa pinulongan sa mga konsepto ug konsepto sama sa mga klase, interface ug kabilin. Pinaagi sa analohiya, ang mga prinsipyo sa pag-uswag mahimo usab nga maporma alang sa mga aplikasyon sa panganod, ang sukaranan lamang nga elemento dinhi dili usa ka klase, apan usa ka sulud. Pinaagi sa pagsunod niini nga mga prinsipyo, makahimo ka og mga containerized nga aplikasyon nga mas makaabot sa mga tumong ug tumong sa mga cloud platform sama sa Kubernetes.

Cloud-lumad nga mga sudlanan: ang Red Hat nga pamaagi

Karon, halos bisan unsang aplikasyon mahimong dali nga maputos sa mga sudlanan. Apan aron ang mga aplikasyon mahimong epektibo nga awtomatiko ug ma-orkestra sulod sa cloud platform sama sa Kubernetes, gikinahanglan ang dugang nga paningkamot.
Ang basehan sa mga ideya nga gilatid sa ubos mao ang metodolohiya Ang Napulog Duha ka Factor App ug daghan pang uban nga mga buhat sa lain-laing aspeto sa pagtukod sa mga aplikasyon sa web, gikan sa source code management ngadto sa scaling models. Ang mga prinsipyo nga gihulagway magamit lamang sa pagpalambo sa mga containerized nga aplikasyon nga gitukod sa ibabaw sa mga microservice ug gidisenyo alang sa mga cloud platform sama sa Kubernetes. Ang sukaranan nga elemento sa among diskusyon mao ang imahe sa sulud, ug ang target nga runtime sa sudlanan mao ang plataporma sa orkestra sa sudlanan. Ang tumong sa gisugyot nga mga prinsipyo mao ang paghimo og mga sudlanan diin ang mga buluhaton sa pag-iskedyul, pag-scale, ug pag-monitor mahimong awtomatiko sa kadaghanan nga mga plataporma sa orkestra. Ang mga prinsipyo gipresentar sa walay partikular nga han-ay.

Single Concern Principle (SCP)

Kini nga prinsipyo sa daghang paagi susama sa Single Responsibility Principle. SRP), nga bahin sa SOLID set ug nag-ingon nga ang matag butang kinahanglan adunay usa ka responsibilidad, ug kana nga responsibilidad kinahanglan nga hingpit nga gilakip sa usa ka klase. Ang punto sa SRP mao nga ang matag responsibilidad usa ka hinungdan sa pagbag-o, ug ang usa ka klase kinahanglan adunay usa ug usa ra nga hinungdan sa pagbag-o.

Sa SCP, gigamit namo ang pulong nga "kabalaka" imbes ang pulong nga "responsibilidad" aron ipakita ang mas taas nga lebel sa abstraction ug mas lapad nga katuyoan sa usa ka sudlanan kon itandi sa klase sa OOP. Ug kon ang tumong sa SRP mao ang pagbaton ug usa ra ka rason sa kausaban, nan luyo sa SCP mao ang tinguha nga mapalapdan ang katakos sa paggamit pag-usab ug pag-ilis sa mga sudlanan. Pinaagi sa pagsunod sa SRP ug paghimo og usa ka sudlanan nga makasulbad sa usa ka problema ug buhaton kini sa usa ka kompleto nga paagi sa pag-andar, madugangan nimo ang kahigayonan nga magamit pag-usab ang imahe sa sudlanan sa lainlaing mga konteksto sa aplikasyon.

Ang prinsipyo sa SCP nag-ingon nga ang matag sudlanan kinahanglan magsulbad sa usa ka problema ug buhaton kini nga maayo. Dugang pa, ang SCP sa kalibutan sa sulud mas dali nga makab-ot kaysa sa SRP sa kalibutan sa OOP, tungod kay ang mga sulud sagad nga nagpadagan sa usa ka proseso, ug kasagaran kini nga proseso nagsulbad sa usa ka buluhaton.

Kung ang usa ka container microservice kinahanglan nga magsulbad sa daghang mga problema sa usa ka higayon, nan kini mahimong bahinon sa usa ka buluhaton nga mga sudlanan ug gihiusa sulod sa usa ka pod (usa ka yunit sa container platform deployment) gamit ang sidecar ug init nga mga template sa container. Dugang pa, gipasayon ​​sa SCP ang pag-ilis sa daan nga sudlanan (sama sa web server o message broker) og bag-o nga makasulbad sa samang problema apan mas gipalapad ang gamit o timbangan.

5 Mga Prinsipyo sa Common Sense alang sa Pagtukod sa Cloud-Native Apps

Taas nga Observability Principle (HOP)

Kung ang mga sudlanan gigamit ingon usa ka hiniusa nga paagi sa pagputos ug pagpadagan sa mga aplikasyon, ang mga aplikasyon mismo giisip nga usa ka itom nga kahon. Bisan pa, kung kini mga sulud sa panganod, nan kinahanglan silang maghatag espesyal nga mga API sa oras sa pag-monitor sa kahimsog sa mga sulud ug, kung kinahanglan, paghimo og angay nga aksyon. Kung wala kini, dili posible nga mahiusa ang automation sa pag-update sa mga sulud ug pagdumala sa ilang siklo sa kinabuhi, nga, sa baylo, makapasamot sa kalig-on ug pagkagamit sa sistema sa software.

5 Mga Prinsipyo sa Common Sense alang sa Pagtukod sa Cloud-Native Apps
Sa praktis, ang usa ka containerized nga aplikasyon kinahanglan, sa labing gamay, adunay usa ka API alang sa lain-laing mga matang sa mga pagsusi sa panglawas: liveness tests ug readyness tests. Kung ang usa ka aplikasyon nag-angkon sa pagbuhat ug labaw pa, kini kinahanglan nga maghatag ug laing paagi sa pagmonitor sa kahimtang niini. Pananglitan, ang pag-log sa importante nga mga panghitabo pinaagi sa STDERR ug STDOUT alang sa paghugpong sa log gamit ang Fluentd, Logstash ug uban pang susama nga mga himan. Ingon man usab ang panagsama sa pagsubay ug mga metrics collection library, sama sa OpenTracing, Prometheus, etc.

Sa kinatibuk-an, ang aplikasyon mahimo gihapon nga isipon nga usa ka itom nga kahon, apan kini kinahanglan nga ihatag sa tanan nga mga API nga gikinahanglan sa plataporma aron mamonitor ug madumala kini sa pinakamaayo nga paagi.

Life-cycle Conformance Principle (LCP)

Ang LCP kay antithesis sa HOP. Samtang ang HOP nag-ingon nga ang sudlanan kinahanglan nga ibutyag ang nabasa nga mga API sa plataporma, ang LCP nagkinahanglan sa aplikasyon nga makadawat sa impormasyon gikan sa plataporma. Dugang pa, ang sudlanan kinahanglan dili lamang makadawat sa mga panghitabo, apan usab mopahiangay, sa laing pagkasulti, motubag niini. Busa ang ngalan sa prinsipyo, nga mahimong isipon nga usa ka kinahanglanon sa paghatag sa plataporma sa pagsulat sa mga API.

5 Mga Prinsipyo sa Common Sense alang sa Pagtukod sa Cloud-Native Apps
Ang mga plataporma adunay lain-laing matang sa mga panghitabo aron makatabang sa pagdumala sa lifecycle sa usa ka sudlanan. Apan naa sa aplikasyon mismo ang pagdesisyon kung kinsa kanila ang mahunahuna ug kung giunsa ang reaksyon.

Maathag nga ang pila ka hitabo mas importante sangsa iban. Pananglitan, kung ang usa ka aplikasyon dili motugot sa pag-crash og maayo, kini kinahanglan nga modawat sa signal: tapuson (SIGTERM) nga mga mensahe ug sugdan ang pagtapos niini nga rutina sa labing madali aron makuha ang signal: pagpatay (SIGKILL) nga moabut human sa SIGTERM.

Dugang pa, ang mga panghitabo sama sa PostStart ug PreStop mahimong importante sa lifecycle sa usa ka aplikasyon. Pananglitan, pagkahuman sa paglansad sa usa ka aplikasyon, mahimo’g kinahanglan ang pipila ka oras sa pagpainit sa dili pa kini makatubag sa mga hangyo. O ang aplikasyon kinahanglan nga magpagawas sa mga kapanguhaan sa usa ka espesyal nga paagi kung magsira.

Ang Imahe nga Pagkadili-mabag-o nga Prinsipyo (IIP)

Gidawat sa kadaghanan nga ang mga containerized nga aplikasyon kinahanglan magpabilin nga wala mabag-o pagkahuman natukod, bisan kung kini gipadagan sa lainlaing mga palibot. Nagkinahanglan kini sa panginahanglan sa pag-externalize sa pagtipig sa datos sa runtime (sa laing pagkasulti, sa paggamit sa eksternal nga mga himan alang niini) ug sa pagsalig sa gawas, runtime-specific nga mga configuration, kay sa pag-usab o paghimo sa talagsaon nga mga sudlanan alang sa matag palibot. Pagkahuman sa bisan unsang mga pagbag-o sa aplikasyon, ang imahe sa sulud kinahanglan nga matukod pag-usab ug i-deploy sa tanan nga mga palibot nga gigamit. Pinaagi sa dalan, kung nagdumala sa mga sistema sa IT, usa ka parehas nga prinsipyo ang gigamit, nga nailhan nga prinsipyo sa pagkadili-mabag-o sa mga server ug imprastraktura.

Ang tumong sa IIP mao ang pagpugong sa pagmugna og bulag nga mga hulagway sa sudlanan alang sa lain-laing runtime nga mga palibot ug sa paggamit sa samang hulagway bisan asa uban sa angay nga espesipiko sa palibot. Ang pagsunod niini nga prinsipyo nagtugot kanimo sa pagpatuman sa ingon ka importante nga mga praktis gikan sa punto sa panglantaw sa automation sa mga cloud system sama sa roll-back ug roll-forward sa mga update sa aplikasyon.

5 Mga Prinsipyo sa Common Sense alang sa Pagtukod sa Cloud-Native Apps

Prinsipyo sa Disposability sa Proseso (PDP)

Usa sa labing importante nga mga kinaiya sa usa ka sudlanan mao ang ephemerality niini: ang usa ka pananglitan sa usa ka sudlanan sayon ​​nga mugnaon ug sayon ​​​​nga gub-on, aron kini dali nga mapulihan sa laing higayon sa bisan unsang oras. Mahimong adunay daghang mga hinungdan alang sa ingon nga pagpuli: kapakyasan sa usa ka pagsulay sa serbisyo, pag-scale sa aplikasyon, pagbalhin sa lain nga host, kakapoy sa mga kapanguhaan sa platform, o uban pang mga sitwasyon.

5 Mga Prinsipyo sa Common Sense alang sa Pagtukod sa Cloud-Native Apps
Ingon usa ka sangputanan, ang mga containerized nga aplikasyon kinahanglan nga magpadayon sa ilang estado gamit ang pipila nga mga paagi sa gawas, o mogamit sa mga internal nga gipang-apod-apod nga mga laraw nga adunay redundancy alang niini. Dugang pa, ang aplikasyon kinahanglan nga magsugod dayon ug masira dayon, ug andam alang sa kalit nga makamatay nga pagkapakyas sa hardware.

Usa ka praktis nga makatabang sa pagpatuman niini nga prinsipyo mao ang pagpabiling gamay sa mga sudlanan. Ang mga cloud environment mahimong awtomatik nga makapili og host nga maglansad og container nga instance, mao nga kon mas gamay ang sudlanan, mas paspas kini magsugod - mas paspas kining mokopya ngadto sa target host sa network.

Prinsipyo sa pagpugong sa kaugalingon (S-CP)

Sumala niini nga prinsipyo, sa yugto sa asembliya, ang tanan nga gikinahanglan nga mga sangkap gilakip sa sudlanan. Ang sudlanan kinahanglan nga tukuron sa pangagpas nga ang sistema adunay lunsay nga Linux kernel, busa ang tanan nga kinahanglan nga dugang nga mga librarya kinahanglan ibutang sa sulud mismo. Kini kinahanglan usab nga adunay mga butang sama sa runtime alang sa katugbang nga programming language, ang application platform (kon gikinahanglan), ug uban pang mga dependency nga gikinahanglan samtang ang container application nagdagan.

5 Mga Prinsipyo sa Common Sense alang sa Pagtukod sa Cloud-Native Apps

Gihimo ang mga eksepsiyon alang sa mga configuration nga lainlain gikan sa palibot ngadto sa palibot ug kinahanglang ihatag sa runtime, pananglitan pinaagi sa Kubernetes ConfigMap.

Ang usa ka aplikasyon mahimo nga maglakip sa daghang mga sulud nga sulud, pananglitan, usa ka lahi nga sulud sa DBMS sa sulod sa usa ka sulud nga aplikasyon sa web. Sumala sa prinsipyo sa S-CP, kini nga mga sudlanan kinahanglan dili ihiusa sa usa, apan kinahanglan buhaton aron ang sulud sa DBMS adunay tanan nga kinahanglanon alang sa operasyon sa database, ug ang sulud sa aplikasyon sa web naglangkob sa tanan nga kinahanglan alang sa operasyon sa web. aplikasyon, parehas nga web server . Ingon usa ka sangputanan, sa runtime ang sulud sa aplikasyon sa web magdepende sa sulud sa DBMS ug ma-access kini kung gikinahanglan.

Runtime Confinement Principle (RCP)

Ang prinsipyo sa S-CP naghubit kung giunsa paghimo ang sudlanan ug kung unsa ang kinahanglan nga sulud sa binary sa imahe. Apan ang usa ka sudlanan dili lang usa ka "itom nga kahon" nga adunay usa ra nga kinaiya - gidak-on sa file. Atol sa pagpatuman, ang sudlanan nagkuha sa ubang mga dimensyon: ang gidaghanon sa memorya nga gigamit, oras sa CPU, ug uban pang mga kapanguhaan sa sistema.

5 Mga Prinsipyo sa Common Sense alang sa Pagtukod sa Cloud-Native Apps
Ug dinhi ang prinsipyo sa RCP magamit, sumala sa kung diin ang sudlanan kinahanglan nga putlon ang mga kinahanglanon alang sa mga kapanguhaan sa sistema ug ibalhin kini sa plataporma. Uban sa mga profile sa kapanguhaan sa matag sudlanan (unsa kadaghan ang CPU, memorya, network, ug mga kahinguhaan sa disk nga kinahanglan niini), ang plataporma mahimo nga labing maayo nga mahimo ang pag-iskedyul ug pag-autoscaling, pagdumala sa kapasidad sa IT, ug pagpadayon sa lebel sa SLA alang sa mga sudlanan.

Dugang sa pagtagbo sa mga kinahanglanon sa kahinguhaan sa sudlanan, importante usab nga ang aplikasyon dili molapas sa kaugalingong mga utlanan niini. Kung dili, kung adunay kakulang sa kahinguhaan, ang plataporma mas lagmit nga ilakip kini sa lista sa mga aplikasyon nga kinahanglan nga tapuson o ibalhin.

Kung maghisgot kami bahin sa pagkahimong cloud-first, naghisgot kami bahin sa paagi sa among pagtrabaho.
Sa ibabaw, naghimo kami og daghang mga kinatibuk-ang prinsipyo nga nagtakda sa metodolohikal nga pundasyon alang sa pagtukod og taas nga kalidad nga mga aplikasyon sa sudlanan alang sa mga cloud environment.

Timan-i nga dugang niining mga kinatibuk-ang prinsipyo, magkinahanglan ka usab og dugang nga mga advanced nga pamaagi ug mga teknik sa pagtrabaho sa mga sudlanan. Dugang pa, aduna kitay pipila ka mugbo nga mga rekomendasyon nga mas espesipiko ug kinahanglang i-apply (o dili i-apply) depende sa sitwasyon:

Webinar sa bag-ong bersyon sa OpenShift Container Platform - 4
Hunyo 11 sa 11.00

Unsa ang imong makat-unan:

  • Dili mausab nga Red Hat Enterprise Linux CoreOS
  • OpenShift service mesh
  • Balangkas sa operator
  • Knative nga balangkas

Source: www.habr.com

Idugang sa usa ka comment