Mfundo 5 Zomveka Pakumanga Mapulogalamu Amtundu Wamtambo

Mapulogalamu a "Cloud native" kapena "mtambo" amapangidwa makamaka kuti azigwira ntchito mumtambo. Nthawi zambiri amamangidwa ngati ma microservices osakanikirana omwe amaikidwa m'mitsuko, yomwe imayendetsedwa ndi nsanja yamtambo. Ntchito zotere zimakonzedwera zolephera mwachisawawa, zomwe zikutanthauza kuti amagwira ntchito modalirika komanso mokulira ngakhale pakagwa zolephera zazikulu. Mbali ina ya ndalamazo ndi zoletsa (makontrakitala) zomwe nsanja yamtambo imayika pazogwiritsa ntchito zida kuti athe kuziwongolera zokha.

Mfundo 5 Zomveka Pakumanga Mapulogalamu Amtundu Wamtambo

Ngakhale akudziwa bwino za kufunikira ndi kufunikira kosamukira ku mapulogalamu ozikidwa pamtambo, mabungwe ambiri sakudziwabe komwe angayambire. Mu positi iyi, tiwona mfundo zingapo zomwe, ngati zitsatiridwa popanga mapulogalamu omwe ali ndi zida, zimakupatsani mwayi wozindikira kuthekera kwa nsanja zamtambo ndikukwaniritsa magwiridwe antchito odalirika komanso makulitsidwe a mapulogalamu ngakhale pakagwa zolephereka kwambiri pamayendedwe a IT. mlingo. Cholinga chachikulu cha mfundo zomwe zafotokozedwa apa ndikuphunzira momwe mungapangire mapulogalamu omwe angathe kuyendetsedwa ndi nsanja zamtambo monga Kubernetes.

Mfundo Zopangira Mapulogalamu

M'dziko la mapulogalamu, mfundo zimatanthawuza malamulo omwe ayenera kutsatiridwa popanga mapulogalamu. Zitha kugwiritsidwa ntchito pogwira ntchito ndi chilankhulo chilichonse cha pulogalamu. Mfundo iliyonse ili ndi zolinga zake, zida zokwaniritsira zomwe nthawi zambiri zimakhala ma templates ndi machitidwe. Palinso mfundo zingapo zofunika popanga mapulogalamu apamwamba kwambiri, omwe ena onse amachokera. Nazi zitsanzo za mfundo zofunika kwambiri:

  • kumpsompsona (Khalani ophweka, opusa) - musati muwusokoneze;
  • youma (Musabwerezenso) - musabwereze nokha;
  • YAGNI (Simudzachifuna) - musapange chinthu chomwe sichikufunika nthawi yomweyo;
  • SoC Kulekanitsa nkhawa - kugawana maudindo.

Monga mukuonera, mfundozi sizimayika malamulo enieni, koma zimakhala m'gulu la zomwe zimatchedwa kulingalira kwanzeru kutengera zochitika zenizeni, zomwe zimagawidwa ndi ambiri opanga komanso omwe amawatchula nthawi zonse.
Komanso, pali OLIMBITSA - Mndandanda wa mfundo zisanu zoyambirira za mapulogalamu ndi mapangidwe opangidwa ndi chinthu, opangidwa ndi Robert Martin. SOLID imaphatikizapo mfundo zazikulu, zotseguka, zowonjezera zomwe - zikagwiritsidwa ntchito pamodzi - zimathandiza kupanga mapulogalamu abwino a mapulogalamu ndi kuwasunga bwino pakapita nthawi.

Mfundo za SOLID ndi za gawo la OOP ndipo zimapangidwa m'chilankhulo cha malingaliro ndi malingaliro monga makalasi, malo olumikizirana ndi cholowa. Mwa fanizo, mfundo zachitukuko zitha kupangidwanso kuti zigwiritsidwe ntchito pamtambo, zinthu zoyambira pano sizikhala kalasi, koma chidebe. Potsatira mfundozi, mutha kupanga mapulogalamu omwe ali ndi zida zomwe zimakwaniritsa zolinga ndi zolinga zamapulatifomu amtambo ngati Kubernetes.

Zotengera zamtambo: njira ya Red Hat

Masiku ano, pafupifupi pulogalamu iliyonse imatha kupakidwa mosavuta muzotengera. Koma kuti mapulogalamu azingodzipanga okha komanso opangidwa bwino pamtambo ngati Kubernetes, kuyesetsa kowonjezera kumafunika.
Maziko a malingaliro omwe afotokozedwa pansipa anali njira The Twelve-Factor App ndi ntchito zina zambiri pazinthu zosiyanasiyana zomanga mapulogalamu a pa intaneti, kuyambira kasamalidwe ka ma code source kupita ku ma scaling model. Mfundo zomwe zafotokozedwazi zimagwira ntchito pakupanga mapulogalamu omwe amapangidwa pamwamba pa ma microservices ndipo amapangidwira nsanja zamtambo monga Kubernetes. Chofunikira pakukambirana kwathu ndi chithunzi cha chidebe, ndipo nthawi yomwe chidebe chomwe mukufuna kuthamangira ndi nsanja yoyimba zotengera. Cholinga cha mfundo zomwe zaperekedwa ndi kupanga zotengera zomwe zokonzera, makulitsidwe, ndi kuyang'anira ntchito zitha kukhala zokha pamapulatifomu ambiri a orchestration. Mfundozi sizimaperekedwa mwadongosolo.

Single Concern Principle (SCP)

Mfundo imeneyi ndi yofanana m’njira zambiri ndi Mfundo ya Udindo Umodzi. SRP), yomwe ili gawo la SOLID set ndipo imanena kuti chinthu chilichonse chiyenera kukhala ndi udindo umodzi, ndipo udindowo uyenera kuphatikizidwa mu kalasi. Mfundo ya SRP ndi yakuti udindo uliwonse ndi chifukwa cha kusintha, ndipo kalasi iyenera kukhala ndi chifukwa chimodzi chokha chosinthira.

Mu SCP, timagwiritsa ntchito liwu loti "nkhawa" m'malo mwa liwu loti "udindo" kuwonetsa kuchuluka kwachidule komanso cholinga chokulirapo cha chidebe poyerekeza ndi gulu la OOP. Ndipo ngati cholinga cha SRP ndikukhala ndi chifukwa chimodzi chokha chosinthira, ndiye kuti kumbuyo kwa SCP ndi chikhumbo chokulitsa luso logwiritsanso ntchito ndikulowetsamo zotengera. Potsatira SRP ndikupanga chidebe chomwe chimathetsa vuto limodzi ndikuchichita mokwanira, mumawonjezera mwayi wogwiritsanso ntchito chithunzi cha chidebecho pamagwiritsidwe osiyanasiyana.

Mfundo ya SCP imati chidebe chilichonse chiyenera kuthetsa vuto limodzi ndikuchita bwino. Kuphatikiza apo, SCP m'dziko lazotengera ndiyosavuta kukwaniritsa kuposa SRP mdziko la OOP, popeza zotengera nthawi zambiri zimayendetsa njira imodzi, ndipo nthawi zambiri izi zimathetsa ntchito imodzi.

Ngati chidebe cha microservice chiyenera kuthetsa mavuto angapo nthawi imodzi, ndiye kuti chikhoza kugawidwa muzotengera zomwe zimagwiritsidwa ntchito kamodzi ndikuphatikizidwa mkati mwa poto imodzi (gawo la pulatifomu yotumizira) pogwiritsa ntchito ma templates a sidecar ndi init. Kuphatikiza apo, SCP imapangitsa kuti zikhale zosavuta kusintha chidebe chakale (monga seva yapaintaneti kapena meseji broker) ndi chatsopano chomwe chimathetsa vuto lomwelo koma chakulitsa magwiridwe antchito kapena masikelo bwino.

Mfundo 5 Zomveka Pakumanga Mapulogalamu Amtundu Wamtambo

High Observability Principle (HOP)

Zotengera zikagwiritsidwa ntchito ngati njira yolumikizirana ndikuyika mapulogalamu, mapulogalamuwo amatengedwa ngati bokosi lakuda. Komabe, ngati izi ndi zida zamtambo, ndiye kuti ziyenera kupereka ma API apadera panthawi yothamanga kuti aziyang'anira thanzi lazotengerazo ndipo, ngati kuli kofunikira, chitanipo kanthu. Popanda izi, sikungatheke kugwirizanitsa makina osinthika ndikuwongolera moyo wawo, zomwe zidzakulitsa kukhazikika ndi kugwiritsidwa ntchito kwa mapulogalamu.

Mfundo 5 Zomveka Pakumanga Mapulogalamu Amtundu Wamtambo
M'malo mwake, pulogalamu yokhala ndi ziwiya iyenera, osachepera, kukhala ndi API yamitundu yosiyanasiyana yowunika thanzi: kuyesa moyo ndi kukonzeka. Ngati pempho likunena kuti likuchita zambiri, liyenera kupereka njira zina zowunikira dziko lake. Mwachitsanzo, kudula zochitika zofunika kudzera pa STDERR ndi STDOUT pakuphatikiza zipika pogwiritsa ntchito Fluentd, Logstash ndi zida zina zofananira. Komanso kuphatikizika ndi malaibulale otolera ma metrics, monga OpenTracing, Prometheus, ndi zina.

Kawirikawiri, ntchitoyo ikhoza kuchitidwabe ngati bokosi lakuda, koma liyenera kuperekedwa ndi ma API onse omwe nsanja ikufunikira kuti iwonetsetse ndikuyendetsa bwino kwambiri.

Life-cycle Conformance Principle (LCP)

LCP ndiye kutsutsa kwa HOP. Ngakhale HOP ikunena kuti chidebecho chiyenera kuwonetsa ma API owerengera papulatifomu, LCP imafuna kuti pulogalamuyo ivomereze zambiri kuchokera papulatifomu. Komanso, chidebecho sayenera kungolandira zochitika, komanso kusintha, mwa kuyankhula kwina, kuchita nawo. Chifukwa chake dzina la mfundoyo, lomwe lingaganizidwe ngati chofunikira kuti apereke nsanja ndi ma API olembera.

Mfundo 5 Zomveka Pakumanga Mapulogalamu Amtundu Wamtambo
Mapulatifomu ali ndi mitundu yosiyanasiyana ya zochitika zothandizira kusamalira moyo wa chidebe. Koma zili kwa ntchitoyo yokha kusankha amene angazindikire ndi momwe angachitire.

N’zoonekeratu kuti zochitika zina ndi zofunika kwambiri kuposa zina. Mwachitsanzo, ngati pulogalamuyo silola kusweka bwino, ikuyenera kuvomereza chizindikiro: kuletsa (SIGTERM) mauthenga ndi kuyambitsa chizolowezi choyimitsa mwachangu kuti igwire chizindikiro: kupha (SIGKILL) yomwe imabwera pambuyo pa SIGTERM.

Kuphatikiza apo, zochitika monga PostStart ndi PreStop zitha kukhala zofunika pa moyo wa pulogalamuyo. Mwachitsanzo, mutatsegula pulogalamu, zingatenge nthawi yotenthetsera kuti isayankhe zopempha. Kapena pulogalamuyo iyenera kumasula zothandizira mwanjira ina yapadera ikatseka.

The Image Immutability Principle (IIP)

Ndizovomerezeka kuti mapulogalamu omwe ali m'mitsuko amayenera kukhala osasinthika atamangidwa, ngakhale atagwiritsidwa ntchito m'malo osiyanasiyana. Izi zimafuna kufunikira kwa kunja kusungirako deta panthawi yothamanga (mwa kuyankhula kwina, kugwiritsa ntchito zida zakunja za izi) ndi kudalira kunja, zosintha za nthawi yothamanga, m'malo mosintha kapena kupanga zida zapadera za chilengedwe chilichonse. Pambuyo pakusintha kulikonse pakugwiritsa ntchito, chithunzi cha chidebecho chiyenera kumangidwanso ndikutumizidwa kumadera onse omwe amagwiritsidwa ntchito. Mwa njira, poyang'anira machitidwe a IT, mfundo yofananayo imagwiritsidwa ntchito, yomwe imadziwika kuti mfundo yosasinthika ya ma seva ndi zomangamanga.

Cholinga cha IIP ndikuletsa kupangidwa kwa zithunzi zachidebe zosiyanitsidwa ndi malo osiyanasiyana othamanga komanso kugwiritsa ntchito chithunzi chomwechi kulikonse komanso kukhazikitsidwa koyenera kwa chilengedwe. Kutsatira mfundoyi kumakupatsani mwayi wogwiritsa ntchito zofunikira ngati izi potengera makina amtambo monga kubweza ndi kupititsa patsogolo zosintha zamapulogalamu.

Mfundo 5 Zomveka Pakumanga Mapulogalamu Amtundu Wamtambo

Mfundo Yothetsera Vuto (PDP)

Chimodzi mwazinthu zofunika kwambiri za chidebe ndi ephemerality: chitsanzo cha chidebe ndi chosavuta kupanga komanso chosavuta kuwononga, kotero chikhoza kusinthidwa mosavuta ndi chochitika china nthawi iliyonse. Pakhoza kukhala zifukwa zambiri zosinthira izi: kulephera kwa kuyesa kwa ntchito, kukulitsa pulogalamuyo, kusamutsira kwa wolandila wina, kutha kwa zida zamapulatifomu, kapena zina.

Mfundo 5 Zomveka Pakumanga Mapulogalamu Amtundu Wamtambo
Zotsatira zake, mapulogalamu omwe ali m'mitsuko amayenera kusunga dziko lawo pogwiritsa ntchito njira zakunja, kapena kugwiritsa ntchito njira zogawira mkati mosafunikira pa izi. Kuphatikiza apo, ntchitoyo iyenera kuyamba mwachangu ndikutseka mwachangu, ndikukonzekera kulephera kwadzidzidzi kwa hardware.

Mchitidwe umodzi womwe umathandizira kukhazikitsa mfundo iyi ndikusunga zotengera zazing'ono. Malo amtambo amatha kusankha yekha wolandira kuti ayambitse chidebecho, kuti chidebecho chikhale chaching'ono, chimayamba mwachangu - chimangotengera omwe akutsata pamaneti mwachangu.

Mfundo Yodziletsa (S-CP)

Malinga ndi mfundo imeneyi, pa siteji ya msonkhano, zigawo zonse zofunika zikuphatikizidwa mu chidebe. Chidebecho chiyenera kumangidwa poganiza kuti makinawa ali ndi Linux kernel yokha, choncho malaibulale onse ofunikira ayenera kuikidwa mu chidebe chokha. Iyeneranso kukhala ndi zinthu monga nthawi yoyendetsera chiyankhulo chofananira, pulatifomu yogwiritsira ntchito (ngati kuli kofunikira), ndi zodalira zina zomwe zidzafunike pomwe pulogalamu ya chidebe ikugwira ntchito.

Mfundo 5 Zomveka Pakumanga Mapulogalamu Amtundu Wamtambo

Kupatulako kumapangidwira masinthidwe omwe amasiyana malinga ndi chilengedwe ndipo ayenera kuperekedwa panthawi yothamanga, mwachitsanzo kudzera pa Kubernetes ConfigMap.

Ntchito ikhoza kuphatikiza zinthu zingapo zokhala ndi zotengera, mwachitsanzo, chotengera chapadera cha DBMS mkati mwa pulogalamu yapaintaneti. Malinga ndi mfundo ya S-CP, zotengerazi zisaphatikizidwe kukhala chimodzi, koma ziyenera kupangidwa kuti chidebe cha DBMS chili ndi zonse zofunika kuti mugwiritse ntchito nkhokwe, ndipo chidebe cha pulogalamu yapaintaneti chili ndi zonse zofunika pakugwiritsa ntchito intaneti. kugwiritsa ntchito, seva yapaintaneti yomweyo . Zotsatira zake, panthawi yothamanga chidebe chogwiritsira ntchito intaneti chidzadalira chidebe cha DBMS ndikuchipeza ngati chikufunikira.

Runtime Confinement Principle (RCP)

Mfundo ya S-CP imatanthawuza momwe chidebecho chiyenera kupangidwira komanso zomwe chithunzicho chiyenera kukhala nacho. Koma chidebe si "bokosi lakuda" lomwe lili ndi mawonekedwe amodzi - kukula kwa fayilo. Pakuphedwa, chidebecho chimakhala ndi miyeso ina: kuchuluka kwa kukumbukira komwe kumagwiritsidwa ntchito, nthawi ya CPU, ndi zida zina zamakina.

Mfundo 5 Zomveka Pakumanga Mapulogalamu Amtundu Wamtambo
Ndipo apa mfundo ya RCP imabwera bwino, malinga ndi momwe chidebecho chiyenera kuchotsera zofunikira zake pazinthu zamakina ndikuwasamutsa ku nsanja. Ndi mbiri ya chidebe chilichonse (kuchuluka kwa CPU, kukumbukira, maukonde, ndi diski zotani zomwe zimafunikira), nsanja imatha kupanga ndandanda ndi autoscaling, kuyang'anira kuchuluka kwa IT, ndikusunga milingo ya SLA pazotengera.

Kuphatikiza pa kukwaniritsa zofunikira za chidebecho, ndikofunikanso kuti ntchitoyo isapitirire malire ake. Apo ayi, pamene kusowa kwazinthu kukuchitika, nsanjayo imatha kuyikapo pamndandanda wa mapulogalamu omwe akuyenera kuthetsedwa kapena kusamutsidwa.

Tikamakamba za kukhala mtambo choyamba, tikukamba za momwe timagwirira ntchito.
Pamwambapa, tidapanga mfundo zingapo zomwe zimakhazikitsa maziko opangira zida zapamwamba kwambiri zamapangidwe amtambo.

Dziwani kuti kuwonjezera pa mfundo izi, mudzafunikanso njira zowonjezera ndi njira zogwirira ntchito ndi zotengera. Kuphatikiza apo, tili ndi malingaliro achidule ochepa omwe ali achindunji ndipo akuyenera kugwiritsidwa ntchito (kapena osagwiritsidwa ntchito) kutengera momwe zinthu ziliri:

Webinar pamtundu watsopano wa OpenShift Container Platform - 4
June 11 ku 11.00

Muphunzira chiyani:

  • Yosasinthika ya Red Hat Enterprise Linux CoreOS
  • OpenShift service mesh
  • Chimango cha opareta
  • Knative chimango

Source: www.habr.com

Kuwonjezera ndemanga