Nhoroondo yekugadzirwa kwegore sevhisi, yakanatswa necyberpunk

Nhoroondo yekugadzirwa kwegore sevhisi, yakanatswa necyberpunk

Sezvaunoshanda muIT, unotanga kuona kuti masisitimu ane hunhu hwawo. Vanogona kuchinjika, vakanyarara, eccentric, uye vakaomarara. Vanogona kukwezva kana kudzinga. Imwe nzira kana imwe, iwe unofanirwa "kutaurirana" navo, kufambisa pakati pe "pitfalls" uye kuvaka maketani ekudyidzana kwavo.

Saka takava nerukudzo rwekuvaka chikuva chegore, uye nekuda kweizvi taifanira "kunyengerera" akati wandei ma subsystem kuti ashande nesu. Neraki, isu tine "API mutauro", maoko akananga uye nekufarira kwakawanda.

Ichi chinyorwa hachizove chakaomarara, asi chinotsanangura matambudziko atakasangana nawo tichivaka gore. Ndakasarudza kutsanangura nzira yedu muchimiro chechiedza chetekiniki fantasy pamusoro pekuti takatsvaga sei mutauro wakajairika nemasystem uye zvakabuda mazviri.

Kugamuchirwa kukati.

Kutanga kwenzira

Imwe nguva yapfuura, timu yedu yakapihwa basa rekutangisa gore chikuva kune vatengi vedu. Isu takanga tine rutsigiro rwemanejimendi, zviwanikwa, hardware stack uye rusununguko mukusarudza matekinoroji ekushandisa chikamu chesoftware chebasa.

Paivawo nechiverengero chezvaidiwa:

  • iyo sevhisi inoda yakanakira account account;
  • puratifomu inofanirwa kubatanidzwa mune iripo yekubhadharisa system;
  • software uye hardware: OpenStack + Tungsten Fabric (Open Contrail), iyo mainjiniya edu akadzidza "kubika" zvakanaka.

Tichakuudza imwe nguva nezvekuti boka rakaunganidzwa sei, iyo account account account yakagadziridzwa uye sarudzo dzekugadzira dzakaitwa, kana nharaunda yeHabra ichifarira.
Zvishandiso zvatakasarudza kushandisa:

  • Python + Flask + Swagger + SQLAlchemy - yakazara yakazara Python set;
  • Vue.js for frontend;
  • Isu takasarudza kuita kudyidzana pakati pezvikamu nemasevhisi tichishandisa Celery pamusoro pe AMQP.

Kutarisira mibvunzo nezve kusarudza Python, ini ndichatsanangura. Mutauro wakawana niche yayo mukambani yedu uye diki, asi ichiri tsika, yakagadziridzwa pairi. Nokudaro, zvakasarudzwa kutanga kuvaka basa pairi. Uyezve, kukurumidza kwekukura mumatambudziko akadaro kunowanzoita sarudzo.

Saka, ngatitange kuzivana kwedu.

Silent Bill - kubhadhara

Takazivana nemukomana uyu kwenguva refu. Aigara pedyo neni achiverenga chimwe chinhu chinyararire. Dzimwe nguva aitumira zvikumbiro zvevashandisi kwatiri, aipa mainvoice evatengi, uye masevhisi anogadziriswa. Munhuwo zvake anoshanda nesimba. Chokwadi, paiva nematambudziko. Akanyarara, dzimwe nguva anofunga uye kazhinji mupfungwa dzake.

Nhoroondo yekugadzirwa kwegore sevhisi, yakanatswa necyberpunk

Kubhadhara ndiyo yekutanga sisitimu yatakaedza kuita hushamwari nayo. Uye dambudziko rekutanga ratakasangana naro raive pakugadzirisa masevhisi.

Semuenzaniso, kana yagadzirwa kana kudzimwa, basa rinopinda mukati memutsetse wekubhadharisa. Saka, hurongwa hweasynchronous basa nemasevhisi hunoitwa. Kugadzirisa mhando dzesevhisi, taifanira "kuisa" mabasa edu mumutsetse uyu. Uye pano takamhanyira mudambudziko: kushaya zvinyorwa.

Nhoroondo yekugadzirwa kwegore sevhisi, yakanatswa necyberpunk

Tichitarisa netsanangudzo yesoftware API, zvichiri kugona kugadzirisa dambudziko iri, asi isu takanga tisina nguva yekuita reverse engineering, saka takatora pfungwa kunze uye takaronga mutsara webasa pamusoro peRabbitMQ. Kuvhiya pasevhisi kunotangwa nemutengi kubva kuaccount yake, inoshanduka kuita Celery "basa" kubackend uye rinoitwa padivi rekubhadhara uye OpenStack. Celery inoita kuti zvive nyore kubata mabasa, kuronga kudzokorora uye kutarisa mamiriro. Unogona kuverenga zvakawanda nezve "celery", semuenzaniso, pano.

Uyewo, kubhadhara hakuna kumisa chirongwa chainge chapera mari. Kutaurirana nevagadziri, takaona kuti kana tichiverenga manhamba (uye isu tinofanirwa kuita chaizvo rudzi urwu rwepfungwa), pane kupindirana kwakaoma kwemitemo yekumisa. Asi mamodheru aya haaenderani zvakanaka nezvatiri chaizvo. Isu takazviitawo kuburikidza nemabasa paCelery, tichitora sevhisi manejimendi kudivi rekumashure.

Matambudziko ese ari pamusoro apa akaita kuti kodhi iite kuputika zvishoma uye mune ramangwana isu tichafanirwa refactor kuitira kufambisa pfungwa yekushanda nemabasa mune imwe sevhisi. Isu tinodawo kuchengetedza rumwe ruzivo nezve vashandisi uye masevhisi avo mumatafura edu kutsigira pfungwa iyi.

Rimwe dambudziko kunyarara.

Billy anopindura chinyararire "Ok" kune zvimwe zvikumbiro zveAPI. Izvi ndizvo zvakaitika, semuenzaniso, patakabhadhara mari yakavimbiswa panguva yekuyedzwa (zvimwe pane gare gare). Zvikumbiro zvakaitwa nemazvo uye hatina kuona kukanganisa.

Nhoroondo yekugadzirwa kwegore sevhisi, yakanatswa necyberpunk

Ini ndaifanira kudzidza matanda ndichishanda nehurongwa kuburikidza neUI. Zvakazoitika kuti kubhadhara pachayo kunoita zvikumbiro zvakafanana, kushandura chiyero kune chakananga mushandisi, semuenzaniso, admin, kuchipfuura mune su parameter.

Kazhinji, kunyangwe paine mapundu ari muzvinyorwa uye zvidiki zvikanganiso zveAPI, zvese zvakafamba zvakanaka. Matanda anogona kuverengwa kunyangwe pasi pemutoro unorema kana iwe uchinzwisisa kuti akaumbwa sei uye chii chekutarisa. Chimiro chedatabase chakashongedzwa, asi chine musoro uye mune dzimwe nzira kunyange chinokwezva.

Saka, kupfupisa, matambudziko makuru atakasangana nawo padanho rekudyidzana ane chekuita nekuita maficha eiyo chaiyo system:

  • β€œzvinhu” zvisina kunyorwa zvakatikanganisa neimwe nzira;
  • yakavharwa sosi (kubhadhara kwakanyorwa muC ++), somugumisiro - hazvibviri kugadzirisa dambudziko 1 neimwe nzira kunze kwe "kuedza uye kukanganisa".

Neraki, chigadzirwa chine API yakawedzera uye isu takabatanidza anotevera subsystems muakaundi yedu pachedu:

  • tekinoroji yekutsigira module - zvikumbiro kubva kuakaundi yako pachako "zvakagadzirirwa" kubhadharisa zviri pachena kune vatengi vebasa;
  • zvemari module - inokubvumira kuti ubudise invoice kune vatengi vemazuva ano, nyora-offs uye gadzira magwaro ekubhadhara;
  • service control module - pane izvi taifanira kuita yedu yekubata. Kuwedzerwa kwehurongwa hwakatambirwa mumaoko edu uye isu "takadzidzisa" Billy rudzi rutsva rwesevhisi.
    Kwaive kunetsana, asi neimwe nzira, ndinofunga ini naBilly tichanzwanana.

Kufamba nemuminda tungsten - Tungsten Fabric

Minda yeTungsten yakazara nemazana ewaya, ichipfuura zviuru zvezvimedu zveruzivo kuburikidza nazvo. Ruzivo runounganidzwa mu "mapaketi", akapatsanurwa, achivaka nzira dzakaoma, sekunge nemashiripiti.

Nhoroondo yekugadzirwa kwegore sevhisi, yakanatswa necyberpunk

Iyi ndiyo dura rechipiri system yataifanira kuita shamwari - Tungsten Fabric (TF), yaimbova OpenContrail. Basa rayo ndere kubata network michina, ichipa software yekubvisa kwatiri sevashandisi. TF - SDN, inovhara iyo yakaoma logic yekushanda netiweki michina. Pane chinyorwa chakanaka nezve tekinoroji pachayo, semuenzaniso, pano.

Iyo sisitimu inosanganiswa neOpenStack (yakakurukurwa pazasi) kuburikidza neNeutron plugin.

Nhoroondo yekugadzirwa kwegore sevhisi, yakanatswa necyberpunk
Kudyidzana kwe OpenStack masevhisi.

Vakomana vedhipatimendi rekushanda vakatizivisa kune iyi system. Isu tinoshandisa iyo system API kubata network stack yemasevhisi edu. Izvo hazvina kutikonzera matambudziko akakomba kana zvipingamupinyi zvakadaro (ini handigone kutaura kune vakomana kubva kuOE), asi pane zvimwe zvisinganzwisisiki mukubatana.

Yekutanga yaitaridzika seizvi: mirairo yaida kuburitsa yakawanda data kune muenzaniso console kana uchibatanidza kuburikidza neSSH yakango "turika" kubatana, nepo kuburikidza neVNC zvese zvaishanda nemazvo.

Nhoroondo yekugadzirwa kwegore sevhisi, yakanatswa necyberpunk

Kune avo vasina kujairana nedambudziko, zvinotaridzika zvinosetsa: ls / mudzi unoshanda nemazvo, nepo, semuenzaniso, kumusoro "kunoomesa" zvachose. Sezvineiwo, takambosangana nematambudziko akadaro. Izvo zvakasarudzwa nekugadzirisa MTU munzira kubva kumakomputa node kuenda kune ma routers. Nenzira, iyi haisi dambudziko reTF.

Dambudziko rakatevera rakanga rava pedyo. Mune imwe nguva "yakanaka", mashiripiti ekufambisa akanyangarika, saizvozvo. TF yamira kutonga nzira pamidziyo.

Nhoroondo yekugadzirwa kwegore sevhisi, yakanatswa necyberpunk

Takashanda neOpenstack kubva padanho rekutonga uye mushure meizvozvo takatamira kune inodiwa mushandisi. SDN inoratidzika se "kubira" chiyero chemushandisi uyo zviito zvinoitwa. Icho chokwadi ndechekuti iyo imwechete admin account inoshandiswa kubatanidza TF uye OpenStack. Padanho rekuchinja kumushandisi, "mashiripiti" akanyangarika. Zvakasarudzwa kugadzira imwe account yekushanda nehurongwa. Izvi zvakatibvumira kushanda pasina kutyora kubatanidza kushanda.

Silicon Lifeforms - OpenStack

Chisikwa chinoshamisa chesilicone chinogara padyo neminda ye tungsten. Kupfuura zvese, zvinoita semwana akakura anogona kutipwanya nekuzunguza kumwe chete, asi hapana hutsinye huri pachena hunobva kwaari. Hazvikonzeri kutya, asi kukura kwayo kunokurudzira kutya. Sezvakaita kuoma kwezvinhu zviri kuitika kumativi ose.

Nhoroondo yekugadzirwa kwegore sevhisi, yakanatswa necyberpunk

OpenStack ndiyo musimboti wepuratifomu yedu.

OpenStack ine akati wandei masisitimu, ayo atino shandisa Nova, Glance uye Cinder zvakanyanya. Imwe neimwe ine API yayo. Nova ine basa rekushandisa compute zviwanikwa uye kugadzirwa kwezviitiko, Cinder ine basa rekutonga mavhoriyamu nemifananidzo yavo, Glance ibasa remufananidzo rinobata OS matemplate uye metainformation pazviri.

Sevhisi yega yega inomhanya mumudziyo, uye meseji broker ndiye "tsuro chena" - RabbitMQ.

Hurongwa uhu hwakatipa dambudziko risingatarisirwi.

Uye dambudziko rekutanga harina kunonoka kuuya patakaedza kubatanidza imwe vhoriyamu kune server. Iyo Cinder API yakaramba zvachose kuita basa iri. Kunyanya, kana iwe uchitenda OpenStack pachayo, iyo yekubatanidza inotangwa, asi hapana dhisiki mudziyo mukati meiyo virtual server.

Nhoroondo yekugadzirwa kwegore sevhisi, yakanatswa necyberpunk

Isu takasarudza kutora nzira uye takakumbira chiitiko chimwe chete kubva kuNova API. Mhedzisiro yacho ndeyekuti mudziyo unobatanidza nemazvo uye unowanikwa mukati mesevha. Zvinotaridza kuti dambudziko rinoitika kana block-yekuchengetedza isingapindure kuCinder.

Rimwe dambudziko rakatimirira pakushanda nemadhisiki. Hhoriyamu yehurongwa haina kubviswa kubva pasevha.

Zvekare, OpenStack pachayo "inopika" kuti yaparadza chinongedzo uye ikozvino unogona kunyatsoshanda nevhoriyamu zvakasiyana. Asi iyo API yaisada kuita mashandiro padhisiki.

Nhoroondo yekugadzirwa kwegore sevhisi, yakanatswa necyberpunk

Pano takasarudza kusarwa kunyanya, asi kuchinja maonero edu epfungwa yebasa. Kana pane chiitiko, panofanirawo kuva nehuwandu hwehurongwa. Naizvozvo, mushandisi haakwanise kubvisa kana kudzima system "disk" pasina kudzima "server".

OpenStack seti yakaomesesa seti ine yayo yekudyidzana logic uye yakashongedzwa API. Isu tinobatsirwa nemagwaro akadzama uye, hongu, kuedza uye kukanganisa (tingadai tiri papi pasina iyo).

Test run

Takaita bvunzo yekutanga muna Zvita gore rapfuura. Basa guru raive rekuyedza chirongwa chedu mukurwisa mode kubva kudivi rehunyanzvi uye kubva kudivi reUX. Vateereri vakakokwa zvakasarudzwa uye kuedza kwakavharwa. Nekudaro, isu takasiyawo sarudzo yekukumbira kuwana kuyedzwa pawebhusaiti yedu.

Muedzo pachawo, hongu, waive usina nguva dzayo dzinosetsa, nekuti apa ndipo parikungotanga kushanya kwedu.

Chekutanga, isu takaongorora zvisizvo kufarira mupurojekiti uye taifanira kukurumidza kuwedzera compute nodes panguva yebvunzo. Mhosva yakajairika yesumbu, asi pakanga paine mamwe nuances pano zvakare. Zvinyorwa zveimwe vhezheni yeTF inoratidza iyo chaiyo vhezheni yekernel yakaedzwa basa nevRouter. Isu takasarudza kuvhura node neazvino kernels. Nekuda kweizvozvo, TF haina kugamuchira nzira kubva kumanodhi. Ndakatozoita zvekukungurutsa tsanga.

Nhoroondo yekugadzirwa kwegore sevhisi, yakanatswa necyberpunk

Chimwe chishuwo chine chekuita nekushanda kwebhatani rekuti "chinja password" muaccount yako.

Isu takafunga kushandisa JWT kuronga kupinda kune yedu account account kuti tisashande nezvikamu. Sezvo masisitimu akasiyana uye akapararira zvakanyanya, isu tinodzora isu pachedu, umo isu "tinoputira" zvikamu kubva mukubhadhara uye chiratidzo kubva kuOpenStack. Kana password ichishandurwa, chiratidzo, chokwadi, "chinoenda chakaipa", sezvo data yevashandisi isingachashandi uye inoda kudzorerwa zvakare.

Nhoroondo yekugadzirwa kwegore sevhisi, yakanatswa necyberpunk

Isu takarasa kuona iyi pfungwa, uye pakanga pasina zviwanikwa zvakakwana kuti tipedze chidimbu ichi nekukurumidza. Taifanira kucheka kushanda kwacho tisati tatanga bvunzo.
Parizvino isu tinobuda mushandisi kana password yachinjwa.

Pasinei nema nuances aya, kuyedzwa kwakafamba zvakanaka. Mumavhiki mashomanana, vanhu vanenge 300 vakamira. Isu takakwanisa kutarisa chigadzirwa kuburikidza nemaziso evashandisi, kuchiyedza muchiito uye kuunganidza emhando yepamusoro mhinduro.

Zvichaenderera mberi

Kune vazhinji vedu, iyi ndiyo yekutanga chirongwa chechiyero ichi. Takadzidza zvidzidzo zvinokosha zvakati kuti tingashanda sei sechikwata uye kuita sarudzo dzekuvaka nekugadzira. Maitiro ekubatanidza masisitimu akaomesesa ane zviwanikwa zvidiki uye nekuatenderedza mukugadzira.

Ehezve, pane chimwe chinhu chekushanda pane zvese zviri zviviri maererano nekodhi uye pane iyo interfaces yekubatanidza system. Iyo purojekiti idiki, asi isu takazara neshungu dzekuikura ive sevhisi yakavimbika uye iri nyore.

Takatokwanisa kunyengerera masystem. Bill anonyatsobata kuverenga, kubhadharisa, uye zvikumbiro zvemushandisi muwadhiropu yake. "Mashiripiti" eminda ye tungsten inotipa kukurukurirana kwakagadzikana. Uye chete OpenStack dzimwe nguva inova isina simba, ichidanidzira chimwe chinhu senge "'WSREP haisati yagadzirira node yekushandisa application." Asi iyo inyaya yakasiyana zvachose ...

Nguva pfupi yadarika takaparura sevhisi.
Iwe unogona kuwana ruzivo rwese pane yedu site.

Nhoroondo yekugadzirwa kwegore sevhisi, yakanatswa necyberpunk
Chikwata chekuvandudza CLO

Useful links

OpenStack

Tungsten Fabric

Source: www.habr.com

Voeg