Mbiri yakulengedwa kwa ntchito yamtambo, yokongoletsedwa ndi cyberpunk

Mbiri yakulengedwa kwa ntchito yamtambo, yokongoletsedwa ndi cyberpunk

Pamene mukugwira ntchito mu IT, mumayamba kuzindikira kuti machitidwe ali ndi khalidwe lawo. Atha kukhala osinthasintha, osalankhula, osasintha, komanso okhwima. Amatha kukopa kapena kuthamangitsa. Mwanjira ina, muyenera "kukambirana" nawo, kuyendetsa pakati pa "misampha" ndikumanga maunyolo a mgwirizano wawo.

Chifukwa chake tinali ndi mwayi wopanga nsanja yamtambo, ndipo chifukwa cha izi tidafunikira "kunyengerera" ma subsystem angapo kuti agwire nafe ntchito. Mwamwayi, tili ndi "chinenero cha API", manja olunjika komanso chidwi chochuluka.

Nkhaniyi sikhala yovuta mwaukadaulo, koma ifotokoza zovuta zomwe tidakumana nazo pomanga mtambo. Ndinaganiza zofotokozera njira yathu mwachidziwitso chopepuka cha momwe tinkafunira chinenero chodziwika ndi machitidwe ndi zomwe zinatulukamo.

Takulandilani kumphaka.

Chiyambi cha njira

Kale, gulu lathu linali ndi ntchito yoyambitsa nsanja yamtambo kwa makasitomala athu. Tinali ndi chithandizo cha kasamalidwe, zothandizira, stack hardware ndi ufulu posankha matekinoloje kuti tigwiritse ntchito pulogalamu ya pulogalamuyo.

Panalinso zofunika zingapo:

  • ntchitoyo imafunikira akaunti yoyenera;
  • nsanja iyenera kuphatikizidwa mu ndondomeko yomwe ilipo;
  • mapulogalamu ndi hardware: OpenStack + Tungsten Fabric (Open Contrail), yomwe akatswiri athu aphunzira "kuphika" bwino.

Tidzakuuzani nthawi ina za momwe gululo linasonkhanitsira, mawonekedwe a akaunti yaumwini adapangidwa ndipo zisankho zapangidwe zinapangidwa, ngati gulu la Habra likufuna.
Zida zomwe tasankha kugwiritsa ntchito:

  • Python + Flask + Swagger + SQLAlchemy - Python yokhazikika yokhazikika;
  • Vue.js kwa frontend;
  • Tinaganiza zochita mgwirizano pakati pa zigawo ndi ntchito pogwiritsa ntchito Celery pa AMQP.

Poyembekezera mafunso okhudza kusankha Python, ndifotokoza. Chilankhulo chapeza kagawo kakang'ono mu kampani yathu ndipo chikhalidwe chaching'ono, komabe, chapanga mozungulira. Choncho, anaganiza zoyamba kumanga utumiki pa izo. Komanso, kuthamanga kwa chitukuko m'mavuto otere nthawi zambiri kumakhala kotsimikizika.

Kotero, tiyeni tiyambe kudziwana kwathu.

Bill Chete - kulipira

Tamudziwa munthuyu kuyambira kalekale. Nthawi zonse ankakhala pafupi ndi ine n’kumawerengera mwakachetechete. Nthawi zina ankatumiza zopempha kwa ife, kupereka ma invoice a kasitomala, ndi ntchito zoyendetsedwa. Munthu wamba wolimbikira ntchito. Zowona, panali zovuta. Iye amakhala chete, nthawi zina woganiza ndipo nthawi zambiri mu malingaliro ake.

Mbiri yakulengedwa kwa ntchito yamtambo, yokongoletsedwa ndi cyberpunk

Kulipira ndi njira yoyamba yomwe tidayesera kupanga nayo mabwenzi. Ndipo vuto loyamba lomwe tidakumana nalo linali pokonza mautumiki.

Mwachitsanzo, ikapangidwa kapena kufufutidwa, ntchito imapita pamzere wamalipiro wamkati. Chifukwa chake, dongosolo la asynchronous ntchito ndi mautumiki limakhazikitsidwa. Kuti tichite mitundu yathu yautumiki, tinkafunika "kuyika" ntchito zathu pamzerewu. Ndipo apa tinakumana ndi vuto: kusowa zolemba.

Mbiri yakulengedwa kwa ntchito yamtambo, yokongoletsedwa ndi cyberpunk

Poyang'ana kufotokozera kwa pulogalamu ya API, n'zotheka kuthetsa vutoli, koma tinalibe nthawi yosintha uinjiniya, kotero tidatengera malingalirowo panja ndikukonza mzere wantchito pamwamba pa RabbitMQ. Opaleshoni pa ntchito imayambitsidwa ndi kasitomala kuchokera ku akaunti yake yaumwini, imasanduka "ntchito" ya Selari kumbuyo ndipo imachitidwa pambali yolipira ndi OpenStack. Selari imapangitsa kukhala kosavuta kuyang'anira ntchito, kulinganiza kubwereza komanso kuyang'anira momwe zinthu zilili. Mutha kuwerenga zambiri za "celery", mwachitsanzo, apa.

Komanso, kulipira sikunaimitse ntchito yomwe inasowa ndalama. Kulankhulana ndi omanga, tidapeza kuti powerengera ziwerengero (ndipo tiyenera kuchita ndendende malingaliro amtunduwu), pali kulumikizana kovuta kwa malamulo oyimitsa. Koma zitsanzozi sizikugwirizana bwino ndi zenizeni zathu. Tidakhazikitsanso kudzera mu ntchito za Celery, kutengera malingaliro owongolera ntchito kumbali yakumbuyo.

Mavuto onse omwe ali pamwambawa adapangitsa kuti code ikhale yotupa pang'ono ndipo m'tsogolomu tidzayenera kukonzanso kuti tisunthire malingaliro ogwirira ntchito ndi ntchito zina. Tiyeneranso kusunga zambiri za ogwiritsa ntchito ndi ntchito zawo m'matebulo athu kuti tithandizire malingaliro awa.

Vuto lina ndikukhala chete.

Billy amayankha mwakachetechete "Chabwino" pazopempha zina za API. Izi zinali choncho, mwachitsanzo, pamene tinkalipira malipiro omwe tinalonjeza panthawi ya mayeso (zambiri pambuyo pake). Zopemphazo zidachitidwa molondola ndipo sitinawone zolakwika zilizonse.

Mbiri yakulengedwa kwa ntchito yamtambo, yokongoletsedwa ndi cyberpunk

Ndinayenera kuphunzira zipika ndikugwira ntchito ndi dongosolo kudzera mu UI. Zinapezeka kuti kulipira palokha kumachita zopempha zomwezo, kusintha kuchuluka kwa wogwiritsa ntchito, mwachitsanzo, admin, ndikudutsa pagawo la su.

Nthawi zambiri, ngakhale panali mipata muzolemba ndi zolakwika zazing'ono za API, zonse zidayenda bwino. Zipika zimatha kuwerengedwa ngakhale mutalemedwa kwambiri ngati mumvetsetsa momwe zimapangidwira komanso zomwe muyenera kuyang'ana. Mapangidwe a nkhokweyo ndi okongola, koma zomveka komanso mwa njira zina ngakhale zokongola.

Chifukwa chake, kunena mwachidule, zovuta zazikulu zomwe tidakumana nazo panthawi yolumikizirana ndizogwirizana ndi magwiridwe antchito adongosolo linalake:

  • β€œzizindikiro” zosalembedwa zimene zinatikhudza mwanjira ina;
  • gwero lotsekedwa (malipiro amalembedwa mu C ++), chifukwa chake - ndizosatheka kuthetsa vuto 1 mwanjira ina iliyonse kupatula "mayesero ndi zolakwika".

Mwamwayi, malondawa ali ndi API yochulukirapo ndipo taphatikiza magawo otsatirawa mu akaunti yathu:

  • gawo lothandizira zaukadaulo - zopempha kuchokera ku akaunti yanu "zikusinthidwa" kuti mupereke ndalama zowonekera kwa makasitomala;
  • gawo lazachuma - limakupatsani mwayi wopereka ma invoice kwa makasitomala apano, kulemba zolemba ndikupanga zikalata zolipira;
  • Service control module - pa izi tidayenera kukhazikitsa chowongolera chathu. Kukula kwa dongosololi kudachitika m'manja mwathu ndipo "tinamuphunzitsa" Billy mtundu watsopano wautumiki.
    Zinali zovuta pang'ono, koma mwanjira ina kapena imzake, ndikuganiza kuti Billy ndi ine tidzagwirizana.

Kuyenda m'minda ya tungsten - Tungsten Fabric

Minda ya Tungsten inali ndi mawaya mazana ambiri, ndikumadutsamo zidziwitso zambiri. Chidziwitso chimasonkhanitsidwa mu "mapaketi", ogawidwa, kumanga njira zovuta, ngati ndi matsenga.

Mbiri yakulengedwa kwa ntchito yamtambo, yokongoletsedwa ndi cyberpunk

Uwu ndiye gawo la dongosolo lachiwiri lomwe tidapanga mabwenzi - Tungsten Fabric (TF), yomwe kale inali OpenContrail. Ntchito yake ndikuwongolera zida zapaintaneti, kupereka chidziwitso cha pulogalamu kwa ife monga ogwiritsa ntchito. TF - SDN, ikuphatikiza malingaliro ovuta akugwira ntchito ndi zida zamaneti. Pali nkhani yabwino yokhudza ukadaulo womwewo, mwachitsanzo, apa.

Dongosololi likuphatikizidwa ndi OpenStack (zokambidwa pansipa) kudzera pa Neutron plugin.

Mbiri yakulengedwa kwa ntchito yamtambo, yokongoletsedwa ndi cyberpunk
Kulumikizana kwa ntchito za OpenStack.

Anyamata ochokera ku dipatimenti yogwira ntchito anatidziwitsa za dongosololi. Timagwiritsa ntchito pulogalamu ya API kuyang'anira kuchuluka kwa mautumiki athu. Sizinatibweretsere mavuto aakulu kapena zosokoneza panobe (sindingathe kuyankhula za anyamata ochokera ku OE), koma pakhala pali zosamvetsetseka pakuyanjana.

Yoyamba inkawoneka ngati iyi: malamulo omwe amafunikira kutulutsa kuchuluka kwa data ku cholumikizira cholumikizira mukalumikiza kudzera pa SSH "kungopachika" kulumikizana, pomwe kudzera pa VNC zonse zidayenda bwino.

Mbiri yakulengedwa kwa ntchito yamtambo, yokongoletsedwa ndi cyberpunk

Kwa iwo omwe sadziwa bwino vutoli, zikuwoneka zoseketsa: ls / mizu imagwira ntchito bwino, pomwe, mwachitsanzo, pamwamba "imaundana" kwathunthu. Mwamwayi, takumanapo ndi mavuto ngati amenewa kale. Zinasankhidwa pokonza MTU panjira yochokera ku ma compute kupita ku ma routers. Mwa njira, ili si vuto la TF.

Vuto lotsatira linali pafupi. Mu mphindi imodzi "yokongola", matsenga a njira adazimiririka, monga choncho. TF yasiya kuyang'anira njira pazida.

Mbiri yakulengedwa kwa ntchito yamtambo, yokongoletsedwa ndi cyberpunk

Tidagwira ntchito ndi Openstack kuchokera pamlingo wa admin ndipo titasamukira ku mulingo wofunikira. SDN ikuwoneka kuti "ikubera" kuchuluka kwa wogwiritsa ntchito yemwe zochitazo zimachitidwa. Chowonadi ndi chakuti akaunti yomweyo ya admin imagwiritsidwa ntchito kulumikiza TF ndi OpenStack. Pa sitepe yosinthira kwa wogwiritsa ntchito, "matsenga" adatha. Zinaganiza zopanga akaunti yosiyana kuti igwire ntchito ndi dongosolo. Izi zidatipangitsa kuti tigwire ntchito popanda kuphwanya magwiridwe antchito.

Silicon Lifeforms - OpenStack

Cholengedwa chowoneka modabwitsa cha silicone chimakhala pafupi ndi minda ya tungsten. Koposa zonse, zikuwoneka ngati mwana wokulirapo yemwe angatiphwanye ndi kugwedezeka kumodzi, koma palibe chiwawa chodziwikiratu chomwe chimachokera kwa iye. Sichimayambitsa mantha, koma kukula kwake kumayambitsa mantha. Momwemonso zovuta zomwe zikuchitika kuzungulira.

Mbiri yakulengedwa kwa ntchito yamtambo, yokongoletsedwa ndi cyberpunk

OpenStack ndiye maziko a nsanja yathu.

OpenStack ili ndi ma subsystem angapo, omwe timagwiritsa ntchito Nova, Glance ndi Cinder mwachangu. Aliyense wa iwo ali ndi API yake. Nova ndiyomwe imayang'anira zida zowerengera ndikupanga zochitika, Cinder ali ndi udindo woyang'anira ma voliyumu ndi zithunzi zawo, Glance ndi ntchito yazithunzi yomwe imayang'anira ma templates a OS ndi chidziwitso pa iwo.

Ntchito iliyonse imayenda mu chidebe, ndipo wotumizira uthenga ndi "kalulu woyera" - RabbitMQ.

Dongosololi linatipatsa vuto lomwe sitinkaliyembekezera.

Ndipo vuto loyamba silinachedwe kubwera pamene tinayesa kulumikiza voliyumu yowonjezera ku seva. Cinder API inakana mwatsatanetsatane kugwira ntchitoyi. Momwemonso, ngati mukukhulupirira OpenStack palokha, kulumikizana kumakhazikitsidwa, koma palibe chipangizo cha disk mkati mwa seva yeniyeni.

Mbiri yakulengedwa kwa ntchito yamtambo, yokongoletsedwa ndi cyberpunk

Tinaganiza zopatutsa ndikupempha zomwezo ku Nova API. Chotsatira chake ndi chakuti chipangizochi chimagwirizanitsa bwino ndipo chimapezeka mkati mwa seva. Zikuwoneka kuti vuto limachitika pamene block-storage sayankha Cinder.

Vuto lina linkatiyembekezera pogwira ntchito ndi ma disks. Voliyumu yamakina sinathe kulumikizidwa ku seva.

Apanso, OpenStack palokha "ikulumbira" kuti yawononga kulumikizana ndipo tsopano mutha kugwira ntchito moyenera ndi voliyumu padera. Koma API kwenikweni sinafune kuchita ntchito pa disk.

Mbiri yakulengedwa kwa ntchito yamtambo, yokongoletsedwa ndi cyberpunk

Apa tinaganiza kuti tisamenyane makamaka, koma kusintha maganizo athu pamalingaliro a utumiki. Ngati pali chitsanzo, payenera kukhalanso kuchuluka kwa dongosolo. Choncho, wosuta sangathe kuchotsa kapena kuletsa "disk" dongosolo popanda kuchotsa "seva".

OpenStack ndi makina ovuta kwambiri okhala ndi malingaliro ake olumikizirana komanso API yokongola. Timathandizidwa ndi zolemba zatsatanetsatane komanso, zowona, kuyesa ndi zolakwika (tikanakhala kuti popanda izo).

Kuthamanga kwa mayeso

Tidachita zoyeserera mu Disembala chaka chatha. Ntchito yayikulu inali kuyesa pulojekiti yathu mumayendedwe omenyera kuchokera kumbali yaukadaulo komanso kuchokera ku mbali ya UX. Omvera anaitanidwa mwachisawawa ndipo kuyesa kunatsekedwa. Komabe, tasiyanso mwayi wopempha mwayi woyezetsa patsamba lathu.

Mayeso omwewo, ndithudi, sanali opanda mphindi zake zoseketsa, chifukwa apa ndipamene maulendo athu akuyamba kumene.

Choyamba, tidayesa molakwika chidwi cha polojekitiyi ndipo tidawonjezera mwachangu ma node panthawi ya mayeso. Mlandu wamba wamagulu, koma panalinso ma nuances apa. Zolemba za mtundu wina wa TF zikuwonetsa mtundu wa kernel womwe ntchito ndi vRouter idayesedwa. Tinaganiza zoyambitsa ma node okhala ndi maso aposachedwa. Zotsatira zake, TF sinalandire njira kuchokera ku node. Ndinayenera kubweza maso mwachangu.

Mbiri yakulengedwa kwa ntchito yamtambo, yokongoletsedwa ndi cyberpunk

Chidwi china chikugwirizana ndi magwiridwe antchito a batani la "kusintha mawu achinsinsi" mu akaunti yanu.

Tinaganiza zogwiritsa ntchito JWT kukonza mwayi wopeza akaunti yathu kuti tisagwire ntchito ndi magawo. Popeza machitidwewa ndi osiyanasiyana komanso amwazikana, timayang'anira tokeni yathu, momwe "timangirira" magawo kuchokera kumalipiro ndi chizindikiro chochokera ku OpenStack. Pamene mawu achinsinsi asinthidwa, chizindikirocho, ndithudi, "chimapita koyipa", popeza deta ya osuta sichithanso ndipo iyenera kubwezeretsedwanso.

Mbiri yakulengedwa kwa ntchito yamtambo, yokongoletsedwa ndi cyberpunk

Sitinaiwale mfundoyi, ndipo panalibe zipangizo zokwanira kuti timalize ntchitoyi mwamsanga. Tinayenera kudula magwiridwe antchito tisanayambe kuyesa.
Pakadali pano timatuluka wosuta ngati mawu achinsinsi asinthidwa.

Ngakhale izi zinali zovuta, kuyesa kunayenda bwino. M’milungu ingapo, anthu pafupifupi 300 anaima. Tinatha kuyang'ana malonda kudzera m'maso mwa ogwiritsa ntchito, kuyesa ndikuchitapo kanthu ndikusonkhanitsa mayankho apamwamba.

Kuti apitirize

Kwa ambiri aife, iyi ndi ntchito yoyamba ya sikelo iyi. Tinaphunzira zinthu zingapo zofunika zokhudza mmene tingagwirire ntchito mogwirizana ndi kupanga zisankho za kamangidwe ndi kamangidwe. Momwe mungaphatikizire machitidwe ovuta omwe ali ndi chuma chochepa ndikugubuduza kupanga.

Zoonadi, pali china chake chogwirira ntchito ponse pawiri pama code komanso pamayendedwe ophatikizira machitidwe. Ntchitoyi ndi yaying'ono, koma ndife odzaza ndi zikhumbo zokulitsa kukhala ntchito yodalirika komanso yabwino.

Tatha kale kukopa machitidwe. Bill amasamalira moyenera kuwerengera, kulipira, ndi zopempha za ogwiritsa ntchito m'chipinda chake. "Matsenga" a minda ya tungsten amatipatsa ife kulankhulana kokhazikika. Ndipo OpenStack yokha nthawi zina imakhala yopanda pake, kufuula ngati "'WSREP sinakonzekerebe node yogwiritsa ntchito." Koma ndi nkhani yosiyana kotheratu...

Posachedwa tayambitsa ntchito.
Mutha kudziwa zambiri patsamba lathu malo.

Mbiri yakulengedwa kwa ntchito yamtambo, yokongoletsedwa ndi cyberpunk
Gulu lachitukuko la CLO

maulalo othandiza

OpenStack

Nsalu ya Tungsten

Source: www.habr.com

Kuwonjezera ndemanga