ISPsystem, padonnen ak orevwa! Poukisa ak ki jan nou te ekri panèl kontwòl sèvè nou an

ISPsystem, padonnen ak orevwa! Poukisa ak ki jan nou te ekri panèl kontwòl sèvè nou an

Bonjou! Nou se "Hosting Technologies" ak 5 ane de sa nou te lanse VDSina — premye vds hosting ki te kreye espesyalman pou devlopè yo. Nou fè efò pou fè li pratik, tankou DigitalOcean, men ak sipò Ris, metòd peman ak sèvè nan Larisi. Men, DigitalOcean se pa sèlman sou fyab ak pri, li se tou sou sèvis.

Lojisyèl ki soti nan ISPsystem te tounen yon kòd ki te mare men nou sou wout la nan yon sèvis fre. Twa ane de sa nou te itilize Billmanager bilding ak panèl kontwòl sèvè VMmanager la epi byen vit reyalize ke li te prèske enposib bay bon sèvis san pwòp panèl pa nou.

Ki jan ISPsystem touye konvenyans

Pinèz

Nou pa t 'kapab ranje ensèk la tèt nou—chak fwa nou te oblije ekri sipò yon lòt moun epi tann. Solisyon an nan nenpòt pwoblèm mande yon repons nan men yon konpayi twazyèm pati.

Sipò ISPsystem reponn nòmalman, men fikse yo te vini sèlman apre plizyè degaje, epi yo pa toujou epi yo pa tout. Pafwa pinèz kritik yo te pran plizyè semèn pou yo ka ranje. Nou te oblije rasire kliyan yo, mande eskiz epi tann pou ISPsystem ranje ensèk la.

Menas D '

Mizajou yo te kapab jenere tan pa prevwa, ki te pwovoke nouvo erè.

Chak aktyalizasyon se te yon lotri: nou te oblije kouvri bòdwo ak fè sakrifis bay bondye mizajou yo - yon koup de fwa yon aktyalizasyon te lakòz D 'pou 10-15 minit. Nan moman sa a, administratè nou yo te vin gri devan je nou - nou pa janm te konnen konbyen tan D' a ta dire epi yo pa t 'kapab predi ki lè ISPsystem ta deside pibliye yon nouvo aktyalizasyon.

Billmanager te vin pi byen sou senkyèm jenerasyon an, men yo nan lòd yo jwenn aksè nan karakteristik ki nesesè yo mwen te oblije enstale yon beta, ki te deja mete ajou chak semèn. Si yon bagay te kraze, ou te oblije bay aksè a lòt devlopè pou yo ka ranje li.

Koòdone panèl enkonvenyan

Tout bagay te divize an panno diferan ak kontwole soti nan diferan kote. Pou egzanp, kliyan yo peye atravè Billmanager, men yo te oblije rdemare oswa réinstaller VDS nan VMManager. Anplwaye nou yo tou te oblije chanje ant fenèt yo pou ede yon kliyan, tcheke chaj la sou sèvè yo, oswa wè ki OS yo te itilize.

Yon koòdone konsa pran tan - tou de nou ak kliyan nou yo. Pa gen okenn pale sou nenpòt konvenyans tankou DigitalOcean nan sitiyasyon sa a.

Sik lavi kout ak mizajou API souvan

Nou te ekri pwòp grefon nou yo - pou egzanp, yon plugin ak metòd peman adisyonèl ki pa disponib nan VMManager.

Nan dènye ane yo, VMManager te gen yon sik lavi relativman kout, ak nouvo vèsyon te kapab chanje owaza non varyab oswa fonksyon nan API a - sa a te kraze grefon nou yo. Sipò pou ansyen vèsyon yo te sispann byen vit epi li te nesesè pou mete ajou.

Pa ka modifye

Plis jisteman, li posib, men trè efikas. Restriksyon lisans pa pèmèt ou fè chanjman nan kòd sous la ou ka sèlman ekri grefon. Maksimòm grefon - kèk eleman meni, etap pa etap sòsye. ISPsystem fèt pou adaptabilite, men nou bezwen solisyon espesyalize.

Se konsa, desizyon an ekri pwòp panèl mwen an te mi. Nou te fikse objektif:

  • Reyaji byen vit nan erè ak ensèk epi ou ka ranje yo tèt ou san yo pa fè kliyan an rete tann.
  • Liberman modifye koòdone a pou adapte ak pwosesis travay kliyan an ak bezwen yo.
  • Amelyore itilizasyon ak yon konsepsyon pwòp ak klè.

Epi nou te kòmanse devlopman.

Achitekti nouvo panèl la

Nou gen yon ekip devlopman endepandan, kidonk nou te ekri panèl la tèt nou.
Travay prensipal la te fè pa twa enjenyè - direktè teknik Sergei te vini ak achitekti a epi li te ekri ajan sèvè a, Alexey te fè bòdwo a, ak entèfas la te reyini pa frontender nou an Artysh.

Etap 1: Ajan sèvè

Ajan sèvè a se yon sèvè entènèt Python ki jere bibliyotèk la libvirt, ki an vire kontwole hypervisor Qemu-kvm.

Ajan an jere tout sèvis sou sèvè a: kreye, kanpe, efase vds, enstale sistèm opere, chanje paramèt, ak sou sa atravè bibliyotèk libvirt. Nan moman piblikasyon atik sa a, sa yo se plis pase karant fonksyon diferan, ke nou ajoute depann sou travay la ak bezwen kliyan an.

Nan teyori, libvirt ta ka jere dirèkteman nan bòdwo, men sa te mande twòp kòd adisyonèl epi nou deside divize fonksyon sa yo ant ajan an ak bòdwo - bòdwo tou senpleman fè demann bay ajan an atravè API JSON la.

Ajan an te premye bagay nou te fè, paske li pa t mande okenn koòdone epi li te kapab teste dirèkteman nan konsole sèvè a.

Ki sa ajan sèvè a te ban nou: gen yon kouch parèt ki fè lavi pi fasil pou tout moun - bòdwo pa bezwen voye yon pakèt antye nan kòmandman, men sèlman fè yon demann. Ak ajan an pral fè tout sa ki nesesè: pou egzanp, asiyen espas ki gen kapasite ak RAM.

Etap 2. Faktirasyon

Pou pwomotè nou an Alex, sa a pa t 'premye panèl kontwòl la - Alex te hosting pou yon tan long, kidonk li jeneralman konprann sa kliyan an bezwen ak sa hoster la bezwen.

Nou rele bòdwo yon "panèl kontwòl": li pa gen sèlman lajan ak sèvis, men tou jesyon yo, sipò kliyan ak plis ankò.

Pou chanje soti nan lojisyèl ISPSystem, li te nesesè pou kliyan yo konplètman prezève fonksyonalite anvan an, transfere tout aksyon finansye itilizatè yo soti nan ansyen bòdwo a nan nouvo a, osi byen ke tout sèvis ak koneksyon ant yo. Nou etidye sa ki nan pwodwi aktyèl la, Lè sa a, solisyon yo nan konpetitè, sitou DO ak Vultr. Nou te gade dezavantaj yo ak avantaj yo, kolekte fidbak nan men moun ki te travay ak ansyen pwodwi nan ISPsystem.

Nouvo bòdwo a te itilize de pil: PHP klasik, MySQL (ak nan lavni li te planifye pou chanje nan PostgreSQL), Yii2 kòm yon fondasyon sou backend la ak VueJS sou devan an. Pile yo opere poukont youn ak lòt, yo devlope pa diferan moun, epi kominike lè l sèvi avèk JSON API a. Pou devlopman lè sa a e kounye a nou itilize PHPStorm и webstorm soti nan JetBrains epi renmen yo anpil (hey mesye!)

Panèl la fèt sou yon baz modilè: modil sistèm peman, modil rjistrèr domèn oswa, pou egzanp, modil sètifika SSL. Ou ka fasilman ajoute yon nouvo karakteristik oswa retire yon ansyen. Se baz pou ekspansyon mete achitekti, ki gen ladan nan direksyon opoze a, "nan direksyon pyès ki nan konpitè".
ISPsystem, padonnen ak orevwa! Poukisa ak ki jan nou te ekri panèl kontwòl sèvè nou an
Kisa nou te jwenn: Yon panèl kontwòl sou ki nou gen kontwòl konplè. Koulye a, pinèz yo fikse nan èdtan, pa semèn, ak nouvo karakteristik yo aplike nan demann lan nan kliyan, epi yo pa nan demann lan nan ISPSystem.

Etap 3. Entèfas

ISPsystem, padonnen ak orevwa! Poukisa ak ki jan nou te ekri panèl kontwòl sèvè nou an
Koòdone a se lide ekip nou an.

Premyèman, nou te gade sa ki ta rive si nou te fè yon ajoute nan API a ISPsystem san yo pa chanje fondamantalman anyen nan koòdone a. Li te tounen soti konsa-konsa epi nou deside fè tout bagay soti nan grafouyen.

Nou te kwè ke bagay prensipal la se te fè koòdone nan lojik, ak yon konsepsyon pwòp ak minimalist, ak Lè sa a, nou ta jwenn yon panèl bèl. Aranjman an nan eleman yo te diskite nan Megaplan ak piti piti koòdone ke itilizatè yo wè nan panèl la kontwòl kounye a pral fèt.

Konsepsyon paj bòdwo a te vini an premye, paske nou te deja fè grefon peman pou ISPsystem.

Frontend

Yo deside fè panèl la yon aplikasyon SPA - san egzijans an tèm de resous ak ak chaj done rapid. Frontend nou an Artysh deside ekri li nan Vue - nan moman sa a Vue te jis parèt. Nou te sipoze ke fondasyon an ta devlope dinamik, tankou React, epi apre kèk tan kominote Vue a ta grandi ak yon lanmè bibliyotèk ta parèt. Nou te opte pou Vue epi nou pa regrèt sa - kounye a ajoute nouvo fonksyon sou devan an ki te deja pwograme sou backend la pran yon ti tan. Nou pral di w plis enfòmasyon sou panno front-end nan yon atik separe.

Koneksyon ant frontend ak backend

Frontend la te konekte ak backend la atravè notifikasyon pouse. Mwen te oblije travay di epi ekri pwòp moun k ap okipe m, men kounye a enfòmasyon ki nan paj la mete ajou prèske imedyatman.

sak pase: Koòdone panèl la vin pi senp. Nou te fè li adaptasyon, ak chaj rapid pèmèt ou sèvi ak li menm nan telefòn mobil nan dènye minit yo anvan dekolaj, san yo pa enstale yon aplikasyon separe pou travay ak panèl la.

Etap 4. Tès ak konplo migrasyon

Lè tout bagay te kòmanse ak premye tès yo te pase, kesyon migrasyon an te parèt. Premye a tout, nou enstale bòdwo e nou te kòmanse teste travay li ak ajan sèvè a.

Lè sa a, nou te ekri yon senp script ki transfere baz done a soti nan sistèm nan bòdwo ansyen nan yon nouvo.

Nou te oblije teste ak double-tcheke literalman tout bagay, depi done yo te fizyone nan yon nouvo baz done ki soti nan twa ansyen: Billmanager, VMmanager ak manadjè IPmanager. Petèt migrasyon tès yo se bagay ki pi difisil nou rankontre nan pwosesis pou devlope yon nouvo panèl.

Apre doub-chèk, nou fèmen ansyen bòdwo a. Migrasyon done final la te yon moman trè mangonmen, men, di Bondye mèsi, li te konplete nan kèk minit ak san pwoblèm aparan. Te gen pinèz minè ke nou ranje sou kou a nan yon semèn. Pifò nan tan an te pase tès sa ki te pase.

Lè sa a, nou te voye lèt bay kliyan ak adrès nouvo panèl la ak bòdwo e nou te fè yon redireksyon.

An rezime: LI VIVAN!

Ala bon sa bon

Soti nan premye èdtan yo nan travay ak lojisyèl nou an, nou te santi tout plezi yo nan tranzisyon an. Kòd la te konplètman nou e li te gen yon achitekti pratik, ak koòdone a te pwòp ak lojik.
ISPsystem, padonnen ak orevwa! Poukisa ak ki jan nou te ekri panèl kontwòl sèvè nou an
Premye revizyon apre lanse nouvo panèl la

Nou te lanse pwosesis tranzisyon an nan mwa desanm, lavèy nouvèl ane 2017, lè te gen pi piti kantite travay, pou fè tranzisyon an pi fasil pou kliyan - prèske pa gen moun ki travay lavèy jou ferye yo.

Bagay pwensipal lan nou te resevwa lè chanje nan sistèm nou an (anplis fyab jeneral ak konvenyans) se te kapasite nan byen vit ajoute fonctionnalités pou kliyan kle - yo dwe figi yo, pa bourik yo.

Ki sa ki nan pwochen?

Nou ap grandi, kantite done, kliyan, done kliyan ap grandi. Sou backend la nou te ajoute yon sèvè Memcached ak de manadjè keu ak travay diferan. Entèfas la gen kachèt ak pwòp li yo.

Natirèlman, nou te toujou gen avantur kòm pwodwi a te devlope epi li te vin pi konplèks, pou egzanp lè nou te ajoute HighLoad.

Nan pwochen atik la nou pral di w kouman nou te lanse tarif Hi-CPU a: sou pyès ki nan konpitè, lojisyèl, ki pwoblèm nou rezoud ak sa nou reyalize.

Sous: www.habr.com

Add nouvo kòmantè