{"id":36207,"date":"2019-10-31T22:10:17","date_gmt":"2019-10-31T19:10:17","guid":{"rendered":"https:\/\/prohoster.info\/blog\/ispsystem-prosti-i-proshhaj-pochemu-i-kak-my-napisali-svoyu-panel-upravleniya-serverami\/"},"modified":"2019-10-31T22:10:17","modified_gmt":"2019-10-31T19:10:17","slug":"ispsystem-prosti-i-proshhaj-pochemu-i-kak-my-napisali-svoyu-panel-upravleniya-serverami","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/ispsystem-prosti-i-proshhaj-pochemu-i-kak-my-napisali-svoyu-panel-upravleniya-serverami","title":{"rendered":"ISPsystem, viszontl\u00e1t\u00e1sra! Mi\u00e9rt \u00e9s hogyan \u00edrtuk meg a saj\u00e1t szerverkezel\u0151 panel\u00fcnket","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"ISPsystem, viszontl\u00e1t\u00e1sra! Mi\u00e9rt \u00e9s hogyan \u00edrtuk meg a saj\u00e1t szerverkezel\u0151 panel\u00fcnket\" src=\"\/wp-content\/uploads\/2019\/07\/512df00a9ec2d8ff8e3586dd57702924.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nHell\u00f3! Mi vagyunk a \"Hosting Technologies\" \u00e9s 5 \u00e9vvel ezel\u0151tt ind\u00edtottuk el <noindex><a rel=\"nofollow\" href=\"https:\/\/vdsina.ru\/?partner=habr1\">VDSina<\/a><\/noindex> \u2014 az els\u0151 VDS t\u00e1rhelyszolg\u00e1ltat\u00e1s, amit kifejezetten fejleszt\u0151k sz\u00e1m\u00e1ra k\u00e9sz\u00edtettek. C\u00e9lunk, hogy olyan k\u00e9nyelmes legyen, mint a DigitalOcean, de orosz nyelv\u0171 t\u00e1mogat\u00e1ssal, fizet\u00e9si m\u00f3dokkal \u00e9s orosz szerverekkel. A DigitalOcean azonban nemcsak megb\u00edzhat\u00f3s\u00e1got \u00e9s \u00e1rat jelent, hanem szolg\u00e1ltat\u00e1st is.<\/p>\n<p>Az ISPsystem szoftvere olyan k\u00f6t\u00e9lszer\u0171 akad\u00e1lyk\u00e9nt hatott, amely megk\u00f6t\u00f6tte a kez\u00fcnket a kiv\u00e1l\u00f3 szolg\u00e1ltat\u00e1s el\u00e9r\u00e9s\u00e9nek \u00fatj\u00e1n. H\u00e1rom \u00e9vvel ezel\u0151tt a Billmanager sz\u00e1ml\u00e1z\u00e1st \u00e9s a VMmanager szerverkezel\u0151 panelt haszn\u00e1ltuk, \u00e9s gyorsan r\u00e1j\u00f6tt\u00fcnk, hogy j\u00f3 szolg\u00e1ltat\u00e1st ny\u00fajtani gyakorlatilag lehetetlen a saj\u00e1t panel n\u00e9lk\u00fcl. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Hogyan akad\u00e1lyozta meg az ISPsystem a k\u00e9nyelmet<\/h2>\n<p>\n<b>Hib\u00e1k<\/b><\/p>\n<p>Nem tudtuk saj\u00e1t magunk jav\u00edtani a hib\u00e1kat \u2014 mindig idegen t\u00e1mogat\u00e1st kellett k\u00e9rn\u00fcnk, \u00e9s v\u00e1rni. B\u00e1rmilyen probl\u00e9ma megold\u00e1sa egy harmadik c\u00e9g reakci\u00f3j\u00e1t ig\u00e9nyelte. <\/p>\n<p>Az ISPsystem t\u00e1mogat\u00e1sa elfogadhat\u00f3an v\u00e1laszolt, de a jav\u00edt\u00e1sok csak n\u00e9h\u00e1ny kiad\u00e1s ut\u00e1n \u00e9rkeztek, \u00e9s nem mindig, \u00e9s nem mind. N\u00e9ha kritikus hib\u00e1k jav\u00edt\u00e1sa hetekbe telt. Meg kellett nyugtatnunk az \u00fcgyfeleinket, eln\u00e9z\u00e9st kellett k\u00e9rn\u00fcnk, \u00e9s v\u00e1rnunk kellett, am\u00edg az ISPsystem kijav\u00edtja a hib\u00e1t.<\/p>\n<p><b>A le\u00e1ll\u00e1sok fenyeget\u00e9se<\/b><\/p>\n<p>A friss\u00edt\u00e9sek el\u0151re nem l\u00e1that\u00f3 le\u00e1ll\u00e1sokat okozhattak, amelyek \u00faj hib\u00e1kat provok\u00e1ltak. <\/p>\n<p>Minden friss\u00edt\u00e9s olyan volt, mint egy lott\u00f3: le kellett z\u00e1rnunk a sz\u00e1ml\u00e1z\u00e1st \u00e9s \u00e1ldozatokat kellett hoznunk a friss\u00edt\u00e9sek isteneinek \u2014 n\u00e9h\u00e1nyszor a friss\u00edt\u00e9s 10-15 perces le\u00e1ll\u00e1st okozott. Adminisztr\u00e1toraink ilyenkor a szem\u00fcnk el\u0151tt idegeskedtek \u2014 sosem tudtuk, mennyi ideig tart a le\u00e1ll\u00e1s, \u00e9s nem tudtuk megj\u00f3solni, mikor d\u00f6nt \u00fagy az ISPsystem, hogy kiad egy \u00faj friss\u00edt\u00e9st. <\/p>\n<p>Az \u00f6t\u00f6dik gener\u00e1ci\u00f3s Billmanager valamivel jobb lett, de hogy hozz\u00e1f\u00e9rj\u00fcnk a sz\u00fcks\u00e9ges funkci\u00f3khoz, b\u00e9taverzi\u00f3t kellett telep\u00edten\u00fcnk, ami m\u00e1r heti friss\u00edt\u00e9seket kapott. Ha valami elromlott, idegen fejleszt\u0151knek kellett hozz\u00e1f\u00e9r\u00e9st biztos\u00edtanunk, hogy jav\u00edtani tudj\u00e1k. <\/p>\n<p><b>A panel k\u00e9nyelmetlen fel\u00fclete<\/b><\/p>\n<p>Minden r\u00e9sz k\u00fcl\u00f6n panelekbe volt osztva, \u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 helyekr\u0151l ir\u00e1ny\u00edtott\u00e1k. P\u00e9ld\u00e1ul az \u00fcgyfelek a Billmanageren kereszt\u00fcl fizettek, m\u00edg a VDS-t \u00fajraind\u00edtani vagy \u00fajratelep\u00edteni kellett a VMManagerben. Dolgoz\u00f3inknak is v\u00e1ltogatniuk kellett az ablakok k\u00f6z\u00f6tt, hogy seg\u00edtsenek az \u00fcgyfeleknek, ellen\u0151rizz\u00e9k a leterhelts\u00e9get a szerver\u00fck\u00f6n vagy megn\u00e9zz\u00e9k, melyik oper\u00e1ci\u00f3s rendszert haszn\u00e1lj\u00e1k.<\/p>\n<p>Ez a fel\u00fclet id\u0151t rabol \u2014 mind a mi\u00e9nkb\u0151l, mind az \u00fcgyfelek\u00e9b\u0151l. A DigitalOcean-szer\u0171 k\u00e9nyelemr\u0151l ilyen helyzetben sz\u00f3 sem lehet. <\/p>\n<p><b>R\u00f6vid \u00e9letciklusok a gyakori API-friss\u00edt\u00e9sekkel<\/b><\/p>\n<p>Saj\u00e1t b\u0151v\u00edtm\u00e9nyeket \u00edrtunk \u2014 p\u00e9ld\u00e1ul egy b\u0151v\u00edtm\u00e9nyt, amely tov\u00e1bbi fizet\u00e9si m\u00f3dszereket k\u00edn\u00e1l, amelyek nem tal\u00e1lhat\u00f3k a VMManagerben.<\/p>\n<p>Az ut\u00f3bbi \u00e9vekben a VMManager viszonylag r\u00f6vid \u00e9lettartama volt, \u00e9s az \u00faj verzi\u00f3kban v\u00e9letlenszer\u0171en v\u00e1ltozhattak az API v\u00e1ltoz\u00f3k vagy funkci\u00f3k nevei \u2014 ez t\u00f6nkretette a b\u0151v\u00edtm\u00e9nyeinket. A r\u00e9gi verzi\u00f3k t\u00e1mogat\u00e1s\u00e1t gyorsan megsz\u00fcntett\u00e9k, \u00e9s friss\u00edten\u00fcnk kellett.<\/p>\n<p><b>Nem lehet tov\u00e1bbfejleszteni.<\/b><\/p>\n<p>Pontosabban lehet, de rendk\u00edv\u00fcl hat\u00e1stalan. A licencszerz\u0151d\u00e9sek nem teszik lehet\u0151v\u00e9 a forr\u00e1sk\u00f3d m\u00f3dos\u00edt\u00e1s\u00e1t, csak b\u0151v\u00edtm\u00e9nyeket lehet \u00edrni. A b\u0151v\u00edtm\u00e9nyek maxim\u00e1lis sz\u00e1ma \u2014 n\u00e9h\u00e1ny men\u00fcelem, l\u00e9p\u00e9sr\u0151l l\u00e9p\u00e9sre mester. Az ISPsystem \u00e1ltal\u00e1nos megold\u00e1sokra \u00e9p\u00fcl, m\u00edg nek\u00fcnk speci\u00e1lis megold\u00e1sokra volt sz\u00fcks\u00e9g\u00fcnk.<\/p>\n<p>\u00cdgy jutottunk el arra a d\u00f6nt\u00e9sre, hogy saj\u00e1t panelt \u00edrjunk. C\u00e9lokat t\u0171zt\u00fcnk ki:<\/p>\n<ul>\n<li>Gyorsan reag\u00e1lni a hib\u00e1kra, bugokra, \u00e9s k\u00e9pesek legyenek \u00f6n\u00e1ll\u00f3an megsz\u00fcntetni \u0151ket, nem k\u00e9nyszer\u00edtve a \u00fcgyfelet a v\u00e1rakoz\u00e1sra.<\/li>\n<li>Szabadon m\u00f3dos\u00edtani az interf\u00e9szt a munkafolyamatok \u00e9s az \u00fcgyf\u00e9l ig\u00e9nyeihez.<\/li>\n<li>N\u00f6velni a haszn\u00e1lhat\u00f3s\u00e1got tiszta \u00e9s \u00e9rthet\u0151 diz\u00e1jnnal.<\/li>\n<\/ul>\n<p>\n\u00c9s megkezdt\u00fck a fejleszt\u00e9st.<\/p>\n<h2>Az \u00faj panel architekt\u00far\u00e1ja<\/h2>\n<p>\nVan egy \u00f6n\u00e1ll\u00f3 fejleszt\u0151csapatunk, \u00edgy a panelt magunk \u00edrtuk. <br \/>\nA legf\u0151bb munk\u00e1t h\u00e1rom m\u00e9rn\u00f6k v\u00e9gezte \u2014 a m\u0171szaki igazgat\u00f3, Szergej, kital\u00e1lta az architekt\u00far\u00e1t \u00e9s meg\u00edrta a szerver \u00fcgyn\u00f6k\u00f6t, Alexej elk\u00e9sz\u00edtette a billinget, m\u00edg a frontendot Artys \u00e1ll\u00edtotta \u00f6ssze. <\/p>\n<h3>1. l\u00e9p\u00e9s. Szerver\u00fcgyn\u00f6k<\/h3>\n<p>A szerver\u00fcgyn\u00f6k egy Python alap\u00fa webszerver, amely kezeli a k\u00f6nyvt\u00e1rat, <noindex><a rel=\"nofollow\" href=\"https:\/\/libvirt.org\/\">libvirt<\/a><\/noindex>, amely viszont kezeli <noindex><a rel=\"nofollow\" href=\"https:\/\/www.qemu.org\/\">a Qemu-kvm hipervizort.<\/a><\/noindex>. <\/p>\n<p>Az \u00fcgyn\u00f6k minden szolg\u00e1ltat\u00e1st kezel a szerveren: vds-ek l\u00e9trehoz\u00e1sa, le\u00e1ll\u00edt\u00e1sa, t\u00f6rl\u00e9se, oper\u00e1ci\u00f3s rendszerek telep\u00edt\u00e9se, param\u00e9terek m\u00f3dos\u00edt\u00e1sa \u00e9s \u00edgy tov\u00e1bb a libvirt k\u00f6nyvt\u00e1ron kereszt\u00fcl. A cikk megjelen\u00e9sekor ez t\u00f6bb mint negyven k\u00fcl\u00f6nb\u00f6z\u0151 funkci\u00f3t jelent, amelyeket az \u00fcgyf\u00e9l ig\u00e9nyei \u00e9s feladatok f\u00fcggv\u00e9ny\u00e9ben b\u0151v\u00edt\u00fcnk.<\/p>\n<p>Elvileg a libvirt-t k\u00f6zvetlen\u00fcl a billingb\u0151l is lehetett volna kezelni, de ez t\u00fal sok tov\u00e1bbi k\u00f3dot ig\u00e9nyelt, ez\u00e9rt \u00fagy d\u00f6nt\u00f6tt\u00fcnk, hogy ezeket a funkci\u00f3kat az \u00fcgyn\u00f6k \u00e9s a billing k\u00f6z\u00f6tt elv\u00e1lasztjuk \u2014 a billing egyszer\u0171en JSON API-n kereszt\u00fcl k\u00e9rd\u00e9seket int\u00e9z az \u00fcgyn\u00f6kh\u00f6z.<\/p>\n<p>Az \u00fcgyn\u00f6k volt az els\u0151, amit elk\u00e9sz\u00edtett\u00fcnk, mivel nem ig\u00e9nyelt semmilyen interf\u00e9szt, \u00e9s k\u00f6zvetlen\u00fcl a szerver konzolj\u00e1r\u00f3l is tesztelhet\u0151 volt. <\/p>\n<p><b>Mit adott nek\u00fcnk a szerver\u00fcgyn\u00f6k:<\/b> Megjelent egy r\u00e9teg, amely megk\u00f6nny\u00edti az \u00e9letet mindenkinek - a billingnek nem kell egy halom parancsot \u00e1tadnia, csak egy k\u00e9r\u00e9st kell tennie. Az \u00fcgyn\u00f6k mindent elint\u00e9z: p\u00e9ld\u00e1ul helyet foglal a lemezen \u00e9s a RAM-ban. <\/p>\n<h3>2. l\u00e9p\u00e9s. Billing<\/h3>\n<p>\nSz\u00e1munkra Alex m\u00e1r nem az els\u0151 vez\u00e9rl\u0151pult \u2013 Alex r\u00e9g\u00f3ta a hostingban dolgozik, \u00edgy nagyj\u00e1b\u00f3l tudta, mire van sz\u00fcks\u00e9ge az \u00fcgyf\u00e9lnek \u00e9s a hosting szolg\u00e1ltat\u00f3nak.<\/p>\n<p>A billinget magunk k\u00f6z\u00f6tt \"vez\u00e9rl\u0151pultnak\" nevezz\u00fck: nemcsak p\u00e9nz \u00e9s szolg\u00e1ltat\u00e1sok tal\u00e1lhat\u00f3k benne, hanem azok kezel\u00e9se, \u00fcgyf\u00e9lt\u00e1mogat\u00e1s \u00e9s sok m\u00e1s.<\/p>\n<p>Az ISPSystem szoftverr\u0151l val\u00f3 \u00e1tt\u00e9r\u00e9shez teljes m\u00e9rt\u00e9kben meg kellett \u0151rizn\u00fcnk az \u00fcgyfelek kor\u00e1bbi funkci\u00f3it, \u00e1tvinni az \u00f6sszes p\u00e9nz\u00fcgyi tranzakci\u00f3t az \u00faj billinghez, valamint az \u00f6sszes szolg\u00e1ltat\u00e1st \u00e9s azok k\u00f6z\u00f6tti kapcsolatokat. Megvizsg\u00e1ltuk, hogy mi \u00e1ll rendelkez\u00e9sre a jelenlegi term\u00e9kben, majd az konkurenci\u00e1t, f\u0151leg a DO-t \u00e9s a Vultr-t. Megn\u00e9zt\u00fck a h\u00e1tr\u00e1nyokat \u00e9s az el\u0151ny\u00f6ket, \u00f6sszegy\u0171jt\u00f6tt\u00fck a visszajelz\u00e9seket azokt\u00f3l, akik a r\u00e9gi ISPSystem term\u00e9keken dolgoztak. <\/p>\n<p>Az \u00faj billingben k\u00e9t technol\u00f3giai stack-et haszn\u00e1ltunk: klasszikus PHP, MySQL (a j\u00f6v\u0151ben tervezett a PostgreSQL-ra val\u00f3 \u00e1tt\u00e9r\u00e9s), Yii2 mint backend keretrendszer \u00e9s VueJS a frontendhez. A stackek f\u00fcggetlen\u00fcl m\u0171k\u00f6dnek, k\u00fcl\u00f6nb\u00f6z\u0151 emberek fejlesztik \u0151ket, \u00e9s JSON API-n kommunik\u00e1lnak egym\u00e1ssal. A fejleszt\u00e9shez akkor \u00e9s most is haszn\u00e1ljuk <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jetbrains.com\/phpstorm\/\">PHPStorm<\/a><\/noindex> \u00e9s <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jetbrains.com\/webstorm\/\">WebStorm<\/a><\/noindex> a JetBrains-t\u0151l, \u00e9s nagyon szeretj\u00fck \u0151ket (sr\u00e1cok, \u00fcdv\u00f6zlet!)<\/p>\n<p>A panel modul\u00e1ris elv szerint lett megtervezve: a modulok k\u00f6z\u00e9 tartoznak a fizet\u00e9si rendszerek, a domain regisztr\u00e1torok modulja vagy p\u00e9ld\u00e1ul az SSL tan\u00fas\u00edtv\u00e1ny modul. K\u00f6nnyen hozz\u00e1adhatunk \u00faj funkci\u00f3t, vagy elt\u00e1vol\u00edthatunk egy r\u00e9git. Az architekt\u00far\u00e1ba be\u00e9p\u00edtett\u00e9k a b\u0151v\u00edt\u00e9s lehet\u0151s\u00e9g\u00e9t is, bele\u00e9rtve a \"hardverhez\" val\u00f3 visszajelz\u00e9st.<br \/>\n<img decoding=\"async\" alt=\"ISPsystem, viszontl\u00e1t\u00e1sra! Mi\u00e9rt \u00e9s hogyan \u00edrtuk meg a saj\u00e1t szerverkezel\u0151 panel\u00fcnket\" src=\"\/wp-content\/uploads\/2019\/07\/8f4b1bf9c16cc73023cacdde44cae0b3.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Mit kaptunk<\/b>: egy vez\u00e9rl\u0151pultot, amelyen teljes kontrollunk van. Most a hib\u00e1kat \u00f3r\u00e1k alatt kijav\u00edtjuk, nem hetek alatt, \u00e9s az \u00faj funkci\u00f3kat az \u00fcgyfelek k\u00e9r\u00e9s\u00e9re val\u00f3s\u00edtjuk meg, nem az ISPSystem akarat\u00e1ra.<\/p>\n<h3>3. l\u00e9p\u00e9s. Felhaszn\u00e1l\u00f3i fel\u00fclet<\/h3>\n<p>\n<img decoding=\"async\" alt=\"ISPsystem, viszontl\u00e1t\u00e1sra! Mi\u00e9rt \u00e9s hogyan \u00edrtuk meg a saj\u00e1t szerverkezel\u0151 panel\u00fcnket\" src=\"\/wp-content\/uploads\/2019\/07\/48be006688e2246f9a416d2d6a717a82.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nA felhaszn\u00e1l\u00f3i fel\u00fclet - a mi k\u00f6z\u00f6s gyermek\u00fcnk. <\/p>\n<p>El\u0151sz\u00f6r megn\u00e9zt\u00fck, mi t\u00f6rt\u00e9nik, ha a ISPsystem API-ra \u00e9p\u00edt\u00fcnk, an\u00e9lk\u00fcl hogy jelent\u0151sen megv\u00e1ltoztatn\u00e1nk a felhaszn\u00e1l\u00f3i fel\u00fcletet. El\u00e9g gyenge lett, \u00e9s \u00fagy d\u00f6nt\u00f6tt\u00fcnk, hogy mindent null\u00e1r\u00f3l kezd\u00fcnk.<\/p>\n<p>Mindenekel\u0151tt azt tartottuk fontosnak, hogy a felhaszn\u00e1l\u00f3i fel\u00fclet logikus legyen, tiszta \u00e9s minimalista diz\u00e1jnnal, \u00edgy egy sz\u00e9p panelt kaphatunk. Az elemek elhelyez\u00e9s\u00e9t a Megaplanben vitattuk meg, \u00e9s fokozatosan megsz\u00fcletett az a felhaszn\u00e1l\u00f3i fel\u00fclet, amelyet a felhaszn\u00e1l\u00f3k jelenleg l\u00e1tnak az ir\u00e1ny\u00edt\u00f3pultban. <\/p>\n<p>Els\u0151k\u00e9nt a billing oldal diz\u00e1jnja k\u00e9sz\u00fclt el, hiszen m\u00e1r kor\u00e1bban is k\u00e9sz\u00edtett\u00fcnk fizet\u00e9si plugineket az ISPsystem sz\u00e1m\u00e1ra. <\/p>\n<p><b>Frontend<\/b><\/p>\n<p>A paneleket SPA alkalmaz\u00e1ss\u00e1 d\u00f6nt\u00f6tt\u00fck, amely nem k\u00f6vetel meg sok er\u0151forr\u00e1st \u00e9s gyors adatbet\u00f6lt\u00e9st k\u00edn\u00e1l. A frontend fejleszt\u0151nk, Artysh \u00fagy d\u00f6nt\u00f6tt, hogy Vue-t haszn\u00e1l, hiszen akkoriban a Vue \u00e9ppen megjelent. Felt\u00e9telezt\u00fck, hogy a keretrendszer dinamikusan fejl\u0151dni fog, hasonl\u00f3an a React-hoz, \u00e9s id\u0151vel a Vue k\u00f6z\u00f6ss\u00e9ge is b\u0151v\u00fclni fog, sz\u00e1mos k\u00f6nyvt\u00e1rral. R\u00e1\u00e1lltunk a Vue-ra, \u00e9s nem b\u00e1ntuk meg \u2013 most m\u00e1r \u00faj funkci\u00f3k hozz\u00e1ad\u00e1sa a frontendhez, amelyeket m\u00e1r elkezdt\u00fcnk programozni a backendben, sz\u00e1mottev\u0151en r\u00f6vid id\u0151t vesz ig\u00e9nybe. A frontend panel r\u00e9szleteir\u0151l k\u00fcl\u00f6n cikkben besz\u00e9l\u00fcnk.<\/p>\n<p><b>A frontend \u00e9s a backend kapcsolata<\/b><\/p>\n<p>A frontendet a backendhez kapcsoltuk push \u00fczenetek \u00fatj\u00e1n. Meg kellett dolgoznunk \u00e9rte, \u00e9s saj\u00e1t kezel\u0151t kellett \u00edrnunk, de most m\u00e1r az inform\u00e1ci\u00f3k friss\u00edt\u00e9se az oldalon szinte azonnal megt\u00f6rt\u00e9nik.<\/p>\n<p><b>A v\u00e9geredm\u00e9ny:<\/b> a panel fel\u00fclete egyszer\u0171bb lett. Reszponz\u00edvv\u00e1 tett\u00fck, \u00edgy a gyors bet\u00f6lt\u00e9s lehet\u0151v\u00e9 teszi, hogy m\u00e9g a felsz\u00e1ll\u00e1s el\u0151tti utols\u00f3 pillanatban is mobiltelefonr\u00f3l haszn\u00e1lj\u00e1k, an\u00e9lk\u00fcl, hogy k\u00fcl\u00f6n alkalmaz\u00e1st kellene telep\u00edteni a panel kezel\u00e9s\u00e9re.<\/p>\n<h3>4. l\u00e9p\u00e9s: Tesztel\u00e9s \u00e9s migr\u00e1ci\u00f3s s\u00e9ma <\/h3>\n<p>\nAmikor minden m\u0171k\u00f6d\u00f6tt \u00e9s t\u00falest\u00fcnk az els\u0151 teszteken, felmer\u00fclt a migr\u00e1ci\u00f3 k\u00e9rd\u00e9se. El\u0151sz\u00f6r a billing szoftvert telep\u00edtett\u00fck, \u00e9s elkezdt\u00fck tesztelni annak m\u0171k\u00f6d\u00e9s\u00e9t a szerver \u00fcgyn\u00f6kkel.<\/p>\n<p>Ezut\u00e1n \u00edrtunk egy egyszer\u0171 szkriptet, amely az adatb\u00e1zist a r\u00e9gi billing rendszerb\u0151l az \u00fajba migr\u00e1lta.<\/p>\n<p>Mindent gyakorlatilag teszteln\u00fcnk \u00e9s ellen\u0151rizn\u00fcnk kellett, mivel az adatokat h\u00e1rom r\u00e9gi adatb\u00e1zisb\u00f3l \u2013 Billmanager, VMmanager \u00e9s IPmanager \u2013 egy \u00fajba \u00f6nt\u00f6tt\u00fck. Val\u00f3sz\u00edn\u0171leg a tesztel\u00e9si migr\u00e1ci\u00f3k voltak a legnehezebb feladatok, amivel a \u00faj panel fejleszt\u00e9se sor\u00e1n tal\u00e1lkoztunk.<\/p>\n<p>Miut\u00e1n \u00fajra ellen\u0151rizt\u00fck, le\u00e1ll\u00edtottuk a r\u00e9gi billing rendszert. Az adatok v\u00e9gs\u0151 migr\u00e1l\u00e1sa nagyon izgalmas pillanat volt, de h\u00e1la Istennek, n\u00e9h\u00e1ny perc alatt \u00e9s l\u00e1that\u00f3 probl\u00e9m\u00e1k n\u00e9lk\u00fcl teljes\u00fclt. Voltak apr\u00f3 hib\u00e1k, amelyeket egy h\u00e9ten \u00e1t jav\u00edtottunk. A legnagyobb id\u0151t a v\u00e9geredm\u00e9ny tesztel\u00e9s\u00e9re ford\u00edtottuk.<\/p>\n<p>Ezut\u00e1n leveleket k\u00fcldt\u00fcnk az \u00fcgyfeleknek az \u00faj panel \u00e9s a sz\u00e1ml\u00e1z\u00e1s c\u00edm\u00e9vel, \u00e9s \u00e1tir\u00e1ny\u00edt\u00e1st hajtottunk v\u00e9gre. <\/p>\n<p><b>V\u00e9g\u00fcl:<\/b> <b>\u00c9L!<\/b><\/p>\n<h2>Boldog v\u00e9ge<\/h2>\n<p>\nA szoftver\u00fcnk els\u0151 \u00f3r\u00e1it\u00f3l kezdve m\u00e1r \u00e9rezt\u00fck az \u00e1tmenet minden el\u0151ny\u00e9t. A k\u00f3d teljesen a mi\u00e9nk volt, k\u00e9nyelmes architekt\u00far\u00e1val, az interf\u00e9sz pedig tiszta \u00e9s logikus.<br \/>\n<img decoding=\"async\" alt=\"ISPsystem, viszontl\u00e1t\u00e1sra! Mi\u00e9rt \u00e9s hogyan \u00edrtuk meg a saj\u00e1t szerverkezel\u0151 panel\u00fcnket\" src=\"\/wp-content\/uploads\/2019\/07\/c673e49afb4bf25c8922161a8bb927a2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Els\u0151 visszajelz\u00e9s az \u00faj panel ind\u00edt\u00e1sa ut\u00e1n<\/i><\/p>\n<p>Decemberben ind\u00edtottuk el az \u00e1t\u00e1ll\u00e1si folyamatot, a 2017-es \u00faj \u00e9v el\u0151est\u00e9j\u00e9n, amikor a terhel\u00e9s a legkisebb volt, hogy az \u00fcgyfelek sz\u00e1m\u00e1ra megk\u00f6nny\u00edts\u00fck az \u00e1tmenetet \u2014 szinte senki sem dolgozik az \u00fcnnepek el\u0151tt.<\/p>\n<p>A legfontosabb dolog, amit az \u00e1t\u00e1ll\u00e1ssal nyert\u00fcnk (a megb\u00edzhat\u00f3s\u00e1g \u00e9s a k\u00e9nyelem mellett) \u2014 a kulcsfontoss\u00e1g\u00fa \u00fcgyfelekhez val\u00f3 gyors funkci\u00f3k hozz\u00e1ad\u00e1sa \u2014 hogy arcot adunk nekik, nem pedig h\u00e1tat.<\/p>\n<h3>Mi k\u00f6vetkezik?<\/h3>\n<p>\nN\u00f6veksz\u00fcnk, n\u0151 az adatok, az \u00fcgyfelek, az \u00fcgyfelek adatai sz\u00e1ma. A backendhez Memcached szervert \u00e9s k\u00e9t k\u00fcl\u00f6nb\u00f6z\u0151 feladatokkal rendelkez\u0151 \u00fczenetsor-kezel\u0151t kellett hozz\u00e1adni. A frontendben van cache-el\u00e9s \u00e9s saj\u00e1t soraink. <\/p>\n<p>Term\u00e9szetesen voltak m\u00e9g kalandjaink a term\u00e9k fejleszt\u00e9se \u00e9s bonyol\u00edt\u00e1sa sor\u00e1n, p\u00e9ld\u00e1ul amikor hozz\u00e1adtuk a HighLoad-ot. <\/p>\n<p>A k\u00f6vetkez\u0151 cikkben arr\u00f3l fogunk mes\u00e9lni, hogyan ind\u00edtottuk el a Hi-CPU tarif\u00e1t: a hardverr\u0151l, a szoftverr\u0151l, milyen feladatokat oldottunk meg \u00e9s mit \u00e9rt\u00fcnk el.<br \/>\n<br \/>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/vdsina\/blog\/460107\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442! \u041c\u044b \u00ab\u0425\u043e\u0441\u0442\u0438\u043d\u0433 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438\u00bb \u0438 5 \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 VDSina \u2014 \u043f\u0435\u0440\u0432\u044b\u0439 vds \u0445\u043e\u0441\u0442\u0438\u043d\u0433, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u041c\u044b \u0441\u0442\u0440\u0435\u043c\u0438\u043c\u0441\u044f \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0433\u043e \u0443\u0434\u043e\u0431\u043d\u044b\u043c, \u043a\u0430\u043a DigitalOcean, \u043d\u043e \u0441 \u0440\u0443\u0441\u0441\u043a\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439, \u0441\u043f\u043e\u0441\u043e\u0431\u0430\u043c\u0438 \u043e\u043f\u043b\u0430\u0442\u044b \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438. \u041d\u043e DigitalOcean \u044d\u0442\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u044c \u0438 \u0446\u0435\u043d\u0430, \u044d\u0442\u043e \u0435\u0449\u0435 \u0438 \u0441\u0435\u0440\u0432\u0438\u0441. \u0421\u043e\u0444\u0442 \u043e\u0442 ISPsystem \u043e\u043a\u0430\u0437\u0430\u043b\u0441\u044f \u0432\u0435\u0440\u0435\u0432\u043a\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u043b\u0430 \u043d\u0430\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27085,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-36207","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/ispsystem-prosti-i-proshhaj-pochemu-i-kak-my-napisali-svoyu-panel-upravleniya-serverami\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47ISPsystem, \u043f\u0440\u043e\u0441\u0442\u0438 \u0438 \u043f\u0440\u043e\u0449\u0430\u0439! \u041f\u043e\u0447\u0435\u043c\u0443 \u0438 \u043a\u0430\u043a \u043c\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u0441\u0432\u043e\u044e \u043f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/ispsystem-prosti-i-proshhaj-pochemu-i-kak-my-napisali-svoyu-panel-upravleniya-serverami\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:10:17+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:10:17+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47ISPsystem, bocs\u00e1nat \u00e9s viszl\u00e1t! Mi\u00e9rt \u00e9s hogyan \u00edrtuk meg a saj\u00e1t szerverkezel\u0151 panel\u00fcnket | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/ispsystem-prosti-i-proshhaj-pochemu-i-kak-my-napisali-svoyu-panel-upravleniya-serverami","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47ISPsystem, \u043f\u0440\u043e\u0441\u0442\u0438 \u0438 \u043f\u0440\u043e\u0449\u0430\u0439! \u041f\u043e\u0447\u0435\u043c\u0443 \u0438 \u043a\u0430\u043a \u043c\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u0441\u0432\u043e\u044e \u043f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u043c\u0438 | ProHoster","og:url":"https:\/\/prohoster.info\/hu\/blog\/administrirovanie\/ispsystem-prosti-i-proshhaj-pochemu-i-kak-my-napisali-svoyu-panel-upravleniya-serverami","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:10:17+00:00","article:modified_time":"2019-10-31T19:10:17+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36207","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 02:25:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:48:27","updated":"2026-01-22 02:25:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/36207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=36207"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/36207\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media\/27085"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=36207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=36207"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=36207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}