Таърихи таъсиси хидмати абрӣ, ки бо киберпанк мазза шудааст

Таърихи таъсиси хидмати абрӣ, ки бо киберпанк мазза шудааст

Вақте ки шумо дар IT кор мекунед, шумо мебинед, ки системаҳо хусусияти худро доранд. Онҳо метавонанд чандир, хомӯш, эксцентрикӣ ва сахтгир бошанд. Онҳо метавонанд ҷалб ё боздоранд. Бо ин ё он роҳ, шумо бояд бо онҳо "гуфтугӯ" кунед, байни "домҳо" маневр кунед ва занҷирҳои ҳамкории онҳоро созед.

Ҳамин тавр, мо шарафи сохтани платформаи абриро доштем ва барои ин ба мо лозим буд, ки якчанд зерсистемаро барои кор бо мо “боварӣ бахшем”. Хушбахтона, мо "забони API", дастҳои мустақим ва шавқу ҳаваси зиёд дорем.

Ин мақола аз ҷиҳати техникӣ сахт нахоҳад буд, аммо мушкилотеро, ки мо ҳангоми сохтани абр дучор шудаем, тавсиф хоҳад кард. Ман тасмим гирифтам, ки роҳи худро дар шакли як фантазияи сабуки техникӣ дар бораи он, ки мо чӣ гуна забони муштаракро бо системаҳо ҷустуҷӯ кардем ва аз он чӣ ба вуҷуд омад, тасвир кунам.

Хуш омадед ба гурба.

Оғоз аз сафар

Чанде пеш ба дастаи мо вазифа гузошта шуда буд, ки платформаи абриро барои мизоҷони мо оғоз кунад. Мо дастгирии идоракунӣ, захираҳо, стеки сахтафзор ва озодӣ дар интихоби технологияҳо барои татбиқи қисми нармафзори хидмат доштем.

Инчунин як қатор талаботҳо вуҷуд доштанд:

  • хидмат ба ҳисоби шахсии мувофиқ ниёз дорад;
  • платформа бояд ба системаи мавҷудаи биллинг ворид карда шавад;
  • нармафзор ва сахтафзор: OpenStack + Матои вольфрам (Open Contrail), ки муҳандисони мо "пухтан"-ро хеле хуб омӯхтаанд.

Мо бори дигар ба шумо дар бораи чӣ гуна ҷамъоварӣ кардани даста, интерфейси ҳисоби шахсӣ таҳия ва қарорҳои тарроҳӣ қабул карда шуданд, мегӯям, агар ҷомеаи Ҳабра манфиатдор бошад.
Воситаҳое, ки мо тасмим гирифтем, ки истифода барем:

  • Python + Flask + Swagger + SQLAlchemy - маҷмӯи комилан стандартии Python;
  • Vue.js барои интерфейс;
  • Мо тасмим гирифтем, ки байни ҷузъҳо ва хидматҳо бо истифода аз Celery бар AMQP ҳамкорӣ кунем.

Саволҳои интизорӣ дар бораи интихоби Python, ман шарҳ медиҳам. Забон дар корхонаи мо ҷойи худро пайдо кард ва дар атрофи он фарҳанги хурд, вале ҳанӯз ҳам рушд кардааст. Аз ин рӯ, тасмим гирифта шуд, ки ба бунёди хидмат дар он шурӯъ кунад. Илова бар ин, суръати рушд дар чунин мушкилот аксар вақт ҳалкунанда аст.

Пас, биёед шиносоии худро оғоз кунем.

Векселҳои хомӯш - биллинг

Мо ин одамро кайхо боз мешиносем. Ҳамеша дар паҳлӯям нишаста, хомӯшона чизеро ҳисоб мекард. Баъзан ӯ дархостҳои корбаронро ба мо ирсол мекард, ҳисобнома-фактураҳои муштариёнро медод ва хидматҳоро идора мекард. Бачаи оддии мехнатдуст. Ростй, душворихо буданд. Вай сукут мекунад, баъзан андешаманд ва аксаран дар фикри худ аст.

Таърихи таъсиси хидмати абрӣ, ки бо киберпанк мазза шудааст

Биллинг ин аввалин системаест, ки мо кӯшиш кардем, ки бо онҳо дӯстӣ кунем. Ва аввалин душворие, ки мо ҳангоми коркарди хидматҳо дучор шудем.

Масалан, вақте ки эҷод ё нест карда мешавад, супориш ба навбати дохилии ҳисоббарорӣ мегузарад. Ҳамин тариқ, системаи кори асинхронӣ бо хидматҳо амалӣ карда мешавад. Барои коркарди намудҳои хидмати худ ба мо лозим буд, ки вазифаҳои худро ба ин навбат “гузорем”. Ва дар ин ҷо мо ба мушкилот дучор шудем: набудани ҳуҷҷатҳо.

Таърихи таъсиси хидмати абрӣ, ки бо киберпанк мазза шудааст

Аз рӯи тавсифи нармафзори API, ҳалли ин мушкилот ҳоло ҳам имконпазир аст, аммо мо барои анҷом додани муҳандисии баръакс вақт надоштем, аз ин рӯ мо мантиқро берун бароварда, дар болои RabbitMQ навбатдории вазифаҳоро ташкил кардем. Амалиёт оид ба хадамот аз ҷониби муштарӣ аз ҳисоби шахсии худ оғоз карда мешавад, ба "вазифаи" Celery дар пушти сар мешавад ва дар тарафи биллинг ва OpenStack иҷро карда мешавад. Карафс идора кардани вазифаҳо, ташкили такрорҳо ва мониторинги вазъиятро хеле қулай мегардонад. Шумо метавонед бештар дар бораи "карафс" хонед, масалан, дар ин ҷо.

Инчунин, ҳисобдорӣ лоиҳаеро, ки маблағ тамом шуд, бозмедорад. Ҳангоми муошират бо таҳиягарон мо фаҳмидем, ки ҳангоми ҳисоб кардани омор (ва мо бояд маҳз ҳамин гуна мантиқро амалӣ кунем) робитаи мураккаби қоидаҳои қатъкунӣ вуҷуд дорад. Аммо ин моделҳо ба воқеияти мо мувофиқат намекунанд. Мо инчунин онро тавассути вазифаҳо дар Celery амалӣ карда, мантиқи идоракунии хидматро ба паҳлӯи пушти сар гирифтем.

Ҳарду мушкилоти дар боло зикршуда боиси он шуданд, ки код каме дабдабанок шавад ва дар оянда мо бояд рефактор кунем, то мантиқи кор бо вазифаҳоро ба хидмати алоҳида интиқол диҳем. Мо инчунин бояд баъзе маълумотро дар бораи корбарон ва хидматҳои онҳо дар ҷадвалҳои худ нигоҳ дорем, то ин мантиқро дастгирӣ кунем.

Мушкилоти дигар хомӯшӣ аст.

Билли ба баъзе дархостҳои API хомӯшона "Хуб" ҷавоб медиҳад. Масалан, вақте ки мо пардохтҳои ваъдашударо ҳангоми санҷиш пардохт кардем (дар ин бора баъдтар). Дархостҳо дуруст иҷро шуданд ва мо ягон хатогиро надидем.

Таърихи таъсиси хидмати абрӣ, ки бо киберпанк мазза шудааст

Ман маҷбур будам, ки гузоришҳоро ҳангоми кор бо система тавассути UI омӯзам. Маълум шуд, ки худи биллинг дархостҳои шабеҳро иҷро мекунад, миқёсро ба корбари мушаххас иваз мекунад, масалан, администратор, онро дар параметри su интиқол медиҳад.

Умуман, сарфи назар аз камбудиҳо дар ҳуҷҷатҳо ва камбудиҳои хурди API, ҳама чиз хеле хуб рафт. Журналҳоро ҳатто дар зери бори вазнин хондан мумкин аст, агар шумо фаҳмед, ки онҳо чӣ гуна сохтор доранд ва чиро бояд ҷустуҷӯ кунед. Сохтори махзани маълумот ороишӣ, вале хеле мантиқӣ ва аз баъзе ҷиҳатҳо ҳатто ҷолиб аст.

Ҳамин тавр, барои ҷамъбаст, мушкилоти асосие, ки мо дар марҳилаи ҳамкорӣ дучор шудем, бо хусусиятҳои татбиқи як системаи мушаххас алоқаманданд:

  • «хусусиятҳои» ғайриҳуҷҷатӣ, ки ба ин ё он роҳ ба мо таъсир расониданд;
  • Сарчашмаи пӯшида (ҳисоббарорӣ дар C++ навишта шудааст), дар натиҷа - ҳалли мушкилоти 1 ба ғайр аз "озмоиш ва хатогӣ" ғайриимкон аст.

Хушбахтона, маҳсулот дорои API-и хеле васеъ аст ва мо зерсистемаҳои зеринро ба ҳисоби шахсии худ ворид кардем:

  • модули дастгирии техникӣ - дархостҳо аз ҳисоби шахсии шумо ба таври шаффоф барои муштариёни хидматрасонӣ "прокси" карда мешаванд;
  • модули молиявӣ - ба шумо имкон медиҳад, ки ба мизоҷони ҷорӣ ҳисобнома-фактураҳо пешниҳод кунед, аз ҳисоб хориҷ кунед ва ҳуҷҷатҳои пардохтро таҳия кунед;
  • модули идоракунии хидматрасонӣ - барои ин мо бояд коркарди шахсии худро амалӣ кунем. Тавсеаи система ба дасти мо бозӣ кард ва мо ба Билли як намуди нави хидматро "омӯзондем".
    Ин як каме душворӣ буд, аммо бо ин ё он роҳ, ман фикр мекунам, ки ман ва Билли мувофиқат хоҳем кард.

Гузаштан аз майдонҳои волфрам - Матои вольфрам

Майдонҳои волфрам бо садҳо симҳо ҷойгир шуда, ҳазорҳо бит маълумотро тавассути онҳо мегузаранд. Маълумот дар "пакетҳо" ҷамъоварӣ карда шуда, масирҳои мураккаб сохта мешаванд, гӯё бо ҷодугарӣ.

Таърихи таъсиси хидмати абрӣ, ки бо киберпанк мазза шудааст

Ин домени системаи дуввум аст, ки мо бояд бо он дӯстон пайдо кунем - Tungsten Fabric (TF), қаблан OpenContrail. Вазифаи он идоракунии таҷҳизоти шабакавӣ, таъмин намудани абстраксияи нармафзор ба мо ҳамчун корбарон мебошад. TF - SDN, мантиқи мураккаби кор бо таҷҳизоти шабакавиро фаро мегирад. Дар бораи худи технология мақолаи хуб мавҷуд аст, масалан, дар ин ҷо.

Система бо OpenStack (дар зер муҳокима карда мешавад) тавассути плагини Neutron муттаҳид карда шудааст.

Таърихи таъсиси хидмати абрӣ, ки бо киберпанк мазза шудааст
Ҳамкории хидматҳои OpenStack.

Бачахои шуъбаи оперативй моро бо ин система шинос карданд. Мо API-и системаро барои идора кардани стек шабакавии хидматҳои худ истифода мебарем. Он то ҳол ба мо ягон мушкилоти ҷиддӣ ё нороҳатӣ наовардааст (ман дар бораи бачаҳои OE сухан гуфта наметавонам), аммо дар ҳамкорӣ баъзе чизҳои аҷибе буданд.

Аввалин ба назар чунин менамуданд: фармонҳое, ки ҳангоми пайвастшавӣ тавассути SSH ба консоли мисол баровардани миқдори зиёди маълумотро талаб мекарданд, пайвастшавиро танҳо «овезон» кард, дар ҳоле ки тавассути VNC ҳама чиз дуруст кор мекард.

Таърихи таъсиси хидмати абрӣ, ки бо киберпанк мазза шудааст

Барои онҳое, ки бо мушкилот ошно нестанд, ин хеле хандовар менамояд: ls /root дуруст кор мекунад, дар ҳоле ки, масалан, боло комилан "ях мекунад". Хушбахтона, мо қаблан бо чунин мушкилот дучор шуда будем. Қарор дода шуд, ки MTU дар масир аз гиреҳҳои ҳисобкунӣ ба роутерҳо танзим карда шавад. Дар омади гап, ин мушкили TF нест.

Мушкилоти навбатӣ танҳо дар атрофи гӯша буд. Дар як лаҳзаи «зебо» ҷодугарии масир нопадид шуд, ҳамин тавр. TF идоракунии масирро дар таҷҳизот қатъ кардааст.

Таърихи таъсиси хидмати абрӣ, ки бо киберпанк мазза шудааст

Мо бо Openstack аз сатҳи администратор кор кардем ва пас аз он ба сатҳи зарурии корбар гузаштем. Чунин ба назар мерасад, ки SDN доираи корбареро, ки аз ҷониби онҳо амалҳо иҷро мешаванд, "рабуда" мекунад. Далели он аст, ки ҳамон ҳисоби маъмурӣ барои пайваст кардани TF ва OpenStack истифода мешавад. Дар қадами гузаштан ба корбар "ҷодугарӣ" нопадид шуд. Қарор дода шуд, ки барои кор бо система ҳисоби алоҳида таъсис дода шавад. Ин ба мо имкон дод, ки бе вайрон кардани функсияи ҳамгироӣ кор кунем.

Silicon Lifeforms - OpenStack

Як махлуқи аҷиби силиконӣ дар наздикии майдонҳои волфрам зиндагӣ мекунад. Аз ҳама бештар ба кӯдаки калонсоле монанд аст, ки метавонад бо як задан моро пахш кунад, аммо аз ӯ таҷовузи ошкоре нест. Он тарсро ба вуҷуд намеорад, аммо андозаи он тарсро ба вуҷуд меорад. Чунон ки мураккабии он чи ки дар атроф руй медихад.

Таърихи таъсиси хидмати абрӣ, ки бо киберпанк мазза шудааст

OpenStack асосии платформаи мост.

OpenStack дорои якчанд зерсистемаҳо мебошад, ки мо ҳоло аз онҳо Nova, Glance ва Cinder-ро фаъолона истифода мебарем. Ҳар яке аз онҳо API-и худро дорад. Nova барои захираҳои ҳисоббарорӣ ва эҷоди мисолҳо масъул аст, Cinder барои идоракунии ҳаҷмҳо ва аксҳои онҳо масъул аст, Glance хидмати тасвирест, ки қолабҳои OS ва мета-маълумотҳоро дар онҳо идора мекунад.

Ҳар як хидмат дар як контейнер кор мекунад ва брокери паём "харгӯши сафед" - RabbitMQ мебошад.

Ин система ба мо душвориҳои ғайричашмдоштро дод.

Ва вақте ки мо кӯшиш кардем, ки ҳаҷми иловагиро ба сервер пайваст кунем, мушкилоти аввал дер нагузашта буд. Cinder API иҷрои ин вазифаро қатъиян рад кард. Аниқтараш, агар шумо ба худи OpenStack бовар кунед, пайвастшавӣ барқарор шудааст, аммо дар дохили сервери виртуалӣ дастгоҳи диск мавҷуд нест.

Таърихи таъсиси хидмати абрӣ, ки бо киберпанк мазза шудааст

Мо тасмим гирифтем, ки роҳи гардишро пеш гирем ва аз Nova API ҳамин амалро талаб кардем. Натиҷа ин аст, ки дастгоҳ дуруст пайваст мешавад ва дар дохили сервер дастрас аст. Чунин ба назар мерасад, ки мушкилот вақте ба миён меояд, ки блоки нигаҳдорӣ ба Cinder ҷавоб намедиҳад.

Дар вакти кор бо дискхо боз як душвории дигар моро интизор буд. Ҳаҷми системаро аз сервер ҷудо кардан мумкин нест.

Боз, худи OpenStack "қасам мехонад", ки пайвастшавиро вайрон кардааст ва акнун шумо метавонед бо ҳаҷми алоҳида дуруст кор кунед. Аммо API ба таври қатъӣ намехост, ки амалиётро дар диск иҷро кунад.

Таърихи таъсиси хидмати абрӣ, ки бо киберпанк мазза шудааст

Дар ин ҷо мо тасмим гирифтем, ки махсусан ҷанг накунем, балки нуқтаи назари худро дар бораи мантиқи хидмат тағир диҳем. Агар як мисол вуҷуд дошта бошад, бояд ҳаҷми система низ мавҷуд бошад. Аз ин рӯ, корбар ҳоло наметавонад "диск" -и системаро бидуни нест кардани "сервер" хориҷ ё ғайрифаъол кунад.

OpenStack як маҷмӯи хеле мураккаби системаҳо бо мантиқи мутақобилаи худ ва API-и зебост. Ба мо ҳуҷҷатҳои хеле муфассал ва албатта озмоиш ва хатогӣ кӯмак мекунанд (бе он мо дар куҷо мебудем).

Озмоиши озмоишӣ

Мо моҳи декабри соли гузашта озмоиши озмоишӣ анҷом додем. Вазифаи асосӣ озмоиши лоиҳаи мо дар ҳолати ҷангӣ аз ҷониби техникӣ ва аз ҷониби UX буд. Шунавандагон ба таври интихобӣ даъват карда шуданд ва санҷиш баста шуд. Аммо, мо инчунин имкони дархости дастрасӣ ба санҷишро дар вебсайти худ гузоштаем.

Худи озмоиш, албатта, аз лахзахои хандаовар холй набуд, зеро дар ин чо саргузаштхои мо акнун огоз меёбанд.

Аввалан, мо таваҷҷӯҳро ба лоиҳа то ҳадде нодуруст арзёбӣ кардем ва маҷбур шудем, ки дар вақти санҷиш гиреҳҳои ҳисоббарориро зуд илова кунем. Ҳолати маъмул барои кластер, аммо дар ин ҷо низ баъзе нозукиҳо буданд. Ҳуҷҷатҳои версияи мушаххаси TF версияи мушаххаси ядроеро, ки дар он кор бо vRouter санҷида шудааст, нишон медиҳад. Мо тасмим гирифтем, ки гиреҳҳоро бо ядроҳои навтарин оғоз кунем. Дар натича ТФ аз узелхо маршрутхо нагирифтааст. Ман маҷбур шудам, ки ядроҳоро фавран баргардонам.

Таърихи таъсиси хидмати абрӣ, ки бо киберпанк мазза шудааст

Дигар кунҷкобӣ бо функсияи тугмаи "тағйири парол" дар ҳисоби шахсии шумо алоқаманд аст.

Мо тасмим гирифтем, ки JWT-ро барои ташкили дастрасӣ ба ҳисоби шахсии худ истифода барем, то бо сессияҳо кор накунем. Азбаски системаҳо гуногунанд ва ба таври васеъ парокандаанд, мо токени худро идора мекунем, ки дар он мо сеансҳоро аз биллинг ва токен аз OpenStack “ҷамъ мекунем”. Ҳангоми иваз кардани парол, нишона, албатта, "бад мешавад", зеро маълумоти корбар дигар эътибор надорад ва онро дубора интишор кардан лозим аст.

Таърихи таъсиси хидмати абрӣ, ки бо киберпанк мазза шудааст

Мо ин нуктаро аз даст додем ва барои зуд ба анҷом расонидани ин порча захираҳои кофӣ набуданд. Мо бояд пеш аз оғози санҷиш функсияро қатъ кунем.
Дар айни замон мо аз корбар хориҷ мешавем, агар парол иваз карда шуда бошад.

Бо вуҷуди ин нозукиҳо, санҷиш хуб гузашт. Дар давоми як-ду хафта кариб 300 нафар одамон ба он чо омаданд. Мо тавонистем ба маҳсулот бо чашми корбарон нигоҳ кунем, онро дар амал санҷем ва фикру мулоҳизаҳои баландсифат ҷамъ оварем.

Идома дода шавад

Барои бисёре аз мо, ин аввалин лоиҳаи ин миқёс аст. Мо дар бораи чӣ гуна кор кардан ҳамчун як гурӯҳ ва қабули қарорҳои меъморӣ ва тарҳрезӣ як қатор дарсҳои пурарзиш гирифтем. Системаҳои мураккабро бо захираҳои кам чӣ гуна муттаҳид кардан ва онҳоро дар истеҳсолот ҷорӣ кардан мумкин аст.

Албатта, чизе вуҷуд дорад, ки ҳам дар робита бо код ва ҳам дар интерфейсҳои ҳамгироии система кор кардан лозим аст. Лоиҳа хеле ҷавон аст, аммо мо пур аз орзуҳо дорем, ки онро ба хидматрасонии боэътимод ва қулай табдил диҳем.

Мо аллакай тавонистем системаҳоро бовар кунонад. Билл дар ҷевони худ ҳисобкунӣ, ҳисобдорӣ ва дархостҳои корбаронро бодиққат иҷро мекунад. «Сеҳри» майдонҳои волфрам моро бо алоқаи устувор таъмин мекунад. Ва танҳо OpenStack баъзан инҷиқ мешавад ва бо садои баланд садо медиҳад, ки "'WSREP ҳанӯз гиреҳро барои истифодаи барнома омода накардааст." Аммо ин як ҳикояи тамоман дигар аст...

Мо ба наздикӣ хидматро оғоз кардем.
Шумо метавонед тамоми тафсилотро дар мо бифаҳмед сомона.

Таърихи таъсиси хидмати абрӣ, ки бо киберпанк мазза шудааст
Гурӯҳи рушди CLO

Пайвандҳои муфид

OpenStack

Матои вольфрам

Манбаъ: will.com

Илова Эзоҳ