{"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\/et\/blog\/administrirovanie\/ispsystem-prosti-i-proshhaj-pochemu-i-kak-my-napisali-svoyu-panel-upravleniya-serverami","title":{"rendered":"ISPsystem, andestage ja h\u00fcvasti! Miks ja kuidas me oma serverihalduspuldi kirjutasime","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"ISPsystem, andestage ja h\u00fcvasti! Miks ja kuidas me oma serverihalduspuldi kirjutasime\" src=\"\/wp-content\/uploads\/2019\/07\/512df00a9ec2d8ff8e3586dd57702924.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTere! Me oleme \u00abHosting Technology\u00bb ja viis aastat tagasi lansseerisime <noindex><a rel=\"nofollow\" href=\"https:\/\/vdsina.ru\/?partner=habr1\">VDSina<\/a><\/noindex> \u2014 esimene VDS hostimine, mis on loodud spetsiaalselt arendajatele. Meie eesm\u00e4rk on teha see sama mugavaks kui DigitalOcean, kuid vene toe, makseviiside ja serveritega Venemaal. Kuid DigitalOcean ei ole ainult usaldusv\u00e4\u00e4rsus ja hind, vaid ka teenus.<\/p>\n<p>ISPsystemi tarkvara osutus n\u00f6\u00f6riks, mis sidus meid k\u00e4tega tagasituleku tee hulgas. Kolm aastat tagasi kasutasime arveldamisprogrammi Billmanager ja serverihaldustarkvara VMmanager ning m\u00f5istsime kiiresti, et kvaliteetse teenuse pakkumine ilma oma paneelita on peaaegu v\u00f5imatu. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Kuidas ISPsystem tapab mugavuse<\/h2>\n<p>\n<b>Vead<\/b><\/p>\n<p>Me ei suutnud vigu ise parandada \u2014 iga kord pidime kirjutama kellegi teise tugiisikule ja ootama. Iga probleemi lahendamine n\u00f5udis kolmanda osapoole reageerimist. <\/p>\n<p>ISPsystemi tugi vastas normaalselt, kuid parandused tulid alles p\u00e4rast mitmeid uusi versioone, ja mitte alati ja mitte k\u00f5ik. M\u00f5ningaid kriitilisi vigu parandati mitme n\u00e4dala jooksul. Me pidime rahustama kliente, vabandama ja ootama, kuni ISPsystem vea parandab.<\/p>\n<p><b>Ajavahemike oht<\/b><\/p>\n<p>Uuendused v\u00f5isid p\u00f5hjustada etten\u00e4gematuid aegade, mis tekitas uusi vigu. <\/p>\n<p>Iga v\u00e4rskendus oli loterii: pidime sulgema arveldamise ja tooma uuenduste jumalate juurde ohvreid \u2014 paar korda p\u00f5hjustas uuendus umbes 10-15 minuti pikkuse seisaku. Meie administraatorid istusid sel ajal silme ees \u2014 me ei teadnud kunagi, kui kaua seisak kestab ja ei suutnud ennustada, millal ISPsystem otsustab v\u00e4lja anda uue uuenduse. <\/p>\n<p>Billmanageri viiendat p\u00f5lvkonda on saadud paremaks, kuid vajalike funktsioonide juurde p\u00e4\u00e4semiseks pidime installima beetaversiooni, mida uuendati igal n\u00e4dalal. Kui midagi purunes, pidime andma juurdep\u00e4\u00e4su teiste arendajate jaoks, et nad midagi parandaksid. <\/p>\n<p><b>Ebamugav paneeli liides<\/b><\/p>\n<p>K\u00f5ik oli jagatud erinevatesse paneelidesse ja haldati erinevates kohtades. N\u00e4iteks maksid kliendid l\u00e4bi Billmanageri, kuid VDS-i taask\u00e4ivitamine v\u00f5i reinstalleerimine pidi toimuma VMManageris. Meie t\u00f6\u00f6tajad pidid samuti akende vahel vahetama, et aidata kliendi puhul, kontrollida tema serveri koormust v\u00f5i vaadata, millist operatsioonis\u00fcsteemi ta kasutab.<\/p>\n<p>Selline liides v\u00f5tab aega \u2014 nii meie kui ka klientide aega. Sellises olukorras ei saa mugavusest, nagu DigitalOceanil, juttu olla. <\/p>\n<p><b>L\u00fchikesed eluts\u00fcklid sagedaste API v\u00e4rskendustega<\/b><\/p>\n<p>Me oleme kirjutanud oma pluginaid \u2013 n\u00e4iteks plugin, mis v\u00f5imaldab t\u00e4iendavaid makseviise, mida VMManager ei toeta.<\/p>\n<p>Viimastel aastatel on VMManageril olnud suhteliselt l\u00fchike eluts\u00fckkel, kusjuures uutes versioonides v\u00f5ivad API muutuda muutuvas j\u00e4rjekorras muutuda muutuva j\u00e4rjekorraga muutuda muutuva j\u00e4rjekorraga \u2013 see rikkus meie pluginaid. Vanade versioonide tugi l\u00f5petati kiiresti ja tuli uuendama.<\/p>\n<p><b>Ei saa parandada<\/b><\/p>\n<p>T\u00e4psemalt on see v\u00f5imalik, kuid \u00e4\u00e4rmiselt ebat\u00f5hus. Litsentseerimispiirangud ei luba muudatusi l\u00e4htekoodis, saab ainult kirjutada pluginaid. Maksimaalne pluginate arv \u2013 m\u00f5ned men\u00fc\u00fcelemendid, samm-sammult juhend. ISPsystem keskendub universaalsusele, kuid meie vajasime spetsialiseeritud lahendusi.<\/p>\n<p>Nii s\u00fcndis otsus kirjutada oma paneel. Seadsime eesm\u00e4rgid:<\/p>\n<ul>\n<li>Kiire reageerimine vigadele, t\u00f5rgetele ja v\u00f5imalus neid iseseisvalt lahendada, ilma et klient ootaks.<\/li>\n<li>Vabadus kohandada liidest vastavalt t\u00f6\u00f6protsessidele ja kliendi vajadustele.<\/li>\n<li>T\u00f5sta kasutatavust puhta ja arusaadava disainiga.<\/li>\n<\/ul>\n<p>\nJa alustasime arendust.<\/p>\n<h2>Uue paneeli arhitektuur<\/h2>\n<p>\nMeil on iseseisev arendustiim, seega kirjutasime paneeli ise. <br \/>\nPeamised t\u00f6\u00f6d tegi kolm inseneri \u2013 tehnilise direktori Sergei v\u00e4lja m\u00f5eldud arhitektuur ja serveri agent, Aleksei tegi arvelduss\u00fcsteemi ning meie frontend arendas frontendi, Artysh. <\/p>\n<h3>Samm 1. Serveri agent<\/h3>\n<p>Serveri agent on Pythonis loodud veebiserver, mis haldab raamatukogu <noindex><a rel=\"nofollow\" href=\"https:\/\/libvirt.org\/\">libvirt<\/a><\/noindex>, mis omakorda haldab <noindex><a rel=\"nofollow\" href=\"https:\/\/www.qemu.org\/\">hypervisor Qemu-kvm<\/a><\/noindex>. <\/p>\n<p>Agent haldab k\u00f5iki teenuseid serveris: VDS-i loomine, peatamine, kustutamine, operatsioonis\u00fcsteemide paigaldamine, parameetrite muutmine ja nii edasi raamatukogu libvirt kaudu. Artikli avaldamise ajal on neid rohkem kui nelik\u00fcmmend erinevat funktsiooni, mida t\u00e4iendame s\u00f5ltuvalt \u00fclesandest ja kliendi vajadustest.<\/p>\n<p>Teoreetiliselt oleks libvirtiga v\u00f5inud hallata otse arvelduss\u00fcsteemist, kuid see n\u00f5udis liiga palju t\u00e4iendavat koodi ja otsustasime need funktsioonid jaotada agendi ja arvelduss\u00fcsteemi vahel \u2013 arvelduss\u00fcsteem teeb lihtsalt p\u00e4ringud agendile l\u00e4bi JSON API.<\/p>\n<p>Agent oli esimene, mille me tegime, kuna see ei n\u00f5udnud mingit liidest ja seda sai testida otse serveri konsoolist. <\/p>\n<p><b>Mida andis meile serveri agent:<\/b> ilm on ilmunud kiht, mis lihtsustab elu k\u00f5igile \u2014 arveldamiseks ei pea edastama suurt hulka k\u00e4ske, vaid piisab \u00fcksnes p\u00e4ringu tegemisest. Agent teeb k\u00f5ik vajalikud toimingud: n\u00e4iteks eraldab kettaruumi ja RAM-i. <\/p>\n<h3>Samm 2. Arveldamine<\/h3>\n<p>\nMeie arendaja Aleksile polnud see esimene juhtpaneel \u2014 Aleks on hostimises ammu olnud, seega m\u00f5istis ta \u00fcldiselt, mida klient vajab ja mida hostija.<\/p>\n<p>Arveldamist nimetame me omavahel \"juhtpaneeliks\": seal on mitte ainult raha ja teenuseid, vaid ka nende haldamine, klienditugi ja palju muud.<\/p>\n<p>ISPSystemilt tarkvarale \u00fclemiseks tuli t\u00e4ielikult s\u00e4ilitada klientide varasem funktsionaalsus, \u00fcle kanda k\u00f5ik kasutajate finantstegevused vanast arvelduss\u00fcsteemist uude ning ka k\u00f5ik teenused ja nende vahelised seosed. Uurisime, mida pakub praegune toode, seej\u00e4rel konkurentide lahendusi, peamiselt DO-d ja Vultrit. Vaatasime puudusi ja eeliseid, kogusime tagasisidet inimestelt, kes t\u00f6\u00f6tasid vana ISPsystemi toodetega. <\/p>\n<p>Uues arveldamises kasutasime kahte tehnikat: klassikaline PHP, MySQL (ja tulevikus plaanime \u00fcle minna PostgreSQL-ile), Yii2 raamistikul tagaplaanil ja VueJS esiplaanil. Tehnikad t\u00f6\u00f6tavad \u00fcksteisest s\u00f5ltumatult, neid arendavad erinevad inimesed ning nad suhtlevad JSON API kaudu. Arendamiseks kasutasime siis ja kasutame ka praegu <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jetbrains.com\/phpstorm\/\">PHPStorm<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jetbrains.com\/webstorm\/\">WebStorm<\/a><\/noindex> JetBrainsilt ja me armastame neid v\u00e4ga (poisid, tere!)<\/p>\n<p>Paneel on projekteeritud moodulip\u00f5hiselt: makses\u00fcsteemide moodul, domeeniregistraatorite moodul v\u00f5i n\u00e4iteks SSL-sertifikaatide moodul. Uue funktsiooni lisamine v\u00f5i vana eemaldamine on lihtne. Arhitektuuri on sisseehitatud laienemisv\u00f5imalus, sealhulgas ka tagasi poole, \"rauda\".<br \/>\n<img decoding=\"async\" alt=\"ISPsystem, andestage ja h\u00fcvasti! Miks ja kuidas me oma serverihalduspuldi kirjutasime\" src=\"\/wp-content\/uploads\/2019\/07\/8f4b1bf9c16cc73023cacdde44cae0b3.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<b>Mida me saime<\/b>: juhtpaneel, mille \u00fcle meil on t\u00e4ielik kontroll. N\u00fc\u00fcd parandatakse vigu tundidega, mitte n\u00e4dalatega, ja uusi funktsioone rakendatakse klientide soovi j\u00e4rgi, mitte ISPSystemi soovide j\u00e4rgi.<\/p>\n<h3>Samm 3. Liides<\/h3>\n<p>\n<img decoding=\"async\" alt=\"ISPsystem, andestage ja h\u00fcvasti! Miks ja kuidas me oma serverihalduspuldi kirjutasime\" src=\"\/wp-content\/uploads\/2019\/07\/48be006688e2246f9a416d2d6a717a82.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nLiides on meie meeskonna \u00fchine looming. <\/p>\n<p>Esmalt vaatasime, mis juhtub, kui teha ISPsystemi API \u00fclekatte, mitte midagi radikaalselt muutmata liideses. Tulemus ei olnud liiga hea ja otsustasime k\u00f5ik nullist teha.<\/p>\n<p>Me uskusime, et peamine on luua loogiline liides, puhta ja minimalistliku disainiga, et saada ilus juhtpaneel. Arutasime elementide paigutust Megaplanis ja j\u00e4rk-j\u00e4rgult kujunes see liides, mida kasutajad n\u00e4evad praegu juhtpaneelil. <\/p>\n<p>Esimesena tekkis arvepidamise lehe disain, kuna olime juba loonud maksepluginad ISPsystemile. <\/p>\n<p><b>Eesmine joon<\/b><\/p>\n<p>Otsustasime, et paneel on SPA rakendus \u2014 madalate ressursside n\u00f5udmistega ja kiire andmete laadimisega. Meie eesmine arendaja Art\u0161is otsustas kirjutada selle Vue'is \u2014 sellel hetkel oli Vue just ilmuma hakanud. Arvasime, et raamistik areneb d\u00fcnaamiliselt nagu React, ja m\u00f5ne aja p\u00e4rast kasvab Vue kogukond ning ilmuvad hulk raamatukogusid. Me panustasime Vue-le ja ei kahetsenud \u2014 n\u00fc\u00fcd on front-endile uute funktsioonide lisamine, mis on juba tagaplaanil programmeeritud, kiire. R\u00e4\u00e4gime paneeli eesmisest joonest eraldi artiklis.<\/p>\n<p><b>Eesmise jooni ja tagaplaani \u00fchendamine<\/b><\/p>\n<p>Eesmine joon \u00fchendati tagaplaaniga pushide kaudu. Palusime pingutada ja kirjutada oma t\u00f6\u00f6tleja, kuid n\u00fc\u00fcd toimub teabe v\u00e4rskendamine lehel peaaegu koheselt.<\/p>\n<p><b>Mida me saime:<\/b> paneeli liides sai lihtsamaks. Muutsime selle adaptiivseks, ning kiire koormamine v\u00f5imaldab selle kasutamist isegi mobiiltelefonidel viimasel minutil enne t\u00f5usmist, ilma et oleks vaja installeerida eraldi rakendust paneeli kasutamiseks.<\/p>\n<h3>Samm 4. Testimine ja migreerimise skeem <\/h3>\n<p>\nKui k\u00f5ik toimis ja esimesed testid olid l\u00e4bitud, tuli \u00fclesanne migreerida. Esmalt paigaldasime arvepidamise ja alustasime selle t\u00f6\u00f6 testimist serveriagendi k\u00fcljes.<\/p>\n<p>Siis kirjutasime lihtsa skripti, mis kannab andmebaasi vanast arvepidamisest uude.<\/p>\n<p>Pidime testima ja \u00fcle kontrollima peaaegu k\u00f5ike, kuna andmed koondusid kolmest vanast: Billmanager, VMmanager ja IPmanager. V\u00f5ib-olla olid testmigratsioonid k\u00f5ige keerulisem asi, millega me uue paneeli arendamise k\u00e4igus silmitsi seisime.<\/p>\n<p>P\u00e4rast \u00fcmberkontrollimist sulgesime vana arvepidamise. Andmete l\u00f5plik migratsioon oli v\u00e4ga \u00e4rev hetk, kuid \u00f5nneks toimus see m\u00f5ne minuti jooksul ja ilma m\u00e4rgatavate probleemideta. Oli v\u00e4ikesi vigu, mida me parandasime n\u00e4dala jooksul. Peamine aeg kulus selle testimiseks, mis v\u00e4lja tuli.<\/p>\n<p>Seej\u00e4rel saatsime klientidele uusi kirju uue paneeli ja arveldamise aadressiga ning suunasime \u00fcmber. <\/p>\n<p><b>Tulemus:<\/b> <b>SEE ON ELUS!<\/b><\/p>\n<h2>\u00d5nnelik l\u00f5pp<\/h2>\n<p>\nEsimestest tundidest oma tarkvara t\u00f6\u00f6le hakkamisest tundsime, kuidas \u00fcleminek toob endaga kaasa k\u00f5ik eelised. Kood oli t\u00e4ielikult meie ja mugava arhitektuuriga, ning liides - puhas ja loogiline.<br \/>\n<img decoding=\"async\" alt=\"ISPsystem, andestage ja h\u00fcvasti! Miks ja kuidas me oma serverihalduspuldi kirjutasime\" src=\"\/wp-content\/uploads\/2019\/07\/c673e49afb4bf25c8922161a8bb927a2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Esimene \u00fclevaade p\u00e4rast uue paneeli k\u00e4ivitamist<\/i><\/p>\n<p>K\u00e4ivitamise protsessi alustasime detsembris, just enne 2017. aasta uut aastat, kui koormus oli madalaim, et muuta \u00fcleminek klientidele lihtsamaks - peaaegu keegi ei t\u00f6\u00f6ta enne p\u00fchi.<\/p>\n<p>Peamine, mida saime oma s\u00fcsteemile \u00fcleminekul (v\u00e4lja arvatud \u00fcldine usaldusv\u00e4\u00e4rsus ja mugavus) - v\u00f5imalus kiiresti lisada funktsioone v\u00f5tmeklientidele - olla neile ees, mitte taga.<\/p>\n<h3>Mis edasi?<\/h3>\n<p>\nMe kasvame, kasvab andmete, klientide ja klientide andmete arv. Tagaplaanile tuli lisada Memcached-server ja kaks j\u00e4rjekorrahaldurit erinevate \u00fclesannete jaoks. Esiplaanil on vahem\u00e4lu ja oma j\u00e4rjekorrad. <\/p>\n<p>Muidugi oli meil arengute k\u00e4igus veel seiklusi, kui n\u00e4iteks lisasime HighLoad. <\/p>\n<p>J\u00e4rgmises artiklis r\u00e4\u00e4gime, kuidas k\u00e4ivitasime Hi-CPU plaani: riistvara, tarkvara, milliseid \u00fclesandeid me lahendasime ja mis me saavutame.<br \/>\n<br \/>Allikas: <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.1.1 - 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\/et\/blog\/administrirovanie\/ispsystem-prosti-i-proshhaj-pochemu-i-kak-my-napisali-svoyu-panel-upravleniya-serverami\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\/et\/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, andke andeks ja h\u00fcvasti! Miks ja kuidas me kirjutasime oma serverihaldustarkvara | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/et\/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":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/36207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=36207"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/36207\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/27085"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=36207"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=36207"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=36207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}