Eachdraidh cruthachadh seirbheis neòil, air a blasadh le cyberpunk

Eachdraidh cruthachadh seirbheis neòil, air a blasadh le cyberpunk

Mar a bhios tu ag obair ann an IT, tòisichidh tu a’ mothachadh gu bheil an caractar fhèin aig siostaman. Faodaidh iad a bhith sùbailte, sàmhach, annasach, agus cruaidh. Faodaidh iad tarraing air ais no tarraing às. Aon dòigh no dòigh eile, feumaidh tu “barganachadh” leotha, gluasad eadar “slocan” agus slabhraidhean a thogail den eadar-obrachadh aca.

Mar sin bha e na urram dhuinn àrd-ùrlar sgòthan a thogail, agus airson seo dh’ fheumadh sinn “toirt air" fo-shiostam no dhà a bhith ag obair còmhla rinn. Gu fortanach, tha “cànan API againn”, làmhan dìreach agus tòrr dealas.

Cha bhith an artaigil seo cruaidh gu teicnigeach, ach bheir e cunntas air na duilgheadasan a choinnich sinn fhad ‘s a bha sinn a’ togail an sgòth. Cho-dhùin mi cunntas a thoirt air an t-slighe againn ann an cruth fantasy teicnigeach aotrom mu mar a bha sinn a’ coimhead airson cànan cumanta le siostaman agus dè a thàinig a-mach às.

Fàilte don chat.

Tòiseachadh an turais

O chionn ùine, bha e mar dhleastanas air an sgioba againn àrd-ùrlar sgòthan a chuir air bhog airson ar teachdaichean. Bha taic riaghlaidh againn, goireasan, cruach bathar-cruaidh agus saorsa ann a bhith a’ taghadh theicneòlasan gus am pàirt bathar-bog den t-seirbheis a bhuileachadh.

Bha grunn riatanasan ann cuideachd:

  • feumaidh an t-seirbheis cunntas pearsanta goireasach;
  • feumaidh an àrd-ùrlar a bhith air fhilleadh a-steach don t-siostam cunntais a th’ ann mar-thà;
  • bathar-bog is bathar-cruaidh: OpenStack + Tungsten Fabric (Open Contrail), a tha na h-innleadairean againn air ionnsachadh a bhith “a’ còcaireachd ”gu math.

Innsidh sinn uair eile dhut mu mar a chaidh an sgioba a chruinneachadh, chaidh an eadar-aghaidh cunntas pearsanta a leasachadh agus chaidh co-dhùnaidhean dealbhaidh a dhèanamh, ma tha ùidh aig coimhearsnachd Habra.
Na h-innealan a chuir sinn romhainn a chleachdadh:

  • Python + Flask + Swagger + SQLAlchemy - seata Python gu tur àbhaisteach;
  • Vue.js for frontend;
  • Cho-dhùin sinn an eadar-obrachadh eadar co-phàirtean agus seirbheisean a dhèanamh a’ cleachdadh Celery thairis air AMQP.

A’ dùileachadh cheistean mu bhith a’ taghadh Python, mìnichidh mi. Tha a’ chànan air àite sònraichte a lorg nar companaidh agus tha cultar beag, ach fhathast, air fàs timcheall oirre. Mar sin, chaidh co-dhùnadh tòiseachadh air an t-seirbheis a thogail air. A bharrachd air an sin, tha astar leasachaidh ann an leithid de dhuilgheadasan gu tric cinnteach.

Mar sin, tòisichidh sinn ar n-eòlas.

Bile sàmhach - bileadh

Tha sinn air a bhith eòlach air an duine seo airson ùine mhòr. Bhiodh e an-còmhnaidh na shuidhe ri mo thaobh agus a’ cunntadh rudeigin gu sàmhach. Aig amannan chuir e air adhart iarrtasan luchd-cleachdaidh thugainn, chuir e a-mach fàirdealan teachdaiche, agus stiùir e seirbheisean. Fear àbhaisteach dìcheallach. Fìor, bha duilgheadasan ann. Tha e sàmhach, uaireannan smaoineachail agus gu tric na inntinn fhèin.

Eachdraidh cruthachadh seirbheis neòil, air a blasadh le cyberpunk

Is e bileadh a’ chiad shiostam a dh’ fheuch sinn ri caraidean a dhèanamh leis. Agus b’ e a’ chiad duilgheadas a thachair dhuinn nuair a bha sinn a’ giullachd sheirbheisean.

Mar eisimpleir, nuair a thèid a chruthachadh no a dhubhadh às, bidh gnìomh a’ dol a-steach don ciudha bileachaidh a-staigh. Mar sin, tha siostam de dh'obair asyncronach le seirbheisean air a bhuileachadh. Gus na seòrsaichean seirbheis againn a phròiseasadh, dh’ fheumadh sinn ar gnìomhan “a chuir” anns a ’chiudha seo. Agus an seo ruith sinn a-steach do dhuilgheadas: dìth sgrìobhainnean.

Eachdraidh cruthachadh seirbheis neòil, air a blasadh le cyberpunk

A ’breithneachadh leis an tuairisgeul air an API bathar-bog, tha e fhathast comasach an duilgheadas seo fhuasgladh, ach cha robh ùine againn innleadaireachd cùil a dhèanamh, agus mar sin ghabh sinn an loidsig a-muigh agus chuir sinn ciudha gnìomh air dòigh a bharrachd air RabbitMQ. Tha gnìomhachd air seirbheis air a thòiseachadh leis an neach-dèiligidh bhon chunntas pearsanta aige, a’ tionndadh gu bhith na “ghnìomh” Celery air an deireadh-sheachdain agus air a dhèanamh air an taobh bileachaidh agus OpenStack. Tha soilire ga dhèanamh gu math goireasach gnìomhan a riaghladh, ath-aithris a chuir air dòigh agus sùil a chumail air inbhe. Faodaidh tu barrachd a leughadh mu “ soilire ”, mar eisimpleir, an seo.

Cuideachd, cha do chuir cunntas stad air pròiseact a ruith a-mach à airgead. A 'conaltradh ris an luchd-leasachaidh, fhuair sinn a-mach nuair a thathar a' cunntadh staitistig (agus feumaidh sinn an seòrsa loidsig seo a chur an gnìomh), tha eadar-cheangal iom-fhillte ann de riaghailtean stad. Ach chan eil na modailean sin a 'freagairt gu math ris na fìrinnean againn. Chuir sinn an gnìomh e cuideachd tro ghnìomhan air Celery, a’ toirt loidsig riaghladh seirbheis chun taobh cùil.

Mar thoradh air an dà dhuilgheadas gu h-àrd dh’ fhàs an còd beagan fo bhlàth agus san àm ri teachd feumaidh sinn ath-shuidheachadh gus an loidsig airson obrachadh le gnìomhan a ghluasad gu seirbheis air leth. Feumaidh sinn cuideachd beagan fiosrachaidh mu luchd-cleachdaidh agus na seirbheisean aca a stòradh anns na clàran againn gus taic a thoirt don reusanachadh seo.

Is e duilgheadas eile sàmhchair.

Bidh Billy gu sàmhach a’ freagairt “Ceart gu leòr” ri cuid de dh’ iarrtasan API. Bha seo fìor, mar eisimpleir, nuair a rinn sinn pàighidhean de phàighidhean a chaidh a ghealltainn tron ​​​​deuchainn (barrachd air sin nas fhaide air adhart). Chaidh na h-iarrtasan a chuir an gnìomh gu ceart agus chan fhaca sinn mearachdan sam bith.

Eachdraidh cruthachadh seirbheis neòil, air a blasadh le cyberpunk

B’ fheudar dhomh na logaichean a sgrùdadh fhad ‘s a bha mi ag obair leis an t-siostam tron ​​​​UI. Thionndaidh e a-mach gu bheil am bile fhèin a’ coileanadh iarrtasan coltach ris, ag atharrachadh an raon gu neach-cleachdaidh sònraichte, mar eisimpleir, rianachd, ga thoirt seachad anns an su parameter.

San fharsaingeachd, a dh'aindeoin na beàrnan anns na sgrìobhainnean agus lochdan beaga API, chaidh a h-uile càil gu math. Faodar logaichean a leughadh eadhon fo luchd trom ma thuigeas tu mar a tha iad air an structaradh agus dè a choimheadas tu. Tha structar an stòr-dàta sgeadaichte, ach gu math loidsigeach agus ann an cuid de dhòighean eadhon tarraingeach.

Mar sin, airson geàrr-chunntas, tha na prìomh dhuilgheadasan a choinnich sinn aig an ìre eadar-obrachaidh co-cheangailte ri feartan gnìomhachaidh siostam sònraichte:

  • “feartan” neo-chlàraichte a thug buaidh oirnn ann an dòigh air choireigin;
  • stòr dùinte (tha cunntas sgrìobhte ann an C ++), mar thoradh air an sin - tha e do-dhèanta fuasgladh fhaighinn air duilgheadas 1 ann an dòigh sam bith ach a-mhàin “deuchainn is mearachd”.

Gu fortanach, tha API gu math farsaing aig an toradh agus tha sinn air na fo-shiostaman a leanas a thoirt a-steach don chunntas pearsanta againn:

  • modal taic theicnigeach - tha iarrtasan bhon chunntas pearsanta agad “proxited” gu bhith a ’toirt cunntas follaiseach dha teachdaichean seirbheis;
  • modal ionmhais - a’ leigeil leat fàirdealan a chuir a-mach gu teachdaichean gnàthach, sgrìobhadh dheth agus sgrìobhainnean pàighidh a ghineadh;
  • modal smachd seirbheis - airson seo bha againn ri ar inneal-làimhseachaidh fhèin a chuir an gnìomh. Bha leudachadh an t-siostaim nar làmhan agus rinn sinn “teagasg” dha Billy seòrsa ùr de sheirbheis.
    Bha e na dhuilgheadas, ach aon dòigh no dòigh eile, tha mi a’ smaoineachadh gun tèid Billy agus mise air adhart.

A 'coiseachd tro raointean tungsten - Tungsten Fabric

Bidh raointean tungstain làn de cheudan de uèirichean, a’ dol seachad air mìltean de phìosan fiosrachaidh troimhe. Tha fiosrachadh air a chruinneachadh ann am “pacaidean”, air am parsadh, a’ togail slighean iom-fhillte, mar gum biodh le draoidheachd.

Eachdraidh cruthachadh seirbheis neòil, air a blasadh le cyberpunk

Is e seo raon an dàrna siostam leis an robh againn ri caraidean a dhèanamh - Tungsten Fabric (TF), air an robh OpenContrail roimhe seo. Is e an obair aige a bhith a’ riaghladh uidheamachd lìonraidh, a’ toirt tarraing air bathar-bog dhuinn mar luchd-cleachdaidh. TF - SDN, a’ toirt a-steach loidsig iom-fhillte a bhith ag obair le uidheamachd lìonra. Tha artaigil math ann mun teicneòlas fhèin, mar eisimpleir, an seo.

Tha an siostam ceangailte ri OpenStack (air a dheasbad gu h-ìosal) tron ​​​​plugan Neutron.

Eachdraidh cruthachadh seirbheis neòil, air a blasadh le cyberpunk
Eadar-obrachadh de sheirbheisean OpenStack.

Thug na balaich bhon roinn obrachaidh sinn a-steach don t-siostam seo. Bidh sinn a’ cleachdadh API an t-siostaim gus stac lìonra nan seirbheisean againn a riaghladh. Cha do dh’ adhbhraich e fìor dhuilgheadasan no mì-ghoireasachd dhuinn fhathast (chan urrainn dhomh bruidhinn airson na balaich bhon OE), ach tha cuid de rudan neònach air a bhith ann an eadar-obrachadh.

Bha coltas mar seo air a’ chiad fhear: bha òrdughan a dh’ fheumadh tòrr dàta a chuir a-mach chun chonsail mar eisimpleir nuair a bha iad a’ ceangal tro SSH dìreach “croch suas” an ceangal, agus tro VNC bha a h-uile dad ag obair ceart.

Eachdraidh cruthachadh seirbheis neòil, air a blasadh le cyberpunk

Dhaibhsan nach eil eòlach air an duilgheadas, tha e a 'coimhead gu math èibhinn: tha ls / root ag obair gu ceart, agus, mar eisimpleir, bidh am mullach "a' reothadh" gu tur. Gu fortanach, tha sinn air duilgheadasan co-chosmhail fhaighinn roimhe seo. Chaidh co-dhùnadh le bhith a’ gleusadh an MTU air an t-slighe bho na nodan coimpiutaireachd gu na routers. Air an t-slighe, chan e duilgheadas TF a tha seo.

Bha an ath dhuilgheadas dìreach timcheall air an oisean. Ann an aon mhionaid “àlainn”, dh’ fhalbh draoidheachd an t-slighe, dìreach mar sin. Tha TF air sgur a bhith a’ stiùireadh slighe air an uidheamachd.

Eachdraidh cruthachadh seirbheis neòil, air a blasadh le cyberpunk

Dh’ obraich sinn le Openstack bhon ìre rianachd agus às deidh sin ghluais sinn chun ìre cleachdaiche riatanach. Tha e coltach gu bheil SDN a’ “gabhail thairis” farsaingeachd an neach-cleachdaidh leis a bheil na gnìomhan air an coileanadh. Is e an fhìrinn gu bheil an aon chunntas rianachd air a chleachdadh gus TF agus OpenStack a cheangal. Aig ìre gluasad chun neach-cleachdaidh, chaidh an “draoidheachd” à sealladh. Chaidh co-dhùnadh cunntas fa leth a chruthachadh gus obrachadh leis an t-siostam. Leig seo leinn a bhith ag obair gun a bhith a’ briseadh a’ ghnìomhachd amalachaidh.

Cruthan-beatha Silicon - OpenStack

Tha creutair silicone le cumadh neònach a’ fuireach faisg air achaidhean tungsten. Gu h-iomlan, tha e coltach ri leanabh a tha air fàs nas sine a dh'fhaodas sinn a phronnadh le aon swing, ach chan eil ionnsaigh follaiseach a 'tighinn bhuaithe. Chan eil e ag adhbhrachadh eagal, ach tha a mheud a 'brosnachadh eagal. Mar a tha iom-fhillteachd na tha a’ tachairt mun cuairt.

Eachdraidh cruthachadh seirbheis neòil, air a blasadh le cyberpunk

Tha OpenStack aig cridhe an àrd-ùrlar againn.

Tha grunn fo-shiostaman aig OpenStack, agus bidh sinn a’ cleachdadh Nova, Glance agus Cinder gu gnìomhach an-dràsta. Tha a API fhèin aig gach fear dhiubh. Tha uallach air Nova airson goireasan coimpiutaireachd agus cruthachadh shuidheachaidhean, tha uallach air Cinder airson a bhith a’ riaghladh meudan agus na dealbhan aca, is e seirbheis ìomhaighean a th’ ann an Glance a bhios a’ riaghladh teamplaidean OS agus fiosrachadh meatain orra.

Bidh gach seirbheis a’ ruith ann an soitheach, agus is e am broker teachdaireachd an “coineanach geal” - RabbitMQ.

Thug an siostam seo dhuinn an trioblaid as ris nach robh dùil.

Agus cha robh a’ chiad duilgheadas fada a’ tighinn nuair a dh’ fheuch sinn ri meud a bharrachd a cheangal ris an fhrithealaiche. Dhiùlt an Cinder API an obair seo a choileanadh. Nas mionaidiche, ma tha thu a’ creidsinn OpenStack fhèin, tha an ceangal stèidhichte, ach chan eil inneal diosc taobh a-staigh an fhrithealaiche mas-fhìor.

Eachdraidh cruthachadh seirbheis neòil, air a blasadh le cyberpunk

Chuir sinn romhainn turas a ghabhail agus dh’ iarr sinn an aon rud bhon Nova API. Is e an toradh gu bheil an inneal a’ ceangal gu ceart agus gu bheil e ruigsinneach taobh a-staigh an fhrithealaiche. Tha e coltach gu bheil an duilgheadas a’ tachairt nuair nach freagair bloc-stòradh ri Cinder.

Bha duilgheadas eile a' feitheamh oirnn nuair a bha sinn ag obair le diosgan. Cha b' urrainn dhuinn meud an t-siostaim a dhì-cheangal on fhrithealaiche.

A-rithist, tha OpenStack fhèin “a’ mionnachadh ”gu bheil e air an ceangal a sgrios agus a-nis faodaidh tu obrachadh gu ceart le tomhas-lìonaidh air leth. Ach gu sònraichte cha robh an API airson gnìomhachd a dhèanamh air an diosc.

Eachdraidh cruthachadh seirbheis neòil, air a blasadh le cyberpunk

An seo chuir sinn romhainn gun a bhith a’ sabaid gu sònraichte, ach ar sealladh atharrachadh air loidsig na seirbheis. Ma tha eisimpleir ann, feumaidh meud siostam a bhith ann cuideachd. Mar sin, chan urrainn don neach-cleachdaidh fhathast an siostam “diosc” a thoirt air falbh no a chuir dheth gun a bhith a ’sguabadh às an“ frithealaiche”.

Tha OpenStack na sheata de shiostaman caran iom-fhillte le a loidsig eadar-obrachaidh fhèin agus API sgeadaichte. Tha sinn air ar cuideachadh le sgrìobhainnean gu math mionaideach agus, gu dearbh, deuchainn agus mearachd (càit am biodh sinn às aonais).

Ruith deuchainn

Chuir sinn air bhog deuchainn san Dùbhlachd an-uiridh. B ’e am prìomh obair deuchainn a dhèanamh air a’ phròiseact againn ann am modh sabaid bhon taobh theicnigeach agus bhon taobh UX. Chaidh cuireadh a thoirt don luchd-èisteachd gu roghnach agus chaidh an deuchainn a dhùnadh. Ach, tha sinn cuideachd air an roghainn fhàgail gus cothrom iarraidh air deuchainn air an làrach-lìn againn.

Cha robh an deuchainn fhèin, gu dearbh, às aonais na h-amannan èibhinn aige, oir is ann an seo a tha na tachartasan againn dìreach a’ tòiseachadh.

An toiseach, rinn sinn measadh ceàrr air an ùidh sa phròiseact agus bha againn ri nodan coimpiutaireachd a chuir ris gu sgiobalta tron ​​​​deuchainn. Cùis cumanta airson brabhsair, ach bha cuid de nuances an seo cuideachd. Tha na sgrìobhainnean airson dreach sònraichte de TF a’ nochdadh an dreach sònraichte den kernel air an deach obair le vRouter a dhearbhadh. Cho-dhùin sinn nodan a chuir air bhog le kernels nas ùire. Mar thoradh air an sin, cha d 'fhuair TF slighean bho na nodan. B’ fheudar dhomh na kernels a thoirt air ais gu h-èiginneach.

Eachdraidh cruthachadh seirbheis neòil, air a blasadh le cyberpunk

Tha feòrachas eile co-cheangailte ri gnìomhachd a’ phutan “atharraich facal-faire” nad chunntas pearsanta.

Cho-dhùin sinn JWT a chleachdadh gus ruigsinneachd chun chunntas pearsanta againn a chuir air dòigh gus nach obraich sinn le seiseanan. Leis gu bheil na siostaman eadar-mheasgte agus farsaing, bidh sinn a’ riaghladh ar comharra fhèin, anns am bi sinn a’ “cuartachadh” seiseanan bho chunntasan agus comharra bho OpenStack. Nuair a thèid am facal-faire atharrachadh, tha an comharra, gu dearbh, “a’ dol dona ”, leis nach eil dàta an neach-cleachdaidh dligheach tuilleadh agus feumar a chuir a-mach a-rithist.

Eachdraidh cruthachadh seirbheis neòil, air a blasadh le cyberpunk

Chaill sinn sealladh air a’ phuing seo, agus gu sìmplidh cha robh goireasan gu leòr ann airson am pìos seo a chrìochnachadh gu sgiobalta. B’ fheudar dhuinn an comas-gnìomh a ghearradh a-mach dìreach mus deach an deuchainn a chuir air bhog.
An-dràsta tha sinn a’ logadh a-mach an neach-cleachdaidh ma chaidh am facal-faire atharrachadh.

A dh'aindeoin na nuances sin, chaidh deuchainnean gu math. Ann am beagan sheachdainean, stad timcheall air 300 neach le bhith. B’ urrainn dhuinn coimhead air an toradh tro shùilean luchd-cleachdaidh, deuchainn a dhèanamh air ann an gnìomh agus fios air ais de chàileachd àrd a chruinneachadh.

Airson a leantainn

Dha mòran againn, is e seo a’ chiad phròiseact den sgèile seo. Dh’ionnsaich sinn grunn leasanan luachmhor mu bhith ag obair mar sgioba agus a’ dèanamh cho-dhùnaidhean ailtireachd is dealbhaidh. Mar as urrainn dhut siostaman iom-fhillte fhilleadh a-steach le glè bheag de ghoireasan agus an toirt a-steach gu cinneasachadh.

Gu dearbh, tha rudeigin ri obrachadh air an dà chuid a thaobh còd agus aig eadar-aghaidh amalachadh siostam. Tha am pròiseact gu math òg, ach tha sinn làn rùintean a bhith ga fhàs gu bhith na sheirbheis earbsach is goireasach.

Tha sinn mar-thà air a bhith comasach air na siostaman a bhrosnachadh. Bidh Bill gu dìcheallach a’ làimhseachadh cunntais, bilean, agus iarrtasan luchd-cleachdaidh anns a’ chlòsaid aige. Tha “draoidheachd” raointean tungsten a’ toirt dhuinn conaltradh seasmhach. Agus is e dìreach OpenStack a bhios uaireannan a’ faighinn capricious, ag èigheach rudeigin mar “‘ Chan eil WSREP fhathast air nód ullachadh airson cleachdadh tagraidh. ” Ach is e sgeulachd gu tur eadar-dhealaichte a tha sin ...

Chuir sinn air bhog an t-seirbheis o chionn ghoirid.
Gheibh thu a-mach a h-uile mion-fhiosrachadh air ar làrach.

Eachdraidh cruthachadh seirbheis neòil, air a blasadh le cyberpunk
Sgioba Leasachaidh CLO

Ceanglaichean feumail

OpenStack

Stuth Tungsten

Source: www.habr.com

Cuir beachd ann