Mfumo wa ISP, samehe na kwaheri! Kwa nini na jinsi tuliandika jopo la udhibiti wa seva yetu

Mfumo wa ISP, samehe na kwaheri! Kwa nini na jinsi tuliandika jopo la udhibiti wa seva yetu

Habari! Sisi ni "Teknolojia za Kukaribisha" na tulizinduliwa miaka 5 iliyopita VDSina β€” upangishaji wa vds wa kwanza iliyoundwa mahsusi kwa wasanidi programu. Tunajitahidi kuifanya iwe rahisi, kama vile DigitalOcean, lakini kwa usaidizi wa Kirusi, njia za malipo na seva nchini Urusi. Lakini DigitalOcean sio tu kuegemea na bei, pia ni huduma.

Programu kutoka kwa ISPsystem iligeuka kuwa kamba iliyofunga mikono yetu kwenye njia ya huduma ya baridi. Miaka mitatu iliyopita, tulitumia malipo ya Billmanager na paneli ya udhibiti wa seva ya VMmanager na tukagundua haraka kuwa ilikuwa vigumu kutoa huduma nzuri bila paneli yetu dhibiti.

Jinsi ISPsystem Iliua Urahisi

Mende

Hatukuweza kurekebisha hitilafu sisi wenyewe - kila wakati tulilazimika kuandika kwa usaidizi wa mtu mwingine na kungojea. Suluhisho la tatizo lolote lilihitaji jibu la kampuni ya tatu.

Usaidizi wa mfumo wa ISP ulijibu kawaida, lakini marekebisho yalikuja tu baada ya matoleo machache, na kisha sio kila wakati na sio yote. Wakati mwingine mende muhimu zilirekebishwa kwa wiki kadhaa. Ilitubidi kuwahakikishia wateja, kuomba msamaha na kusubiri ISPsystem kurekebisha hitilafu.

Tishio la wakati wa kupumzika

Masasisho yanaweza kutoa nyakati zisizotabirika ambazo zilisababisha makosa mapya.

Kila sasisho lilikuwa bahati nasibu: Ilinibidi kuficha bili na kutoa dhabihu kwa miungu ya sasisho - mara kadhaa sasisho lilisababisha wakati wa kupumzika kwa dakika 10-15. Wasimamizi wetu kwa wakati huu walikuwa wamekaa macho - hatukujua kamwe muda wa kusimamisha kazi ungechukua muda gani na hatukuweza kutabiri ni lini mfumo wa ISP ungeamua kutoa sasisho jipya.

Katika kizazi cha tano, Billmanager alipata bora, lakini ili kupata huduma muhimu, ilibidi nisakinishe beta, ambayo tayari ilikuwa imesasishwa kila wiki. Ikiwa kitu kilivunjika, ilibidi nipe ufikiaji kwa watengenezaji wengine ili waweze kurekebisha kitu.

Kiolesura cha paneli kisichofaa

Kila kitu kiligawanywa katika paneli tofauti na kudhibitiwa kutoka sehemu tofauti. Kwa mfano, wateja walilipa kupitia Billmanager, na walilazimika kuwasha upya au kusakinisha upya VDS katika VMManager. Wafanyakazi wetu pia walilazimika kubadili kati ya madirisha ili kumsaidia mteja, kuangalia mzigo kwenye seva yake, au kuona OS aliyokuwa akitumia.

Kiolesura kama hicho huchukua muda - yetu na ya wateja wetu. Hakuna swali la urahisi wowote, kama ule wa DigitalOcean, katika hali kama hiyo.

Mizunguko fupi ya maisha yenye visasisho vya mara kwa mara vya API

Tuliandika programu-jalizi zetu - kwa mfano, programu-jalizi iliyo na njia za ziada za malipo ambazo haziko kwenye VMManager.

Katika miaka ya hivi karibuni, VMManager ilikuwa na mzunguko mfupi wa maisha, na katika matoleo mapya, majina ya vigeu au vitendaji katika API yanaweza kubadilika kiholela - hii ilivunja programu-jalizi zetu. Usaidizi wa matoleo ya zamani ulikomeshwa haraka na ilibidi usasishwe.

Haiwezi kurekebishwa

Kwa usahihi zaidi, inawezekana, lakini haifai sana. Vizuizi vya leseni havikuruhusu kufanya mabadiliko kwenye msimbo wa chanzo, unaweza kuandika programu-jalizi pekee. Upeo wa programu-jalizi - baadhi ya vitu vya menyu, mchawi wa hatua kwa hatua. Mfumo wa ISP umeundwa kwa matumizi mengi, lakini tulihitaji masuluhisho maalum.

Kwa hivyo uamuzi ulikuwa tayari kuandika jopo langu mwenyewe. Tumeweka malengo:

  • Jibu haraka makosa, hitilafu na uweze kuzirekebisha mwenyewe bila kumfanya mteja asubiri.
  • Rekebisha kiolesura kwa urahisi kwa utiririshaji wa kazi na mahitaji ya mteja.
  • Ongeza utumiaji kwa muundo safi na unaoeleweka.

Na tulianza maendeleo.

Usanifu Mpya wa Paneli

Tuna timu ya maendeleo inayojitosheleza, kwa hivyo tuliandika jopo wenyewe.
Kazi kuu ilifanywa na wahandisi watatu - mkurugenzi wa kiufundi Sergey alikuja na usanifu na kuandika wakala wa seva, Alexey alifanya malipo, na mwisho wa mbele ulikusanywa na Artysh wetu wa mbele.

Hatua ya 1: Wakala wa Seva

Wakala wa seva ni seva ya wavuti ya python ambayo inasimamia maktaba libvirt, ambayo nayo inatawala Hypervisor ya Qemu-kvm.

Wakala anasimamia huduma zote kwenye seva: kuunda, kuacha, kufuta vds, kufunga mifumo ya uendeshaji, kubadilisha vigezo, na kadhalika kupitia maktaba ya libvirt. Wakati wa kuchapishwa kwa makala, hizi ni zaidi ya kazi arobaini tofauti, ambazo tunaongeza kulingana na kazi na mahitaji ya mteja.

Kinadharia, libvirt inaweza kudhibitiwa moja kwa moja kutoka kwa utozaji, lakini hii ilihitaji msimbo mwingi zaidi na tuliamua kutenganisha utendakazi hizi kati ya wakala na utozaji - utozaji hufanya maombi kwa wakala kupitia API ya JSON.

Wakala ndio jambo la kwanza tulilofanya, kwani haikuhitaji kiolesura chochote na iliwezekana kuijaribu moja kwa moja kutoka kwa koni ya seva.

Kile ambacho wakala wa seva alitupa: safu imeonekana ambayo hurahisisha maisha kwa kila mtu - bili haihitaji kutuma rundo zima la amri, lakini fanya ombi tu. Na wakala atafanya kila kitu kinachohitajika: kwa mfano, itatenga nafasi ya disk na RAM.

Hatua ya 2. Malipo

Kwa msanidi wetu Alex, hii haikuwa jopo la kwanza la kudhibiti - Alex amekuwa mwenyeji kwa muda mrefu, kwa hivyo alielewa kwa ujumla kile mteja alichohitaji na kile ambacho mwenyeji alihitaji.

Tunaita bili kati yetu "jopo la kudhibiti": haina pesa na huduma tu, bali pia usimamizi wao, usaidizi wa wateja na mengi zaidi.

Ili kubadili kutoka kwa programu ya ISPSystem, ilikuwa ni lazima kuhifadhi kikamilifu utendaji wa awali kwa wateja, kuhamisha vitendo vyote vya kifedha vya watumiaji kutoka kwa bili ya zamani hadi mpya, pamoja na huduma zote na uhusiano kati yao. Tulisoma kile kilicho katika bidhaa ya sasa, kisha suluhisho za washindani, haswa DO na Vultr. Tuliangalia hasara na faida, tukakusanya maoni kutoka kwa watu ambao walifanya kazi na bidhaa za zamani kutoka kwa ISPsystem.

Utozaji mpya ulitumia rafu mbili: PHP ya kawaida, MySQL (na katika siku zijazo imepangwa kubadili hadi PostgreSQL), Yii2 kama mfumo wa sehemu ya nyuma na VueJS mbele. Rafu hufanya kazi kwa kujitegemea, hutengenezwa na watu tofauti, na kuwasiliana kwa kutumia API ya JSON. Kwa maendeleo basi na sasa tunatumia Dhoruba ya PHPS ΠΈ dhoruba ya wavuti kutoka JetBrains na kuwapenda sana (hey guys!)

Jopo limeundwa kwa misingi ya msimu: moduli za mfumo wa malipo, moduli ya msajili wa kikoa au, kwa mfano, moduli ya cheti cha SSL. Unaweza kuongeza kipengele kipya kwa urahisi au kuondoa cha zamani. Msingi wa upanuzi umewekwa kwa usanifu, ikiwa ni pamoja na kinyume chake, "kuelekea vifaa".
Mfumo wa ISP, samehe na kwaheri! Kwa nini na jinsi tuliandika jopo la udhibiti wa seva yetu
Tulipata nini: paneli dhibiti ambayo tuna udhibiti kamili. Sasa mende hurekebishwa kwa saa, sio wiki, na vipengele vipya vinatekelezwa kwa ombi la wateja, na si kwa ombi la ISPSystem.

Hatua ya 3 Kiolesura

Mfumo wa ISP, samehe na kwaheri! Kwa nini na jinsi tuliandika jopo la udhibiti wa seva yetu
Kiolesura ni kikundi chetu cha ubongo.

Kwanza, tuliangalia nini kitatokea ikiwa tungeongeza programu ya ISPsystem bila kubadilisha chochote kwenye kiolesura. Ilibadilika hivyo-hivyo na tuliamua kufanya kila kitu kutoka mwanzo.

Tuliamini kwamba jambo kuu ni kufanya interface ya mantiki, na kubuni safi na ndogo, na kisha tutapata jopo nzuri. Mahali pa vipengee vilijadiliwa katika Megaplan na kiolesura ambacho watumiaji wanaona kwenye paneli dhibiti sasa kitazaliwa polepole.

Muundo wa ukurasa wa bili ulikuwa wa kwanza kuonekana, kwa sababu tayari tumeshafanya programu jalizi za malipo za mfumo wa ISP.

Mbele

Waliamua kufanya paneli kuwa programu tumizi ya SPA - isiyolipishwa kwa rasilimali na kwa upakiaji wa data haraka. Artysh wetu wa mbele aliamua kuiandika kwenye Vue - wakati huo Vue alikuwa ametokea. Tulidhani kwamba mfumo huo ungekua kwa nguvu, kama React, baada ya muda fulani jumuiya ya Vue ingekua na maktaba nyingi zingetokea. Tuliweka dau kwenye Vue na hatukujutia - sasa inachukua muda kidogo kuongeza vitendaji vipya mbele ambavyo tayari vimeratibiwa kwenye mwisho wa nyuma. Tutakuambia zaidi kuhusu jopo la mwisho katika makala tofauti.

Kuunganisha sehemu ya mbele kwa nyuma

Sehemu ya mbele iliunganishwa kwa upande wa nyuma kupitia arifa zinazotumwa na programu hata wakati huitumii. Ilinibidi kufanya kazi kwa bidii na kuandika kidhibiti changu mwenyewe, lakini sasa habari kwenye ukurasa inasasishwa mara moja.

Nini kimetokea: Kiolesura cha paneli kimekuwa rahisi. Tuliifanya ibadilike, na upakiaji wa haraka hukuruhusu kuitumia hata kutoka kwa simu za rununu katika dakika za mwisho kabla ya kuondoka, bila kusakinisha programu tofauti ya kufanya kazi na kidirisha.

Hatua ya 4. Mpango wa kupima na uhamiaji

Wakati kila kitu kilipoanza na vipimo vya kwanza vilipita, swali la uhamiaji liliibuka. Kwanza kabisa, tulisakinisha bili na kuanza kujaribu utendakazi wake na wakala wa seva.

Kisha tukaandika hati rahisi ambayo huhamisha hifadhidata kutoka kwa bili ya zamani hadi mpya.

Ilinibidi kujaribu na kuangalia tena kila kitu, kwani data hiyo iliunganishwa kuwa hifadhidata moja mpya kutoka kwa zile tatu za zamani: Billmanager, VMmanager na IPmanager ya meneja. Labda uhamishaji wa majaribio ndio jambo gumu zaidi tulilokumbana nalo katika mchakato wa kuunda paneli mpya.

Baada ya kukagua tena, tulifunga bili ya zamani. Uhamisho wa mwisho wa data ulikuwa wakati wa kutatanisha sana, lakini, namshukuru Mungu, ulikamilika kwa dakika chache na bila matatizo yanayoonekana. Kulikuwa na hitilafu ndogo ambazo tulirekebisha wakati wa wiki. Muda mwingi ulitumika kupima kile kilichotokea.

Kisha tulituma barua kwa wateja zilizo na anwani ya paneli mpya na malipo na tukaelekeza kwingine.

Mwishowe: YUPO HAI!

Mwisho wa furaha

Kuanzia saa za kwanza za kazi ya programu yetu, tulihisi furaha zote za mpito. Nambari hiyo ilikuwa yetu kabisa na kwa usanifu rahisi, na interface ilikuwa safi na ya mantiki.
Mfumo wa ISP, samehe na kwaheri! Kwa nini na jinsi tuliandika jopo la udhibiti wa seva yetu
Ukaguzi wa kwanza baada ya kuzinduliwa kwa kidirisha kipya

Tulizindua mchakato wa mpito mnamo Desemba, usiku wa Mwaka Mpya 2017, wakati mzigo ulikuwa mdogo, ili kufanya mpito iwe rahisi kwa wateja - karibu hakuna mtu anayefanya kazi usiku wa likizo.

Jambo kuu ambalo tulipata wakati wa kubadili mfumo wetu (mbali na kuegemea kwa ujumla na urahisi) ni uwezo wa kuongeza haraka utendaji kwa wateja muhimu - kuwa uso wao, sio punda wao.

Nini hapo?

Tunakua, idadi ya data, wateja, data ya mteja inakua. Ilinibidi kuongeza seva ya Memcached na wasimamizi wawili wa foleni walio na kazi tofauti kwenye sehemu ya nyuma. Sehemu ya mbele ina kache na foleni zake.

Bila shaka, bado tulikuwa na matukio kadri bidhaa ilivyokuwa ikitengenezwa na kuwa changamano zaidi, kwa mfano tulipoongeza HighLoad.

Katika makala inayofuata, tutakuambia jinsi ushuru wa Hi-CPU ulizinduliwa: kuhusu vifaa, programu, ni kazi gani tulizotatua na kile tulichofanya.

Chanzo: mapenzi.com

Kuongeza maoni