Saga stofnunar skýjaþjónustu, bragðbætt með netpönki

Saga stofnunar skýjaþjónustu, bragðbætt með netpönki

Þegar þú vinnur í upplýsingatækni ferðu að taka eftir því að kerfi hafa sinn eigin karakter. Þeir geta verið sveigjanlegir, hljóðlausir, sérvitrir og strangir. Þeir geta laðað að eða hrinda frá sér. Með einum eða öðrum hætti þarftu að „semja“ við þá, hreyfa sig á milli „gildra“ og byggja upp keðjur af samskiptum þeirra.

Þannig að við áttum þann heiður að byggja skýjapallur og til þess þurftum við að „sannfæra“ nokkur undirkerfi til að vinna með okkur. Sem betur fer höfum við „API tungumál“, beinar hendur og mikinn eldmóð.

Þessi grein mun ekki vera tæknilega harðkjarna, en mun lýsa vandamálunum sem við lentum í þegar við smíðuðum skýið. Ég ákvað að lýsa leið okkar í formi léttrar tæknilegrar fantasíu um hvernig við leituðum að sameiginlegu tungumáli með kerfum og hvað kom út úr því.

Velkomin í köttinn.

Byrjun á ferð

Fyrir nokkru síðan var teyminu okkar falið að setja af stað skýjapallur fyrir viðskiptavini okkar. Við höfðum stjórnunarstuðning, fjármagn, vélbúnaðarstafla og frelsi til að velja tækni til að innleiða hugbúnaðarhluta þjónustunnar.

Það voru líka nokkrar kröfur:

  • þjónustan þarf þægilegan persónulegan reikning;
  • vettvangurinn verður að vera samþættur núverandi innheimtukerfi;
  • hugbúnaður og vélbúnaður: OpenStack + Tungsten Fabric (Open Contrail), sem verkfræðingar okkar hafa lært að „elda“ nokkuð vel.

Við munum segja þér annað sinn frá því hvernig teymið var sett saman, persónulega reikningsviðmótið var þróað og hönnunarákvarðanir teknar, ef Habra samfélagið hefur áhuga.
Verkfærin sem við ákváðum að nota:

  • Python + Flask + Swagger + SQLAlchemy - algjörlega staðlað Python sett;
  • Vue.js fyrir framenda;
  • Við ákváðum að gera samspilið milli íhluta og þjónustu með því að nota sellerí yfir AMQP.

Ég mun útskýra fyrir spurningum um að velja Python. Tungumálið hefur fundið sinn sess í fyrirtækinu okkar og lítil, en samt menning, hefur þróast í kringum það. Því var ákveðið að hefja uppbyggingu þjónustunnar á því. Þar að auki er hraði þróunar í slíkum vandamálum oft afgerandi.

Svo, við skulum hefja kynni okkar.

Silent Bill - innheimta

Við höfum þekkt þennan mann lengi. Hann sat alltaf við hliðina á mér og taldi eitthvað þegjandi. Stundum framsendi hann notendabeiðnir til okkar, gaf út reikninga viðskiptavina og stýrði þjónustu. Venjulegur vinnusamur strákur. Að vísu voru erfiðleikar. Hann er þögull, stundum hugsi og oft í eigin huga.

Saga stofnunar skýjaþjónustu, bragðbætt með netpönki

Innheimta er fyrsta kerfið sem við reyndum að eignast vini með. Og fyrsti erfiðleikinn sem við lentum í var við vinnslu þjónustu.

Til dæmis, þegar verkefni er búið til eða eytt, fer það í innri greiðsluröðina. Þannig er kerfi ósamstilltrar vinnu við þjónustu innleitt. Til að vinna úr þjónustutegundum okkar þurftum við að „setja“ verkefni okkar í þessa biðröð. Og hér lentum við í vandamáli: skorti á skjölum.

Saga stofnunar skýjaþjónustu, bragðbætt með netpönki

Miðað við lýsinguna á forritaskilum hugbúnaðarins er enn hægt að leysa þetta vandamál, en við höfðum ekki tíma til að gera öfuga verkfræði, svo við tókum rökfræðina út og skipulögðum verkefnaröð ofan á RabbitMQ. Aðgerð á þjónustu er hafin af viðskiptavinum frá persónulegum reikningi hans, breytist í Sellerí „verkefni“ á bakhliðinni og er framkvæmd á innheimtu- og OpenStack hliðinni. Sellerí gerir það mjög þægilegt að stjórna verkefnum, skipuleggja endurtekningar og fylgjast með stöðu. Þú getur lesið meira um „sellerí“, til dæmis, hér.

Einnig stöðvaði innheimta ekki verkefni sem varð uppiskroppa með peninga. Í samskiptum við hönnuði komumst við að því að þegar við reiknum út tölfræði (og við þurfum að innleiða nákvæmlega þessa tegund af rökfræði), er flókið innbyrðis samhengi stöðvunarreglna. En þessar gerðir passa ekki vel við raunveruleika okkar. Við innleiddum það líka með verkefnum á sellerí og tókum þjónustustjórnunarrökfræðina yfir á bakhliðina.

Bæði ofangreind vandamál leiddu til þess að kóðinn varð svolítið uppblásinn og í framtíðinni verðum við að endurskoða til að færa rökfræðina fyrir að vinna með verkefni í sérstaka þjónustu. Við þurfum líka að geyma einhverjar upplýsingar um notendur og þjónustu þeirra í töflunum okkar til að styðja þessa rökfræði.

Annað vandamál er þögn.

Billy svarar þegjandi „Ok“ við sumum API beiðnum. Þetta var til dæmis tilfellið þegar við greiddum lofaðar greiðslur í prófinu (nánar um það síðar). Beiðnirnar voru framkvæmdar á réttan hátt og við sáum engar villur.

Saga stofnunar skýjaþjónustu, bragðbætt með netpönki

Ég þurfti að kynna mér annálana á meðan ég var að vinna með kerfið í gegnum HÍ. Það kom í ljós að innheimta sjálf framkvæmir svipaðar beiðnir, breytir umfanginu í tiltekinn notanda, til dæmis, admin, sendir það í su breytu.

Almennt, þrátt fyrir eyður í skjölunum og minniháttar API galla, gekk allt nokkuð vel. Hægt er að lesa annála jafnvel undir miklu álagi ef þú skilur hvernig þeir eru byggðir upp og hvað á að leita að. Uppbygging gagnagrunnsins er íburðarmikil, en nokkuð rökrétt og að sumu leyti jafnvel aðlaðandi.

Svo, til að draga saman, eru helstu vandamálin sem við lentum í á samskiptastigi tengd innleiðingareiginleikum tiltekins kerfis:

  • óskráðir „eiginleikar“ sem höfðu áhrif á okkur á einn eða annan hátt;
  • lokaður uppspretta (innheimta er skrifuð í C++), þar af leiðandi - það er ómögulegt að leysa vandamál 1 á annan hátt en „tilraun og villa“.

Sem betur fer hefur varan nokkuð umfangsmikið API og við höfum samþætt eftirfarandi undirkerfi inn í persónulega reikninginn okkar:

  • tækniaðstoðareining - beiðnir frá persónulegum reikningi þínum eru „frágengir“ til reikninga á gagnsæjan hátt fyrir þjónustuviðskiptavini;
  • fjárhagseining - gerir þér kleift að gefa út reikninga til núverandi viðskiptavina, gera afskriftir og búa til greiðsluskjöl;
  • þjónustustýringareining - til þess þurftum við að innleiða okkar eigin meðhöndlun. Stækkanleiki kerfisins lék í okkar höndum og við „kenndum“ Billy nýja tegund þjónustu.
    Þetta var smá vesen en á einn eða annan hátt held ég að við Billy munum ná saman.

Gengið í gegnum wolframakra – Tungsten dúkur

Volfram reitir með hundruðum víra, sem flytja þúsundir upplýsingabita í gegnum þá. Upplýsingum er safnað í „pakka“, flokkaðar, flóknar leiðir eru byggðar, eins og með töfrum.

Saga stofnunar skýjaþjónustu, bragðbætt með netpönki

Þetta er lén annars kerfisins sem við þurftum að eignast vini - Tungsten Fabric (TF), áður OpenContrail. Verkefni þess er að stjórna netbúnaði og veita okkur sem notendum hugbúnaðarútdrátt. TF - SDN, felur í sér flókna rökfræði þess að vinna með netbúnað. Það er góð grein um tæknina sjálfa, td. hér.

Kerfið er samþætt við OpenStack (rætt hér að neðan) í gegnum Neutron viðbótina.

Saga stofnunar skýjaþjónustu, bragðbætt með netpönki
Samspil OpenStack þjónustu.

Strákarnir úr rekstrardeildinni kynntu okkur þetta kerfi. Við notum API kerfisins til að stjórna netstafla þjónustu okkar. Það hefur ekki valdið okkur neinum alvarlegum vandamálum eða óþægindum ennþá (ég get ekki talað fyrir krakkana frá OE), en það hefur verið skrítið í samskiptum.

Sú fyrsta leit svona út: skipanir sem kröfðust þess að gefa út mikið magn af gögnum á tilviksstjórnborðið þegar tengst var í gegnum SSH einfaldlega „hengdu“ tenginguna á, en í gegnum VNC virkaði allt rétt.

Saga stofnunar skýjaþjónustu, bragðbætt með netpönki

Fyrir þá sem ekki kannast við vandamálið lítur það frekar fyndið út: ls /root virkar rétt á meðan, til dæmis, toppur „frýs“ alveg. Sem betur fer höfum við áður lent í svipuðum vandamálum. Það var ákveðið með því að stilla MTU á leiðina frá reiknihnútum til beina. Við the vegur, þetta er ekki TF vandamál.

Næsta vandamál var handan við hornið. Á einni "fallegu" augnabliki hvarf töfrinn við leiðsögn, bara svona. TF hefur hætt að stjórna leiðum á búnaðinum.

Saga stofnunar skýjaþjónustu, bragðbætt með netpönki

Við unnum með Openstack frá stjórnunarstigi og færðum okkur eftir það yfir á tilskilið notendastig. SDN virðist „ræna“ umfangi notandans sem aðgerðirnar eru framkvæmdar af. Staðreyndin er sú að sami admin reikningur er notaður til að tengja TF og OpenStack. Í skrefinu að skipta yfir í notandann hvarf „galdurinn“. Ákveðið var að stofna sérstakan aðgang til að vinna með kerfið. Þetta gerði okkur kleift að vinna án þess að brjóta samþættingarvirknina.

Silicon Lifeforms - OpenStack

Furðulega löguð sílikonvera býr nálægt wolframsviðum. Mest af öllu lítur það út eins og ofvaxið barn sem getur kremað okkur með einni sveiflu, en það er engin augljós árásargirni sem kemur frá honum. Það veldur ekki ótta, en stærð þess hvetur til ótta. Eins og flókið það sem er að gerast í kring.

Saga stofnunar skýjaþjónustu, bragðbætt með netpönki

OpenStack er kjarninn í vettvangi okkar.

OpenStack er með nokkur undirkerfi, þar af sem við notum Nova, Glance og Cinder mest. Hver þeirra hefur sitt eigið API. Nova ber ábyrgð á tölvuauðlindum og gerð tilvika, Cinder ber ábyrgð á stjórnun magns og skyndimynda þeirra, Glance er myndaþjónusta sem heldur utan um stýrikerfissniðmát og metaupplýsingar á þeim.

Hver þjónusta keyrir í gámi og skilaboðamiðlarinn er „hvíta kanínan“ - RabbitMQ.

Þetta kerfi olli okkur óvæntustu vandræðum.

Og fyrsta vandamálið var ekki lengi að koma þegar við reyndum að tengja auka bindi við netþjóninn. Cinder API neitaði algjörlega að framkvæma þetta verkefni. Nánar tiltekið, ef þú trúir OpenStack sjálfum, er tengingunni komið á, en það er ekkert diskur inni í sýndarþjóninum.

Saga stofnunar skýjaþjónustu, bragðbætt með netpönki

Við ákváðum að fara krók og fórum fram á sömu aðgerð frá Nova API. Niðurstaðan er sú að tækið tengist rétt og er aðgengilegt innan netþjónsins. Svo virðist sem vandamálið eigi sér stað þegar blokkgeymsla bregst ekki við Cinder.

Annar erfiðleiki beið okkar þegar unnið var með diska. Ekki var hægt að aftengja hljóðstyrk kerfisins frá þjóninum.

Aftur, OpenStack sjálft „sver“ að það hafi eyðilagt tenginguna og nú geturðu unnið með hljóðstyrk sérstaklega. En API vill ekki framkvæma aðgerðir á disknum.

Saga stofnunar skýjaþjónustu, bragðbætt með netpönki

Hér ákváðum við að berjast ekki sérstaklega, heldur breyta sýn okkar á rökfræði þjónustunnar. Ef það er tilvik verður það líka að vera kerfismagn. Þess vegna getur notandinn ekki enn fjarlægt eða slökkt á „disknum“ kerfisins án þess að eyða „þjóninum“.

OpenStack er frekar flókið sett af kerfum með sína eigin samskiptarökfræði og íburðarmikið API. Okkur er hjálpað með nokkuð ítarlegum skjölum og að sjálfsögðu tilraunum og mistökum (hvar værum við án þeirra).

Reynsluhlaup

Við gerðum tilraunaútgáfu í desember á síðasta ári. Aðalverkefnið var að prófa verkefnið okkar í bardagaham frá tæknilegu hliðinni og frá UX hliðinni. Áhorfendum var boðið valið og prófunum var lokað. Hins vegar höfum við einnig skilið eftir þann möguleika að biðja um aðgang að prófunum á vefsíðunni okkar.

Prófið sjálft var auðvitað ekki án fyndna augnablika því hér eru ævintýri okkar rétt að byrja.

Í fyrsta lagi mátum við nokkuð rangt áhugann á verkefninu og þurftum fljótt að bæta við reiknihnútum við prófunina. Algengt mál fyrir klasa, en það voru nokkur blæbrigði hér líka. Skjölin fyrir tiltekna útgáfu af TF gefa til kynna tiltekna útgáfu kjarnans sem vinna með vRouter var prófuð á. Við ákváðum að ræsa hnúta með nýrri kjarna. Þar af leiðandi fékk TF ekki leiðir frá hnútunum. Ég þurfti bráðlega að rúlla kjarnanum til baka.

Saga stofnunar skýjaþjónustu, bragðbætt með netpönki

Önnur forvitni er tengd virkni hnappsins „Breyta lykilorði“ á persónulegum reikningi þínum.

Við ákváðum að nota JWT til að skipuleggja aðgang að persónulegum reikningi okkar til að vinna ekki með fundum. Þar sem kerfin eru fjölbreytt og víða dreifð, stjórnum við okkar eigin tákni, þar sem við „vefjum“ lotum frá innheimtu og tákni frá OpenStack. Þegar lykilorðinu er breytt „verur táknið að sjálfsögðu illa“ þar sem notendagögnin eru ekki lengur gild og það þarf að gefa þau út aftur.

Saga stofnunar skýjaþjónustu, bragðbætt með netpönki

Við misstum sjónar á þessu atriði og það var einfaldlega ekki nóg fjármagn til að klára þetta verk fljótt. Við þurftum að slíta virknina rétt áður en prófið var sett af stað.
Eins og er tökum við notandanum út ef lykilorðinu hefur verið breytt.

Þrátt fyrir þessi blæbrigði gengu prófanir vel. Á nokkrum vikum komu um 300 manns við. Við gátum horft á vöruna með augum notenda, prófað hana í verki og safnað hágæða endurgjöf.

Til að halda áfram

Fyrir mörg okkar er þetta fyrsta verkefnið á þessum mælikvarða. Við lærðum fjölda dýrmæta lexíu um hvernig á að vinna sem teymi og taka byggingar- og hönnunarákvarðanir. Hvernig á að samþætta flókin kerfi með lítið fjármagn og rúlla þeim í framleiðslu.

Auðvitað er eitthvað til að vinna í bæði hvað varðar kóða og viðmót kerfissamþættingar. Verkefnið er frekar ungt en við erum full af metnaði til að rækta það í áreiðanlega og þægilega þjónustu.

Okkur hefur þegar tekist að sannfæra kerfin. Bill sér um talningu, innheimtu og notendabeiðnir af skyldurækni í skápnum sínum. „Galdur“ wolframsviðanna veitir okkur stöðug samskipti. Og aðeins OpenStack verður stundum duttlungafullur og hrópar eitthvað eins og "'WSREP hefur ekki enn undirbúið hnút fyrir notkun forrita." En það er allt önnur saga...

Við opnuðum nýlega þjónustuna.
Þú getur fundið allar upplýsingar á okkar Online.

Saga stofnunar skýjaþjónustu, bragðbætt með netpönki
CLO þróunarteymi

gagnlegir krækjur

OpenStack

Wolfram efni

Heimild: www.habr.com

Bæta við athugasemd