ʻO ka mōʻaukala o ka hoʻokumu ʻana i kahi lawelawe kapua, i ʻono ʻia me ka cyberpunk

ʻO ka mōʻaukala o ka hoʻokumu ʻana i kahi lawelawe kapua, i ʻono ʻia me ka cyberpunk

Ke hana nei ʻoe ma IT, hoʻomaka ʻoe e ʻike i nā ʻōnaehana i ko lākou ʻano ponoʻī. Hiki iā lākou ke maʻalahi, noho mālie, eccentric, a me ka hope. Hiki iā lākou ke huki a hoʻokuke paha. ʻO kekahi ala a i ʻole, pono ʻoe e "kūkākūkā" me lākou, e hoʻololi i waena o nā "pitfalls" a kūkulu i nā kaulahao o kā lākou pilina.

No laila ua loaʻa iā mākou ka hanohano o ke kūkulu ʻana i kahi paepae ao, a no kēia pono mākou e "hoʻohuli" i kekahi mau subsystems e hana pū me mākou. ʻO ka mea pōmaikaʻi, loaʻa iā mākou kahi "ʻōlelo API", nā lima pololei a me ka nui o ka hoihoi.

ʻAʻole paʻakikī kēia ʻatikala, akā e wehewehe i nā pilikia i loaʻa iā mākou i ke kūkulu ʻana i ke ao. Ua hoʻoholo wau e wehewehe i ko mākou ala ma ke ʻano o ka ʻenehana ʻenehana māmā e pili ana i kā mākou ʻimi ʻana i kahi ʻōlelo maʻamau me nā ʻōnaehana a me nā mea i puka mai.

Welina mai i ka popoki.

Ka hoomaka ana o ke ala

I kekahi manawa i hala aku nei, ua hoʻokau ʻia kā mākou hui i ka hoʻolaha ʻana i kahi paepae ao no kā mākou mea kūʻai aku. Loaʻa iā mākou ke kākoʻo hoʻokele, nā kumu waiwai, nā lako lako a me ke kūʻokoʻa i ke koho ʻana i nā ʻenehana e hoʻokō i ka ʻāpana polokalamu o ka lawelawe.

Aia kekahi mau koi:

  • pono ka lawelawe i kahi moʻokāki pilikino kūpono;
  • pono e hoʻohui ʻia ka paepae i loko o ka ʻōnaehana pili kālā e kū nei;
  • lako polokalamu a me nā lako lako: OpenStack + Tungsten Fabric (Open Contrail), i aʻo ʻia e kā mākou poʻe ʻenekinia e "kuʻi" maikaʻi loa.

E haʻi aku mākou iā ʻoe i kekahi manawa e pili ana i ke ʻano o ka hui ʻana o ka hui, ua hoʻomohala ʻia ke kikowaena moʻokāki pilikino a ua hoʻoholo ʻia nā hoʻoholo hoʻolālā, inā makemake ka hui Habra.
ʻO nā mea hana a mākou i hoʻoholo ai e hoʻohana:

  • Python + Flask + Swagger + SQLAlchemy - kahi hoʻonohonoho Python maʻamau loa;
  • Vue.js no ka mua;
  • Ua hoʻoholo mākou e hana i ka pilina ma waena o nā ʻāpana a me nā lawelawe e hoʻohana ana iā Celery ma luna o AMQP.

Ke kali nei i nā nīnau e pili ana i ke koho ʻana iā Python, e wehewehe wau. Ua loaʻa i ka ʻōlelo kona niche i loko o kā mākou hui a ua ulu ka moʻomeheu liʻiliʻi a puni ia. No laila, ua hoʻoholo ʻia e hoʻomaka i ke kūkulu ʻana i ka lawelawe ma luna. Eia kekahi, hoʻoholo pinepine ka wikiwiki o ka hoʻomohala ʻana i ia mau pilikia.

No laila, e hoʻomaka kākou i ka ʻike.

Bila Silent - billing

Ua ʻike mākou i kēia kanaka no ka manawa lōʻihi. Noho mau ʻo ia ma koʻu ʻaoʻao a helu hāmau i kekahi mea. I kekahi manawa ua hoʻouna ʻo ia i nā noi mea hoʻohana iā mākou, hoʻopuka i nā invoice o ka mea kūʻai aku, a mālama i nā lawelawe. He kanaka hana maʻamau. ʻOiaʻiʻo, aia nā pilikia. Ua hāmau ʻo ia, i kekahi manawa noʻonoʻo a pinepine i kona manaʻo ponoʻī.

ʻO ka mōʻaukala o ka hoʻokumu ʻana i kahi lawelawe kapua, i ʻono ʻia me ka cyberpunk

ʻO ka pila ka ʻōnaehana mua a mākou i hoʻāʻo ai e launa pū me. A ʻo ka pilikia mua i loaʻa iā mākou i ka wā e hoʻoponopono ai i nā lawelawe.

No ka laʻana, ke hana ʻia a holoi ʻia paha, hele kekahi hana i loko o ka pila pili kālā kūloko. No laila, hoʻokō ʻia kahi ʻōnaehana hana asynchronous me nā lawelawe. No ka hana ʻana i kā mākou ʻano lawelawe, pono mākou e "hoʻokomo" i kā mākou mau hana i loko o kēia pila. A eia mākou i holo i kahi pilikia: nele i ka palapala.

ʻO ka mōʻaukala o ka hoʻokumu ʻana i kahi lawelawe kapua, i ʻono ʻia me ka cyberpunk

Ke hoʻoholo nei ma ka wehewehe ʻana o ka polokalamu API, hiki nō ke hoʻoponopono i kēia pilikia, akā ʻaʻole i loaʻa iā mākou ka manawa e hana ai i ka ʻenekinia hoʻohuli, no laila lawe mākou i ka loiloi ma waho a hoʻonohonoho i kahi pila hana ma luna o RabbitMQ. Hoʻomaka ʻia kahi hana ma kahi lawelawe e ka mea kūʻai mai kāna moʻokāki pilikino, huli i kahi "task" Celery ma ka hope a hana ʻia ma ka ʻaoʻao pili kālā a me OpenStack. He mea maʻalahi ka Celery e hoʻokele i nā hana, hoʻonohonoho i nā hana hou a nānā i ke kūlana. Hiki iā ʻoe ke heluhelu hou aku e pili ana i ka "celery", no ka laʻana, maanei.

Eia kekahi, ʻaʻole i hoʻōki ka bila kālā i kahi papahana i pau ke kālā. Ke kamaʻilio pū me nā mea hoʻomohala, ʻike mākou i ka helu ʻana i nā helu (a pono mākou e hoʻokō pololei i kēia ʻano loiloi), aia kahi pilina paʻakikī o ka hoʻōki ʻana i nā lula. Akā ʻaʻole kūpono kēia mau hiʻohiʻona me kā mākou mea maoli. Ua hoʻokō pū mākou ma o nā hana ma Celery, e lawe ana i ka loiloi hoʻokele lawelawe i ka ʻaoʻao hope.

ʻO nā pilikia ʻelua i luna i alakaʻi i ke code e lilo i mea liʻiliʻi a i ka wā e hiki mai ana e pono mākou e refactor i mea e neʻe ai i ka loiloi no ka hana ʻana i nā hana i kahi lawelawe ʻokoʻa. Pono mākou e mālama i kekahi mau ʻike e pili ana i nā mea hoʻohana a me kā lākou lawelawe i kā mākou papa e kākoʻo i kēia loiloi.

ʻO kekahi pilikia ʻo ka hāmau.

Ua pane leo ʻo Billy iā "Ok" i kekahi mau noi API. ʻO kēia ka hihia, no ka laʻana, i ka wā i uku ai mākou i nā uku i hoʻohiki ʻia i ka wā o ka hoʻāʻo (ʻoi aku ma hope). Ua hoʻokō pololei ʻia nā noi a ʻaʻole mākou i ʻike i kekahi hewa.

ʻO ka mōʻaukala o ka hoʻokumu ʻana i kahi lawelawe kapua, i ʻono ʻia me ka cyberpunk

Pono wau e aʻo i nā lāʻau i ka wā e hana ana me ka ʻōnaehana ma o ka UI. Ua ʻike ʻia ʻo ka hoʻopiʻi ʻana iā ia iho e hana i nā noi like, e hoʻololi ana i ka laulā i kahi mea hoʻohana kikoʻī, no ka laʻana, admin, e hāʻawi iā ia i ka parameter su.

Ma keʻano laulā, ʻoiai nā hakahaka o ka palapala a me nā hemahema API liʻiliʻi, ua holo maikaʻi nā mea a pau. Hiki ke heluhelu ʻia nā lāʻau ma lalo o ka haʻahaʻa kaumaha inā maopopo iā ʻoe ke ʻano o ka hoʻonohonoho ʻana a me ka mea e nānā ai. He nani ke ʻano o ka waihona, akā kūpono loa a ma kekahi mau ʻano nani.

No laila, i ka hōʻuluʻulu ʻana, ʻo nā pilikia nui a mākou i hālāwai ai ma ka pae hoʻopili pili e pili ana i nā hiʻohiʻona hoʻokō o kahi ʻōnaehana kikoʻī:

  • "nā hiʻohiʻona" undocumented i hoʻopilikia iā mākou ma kekahi ʻano a i ʻole;
  • i pani ʻia (ua kākau ʻia ka bila ma C ++), no laila, ʻaʻole hiki ke hoʻoponopono i ka pilikia 1 ma nā ʻano ʻē aʻe ma mua o ka "hoʻāʻo a me ka hewa".

ʻO ka mea pōmaikaʻi, loaʻa i ka huahana kahi API ākea ākea a ua hoʻohui mākou i kēia mau subsystem i loko o kā mākou moʻokāki pilikino:

  • module kākoʻo ʻenehana - ʻo nā noi mai kāu moʻokāki ponoʻī ua "proxied" i ka hoʻopiʻi ʻana me ka maopopo no nā mea lawelawe;
  • ʻĀpana kālā - hiki iā ʻoe ke hoʻopuka i nā invoice i nā mea kūʻai aku o kēia manawa, hana i ka kākau ʻana a hana i nā palapala uku;
  • ʻōnaehana mana lawelawe - no kēia pono mākou e hoʻokō i kā mākou mea hana ponoʻī. Hoʻokani ka hoʻonui ʻana o ka ʻōnaehana i ko mākou mau lima a "aʻo" mākou iā Billy i kahi ʻano lawelawe hou.
    He pilikia iki, akā ma kekahi ʻano, manaʻo wau e launa pū māua me Billy.

Ke hele nei ma waena o nā māla tungsten - Tungsten Fabric

Hoʻopili ʻia nā māla Tungsten me nā haneli o nā uea, e hāʻawi ana i mau tausani o ka ʻike ma o lākou. Hōʻiliʻili ʻia ka ʻike i loko o nā "packet", i ʻoki ʻia, kūkulu i nā ala paʻakikī, me he mea lā ma ke kilokilo.

ʻO ka mōʻaukala o ka hoʻokumu ʻana i kahi lawelawe kapua, i ʻono ʻia me ka cyberpunk

ʻO kēia ka ʻaoʻao o ka lua o ka ʻōnaehana i loaʻa iā mākou e hoaloha - Tungsten Fabric (TF), OpenContrail ma mua. ʻO kāna hana ʻo ka hoʻokele ʻana i nā lako pūnaewele, e hāʻawi ana i kahi abstraction software iā mākou ma ke ʻano he mea hoʻohana. TF - SDN, hoʻopili i ka loiloi paʻakikī o ka hana ʻana me nā lako pūnaewele. Aia kekahi ʻatikala maikaʻi e pili ana i ka ʻenehana ponoʻī, no ka laʻana, maanei.

Hoʻohui ʻia ka ʻōnaehana me OpenStack (i kūkākūkā ʻia ma lalo) ma o ka plugin Neutron.

ʻO ka mōʻaukala o ka hoʻokumu ʻana i kahi lawelawe kapua, i ʻono ʻia me ka cyberpunk
Ka pilina o nā lawelawe OpenStack.

Ua hoʻolauna mai nā kāne mai ka ʻoihana hana iā mākou i kēia ʻōnaehana. Hoʻohana mākou i ka API o ka ʻōnaehana no ka mālama ʻana i ka waihona pūnaewele o kā mākou lawelawe. ʻAʻole ia i hoʻokau mai iā mākou i nā pilikia koʻikoʻi a i ʻole nā ​​​​pilikia (ʻaʻole hiki iaʻu ke ʻōlelo no nā kāne mai ka OE), akā aia kekahi mau mea ʻino i ka launa pū ʻana.

ʻO ka mea mua e like me kēia: nā kauoha e koi ana i ka hoʻopuka ʻana i ka nui o ka ʻikepili i ka console instance i ka wā e hoʻopili ai ma SSH "kau wale" i ka pilina, ʻoiai ma o VNC ua hana pololei nā mea a pau.

ʻO ka mōʻaukala o ka hoʻokumu ʻana i kahi lawelawe kapua, i ʻono ʻia me ka cyberpunk

No ka poʻe i kamaʻāina ʻole i ka pilikia, he mea ʻakaʻaka: ls /root hana pololei, ʻoiai, no ka laʻana, "hoʻokuʻu" loa ka luna. ʻO ka mea pōmaikaʻi, ua hālāwai mākou i nā pilikia like ma mua. Ua hoʻoholo ʻia ma ke kani ʻana i ka MTU ma ke ala mai nā nodes compute a i nā mea ala. Ma ke ala, ʻaʻole kēia he pilikia TF.

ʻO ka pilikia aʻe ma kahi o ke kihi. I hoʻokahi manawa "nani", ua nalo ke kilokilo o ke alahele, e like me kēlā. Ua hooki ʻo TF i ka hoʻokele ʻana i ke ala ʻana ma ka lako.

ʻO ka mōʻaukala o ka hoʻokumu ʻana i kahi lawelawe kapua, i ʻono ʻia me ka cyberpunk

Ua hana pū mākou me Openstack mai ka pae admin a ma hope o kēlā neʻe ʻana i ka pae mea hoʻohana pono. ʻIke ʻia ʻo SDN e "hijack" i ke ʻano o ka mea hoʻohana i hana ʻia ai nā hana. ʻO ka ʻoiaʻiʻo, ua hoʻohana ʻia ka moʻokāki admin like e hoʻopili ai iā TF a me OpenStack. I ka pae o ka hoʻololi ʻana i ka mea hoʻohana, ua nalowale ka "magic". Ua hoʻoholo ʻia e hana i kahi moʻokāki kaʻawale e hana pū me ka ʻōnaehana. Ua ʻae kēia iā mākou e hana me ka haki ʻole i ka hana hoʻohui.

ʻO Silicon Lifeforms - OpenStack

Noho ʻia kahi mea silicone ʻano ʻano ʻano ma kahi kokoke i nā māla tungsten. ʻO ka mea nui loa, ua like ia me kahi keiki ulu nui e hiki ke paʻi iā mākou me ka hoʻokahi kowali, akā ʻaʻohe mea ʻike ʻino mai iā ia. ʻAʻole ia e makaʻu, akā ʻo kona nui e hoʻoulu i ka makaʻu. E like me ka paʻakikī o nā mea e hana nei a puni.

ʻO ka mōʻaukala o ka hoʻokumu ʻana i kahi lawelawe kapua, i ʻono ʻia me ka cyberpunk

ʻO OpenStack ke kumu o kā mākou kahua.

Loaʻa iā OpenStack kekahi mau subsystems, a mākou e hoʻohana nei i kēia manawa Nova, Glance a me Cinder. Loaʻa i kēlā me kēia o lākou kāna API ponoʻī. ʻO Nova ke kuleana no ka helu ʻana i nā kumuwaiwai a me ka hana ʻana i nā manawa, ʻo Cinder ke kuleana no ka hoʻokele ʻana i nā volumes a me kā lākou mau kiʻi paʻi kiʻi, ʻo Glance kahi lawelawe kiʻi e hoʻokele ana i nā template OS a me ka metainformation ma luna o lākou.

Holo kēlā me kēia lawelawe i loko o kahi pahu, a ʻo ka mea kūʻai aku me ka "rabbit keʻokeʻo" - RabbitMQ.

Hāʻawi kēia ʻōnaehana iā mākou i ka pilikia i manaʻo ʻole ʻia.

A ʻaʻole i lōʻihi ka pilikia mua i ka wā i hoʻāʻo ai mākou e hoʻohui i kahi leo hou i ke kikowaena. Ua hōʻole loa ka Cinder API e hana i kēia hana. ʻOi aku ka pololei, inā ʻoe e manaʻoʻiʻo iā OpenStack ponoʻī, ua hoʻokumu ʻia ka pilina, akā ʻaʻohe mea disk i loko o ka server virtual.

ʻO ka mōʻaukala o ka hoʻokumu ʻana i kahi lawelawe kapua, i ʻono ʻia me ka cyberpunk

Ua hoʻoholo mākou e hele i kahi alahele a noi i ka hana like mai ka Nova API. ʻO ka hopena, pili pono ka mea hana a hiki ke loaʻa i loko o ke kikowaena. ʻIke ʻia ka pilikia inā ʻaʻole pane ka block-storage iā Cinder.

Ke kali nei kekahi pilikia iā mākou i ka hana ʻana me nā disks. ʻAʻole hiki ke wehe ʻia ka leo ʻōnaehana mai ke kikowaena.

Eia hou, ua "hoʻohiki" ʻo OpenStack iā ia i hoʻopau i ka pilina a hiki iā ʻoe ke hana pololei me ka leo kaʻawale. Akā ʻaʻole makemake ka API e hana i nā hana ma ka disk.

ʻO ka mōʻaukala o ka hoʻokumu ʻana i kahi lawelawe kapua, i ʻono ʻia me ka cyberpunk

Ma ʻaneʻi ua hoʻoholo mākou ʻaʻole e hakakā koʻikoʻi, akā e hoʻololi i ko mākou manaʻo i ka loiloi o ka lawelawe. Inā he laʻana, pono e loaʻa kahi leo ʻōnaehana. No laila, ʻaʻole hiki i ka mea hoʻohana ke wehe a hoʻopau i ka ʻōnaehana "disk" me ka ʻole o ka holoi ʻana i ka "server".

ʻO OpenStack kahi hoʻonohonoho paʻakikī o nā ʻōnaehana me kāna loiloi pili pono a me ka API nani. Ua kōkua ʻia mākou e nā palapala kikoʻī kikoʻī a, ʻoiaʻiʻo hoʻi, ka hoʻāʻo a me ka hewa (i hea mākou me ka ʻole).

Holo hoao

Ua hana mākou i kahi hoʻolaha hoʻāʻo ma Dekemaba i ka makahiki i hala. ʻO ka hana nui ka hoʻāʻo ʻana i kā mākou papahana ma ke ʻano hakakā mai ka ʻaoʻao ʻenehana a mai ka ʻaoʻao UX. Ua kono ʻia ka lehulehu a ua pani ʻia ka hoʻāʻo. Eia naʻe, ua haʻalele mākou i ke koho e noi i ke komo ʻana i ka hoʻāʻo ʻana ma kā mākou pūnaewele.

ʻO ka hoʻāʻo ponoʻī, ʻoiaʻiʻo, ʻaʻole i nele kona mau manawa ʻakaʻaka, no ka mea, ʻo ia kahi o kā mākou huakaʻi e hoʻomaka nei.

ʻO ka mea mua, ua kuhi hewa mākou i ka hoihoi i ka papahana a pono mākou e hoʻohui koke i nā nodes helu i ka wā o ka hoʻāʻo. He hihia maʻamau no kahi pūpū, akā aia kekahi mau nuances ma aneʻi. Hōʻike ka palapala no kahi mana kikoʻī o TF i ka mana kikoʻī o ka kernel kahi i hoʻāʻo ʻia ai ka hana me vRouter. Ua hoʻoholo mākou e hoʻomaka i nā nodes me nā kernels hou. ʻO ka hopena, ʻaʻole i loaʻa iā TF nā ala mai nā nodes. Pono au e ʻōwili koke i nā ʻōpala.

ʻO ka mōʻaukala o ka hoʻokumu ʻana i kahi lawelawe kapua, i ʻono ʻia me ka cyberpunk

ʻO kekahi mea hoihoi e pili ana i ka hana o ka pihi "hoʻololi i ka ʻōlelo huna" i kāu moʻokāki pilikino.

Ua hoʻoholo mākou e hoʻohana iā JWT e hoʻonohonoho i ke komo ʻana i kā mākou moʻokāki pilikino i ʻole e hana pū me nā kau. No ka mea he ʻokoʻa a hoʻopuehu nui ʻia nā ʻōnaehana, mālama mākou i kā mākou hōʻailona ponoʻī, kahi a mākou e "uhi" ai i nā manawa mai ka bila a me kahi hōʻailona mai OpenStack. Ke hoʻololi ʻia ka ʻōlelo huna, ʻo ka hōʻailona, ​​​​ʻoiaʻiʻo, "hele ʻino", no ka mea ʻaʻole pono ka ʻikepili mea hoʻohana a pono e hoʻopuka hou ʻia.

ʻO ka mōʻaukala o ka hoʻokumu ʻana i kahi lawelawe kapua, i ʻono ʻia me ka cyberpunk

Ua nalowale mākou i kēia wahi, a ʻaʻole lawa nā kumuwaiwai e hoʻopau koke i kēia ʻāpana. Pono mākou e ʻoki i ka hana ma mua o ka hoʻomaka ʻana i ka hoʻāʻo.
I kēia manawa, haʻalele mākou i ka mea hoʻohana inā ua hoʻololi ʻia ka ʻōlelo huna.

ʻOiai kēia mau nuances, ua hele maikaʻi nā hoʻāʻo. I loko o ʻelua pule, ma kahi o 300 mau kānaka i kū mai. Ua hiki iā mākou ke nānā i ka huahana ma o nā maka o nā mea hoʻohana, hoʻāʻo iā ia i ka hana a hōʻiliʻili i nā manaʻo kiʻekiʻe.

E hoʻomauʻia

No ka nui o mākou, ʻo ia ka papahana mua o kēia pālākiō. Ua aʻo mākou i kekahi mau haʻawina koʻikoʻi e pili ana i ka hana ʻana ma ke ʻano he hui a hoʻoholo i nā hoʻoholo hale a me nā hoʻolālā. Pehea e hoʻohui ai i nā ʻōnaehana paʻakikī me nā kumuwaiwai liʻiliʻi a ʻōwili iā lākou i ka hana.

ʻOiaʻiʻo, aia kekahi mea e hana ai ma ke ʻano o ke code a ma nā kikowaena o ka hoʻohui pūnaewele. He ʻōpiopio ka papahana, akā ua piha mākou i nā manaʻo e hoʻonui iā ia i lawelawe hilinaʻi a maʻalahi.

Ua hiki iā mākou ke hoʻohuli i nā ʻōnaehana. Mālama pono ʻo Bill i ka helu ʻana, ka bila, a me nā noi mea hoʻohana i loko o kāna keʻena. ʻO ka "magic" o nā māla tungsten e hāʻawi iā mākou i ke kamaʻilio paʻa. A ʻo OpenStack wale nō i kekahi manawa e hoʻōho, e hoʻōho ana i kahi mea e like me "'WSREP ʻaʻole i mākaukau node no ka hoʻohana ʻana i ka noi." Akā, he moʻolelo ʻokoʻa loa kēlā...

Ua hoʻomaka koke mākou i ka lawelawe.
Hiki iā ʻoe ke ʻike i nā kikoʻī āpau ma kā mākou kahua pūnaewele.

ʻO ka mōʻaukala o ka hoʻokumu ʻana i kahi lawelawe kapua, i ʻono ʻia me ka cyberpunk
Hui Hoʻomohala CLO

nā loulou pono

OpenStack

Ka lole Tungsten

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka