Ny tantaran'ny famoronana serivisy rahona, zatra amin'ny cyberpunk

Ny tantaran'ny famoronana serivisy rahona, zatra amin'ny cyberpunk

Rehefa miasa amin'ny IT ianao dia manomboka mahatsikaritra fa manana ny toetrany manokana ny rafitra. Izy ireo dia mety ho malefaka, mangina, hafahafa, ary henjana. Afaka misarika na mandroaka izy ireo. Amin'ny fomba iray na amin'ny fomba hafa, tsy maintsy "mifampiraharaha" amin'izy ireo ianao, manodina eo anelanelan'ny "fandrika" ary manangana rojom-pifandraisana misy azy ireo.

Noho izany dia nanana voninahitra izahay nanangana sehatra rahona, ary noho izany dia nila "nandresy lahatra" ny subsystems roa izahay mba hiara-miasa aminay. Soa ihany fa manana “fiteny API” izahay, tanana mivantana ary hafanam-po be.

Ity lahatsoratra ity dia tsy ho mafy orina ara-teknika, fa hamaritra ireo olana sendra anay nandritra ny fananganana rahona. Nanapa-kevitra ny hamariparitra ny lalantsika aho amin'ny endrika fantasy ara-teknika maivana momba ny fomba nitadiavanay fiteny iraisana misy rafitra sy ny zavatra nipoitra avy amin'izany.

Tongasoa eto amin'ny saka.

Ny fiandohan'ny lalana

Fotoana vitsy lasa izay, ny ekipanay dia nasaina nanangana sehatra rahona ho an'ny mpanjifanay. Nanana fanohanana ara-pitantanana, loharanon-karena, fitahirizana fitaovana ary fahalalahana izahay amin'ny fisafidianana ireo teknolojia hampiharana ny ampahany amin'ny rindrambaiko amin'ny serivisy.

Nisy ihany koa ny fepetra takiana:

  • mila kaonty manokana mety ny serivisy;
  • ny sehatra dia tsy maintsy ampidirina amin'ny rafitra faktiora efa misy;
  • rindrambaiko sy fitaovana: OpenStack + Tungsten Fabric (Open Contrail), izay nianaran'ny injeniera amin'ny “fahandroana” tsara.

Holazainay aminao amin'ny fotoana hafa ny fomba nanangona ny ekipa, novolavolaina ny fifandraisana amin'ny kaonty manokana ary noraisina ny fanapahan-kevitra momba ny famolavolana, raha liana ny vondrom-piarahamonina Habra.
Ny fitaovana nokasainay hampiasaina:

  • Python + Flask + Swagger + SQLAlchemy - fitambarana Python manara-penitra tanteraka;
  • Vue.js ho an'ny frontend;
  • Nanapa-kevitra ny hanao ny fifaneraserana eo amin'ny singa sy ny serivisy izahay amin'ny fampiasana Celery amin'ny AMQP.

Miandrandra fanontaniana momba ny fisafidianana Python, hazavaiko. Nahita ny akany ao amin'ny orinasanay ny fiteny ary kolontsaina kely, nefa mbola mivoatra manodidina azy. Noho izany dia nanapa-kevitra ny hanomboka hanangana ny serivisy amin'izany. Ankoatra izany, ny hafainganan'ny fampandrosoana amin'ny olana toy izany dia matetika no manapa-kevitra.

Noho izany, andao hanomboka ny fifankazarana.

Bill mangina - faktiora

Efa ela izahay no nahalala an’io lehilahy io. Nipetraka teo akaikiko foana izy ary nanisa zavatra mangina. Indraindray izy dia nampita ny fangatahan'ny mpampiasa taminay, namoaka faktiora mpanjifa ary nitantana serivisy. Lehilahy miasa mafy tsotra. Marina fa nisy zava-tsarotra. Mangina izy, indraindray misaina ary matetika ao an-tsainy.

Ny tantaran'ny famoronana serivisy rahona, zatra amin'ny cyberpunk

Ny faktiora no rafitra voalohany niezahanay ninamana. Ary ny fahasahiranana voalohany sendra anay dia tamin'ny fanodinana serivisy.

Ohatra, rehefa noforonina na voafafa dia miditra ao amin'ny filaharana faktiora anatiny ny asa iray. Noho izany, ny rafitra asa asynchronous miaraka amin'ny serivisy dia ampiharina. Mba hikarakarana ny karazana serivisy, dia nila "nametraka" ny asanay tao anatin'ity filaharana ity izahay. Ary eto dia nisedra olana izahay: tsy fahampian'ny antontan-taratasy.

Ny tantaran'ny famoronana serivisy rahona, zatra amin'ny cyberpunk

Raha tsaraina amin'ny famaritana ny API rindrambaiko, dia mbola azo atao ny mamaha ity olana ity, saingy tsy nanam-potoana hanaovana reverse engineering izahay, ka nentinay tany ivelany ny lojika ary nandamina filaharana asa teo an-tampon'ny RabbitMQ. Ny fandidiana amin'ny serivisy dia natomboky ny mpanjifa avy amin'ny kaontiny manokana, mivadika ho "asa" Selery eo amin'ny lamosina ary atao amin'ny lafiny faktiora sy OpenStack. Ny seleria dia mahatonga azy io ho mora amin'ny fitantanana asa, mandamina ny famerimberenana ary manara-maso ny sata. Azonao atao ny mamaky bebe kokoa momba ny "selera", ohatra, eto.

Ary koa, ny faktiora dia tsy nanakana ny tetikasa lany vola. Nifandray tamin'ny mpamorona, dia hitanay fa rehefa manao kajy ny antontan'isa (ary mila mampihatra marina io karazana lojika), misy sarotra interrelation ny mijanona fitsipika. Saingy ireo modely ireo dia tsy mifanaraka tsara amin'ny zava-misy iainantsika. Nanatanteraka izany tamin'ny alàlan'ny asa momba ny Seleria ihany koa izahay, mitondra ny lojika fitantanana serivisy mankany amin'ny lafiny aoriana.

Ireo olana roa voalaza etsy ambony ireo dia nahatonga ny kaody lasa nibontsina kely ary amin'ny ho avy dia tsy maintsy refactor isika mba hamindra ny lojika amin'ny fiasana amin'ny asa amin'ny serivisy misaraka. Mila mitahiry vaovao momba ny mpampiasa sy ny serivisiny ao amin'ny latabatray ihany koa izahay mba hanohanana io lojika io.

Olana iray hafa ny fahanginana.

Namaly mangina “Ok” i Billy amin'ny fangatahana API sasany. Izany no nitranga, ohatra, rehefa nandoa vola nampanantenaina nandritra ny fitsapana izahay (bebe kokoa momba izany any aoriana). Notanterahina araka ny tokony ho izy ny fangatahana ary tsy nahita lesoka izahay.

Ny tantaran'ny famoronana serivisy rahona, zatra amin'ny cyberpunk

Tsy maintsy nianatra ny logs aho rehefa niasa tamin'ny rafitra tamin'ny alàlan'ny UI. Hita fa ny faktiora dia manao fangatahana mitovy amin'izany, manova ny sehatra ho an'ny mpampiasa iray manokana, ohatra, admin, mandalo izany amin'ny su parameter.

Amin'ny ankapobeny, na dia eo aza ny banga amin'ny antontan-taratasy sy ny lesoka API madinidinika, dia nandeha tsara ny zava-drehetra. Ny logs dia azo vakiana na dia ao anatin'ny enta-mavesatra aza raha azonao ny fomba firafiny sy ny zavatra tokony hotadiavina. Ny firafitry ny angon-drakitra dia voaravaka, saingy tena lojika ary amin'ny fomba sasany dia manintona mihitsy aza.

Noho izany, raha fintinina, ny olana lehibe sendra anay teo amin'ny sehatry ny fifandraisana dia mifandraika amin'ny endri-javatra fampiharana ny rafitra manokana:

  • "endri-javatra" tsy misy taratasy izay nisy fiantraikany tamintsika tamin'ny fomba iray na hafa;
  • loharano mihidy (misoratra amin'ny C ++ ny faktiora), vokatr'izany - tsy azo atao ny mamaha ny olana 1 amin'ny fomba hafa ankoatra ny "fitsapana sy fahadisoana".

Soa ihany fa manana API midadasika be ny vokatra ary nampiditra ireto subsystems manaraka ireto ao amin'ny kaontintsika manokana izahay:

  • Module fanohanana ara-teknika - ny fangatahana avy amin'ny kaontinao manokana dia "ampidiro" amin'ny faktiora mangarahara ho an'ny mpanjifan'ny serivisy;
  • maody ara-bola - mamela anao hamoaka faktiora ho an'ny mpanjifa amin'izao fotoana izao, manao fanafoanana ary mamorona antontan-taratasy fandoavam-bola;
  • mody fanaraha-maso ny serivisy - noho izany dia tsy maintsy nampihatra ny mpitantana anay manokana izahay. Ny fampitomboana ny rafitra dia nilalao teo an-tananay ary "nampianatra" an'i Billy karazana serivisy vaovao izahay.
    Somary nanahirana ilay izy, saingy na izany na tsy izany, heveriko fa hifanaraka izahay sy Billy.

Mandeha amin'ny saha tungstène - Lamba Tungstène

Sahan'ny tungstène misy tariby an-jatony, mandalo fampahalalana an'arivony amin'izy ireo. Angonina ao anaty “paquet” ny vaovao, voasokajy, manangana lalana sarotra, toy ny majika.

Ny tantaran'ny famoronana serivisy rahona, zatra amin'ny cyberpunk

Ity no sehatry ny rafitra faharoa izay tsy maintsy ninamana - Tungsten Fabric (TF), OpenContrail taloha. Ny asany dia ny mitantana ny fitaovan'ny tambazotra, manome rindrankajy ho antsika mpampiasa. TF - SDN, dia mandrakotra ny lojika sarotra amin'ny fiasana amin'ny fitaovana tambajotra. Misy lahatsoratra tsara momba ny teknolojia mihitsy, ohatra, eto.

Ny rafitra dia mitambatra amin'ny OpenStack (resahina etsy ambany) amin'ny alàlan'ny plugin Neutron.

Ny tantaran'ny famoronana serivisy rahona, zatra amin'ny cyberpunk
Fifandraisana amin'ny serivisy OpenStack.

Nampahafantatra anay ity rafitra ity ry zalahy avy ao amin'ny departemantan'ny fampandehanana. Mampiasa ny API an'ny rafitra izahay hitantana ny tambazotran'ny serivisinay. Tsy mbola niteraka olana na fahasahiranana lehibe ho anay izany (tsy afaka miteny ho an'ireo lehilahy avy ao amin'ny OE aho), fa nisy ny hafahafa teo amin'ny fifandraisana.

Ny voalohany dia toy izao: baiko izay mitaky famoahana angon-drakitra be dia be amin'ny console ohatra rehefa mifandray amin'ny SSH dia "nahantona" fotsiny ny fifandraisana, raha tamin'ny VNC dia niasa tsara ny zava-drehetra.

Ny tantaran'ny famoronana serivisy rahona, zatra amin'ny cyberpunk

Ho an'ireo izay tsy mahalala ny olana dia toa mampihomehy ihany: ls /root dia miasa tsara, raha toa ka, ohatra, ny ambony dia "mivaingana" tanteraka. Soa ihany fa efa nisedra olana mitovy amin'izany isika teo aloha. Nanapa-kevitra tamin'ny alàlan'ny fanitsiana ny MTU amin'ny lalana avy amin'ny node compute mankany amin'ny router. Raha ny marina, tsy olana TF izany.

Ny olana manaraka dia teo akaiky teo. Tao anatin'ny fotoana iray "tsara tarehy", nanjavona ny majika amin'ny lalana, toy izany. Nitsahatra ny fitantanana ny zotra amin'ny fitaovana ny TF.

Ny tantaran'ny famoronana serivisy rahona, zatra amin'ny cyberpunk

Niara-niasa tamin'ny Openstack avy amin'ny sehatra admin izahay ary taorian'izay dia nifindra tany amin'ny haavon'ny mpampiasa ilaina. Ny SDN dia toa "hijack" ny faritry ny mpampiasa izay anaovana ny hetsika. Ny zava-misy dia ny kaonty admin iray ihany no ampiasaina hampifandraisana ny TF sy OpenStack. Tamin'ny dingana nifindra tamin'ny mpampiasa dia nanjavona ilay "majika". Nanapa-kevitra ny hamorona kaonty manokana hiarahana amin'ny rafitra. Izany dia namela anay hiasa tsy handrava ny fampandehanana fampidirana.

Silicon Lifeforms - OpenStack

Mipetraka eo akaikin'ny saha tungstène ny zavaboary silicone miendrika hafahafa. Ny tena zava-dehibe dia toa zaza efa lehibe izy ka mahatorotoro antsika amin'ny savily iray, nefa tsy misy herisetra miharihary avy aminy. Tsy miteraka tahotra izany, fa ny habeny dia miteraka tahotra. Toy izany koa ny fahasarotan'ny zava-mitranga manodidina.

Ny tantaran'ny famoronana serivisy rahona, zatra amin'ny cyberpunk

OpenStack no fototry ny sehatray.

OpenStack dia manana subsystems maromaro, izay ampiasaintsika indrindra amin'izao fotoana izao Nova, Glance ary Cinder. Ny tsirairay amin'izy ireo dia manana ny API. Nova dia tompon'andraikitra amin'ny loharanon-kajy sy ny famoronana ohatra, Cinder no tompon'andraikitra amin'ny fitantanana ny boky sy ny sarin'izy ireo, ny Glance dia serivisy sary mitantana ny maodely OS sy metainformation momba azy ireo.

Ny serivisy tsirairay dia mandeha ao anaty fitoeran-javatra iray, ary ny mpizara hafatra dia ny "bitro fotsy" - RabbitMQ.

Ity rafitra ity dia nanome anay ny olana tsy nampoizina indrindra.

Ary tsy ela dia tonga ny olana voalohany rehefa nanandrana nampifandray volume fanampiny tamin'ny mpizara izahay. Ny Cinder API dia nandà tanteraka ny hanao izany asa izany. Ny marimarina kokoa, raha mino ny OpenStack mihitsy ianao, dia napetraka ny fifandraisana, saingy tsy misy fitaovana kapila ao anatin'ny mpizara virtoaly.

Ny tantaran'ny famoronana serivisy rahona, zatra amin'ny cyberpunk

Nanapa-kevitra ny hivily izahay ary nangataka hetsika mitovy amin'ny Nova API. Ny vokatr'izany dia mifandray tsara ny fitaovana ary azo idirana ao anatin'ny server. Toa mitranga ny olana rehefa tsy mamaly ny Cinder ny fitehirizana sakana.

Fahasahiranana hafa niandry anay rehefa miasa amin'ny kapila. Tsy azo nesorina tamin'ny lohamilina ny habetsahan'ny rafitra.

Averina indray, ny OpenStack dia "mianiana" fa nanimba ny fifandraisana ary afaka miasa tsara amin'ny volume ianao izao. Saingy ny API dia tsy te hanao hetsika amin'ny kapila.

Ny tantaran'ny famoronana serivisy rahona, zatra amin'ny cyberpunk

Eto izahay dia nanapa-kevitra ny tsy hiady manokana, fa hanova ny fomba fijerinay ny lojikan'ny serivisy. Raha misy ohatra dia tsy maintsy misy ihany koa ny habetsahan'ny rafitra. Noho izany, ny mpampiasa dia tsy mbola afaka manala na manafoana ny rafitra "disk" raha tsy mamafa ny "server".

OpenStack dia rafitra saro-takarina miaraka amin'ny lojikan'ny fifandraisany manokana sy ny API ravaka. Manampy antsika amin'ny alalan'ny antontan-taratasy amin'ny antsipiriany ary mazava ho azy, fitsapana sy fahadisoana (aiza isika raha tsy misy izany).

Fizahan-toetra

Nanao fandefasana fitsapana izahay tamin'ny Desambra tamin'ny taon-dasa. Ny asa lehibe indrindra dia ny fitsapana ny tetikasanay amin'ny fomba fiadiana avy amin'ny lafiny teknika sy avy amin'ny lafiny UX. Voafantina ny mpanatrika ary nakatona ny fitsapana. Na izany aza, navelanay ihany koa ny mangataka fidirana amin'ny fitsapana amin'ny tranokalanay.

Ny fitsapana mihitsy, mazava ho azy, dia tsy nisy fotoana mahatsikaiky, satria eto no vao manomboka ny aventure.

Voalohany, somary diso ny fanombanana ny fahalianana amin'ny tetikasa ary tsy maintsy nanampy haingana ny node kajy nandritra ny fitsapana. Tranga mahazatra ho an'ny cluster, saingy nisy ihany koa ny nuance. Ny antontan-taratasy momba ny dikan-teny manokana an'ny TF dia manondro ny dikan-teny manokana amin'ny kernel izay nanandrana ny asa miaraka amin'ny vRouter. Nanapa-kevitra ny hanomboka nodes miaraka amin'ny kernel vao haingana izahay. Vokatr'izany dia tsy nahazo lalana avy amin'ny nodes ny TF. Tsy maintsy nanakodia maika ny voany aho.

Ny tantaran'ny famoronana serivisy rahona, zatra amin'ny cyberpunk

Ny fahalianana hafa dia mifandraika amin'ny fiasan'ny bokotra "manova tenimiafina" ao amin'ny kaontinao manokana.

Nanapa-kevitra ny hampiasa ny JWT izahay mba handaminana ny fidirana amin'ny kaontintsika manokana mba tsy hiasa amin'ny sessions. Satria samy hafa sy miparitaka be ny rafitra, dia mitantana ny mari-pamantaranay manokana izahay, izay "manarona" ny fotoam-pivoriana avy amin'ny faktiora sy ny token'ny OpenStack. Rehefa ovaina ny tenimiafina dia mazava ho azy fa "ratsy" ny mari-pamantarana, satria tsy manankery intsony ny angon-drakitra mpampiasa ary mila avoaka indray.

Ny tantaran'ny famoronana serivisy rahona, zatra amin'ny cyberpunk

Tsy hitanay io teboka io, ary tsy ampy ny loharanon-karena mba hamaranana haingana ity ampahany ity. Tsy maintsy nanapaka ny fampiasa izahay talohan'ny nanombohana ny fitsapana.
Amin'izao fotoana izao dia mivoaka ny mpampiasa izahay raha niova ny tenimiafina.

Na dia teo aza ireo nuance ireo dia nandeha tsara ny fitsapana. Tao anatin'ny tapa-bolana dia olona 300 teo ho eo no nijanona. Afaka nijery ny vokatra tamin'ny mason'ny mpampiasa izahay, nanandrana izany tamin'ny asa ary nanangona valiny avo lenta.

To continue

Ho an'ny maro amintsika, ity no tetikasa voalohany amin'ity ambaratonga ity. Nianatra lesona sarobidy maromaro momba ny fomba fiasan'ny ekipa sy ny fandraisana fanapahan-kevitra momba ny maritrano sy ny famolavolana izahay. Ahoana ny fampidirana ireo rafitra sarotra miaraka amin'ny loharanon-karena kely ary manodina azy ireo amin'ny famokarana.

Mazava ho azy fa misy zavatra tokony hiasa na amin'ny lafin'ny kaody sy amin'ny fifandraisana amin'ny fampidirana rafitra. Mbola tanora ilay tetikasa, saingy feno faniriana ny hampitombo azy io ho serivisy azo itokisana sy mety.

Efa vitantsika ny mandresy lahatra ireo rafitra. Bill dia mitantana am-pahavitrihana ny fanisana, ny faktiora ary ny fangatahan'ny mpampiasa ao amin'ny efi-tranony. Ny "majika" amin'ny saha tungstène dia manome antsika fifandraisana maharitra. Ary ny OpenStack irery ihany indraindray no mikorontana, mikiakiaka toy ny hoe "'WSREP dia tsy mbola nanomana node ho an'ny fampiasana fampiharana." Saingy tantara hafa tanteraka izany ...

Vao haingana izahay no namoaka ny serivisy.
Azonao atao ny mahita ny antsipiriany rehetra ao amin'ny anay tranonkala.

Ny tantaran'ny famoronana serivisy rahona, zatra amin'ny cyberpunk
CLO Development Team

rohy mahasoa

OpenStack

Lamba Tungstène

Source: www.habr.com

Add a comment