ISPsystem, hampura sareng pamitan! Naha jeung kumaha urang nulis panel kontrol server urang

ISPsystem, hampura sareng pamitan! Naha jeung kumaha urang nulis panel kontrol server urang

Halo! Kami "Hosting Technologies" sareng diluncurkeun 5 sababaraha taun ka pengker VDSina - vds hosting munggaran dijieun husus pikeun pamekar. Kami narékahan pikeun ngagampangkeun, sapertos DigitalOcean, tapi kalayan dukungan Rusia, metode pamayaran sareng server di Rusia. Tapi DigitalOcean henteu ngan ukur reliabilitas sareng harga, éta ogé jasa.

Parangkat lunak ti ISPsystem tétéla janten tali anu ngabeungkeut panangan urang dina jalan ka layanan anu saé. Tilu taun ka pengker, kami nganggo tagihan Billmanager sareng panel kontrol server VMmanager sareng gancang sadar yén ampir teu mungkin pikeun nyayogikeun jasa anu saé tanpa panel kontrol kami sorangan.

Kumaha ISPsystem ditelasan genah

Bugs

Kami henteu tiasa ngalereskeun bug sorangan - unggal waktos urang kedah nyerat ka dukungan batur sareng ngantosan. Solusi pikeun masalah naon waé peryogi réspon perusahaan pihak katilu.

rojongan ISPsystem direspon normal, tapi perbaikan datang ngan sanggeus sababaraha release, lajeng teu salawasna teu kabeh. Kadang bug kritis dilereskeun sababaraha minggu. Kami kedah ngajaminkeun para nasabah, hapunten sareng ngantosan ISPsystem ngalereskeun bug.

Ancaman Downtime

Pembaruan tiasa ngahasilkeun downtime anu teu kaduga anu nyababkeun kasalahan énggal.

Masing-masing pembaruan mangrupikeun lotre: Kuring kedah nutupan tagihan sareng berkorban ka dewa pembaruan - sababaraha kali pembaruan nyababkeun downtime salami 10-15 menit. Admins kami dina waktos ieu calik dina panonna - kami henteu kantos terang sabaraha waktos downtime bakal tahan sareng henteu tiasa ngaduga iraha ISPsystem bakal mutuskeun ngaleupaskeun pembaruan énggal.

Dina generasi kalima, Billmanager janten langkung saé, tapi pikeun kéngingkeun aksés kana fitur anu diperyogikeun, kuring kedah masang béta, anu parantos diropéa unggal minggu. Upami aya anu rusak, kuring kedah masihan aksés ka pamekar anu sanés supados aranjeunna tiasa ngalereskeun hiji hal.

Antarbeungeut panel anu teu merenah

Sagalana dibagi kana panels béda jeung dikawasa ti tempat béda. Contona, konsumén mayar ngaliwatan Billmanager, sarta maranéhanana kudu reboot atanapi reinstall VDS di VMManager. Staf kami ogé kedah ngalih antara windows pikeun ngabantosan klien, pariksa beban dina server na, atanapi ningali OS naon anu dianggo.

Antarbeungeut sapertos kitu butuh waktos - milik urang sareng klien urang. Henteu aya patarosan ngeunaan genah naon waé, sapertos DigitalOcean, dina kaayaan sapertos kitu.

Daur hirup pondok sareng apdet API anu sering

Kami nyerat plugins sorangan - contona, plugin sareng metode pamayaran tambahan anu henteu aya dina VMManager.

Dina taun-taun ayeuna, VMManager ngagaduhan siklus hirup anu pondok, sareng dina vérsi énggal, nami variabel atanapi fungsi dina API tiasa robih sawenang-wenang - ieu ngarobih plugins urang. Rojongan pikeun vérsi anu langkung lami gancang dileungitkeun sareng kedah diropéa.

Teu bisa dirobah

Leuwih tepat, éta mungkin, tapi pisan teu efisien. Watesan lisénsi teu ngidinan Anjeun pikeun nyieun parobahan kode sumber, Anjeun ngan bisa nulis plugins. Maksimum plugins - sababaraha item menu, wizard hambalan-demi-hambalan. ISPsystem dirancang pikeun versatility, tapi urang diperlukeun solusi husus.

Jadi kaputusan geus asak nulis panel kuring sorangan. Kami parantos netepkeun tujuan:

  • Ngabales gancang kasalahan, bug sareng tiasa ngalereskeunana nyalira tanpa ngantosan klien.
  • Bébas ngaropéa antarbeungeut pikeun alur kerja sareng kabutuhan klien.
  • Ningkatkeun usability kalawan desain beresih jeung kaharti.

Sareng urang ngamimitian pangwangunan.

Arsitéktur Panel Anyar

Kami gaduh tim pangembangan mandiri, janten kami nyerat panel sorangan.
Karya utama dipigawé ku tilu insinyur - diréktur téknis Sergey datang nepi ka arsitéktur sarta nulis agén server, Alexey tuh tagihanana, sarta hareup-tungtung ieu dirakit ku hareup-ender urang Artysh.

Lengkah 1: Agen Server

Agén server mangrupikeun server wéb python anu ngatur perpustakaan kabébasan, anu dina gilirannana ngatur Qemu-kvm hypervisor.

Agén ngatur sadaya jasa dina server: nyiptakeun, ngeureunkeun, ngahapus vds, masang sistem operasi, ngarobih parameter, sareng saterasna ngalangkungan perpustakaan libvirt. Dina waktu publikasi artikel, ieu leuwih ti opat puluh fungsi béda, nu urang suplement gumantung kana tugas jeung kabutuhan klien.

Dina tiori, libvirt bisa dikawasa langsung tina tagihan, tapi ieu diperlukeun teuing kode tambahan sarta kami mutuskeun pikeun misahkeun fungsi ieu antara agén jeung tagihan - tagihan saukur nyieun requests ka agén via API JSON.

Agén mangrupikeun hal anu munggaran urang laksanakeun, sabab éta henteu meryogikeun antarmuka sareng éta tiasa diuji langsung tina konsol server.

Naon agén server masihan kami: lapisan geus mucunghul nu simplifies hirup for everyone - tagihan teu kudu ngirim kebat sakabeh paréntah, tapi ngan nyieun pamundut a. Sareng agén bakal ngalakukeun sadayana anu diperyogikeun: contona, éta bakal nyayogikeun rohangan disk sareng RAM.

Lengkah 2. Tagihan

Pikeun pamekar kami Alex, ieu sanés panel kontrol anu munggaran - Alex parantos lami dina hosting, janten anjeunna umumna ngartos naon anu diperyogikeun ku klien sareng naon anu diperyogikeun hoster.

Kami nyebat tagihan diantara urang salaku "panel kontrol": éta henteu ngan ukur artos sareng jasa, tapi ogé manajeménna, dukungan palanggan sareng seueur deui.

Pikeun ngalih tina parangkat lunak ISPSystem, éta diperyogikeun pikeun ngawétkeun pungsionalitas saméméhna pikeun konsumén, mindahkeun sadaya tindakan kauangan pangguna tina tagihan anu lami ka anu énggal, ogé sadaya jasa sareng sambungan antara aranjeunna. Urang diajar naon anu aya dina produk ayeuna, teras solusi pesaing, utamina DO sareng Vultr. Urang nempo kalemahan jeung kaunggulan, dikumpulkeun eupan balik ti jalma anu digarap ku produk heubeul ti ISPsystem.

Tagihan anyar dipaké dua tumpukan: PHP Palasik, MySQL (jeung di mangsa nu bakal datang ieu rencanana pindah ka PostgreSQL), Yii2 salaku kerangka on backend sarta VueJS on hareup. Tumpukan tiasa dianggo sacara mandiri, dikembangkeun ku jalma anu béda, sareng komunikasi nganggo API JSON. Pikeun pangwangunan harita jeung ayeuna urang pake PHPStorm и badai wéb ti JetBrains sareng bogoh ka aranjeunna (hey guys!)

Panel dirancang dina dasar modular: modul sistem pembayaran, modul registrar domain atawa, contona, hiji modul sertipikat SSL. Anjeun tiasa sacara gampil nambihan fitur énggal atanapi ngahapus fitur anu lami. Dasar pikeun ékspansi diteundeun architecturally, kaasup dina arah nu lalawanan, "nuju hardware".
ISPsystem, hampura sareng pamitan! Naha jeung kumaha urang nulis panel kontrol server urang
Naon anu urang meunang: panel kontrol nu urang gaduh kadali pinuh. Ayeuna bug dibenerkeun dina sababaraha jam, sanés minggu, sareng fitur-fitur énggal dilaksanakeun dina pamundut palanggan, sareng sanés dina pamundut ISPSystem.

Lengkah 3 Interface

ISPsystem, hampura sareng pamitan! Naha jeung kumaha urang nulis panel kontrol server urang
Antarbeungeut mangrupikeun gagasan tim kami.

Kahiji, urang nempo naon anu bakal kajadian lamun urang nyieun hiji add-on leuwih ISPsystem API tanpa fundamentally ngarobah nanaon dina panganteur nu. Tétéla kitu-kitu jeung urang mutuskeun pikeun ngalakukeun sagalana ti scratch.

Kami yakin yén hal utama nyaéta ngajantenkeun antarmuka logis, kalayan desain anu bersih sareng minimalis, teras kami bakal nampi panel anu saé. Lokasi unsur ieu dibahas dina Megaplan jeung panganteur nu pamaké tingali dina panel kontrol ayeuna laun bakal dilahirkeun.

Desain halaman tagihan anu munggaran muncul, sabab kami parantos ngadamel plugins pamayaran pikeun ISPsystem.

Tungtung payun

Aranjeunna mutuskeun pikeun ngajantenkeun panel janten aplikasi SPA - henteu nungtut sumber daya sareng loading data anu gancang. Urang hareup-ender Artysh mutuskeun pikeun nulis eta dina Vue - dina waktu éta Vue nembé muncul. Kami nganggap yén kerangka bakal mekar sacara dinamis, sapertos React, saatos sababaraha waktos komunitas Vue bakal tumbuh sareng sagara perpustakaan bakal muncul. Kami bet dina Vue sareng henteu kuciwa - ayeuna peryogi sakedik waktos pikeun nambihan fungsi énggal ka payun anu parantos diprogram dina tonggong. Kami bakal nyarios langkung seueur ngeunaan panel hareup-tungtung dina tulisan anu misah.

Nyambungkeun frontend ka backend

Frontend disambungkeun ka backend via push bewara. Kuring kungsi kerja keras jeung nulis pawang sorangan, tapi ayeuna informasi dina kaca ieu diropéa ampir instan.

Aya naon: Antarbeungeut panel parantos langkung saderhana. Urang dijieun adaptif, sarta loading gancang ngidinan Anjeun pikeun make eta malah tina handphone dina menit panungtungan saméméh takeoff, tanpa masang aplikasi misah pikeun digawe sareng panel.

Lengkah 4. Tés jeung skéma migrasi

Nalika sadayana dimimitian sareng tés anu munggaran lulus, patarosan migrasi timbul. Anu mimiti, urang masang tagihan sareng ngamimitian nguji operasina sareng agén server.

Teras we nyerat skrip saderhana anu mindahkeun pangkalan data tina tagihan anu lami ka anu énggal.

Kuring kungsi nguji sarta pariksa deui sacara harfiah sagalana, saprak data ieu dihijikeun kana hiji database anyar ti tilu heubeul: Billmanager, VMmanager sarta manajer urang IPmanager. Panginten migrasi tés mangrupikeun hal anu paling hese anu urang tepang dina prosés ngembangkeun panel énggal.

Saatos mariksa deui, urang nutup tagihan anu lami. Migrasi data ahir éta momen pisan troubling, tapi, alhamdulillah, éta réngsé dina sababaraha menit sarta tanpa masalah noticeable. Aya bug minor nu urang dibereskeun salila saminggu. Kalolobaan waktu ieu spent nguji naon anu lumangsung.

Teras kami ngirim surat ka klien kalayan alamat panel sareng tagihan énggal sareng ngadamel alihan.

Kasimpulanna: HIDUP!

Bagja tungtung

Ti mimiti jam gawé software urang, urang ngarasa sagala nikmat tina transisi. Kode éta sagemblengna kami sarta kalawan arsitektur merenah, sarta panganteur ieu beresih jeung logis.
ISPsystem, hampura sareng pamitan! Naha jeung kumaha urang nulis panel kontrol server urang
Tinjauan munggaran saatos peluncuran panel énggal

Kami ngaluncurkeun prosés transisi dina bulan Désémber, dina wengi Taun Anyar 2017, nalika bebanna sahenteuna, pikeun ngajantenkeun transisi langkung gampang pikeun para nasabah - ampir teu aya anu damel dina wengi liburan.

Hal utama anu urang kéngingkeun nalika ngalih ka sistem kami (sajaba ti réliabilitas umum sareng genah) nyaéta kamampuan pikeun gancang nambihan fungsionalitas pikeun konsumén konci - janten wajahna, sanés buritna.

Naon saterusna?

Kami ngembang, jumlah data, palanggan, data palanggan ngembang. Kuring kungsi nambahkeun server Memcached sarta dua manajer antrian kalawan tugas béda mun backend nu. frontend ngabogaan cache sarta antrian sorangan.

Tangtu, urang masih ngalaman adventures salaku produk dimekarkeun sarta jadi leuwih kompleks, contona lamun urang ditambahkeun HighLoad.

Dina artikel salajengna, urang bakal ngabejaan ka maneh kumaha tarif Hi-CPU diluncurkeun: ngeunaan hardware, software, naon tugas urang direngsekeun jeung naon urang ngalakukeun.

sumber: www.habr.com

Tambahkeun komentar