ISPsystem, бубахшед ва хайрухуш кунед! Чаро ва чӣ гуна мо панели идоракунии сервери худро навиштем

ISPsystem, бубахшед ва хайрухуш кунед! Чаро ва чӣ гуна мо панели идоракунии сервери худро навиштем

Салом! Мо "Технологияҳои хостингӣ" ҳастем ва 5 сол пеш оғоз кардаем ВДСина — аввалин хостинги vds, ки махсус барои таҳиягарон сохта шудааст. Мо мекӯшем, ки онро ба мисли DigitalOcean қулай созем, аммо бо дастгирии Русия, усулҳои пардохт ва серверҳо дар Русия. Аммо DigitalOcean на танҳо эътимоднокӣ ва нарх аст, балки хидмат низ мебошад.

Нармафзори ISPsystem як ресмоне шуд, ки дасти моро дар роҳ ба хидмати олӣ бастааст. Се сол пеш, мо биллинги Billmanager ва панели идоракунии сервери VMmanager-ро истифода бурдем ва зуд фаҳмидем, ки бе панели идоракунии шахсии мо хидмати хуб пешкаш кардан қариб ғайриимкон аст.

Чӣ тавр ISP системаи роҳатиро кушт

Хатогиҳо

Мо худамон хатогиро ислоҳ карда наметавонистем - ҳар дафъа ба дастгирии ягон каси дигар навиштан ва интизор шудан лозим омад. Ҳалли ҳама гуна мушкилот посухи ширкати сеюмро талаб мекард.

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

Таҳдиди бекорӣ

Навсозиҳо метавонанд бекористии пешгӯинашавандаро ба вуҷуд оранд, ки хатогиҳои навро ба вуҷуд меоранд.

Ҳар як навсозӣ як лотерея буд: ман маҷбур будам, ки ҳисобкуниро пӯшам ва ба худоҳои навсозиҳо қурбонӣ кунам - чанд маротиба навсозӣ боиси бекористии 10-15 дақиқа гардид. Администраторони мо дар айни замон бо чашмони худ нишаста буданд - мо ҳеҷ гоҳ намедонистем, ки бекорӣ то чӣ андоза давом мекунад ва пешгӯӣ карда наметавонем, ки кай ISPsystem тасмим мегирад навсозии навро нашр кунад.

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

Интерфейси панели номувофиқ

Ҳама чиз ба панелҳои гуногун тақсим карда шуда, аз ҷойҳои гуногун идора карда мешуд. Масалан, муштариён тавассути Billmanager пардохт карданд ва онҳо маҷбур буданд VDS-ро дар VMManager аз нав оғоз кунанд ё аз нав насб кунанд. Кормандони мо инчунин маҷбур шуданд, ки байни тирезаҳо гузаранд, то ба муштарӣ кӯмак расонанд, сарбории серверашро тафтиш кунанд ё бубинанд, ки ӯ кадом ОС-ро истифода мебарад.

Чунин интерфейс вақтро мегирад - ҳам барои мо ва ҳам муштариёни мо. Дар чунин вазъият ҳеҷ гуна қулайӣ, ба монанди DigitalOcean, ҳеҷ гуна савол нест.

Давраи кӯтоҳмуддат бо навсозиҳои зуд-зуд API

Мо плагинҳои худро навиштем - масалан, плагин бо усулҳои иловагии пардохт, ки дар VMManager нестанд.

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

Тағйир додан мумкин нест

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

Ҳамин тавр, тасмим гирифта шуд, ки панели шахсии худро нависам. Мо ҳадафҳо гузоштаем:

  • Ба хатогиҳо, хатогиҳо зуд вокуниш нишон диҳед ва бидуни интизории муштарӣ онҳоро худатон ислоҳ кунед.
  • Барои ҷараёнҳои корӣ ва ниёзҳои муштарӣ интерфейсро озодона тағир диҳед.
  • Истифодаи қобилиятро бо тарҳи тоза ва фаҳмо зиёд кунед.

Ва мо рушдро оғоз кардем.

Архитектураи нави панел

Мо як дастаи рушди худкифо дорем, бинобар ин панелро худамон навиштем.
Кори асосиро се муҳандис анҷом доданд - директори техникӣ Сергей бо меъморӣ баромад ва агенти серверро навишт, Алексей ҳисобро анҷом дод ва пешро пешбарандаи мо Артыш васл кард.

Қадами 1: Агенти сервер

Агенти сервер веб-сервери python мебошад, ки китобхонаро идора мекунад libvirt, ки дар навбати худ идора мекунад Гипервизор Qemu-kvm.

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

Дар назария, libvirt-ро метавон мустақиман аз ҳисоби биллинг идора кард, аммо ин рамзи аз ҳад зиёди иловагиро талаб мекард ва мо тасмим гирифтем, ки ин функсияҳоро байни агент ва биллинг ҷудо кунем - биллинг танҳо тавассути JSON API дархостҳоро ба агент медиҳад.

Агент аввалин чизест, ки мо анҷом додем, зеро он ягон интерфейсро талаб намекард ва онро бевосита аз консоли сервер санҷидан мумкин буд.

Он чизе ки агенти сервер ба мо дод: қабате пайдо шуд, ки ҳаётро барои ҳама содда мекунад - биллинг фиристодани як қатор фармонҳоро талаб намекунад, балки танҳо дархост пешниҳод мекунад. Ва агент ҳама чизи лозимаро иҷро мекунад: масалан, фазои диск ва RAM ҷудо мекунад.

Қадами 2. Ҳисобкунӣ

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

Мо ҳисоббаробаркуниро дар байни худ "панели идоракунӣ" меномем: он на танҳо пул ва хидматҳо, балки идоракунии онҳо, дастгирии муштариён ва ғайраро дар бар мегирад.

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

Биллинги нав ду стекро истифода бурд: PHP классикӣ, MySQL (ва дар оянда ба PostgreSQL гузаштан ба нақша гирифта шудааст), Yii2 ҳамчун чаҳорчӯба дар пушти сар ва VueJS дар пеш. Стекҳо новобаста аз ҳамдигар кор мекунанд, аз ҷониби одамони гуногун таҳия карда мешаванд ва бо истифода аз API JSON муошират мекунанд. Барои рушд он вақт ва ҳоло мо истифода мебарем PHPStorm и тӯфони веб аз JetBrains ва онҳоро хеле дӯст доред (эй бачаҳо!)

Панел дар асоси модул тарҳрезӣ шудааст: модулҳои системаи пардохт, модули бақайдгирии домен ё, масалан, модули сертификати SSL. Шумо метавонед ба осонӣ хусусияти нав илова кунед ё як чизи кӯҳнаро нест кунед. Асоси васеъ кардани он аз чихати меъморй, аз чумла ба самти мукобил «ба суи аппаратура» гузошта шудааст.
ISPsystem, бубахшед ва хайрухуш кунед! Чаро ва чӣ гуна мо панели идоракунии сервери худро навиштем
Мо чӣ гирифтем: панели идоракунӣ, ки мо пурра назорат мекунем. Ҳоло хатогиҳо дар тӯли соатҳо ислоҳ карда мешаванд, на ҳафтаҳо ва хусусиятҳои нав на бо дархости ISPSystem, балки бо дархости муштариён амалӣ карда мешаванд.

Қадами 3 Интерфейс

ISPsystem, бубахшед ва хайрухуш кунед! Чаро ва чӣ гуна мо панели идоракунии сервери худро навиштем
Интерфейс идеяи дастаи мост.

Аввалан, мо дида баромадем, ки агар мо дар интерфейси ISPsystem API илова созем, бидуни тағир додани чизе дар интерфейс чӣ мешавад. Ҳамин тавр шуд ва мо тасмим гирифтем, ки ҳама чизро аз сифр анҷом диҳем.

Мо боварӣ доштем, ки чизи асосӣ ин аст, ки интерфейси мантиқӣ, бо тарҳи тоза ва минималистӣ ва он гоҳ мо панели зебо ба даст меорем. Ҷойгиршавии элементҳо дар Megaplan муҳокима карда шуд ва интерфейсе, ки корбарон ҳоло дар панели идоракунӣ мебинанд, тадриҷан тавлид мешавад.

Тарҳи саҳифаи биллинг аввалин шуда пайдо шуд, зеро мо аллакай плагинҳои пардохтро барои ISPsystem сохтаем.

Қисмати пеш

Онҳо тасмим гирифтанд, ки панелро ба барномаи SPA табдил диҳанд - барои захираҳо ва бо суръати зуд боркунии маълумот. Пешвои мо Артиш тасмим гирифт, ки онро дар Vue нависад - дар он вақт Вуе нав пайдо шуда буд. Мо тахмин мекардем, ки чаҳорчӯба ба таври динамикӣ инкишоф меёбад, ба монанди React, пас аз чанд вақт ҷомеаи Vue афзоиш меёбад ва баҳри китобхонаҳо пайдо мешавад. Мо ба Vue шарт гузоштем ва аз он пушаймон нестем - ҳоло барои илова кардани функсияҳои нав ба пеш, ки аллакай дар қафо барномарезӣ шудаанд, вақти каме лозим аст. Мо ба шумо дар бораи панели пешакӣ дар мақолаи алоҳида бештар маълумот медиҳем.

Пайваст кардани фронт ба қафо

Фронт тавассути огоҳиҳои push ба қафо пайваст карда шуд. Ман маҷбур будам, ки сахт кор кунам ва коркарди шахсии худро нависам, аммо ҳоло маълумот дар саҳифа қариб фавран нав карда мешавад.

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

Қадами 4. Санҷиш ва нақшаи муҳоҷират

Вақте ки ҳама чиз оғоз шуд ва аввалин санҷишҳо гузашт, масъалаи муҳоҷират ба миён омад. Пеш аз ҳама, мо биллингро насб кардем ва санҷиши кори онро бо агенти сервер оғоз кардем.

Сипас мо як скрипти оддиеро навиштем, ки махзани маълумотро аз ҳисоби пештара ба нав интиқол медиҳад.

Ман маҷбур будам, ки аслан ҳама чизро санҷида ва аз нав тафтиш кунам, зеро маълумот аз се пойгоҳи нав ба як пойгоҳи нав муттаҳид карда шуд: Billmanager, VMmanager ва IPmanager менеҷер. Шояд муҳоҷирати санҷишӣ мушкилтарин чизест, ки мо дар раванди таҳияи панели нав дучор шудем.

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

Сипас, мо ба мизоҷон бо суроғаи панели нав ва биллинг мактубҳо фиристодем ва масир кардем.

Дар маҷмӯъ: ИН ЗИНДА АСТ!

Охират муборак

Аз соатҳои аввали кори нармафзори мо, мо тамоми лаззатҳои гузаришро ҳис кардем. Рамз комилан аз они мо буд ва бо меъмории мувофиқ ва интерфейс тоза ва мантиқӣ буд.
ISPsystem, бубахшед ва хайрухуш кунед! Чаро ва чӣ гуна мо панели идоракунии сервери худро навиштем
Баррасии аввал пас аз оғози панели нав

Мо раванди гузаришро дар моҳи декабр, дар арафаи Соли нави 2017 оғоз кардем, ки сарборӣ камтар буд, то интиқоли муштариён осонтар шавад - дар арафаи идҳо қариб касе кор намекунад.

Чизи асосие, ки мо ҳангоми гузаштан ба системаи худ ба даст овардем (ба ғайр аз эътимоднокии умумӣ ва роҳат) ин қобилияти зуд илова кардани функсияҳо барои муштариёни асосӣ - чеҳраи онҳо будан аст, на хари онҳо.

Чӣ оянда аст?

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

Албатта, вақте ки маҳсулот таҳия ва мураккабтар шуд, мо ҳанӯз саёҳатҳо доштем, масалан вақте ки мо HighLoad-ро илова кардем.

Дар мақолаи навбатӣ мо ба шумо мегӯям, ки тарифи Hi-CPU чӣ гуна ба кор даромад: дар бораи сахтафзор, нармафзор, мо кадом вазифаҳоро ҳал кардем ва чӣ кор кардем.

Манбаъ: will.com

Илова Эзоҳ