Pergala ISP, bibore û xatir bixwaze! Çima û çawa me panela kontrola servera xwe nivîsand

Pergala ISP, bibore û xatir bixwaze! Çima û çawa me panela kontrola servera xwe nivîsand

Slav! Em "Teknolojiyên Mêvandar" in û 5 sal berê dest pê kirin VDSina - yekem mêvandariya vds-ê ku bi taybetî ji bo pêşdebiran hatî afirandin. Em hewl didin ku wê hêsan bikin, mîna DigitalOcean, lê bi piştgiriya rûsî, rêbazên dravdanê û serverên li Rûsyayê. Lê DigitalOcean ne tenê pêbawerî û biha ye, ew di heman demê de karûbarek e.

Nermalava ji ISPsystem derket ku ew zengilek e ku destên me li ser riya karûbarek xweş girêdide. Sê sal berê, me billing Billmanager û panela kontrolê ya servera VMmanager bikar anî û zû fêm kir ku bêyî panela kontrola xwe hema hema ne gengaz e ku karûbarek baş peyda bike.

Çawa pergala ISP-ê Rehetî Kuşt

Bugs

Me bi xwe nikarîbû xeletiyê rast bikin - her carê me neçar ma ku ji piştgiriya kesek din re binivîsin û li bendê bin. Çareseriya her pirsgirêkê bersiva pargîdaniyek sêyemîn hewce dike.

Piştgiriya pergala ISP bi gelemperî bersiv da, lê rastkirin tenê piştî çend serbestberan hatin, û paşê ne her gav û ne hemî. Carinan xeletiyên krîtîk çend hefte hatin rast kirin. Diviya bû ku em xerîdar dilniya bikin, lêborîn bixwazin û li bendê bin ku ISPsystem xeletiyê rast bike.

Tehdîda Downtime

Nûvekirin dikarin demên daketinê yên nediyar biafirînin ku xeletiyên nû provoke dikin.

Her nûvekirin lotikek bû: Ez neçar bûm ku fatûreyê veşêrim û qurbanan ji xwedayên nûvekirinê re bikim - çend caran nûvekirin bû sedema 10-15 hûrdeman demdirêjiyê. Rêvebirên me di vê demê de li ber çavên xwe rûniştibûn - me qet nizanibû ku demdirêj dê çiqas dirêj bimîne û nikarîbûn pêşbîn bikin ka kengî ISPsystem dê biryara berdana nûvekirinek nû bide.

Di nifşa pêncemîn de, Billmanager çêtir bû, lê ji bo ku ez bigihîjim taybetmendiyên pêwîst, neçar bûm ku betayek saz bikim, ku jixwe her hefte nûvekirî bû. Ger tiştek şikest, min neçar ma ku bigihînim pêşdebirên din da ku ew tiştek rast bikin.

Navbera panelê ya nebaş

Her tişt di panelên cûda de hate dabeş kirin û ji cîhên cûda hate kontrol kirin. Mînakî, xerîdar bi riya Billmanager drav didin, lê neçar bûn ku VDS-ê di VMManager de ji nû ve saz bikin an saz bikin. Karmendên me di heman demê de neçar bûn ku di navbera pencereyan de biguhezînin da ku alîkariya xerîdar bikin, barkirina servera wî kontrol bikin, an bibînin ka ew çi OS-ê bikar tîne.

Têkiliyek wusa wext digire - hem ya me û hem jî xerîdarên me '. Di rewşek weha de, mîna ya DigitalOcean, ti rehetiyek tune.

Rêwiyên jiyanê yên kurt bi nûvekirinên API-ê yên pir caran

Me pêvekên xwe nivîsandin - mînakî, pêvekek bi awayên dravdanê yên din ên ku di VMManager de ne.

Di salên dawî de, VMManager xwedan çerxek jiyanek kurt bû, û di guhertoyên nû de, navên guhêrbar an fonksiyonên di API-yê de dikarin bi kêfî biguhezin - ev pêvekên me şikand. Piştgiriya ji bo guhertoyên kevintir zû ji holê rabû û pêdivî bû ku were nûve kirin.

Nikare were guherandin

Bi rastî, ew gengaz e, lê pir bêkêmasî ye. Sînorkirinên lîsansê nahêlin ku hûn di koda çavkaniyê de guhertinan bikin, hûn tenê dikarin pêvekan binivîsin. Pêvekên herî zêde - hin hêmanên menu, sêrbazek gav-bi-gav. Pergala ISP ji bo pirzimanî hatî çêkirin, lê me hewceyê çareseriyên pispor bûn.

Ji ber vê yekê biryar gihîştibû ku ez panela xwe binivîsim. Me armancên xwe danîne:

  • Zû zû bersivê bidin xeletî, xeletiyan û bêyî ku xerîdar li bendê bimîne, wan bi xwe rast bikin.
  • Ji bo xebat û hewcedariyên xerîdar bi serbestî navberê biguherînin.
  • Bi sêwiranek paqij û têgihîştî karanîna karanîna zêde bikin.

Û me dest bi pêşveçûnê kir.

Mîmariya Panela Nû

Tîmek me ya pêşkeftinê ya xweser heye, ji ber vê yekê me bi xwe panel nivîsî.
Karê sereke ji hêla sê endezyaran ve hate kirin - derhênerê teknîkî Sergey bi mîmariyê ve hat û nûnerê serverê nivîsand, Alexey hesab kir, û dawiya pêşiyê ji hêla pêş-enderê me Artysh ve hate berhev kirin.

Gav 1: Server Agent

Agent server serverek webê ya python e ku pirtûkxaneyê birêve dibe libvirt, ku di encamê de hukum dike Qemu-kvm hypervisor.

Agent hemî karûbarên li ser serverê birêve dibe: afirandin, rawestandin, jêbirina vds, sazkirina pergalên xebitandinê, guhertina parametreyan, û hwd bi navgîniya pirtûkxaneya libvirt. Di dema weşandina gotarê de, ev zêdetirî çil fonksiyonên cihêreng in, ku em li gorî peywir û hewcedariyên xerîdar lê zêde dikin.

Di teorîyê de, libvirt dikaribû rasterast ji fatûreyê were kontrol kirin, lê vê yekê pir kodek zêde hewce dike û me biryar da ku em van fonksiyonan di navbera agent û fatureyê de ji hev veqetînin - billing tenê bi navgîniya JSON API-yê daxwaz ji nûnerê dike.

Agent yekem tiştê ku me kir e, ji ber ku ew pêdiviya pêwendiyê tune û gengaz bû ku ew rasterast ji konsolê serverê ceribandin.

Tiştê ku nûnerê serverê daye me: qatek xuya bû ku jiyanê ji her kesî re hêsan dike - billing ne hewce ye ku komek fermanan bişîne, lê tenê daxwazek bike. Û ajan dê her tiştê ku hewce bike bike: Mînakî, ew ê cîhê dîskê û RAM veqetîne.

Gav 2. Billing

Ji bo pêşdebirê me Alex, ev ne panela yekem a kontrolê bû - Alex ji demek dirêj ve di mêvandariyê de ye, ji ber vê yekê wî bi gelemperî fêm kir ku xerîdar çi hewce dike û çi hewcedarê mêvandar e.

Em di nav xwe de fatûreya "panelê kontrolê" dibêjin: ew ne tenê drav û karûbaran, lê di heman demê de rêveberiya wan, piştgiriya xerîdar û hêj bêtir dihewîne.

Ji bo veguheztina ji nermalava ISPSystem, pêdivî bû ku fonksiyona berê ya bi tevahî ji xerîdaran re were parastin, hemî kiryarên darayî yên bikarhêneran ji fatûreya kevn berbi ya nû veguhezînin, û her weha hemî karûbar û girêdanên di navbera wan de. Me lêkolîn kir ku di hilbera heyî de çi heye, paşê çareseriyên pêşbazan, bi taybetî DO û Vultr. Me li dezawantaj û avantajên xwe mêze kir, ji kesên ku bi hilberên kevn ên ji pergala ISP-ê re xebitîn re bertek berhev kirin.

Billinga nû du stûn bikar anîn: PHP-ya klasîk, MySQL (û di pêşerojê de tê plan kirin ku li PostgreSQL veguherîne), Yii2 wekî çarçoveyek li ser piştê û VueJS li pêş. Stacks ji hev serbixwe dixebitin, ji hêla mirovên cûda ve têne pêşve kirin, û bi karanîna JSON API-ê re têkilî dikin. Ji bo pêşveçûnê wê demê û niha em bikar tînin PHPStorm и webstorm ji JetBrains û ji wan hez bikin (hey heval!)

Panel li ser bingehek modular hatî sêwirandin: modulên pergala dravdanê, modula qeydkerê domainê an, mînakî, modulek sertîfîkaya SSL. Hûn dikarin bi hêsanî taybetmendiyek nû lê zêde bikin an yekî kevn jê bikin. Zemîna berfirehbûnê ji hêla mîmarî ve tê danîn, di nav de berevajî vê yekê, "ber bi hardware" ve.
Pergala ISP, bibore û xatir bixwaze! Çima û çawa me panela kontrola servera xwe nivîsand
Me çi girt: panelek kontrolê ya ku me bi tevahî kontrola wê heye. Naha xeletî di demjimêran de têne rast kirin, ne bi hefteyan, û taybetmendiyên nû li ser daxwaza xerîdaran, û ne li ser daxwaza ISPSystem têne bicîh kirin.

Gav 3 Interface

Pergala ISP, bibore û xatir bixwaze! Çima û çawa me panela kontrola servera xwe nivîsand
Navbera mêjûya tîmê me ye.

Pêşîn, me nihêrî ka dê çi biqewime ger me li ser ISPsystem API-yê pêvekek çêbike bêyî ku bi bingehîn tiştek di navberê de biguhezîne. Wisa derket û me biryar da ku em her tiştî ji nû ve bikin.

Me bawer kir ku ya sereke ev e ku meriv pêvekê, bi sêwiranek paqij û mînîmalîst mentiqî bike, û dûv re em ê panelek xweşik bistînin. Cihê hêmanan di Megaplan de hate nîqaş kirin û pêwendiya ku bikarhêner naha di panelê kontrolê de dibînin dê hêdî hêdî çêbibe.

Sêwirana rûpela fatûreyê yekem bû ku xuya bû, ji ber ku me berê ji bo pergala ISP-ê pêvekên dravdanê çêkiriye.

Frontend

Wan biryar da ku panelê bikin serîlêdana SPA - ji çavkaniyan re bê daxwaz û bi barkirina daneya bilez. Pêşengê me Artysh biryar da ku wê li Vue binivîse - wê demê Vue nû xuya bû. Me texmîn kir ku çarçove dê bi rengek dînamîkî pêşve bibe, mîna React, piştî demekê dê civata Vue mezin bibe û deryayek pirtûkxane xuya bibe. Me li ser Vue behîs kir û ji wê poşman nebû - naha hindik wext digire ku meriv fonksiyonên nû li pêşiyê zêde bike ku berê li dawiya paşîn hatine bername kirin. Em ê di gotarek cûda de di derbarê panela pêşîn de bêtir ji we re vebêjin.

Girêdana pêşiyê bi piştê

Pêşî bi navgîniya ragihandinên pêvekê ve bi piştê ve hate girêdan. Ez neçar bûm ku ez zehf bixebitim û rêvebirê xwe binivîsim, lê naha agahdariya li ser rûpelê hema di cih de tê nûve kirin.

Çi qewimî: Têkiliya panelê hêsantir bûye. Me ew adaptîf kir, û barkirina bilez dihêle hûn di çend hûrdemên paşîn ên berî rabûnê de jî ji têlefonên desta bikar bînin, bêyî ku serîlêdanek cihêreng saz bikin da ku bi panelê re bixebitin.

Gav 4. Plana ceribandin û koçberiyê

Dema ku her tişt dest pê kir û ceribandinên yekem derbas bûn, pirsa koçberiyê rabû. Berî her tiştî, me billing saz kir û dest bi ceribandina xebata wê bi nûnerê serverê kir.

Dûv re me skrîptek hêsan nivîsî ku databasê ji fatûreya kevn vediguhezîne ya nû.

Diviya bû ku ez bi rastî her tiştî ceribandim û ji nû ve kontrol bikim, ji ber ku dane ji sê yên berê di nav databasek nû de hatin yek kirin: Billmanager, VMmanager û IPmanagerê rêveberê. Dibe ku koçberiyên ceribandinê tiştê herî dijwar e ku em di pêvajoya pêşxistina panelek nû de pê re rû bi rû mane.

Piştî kontrolê, me fatûreya kevn girt. Koçberiya daneya paşîn demek pir xemgîn bû, lê, spas ji Xwedê re, di çend hûrdeman de û bêyî pirsgirêkên berbiçav qediya. Çewtiyên piçûk hebûn ku me di nav hefteyê de rast kir. Pirî caran ji bo ceribandina tiştê ku qewimî derbas bû.

Dûv re me bi navnîşana panela nû û billing ji xerîdaran re name şandin û beralîkirinek çêkir.

Paştirîn: EW ZIND E!

Dawiya we pîroz be

Ji saetên yekem ên xebata nermalava me ve, me hemî kêfxweşiyên veguherînê hîs kir. Kod bi tevahî ya me û bi mîmariyek hêsan bû, û navbeynkar paqij û mentiqî bû.
Pergala ISP, bibore û xatir bixwaze! Çima û çawa me panela kontrola servera xwe nivîsand
Pêşîvekirina yekem piştî destpêkirina panela nû

Me pêvajoya veguheztinê di Kanûnê de, di êvara Sersala 2017-an de, dema ku bar herî hindik bû, da destpêkirin, da ku veguheztin ji xerîdaran re hêsantir bike - hema bêje kes di şeva betlaneyê de naxebite.

Tişta sereke ya ku me di guheztina pergala xwe de girt (ji xeynî pêbaweriya gelemperî û rehetiya xwe) ew e ku meriv zû fonksiyonê ji xerîdarên sereke re zêde bike - ku bibin rûyê wan, ne kulikê wan.

Çi ye?

Em mezin dibin, hêjmara daneyan, xerîdar, daneyên xerîdar zêde dibin. Diviya bû ku ez serverek Memcached û du rêveberên rêzê yên bi peywirên cihêreng li paşîn lê zêde bikim. Pêşî xwedî caching û rêzikên xwe hene.

Bê guman, dema ku hilber pêşket û tevlihevtir bû, ji bo nimûne gava ku me HighLoad lê zêde kir, hîna jî serpêhatiyên me hebûn.

Di gotara din de, em ê ji we re vebêjin ka tarîfa Hi-CPU çawa hate destpêkirin: di derbarê hardware, nermalavê de, me çi peywir çareser kir û me çi kir.

Source: www.habr.com

Add a comment