{"id":85605,"date":"2020-06-17T13:42:57","date_gmt":"2020-06-17T11:42:57","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/iz-autsorsa-v-razrabotku-chast-2"},"modified":"2020-06-17T13:42:57","modified_gmt":"2020-06-17T11:42:57","slug":"iz-autsorsa-v-razrabotku-chast-2","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/iz-autsorsa-v-razrabotku-chast-2","title":{"rendered":"V\u00e4ljaande arendus (Osa 2)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Uues <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/audit-telecom\/blog\/504376\/\">eelnevas artiklis<\/a><\/noindex>, r\u00e4\u00e4kisin Veliami loomise eelajaloolisest taustast ja selle levitamise otsusest SaaS-s\u00fcsteemis. Selles artiklis r\u00e4\u00e4gin, mida tuli teha, et toode muutuks mitte lokaalseks, vaid avalikuks. Kuidas levitamist alustati ja milliste probleemidega silmitsi seisti.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Planeerimine<\/h3>\n<p>\nK\u00e4esolev serveripool kasutajatele oli Linuxil. Peaaegu igas organisatsioonis on Windowsi serverid, mida ei saa \u00f6elda Linuxi kohta. Veliami p\u00f5hiv\u00f5imekus on kaug\u00fchenduste loomine serverite ja v\u00f5rgu seadmetega NAT-i taga. Kuid see funktsioon oli v\u00e4ga rangelt seotud sellega, et marsruuteriks pidi kindlasti olema MikroTik. Ja see ei rahuldaks selgelt paljusid. Alguses hakkasin m\u00f5tlema, et lisada tugi k\u00f5ige levinumate tootjate marsruuteritele. Kuid m\u00f5istsin, et see on l\u00f5putu v\u00f5idujooks toetatud firmade loetelu laiendamisega. Veelgi enam, isegi need, mis on juba toetatud, v\u00f5ivad mudeli kaupa omada erinevaid NAT-i reeglite muutmise k\u00e4ske. Ainus v\u00e4ljap\u00e4\u00e4s n\u00e4is olevat VPN. <\/p>\n<p>Kuna me otsustasime toodet levitada, kuid mitte avatud allikana, ei olnud v\u00f5imalik lisada erinevaid avaliku litsentsiga teeke, nagu GPL. See on eraldi teema; toote m\u00fc\u00fcgiotsuse langetamise j\u00e4rel pidime l\u00e4bi vaatama pool vaikest teekidest, kuna need olid GPL. Kui kirjutasime iseendale, oli see normaalne. Aga levitamiseks ei sobinud. Esimene VPN, mis p\u00e4he tuleb, on OpenVPN. Aga see on GPL. Samuti oli v\u00f5imalus kasutada Jaapani SoftEther VPN-i. Selle litsents v\u00f5imaldas selle oma toote koostisosaks lisada. P\u00e4rast paarip\u00e4evaseid erinevaid teste selle integreerimiseks nii, et kasutajal ei oleks midagi seadistama ning SoftEther VPN-ist midagi teadma, saime protot\u00fc\u00fcbi valmis. K\u00f5ik oli nagu peab. Kuid miski p\u00e4rast h\u00e4iris meid see skeem, ja me loobusime sellest. Loomulikult loobusime p\u00e4rast seda, kui olime m\u00f5elnud teise v\u00f5imaluse. L\u00f5ppkokkuv\u00f5ttes tegime k\u00f5ik tavaliste TCP \u00fchenduste peal. Osa \u00fchendustest t\u00f6\u00f6tab koordinaatori kaudu, osa otse l\u00e4bi NAT Hole Punchingu (NHP) tehnoloogia, mis oli samuti rakendatud Free Pascalis. Pean \u00fctlema, et NHP-st polnud ma varasemalt isegi kuulnud. Ja ei tulnud p\u00e4he, et kahte v\u00f5rgu seadet, mis m\u00f5lemad on NAT taga, v\u00f5iks otse \u00fchendada. Uurisin teema, m\u00f5istsin t\u00f6\u00f6p\u00f5him\u00f5tte ja hakkasin kirjutama. Plaanitud teostus, kasutaja saab \u00fche klikiga \u00fchendust vajaliku seadmega NAT taga RDP, SSH v\u00f5i Winboxi kaudu ilma paroolide sisestamiseta ja VPN-i seadistamiseta. Pealegi l\u00e4heb enamus neist \u00fchendustest m\u00f6\u00f6da meie koordinaatorist, mis avaldab head m\u00f5ju latentsusele ja \u00fchenduste hooldamise kuludele.<\/p>\n<h3>Serveri osa \u00fcleminek Linuxilt Windowsile<\/h3>\n<p>\nWindowsile \u00fclemisel oli mitu probleemi. Esimene \u2014 sisseehitatud wmic Windowsis ei v\u00f5imalda WQL p\u00e4ringute tegemist. Ja meie s\u00fcsteem oli juba nende peal \u00fcles ehitatud. Ja oli veel midagi, kuid n\u00fc\u00fcd ma ei m\u00e4leta, miks me l\u00f5puks selle kasutamisest loobusime. V\u00f5ib-olla olid erinevused Windowsi versioonide vahel. Ja teine probleem \u2014 mitme l\u00f5ime tugi. Olles leidnud hea kolmanda osapoole utiliidi meie jaoks \"kasutamise lubatud\" litsentsiga, k\u00e4ivitasin uuesti IDE Lazaruse. Ja kirjutasin vajaliku utiliidi. Sisendiks antakse vajalik objektide loetelu ja milliseid p\u00e4ringuid tuleb teha, ja vastuseks saan andmed. Ja k\u00f5ik see toimub mitme l\u00f5ime re\u017eiimis. Suurep\u00e4rane.<\/p>\n<p>P\u00e4rast seda, kui seadistasin pthreadid PHP Windows'il, arvasin, et k\u00f5ik k\u00e4ivitub kohe, aga see polnud nii. P\u00e4rast m\u00f5ningast t\u00f5rkeotsingut sain aru, et pthreadid t\u00f6\u00f6tavad, kuid meie s\u00fcsteemis ei toiminud need. Selgus, et Windowsis on olemas mingi eriline omadus pthreadide t\u00f6\u00f6 jaoks. Nii oligi. Lugesin dokumentatsiooni ja seal oli kirjutatud, et Windowsis on l\u00f5ime arv piiratud, ning kui ma \u00f5igesti m\u00e4letan, siis mitteavalikult. See t\u00f5i kaasa probleeme, kuna kui hakkasin v\u00e4hendama nende l\u00f5imede arvu, mille korral rakendus t\u00f6\u00f6tas, toimis see v\u00e4ga aeglaselt. Taas avasin IDE ja selle utiliidi juurde lisati veel mitme kiirusliku objekti pingutamise funktsioon. Samuti lisasin sinna ka portide skaneerimise. P\u00e4rast seda kadus vajadus pthreadide j\u00e4rele PHP jaoks ning neid enam ei kasutatud. Hiljem lisati sellesse utiliiti veel m\u00f5ned funktsioonid ja see t\u00f6\u00f6tab t\u00e4naseni. P\u00e4rast seda koostasin Windowsi installija, mis sisaldas Apache't, PHP'd, MariaDB't, ise PHP rakendust ning komplekti utiliite, mis on kirjutatud Free Pascal'is s\u00fcsteemiga suhtlemiseks. Mis puutub installijasse, siis arvasin, et lahendan selle k\u00fcsimuse kiiresti, kuna see on \u00fclimalt levinud ja vajalik peaaegu iga tarkvara jaoks. Kas olin vale otsingus, v\u00f5i miski muu? Kuid mulle sattusid pidevalt tooted, mis olid kas liiga j\u00e4ik v\u00f5i kallis ja samas ka j\u00e4ik. L\u00f5puks leidsin tasuta installija, mis v\u00f5imaldab arvestada igasuguste soovide ja vajadustega. See on InnoSetup. Kirjutan siin sellest, kuna mul tuli otsida, ehk s\u00e4\u00e4stan kellegi aega.<\/p>\n<h3>Pluginast loobumine oma kliendi h\u00fcvanguks<\/h3>\n<p>\nOlen varem kirjutanud, et kliendiosaks oli brauser koos \"pluginiga\". Oli selliseid aegu, mil Chrome uuendus ja kujundus natuke kaldus, v\u00f5i Windows uuendus ja kohandatud uri skeem kadus. Ei tahtnud selliseid \u00fcllatusi avalikus tootes. Lisaks hakkasid kohandatud uri p\u00e4rast iga Windowsi uuendust kaduma. Microsoft eemaldas lihtsalt k\u00f5ik mitte oma harud vajalikust sektsioonist. Samuti ei luba Google Chrome n\u00fc\u00fcd meelde j\u00e4tta valikut avada rakendust kohandatud uri-st v\u00f5i mitte, ja k\u00fcsib seda k\u00fcsimust iga objekti j\u00e4lgimise kliki ajal. Ja \u00fcldiselt oli vaja normaalset koost\u00f6\u00f6d kasutaja lokaalse s\u00fcsteemiga, mida brauser ei paku. Lihtsaim lahendus sellises skeemis n\u00e4ib olevat luua oma brauser, nagu paljud praegu teevad l\u00e4bi Electroni. Kuid paljud asjad olid juba kirjutatud Free Pascalis, sealhulgas serveriosas, seega otsustasime ka kliendi teha samas keeles, mitte loomine mitmekesist zooti. Nii kirjutati klient, millel oli Chromium pardal. P\u00e4rast seda hakkas see erinevate sidemete kasvatamisega.<\/p>\n<h3>V\u00e4ljalase<\/h3>\n<p>\nL\u00f5puks valisime s\u00fcsteemile nime. Me k\u00e4isime pidevalt l\u00e4bi erinevaid variante, kui muutisime kohaliku versiooni SaaS-iks. Kuna me algselt plaanisime mitte ainult siseturule siseneda, oli peamine nimevaliku kriteerium vaba v\u00f5i mitte eriti kallis domeen tsoonis \".com\". M\u00f5ned funktsioonid\/moduulid ei olnud veel kohaliku versiooni Veliamisse kantud, kuid otsustasime, et k\u00e4ivitame praeguse funktsionaalsusega ja viime muudatused ellu hiljem uuendustena. Esimeses versioonis puudusid HelpDesk, Veliam Connector, ei olnud v\u00f5imalik muuta teavituste aktiveerimise k\u00fcnniseid ja palju muud. Ostsime Code Sign Certificate\u2019i, allkirjastasime kliendi- ja serveriosa. Kirjutasime tootele veebisaidi, alustasime tarkvara ja kaubam\u00e4rgi registreerimise protseduuri jne. \u00dches\u00f5naga, oleme valmis alustama. Kerge eufooria tehtud t\u00f6\u00f6 \u00fcle ja m\u00f5te, et keegi v\u00f5iks meie toodet kasutada, kuigi selle \u00fcle ei olnud meil kahtlusi. Ja siis stopp. Partner \u00fctles, et ilma teavitusteta messengeri ei saa turule siseneda. Saame ilma paljude teiste asjadega, kuid mitte ilma selleta. P\u00e4rast l\u00fchikest vaidlust lisati integreerimine Telegramiga, mis sobis meile. K\u00f5igist praegustest messengeritest on see ainus, mis annab juurdep\u00e4\u00e4su oma API-le tasuta ja ilma keeruliste koosk\u00f5lastamisprotseduurideta. WhatsApp pakub \u00fchendust pakkujate kaudu, kes k\u00fcsivad teenuse kasutamise eest head raha, k\u00f5ik kirjad palvega juurdep\u00e4\u00e4su kohta m\u00f6\u00f6ndusteta j\u00e4id t\u00e4helepanuta. No ja Viber... Ma ei tea, kes seda praegu kasutab, kuna sp\u00e4mmi ja reklaami on seal \u00fcleliia. Detsembri l\u00f5pus, p\u00e4rast mitmeid sise teste ja teste s\u00f5prade seas, avasime registreerimise k\u00f5igile ja panime tarkvara alla laadimiseks \u00fcles. <\/p>\n<h3>Leviku algus<\/h3>\n<p>\nJuba algusest saati m\u00f5istsime, et vajame v\u00e4ikest kasutajate voogu, et nad katsetaksid toodet reaalsetes oludes ja annaksid mingisuguse esialgse tagasiside. Mitmed ostetud postitused VK-s andsid tulemusi. Tulid esimesed registreeringud. <\/p>\n<p>Siin tuleb \u00f6elda, et turule sisenemine, kui sinu ettev\u00f5ttel pole tuntud nime, ja samal ajal pakkuda agentuurivaba j\u00e4lgimise funktsionaalsust, kuhu tuleb sisestada kontod oma serverite ja t\u00f6\u00f6jaamade jaoks, on v\u00e4ga keeruline. Paljusid inimesi paneb see hirmu tundma. Me m\u00f5istsime algusest peale, et sellega on probleeme ja olime valmis tehniliselt ja moraalselt. K\u00f5ik kaug\u00fchendused, kuigi RDP ja SSH on vaikimisi juba kr\u00fcptitud, on meie tarkvara poolt t\u00e4iendavalt kr\u00fcptitud AES-standardiga. K\u00f5ik andmed kohalikest serveritest edastatakse pilve HTTPS-i kaudu. Kontod hoitakse kr\u00fcptitud kujul. Kr\u00fcpteerimisv\u00f5tmed k\u00f5igi s\u00fcsteemide jaoks on igal kliendil individuaalsed. Kaug\u00fchenduste jaoks kasutatakse \u00fcldse seansiv\u00f5tmeid. <\/p>\n<p>K\u00f5ik, mida me saame teha, et inimesed tunneksid end rahulikumalt \u2014 on olla v\u00f5imalikult avatud, t\u00f6\u00f6tada turvalisuse nimel ja mitte v\u00e4sida inimestele nende murettekitavatele k\u00fcsimustele vastamast. <\/p>\n<p>Paljude jaoks kaaluvad tarkvara mugavus ja funktsionaalsus \u00fcles hirmu ning nad registreeruvad. M\u00f5ned isikud on avaldatud postitustes VK-s kirjutanud, et seda tarkvara kasutada ei saa, kuna see kogub nende paroole ja on \u00fcle\u00fcldiselt tundmatu ettev\u00f5te. Tuleb \u00f6elda, et see arvamus ei tulnud ainult \u00fchelt inimeselt. Paljud ei m\u00f5ista, et kui nad paigaldavad oma serverisse teise patendi alusel tarkvara, mis t\u00f6\u00f6tab teenusena, on sellel t\u00e4is\u00f5igused s\u00fcsteemis ja neile ei ole vaja kontosid, et midagi ebaseaduslikku teha (on selge, et teenuse k\u00e4ivitamisel kasutaja muutmine on v\u00f5imalik, aga ka seal ei ole probleemi kontole, mida sisse viia). Tegelikult on inimeste kartused arusaadavad. Tarkvara paigaldamine serverisse on tuttav asi, kuid konto sisestamine on juba natuke hirmutav ja intiimne, kuna suurel osal inimestest on \u00fcks parool k\u00f5ikidele teenustele ja eraldi konto loomine isegi testimiseks on laiskus. Kuid praegu on tohutult teenuseid, millele inimesed usaldavad oma volitusi ja mitte ainult. Ja me p\u00fc\u00fcame saada \u00fcheks neist. <\/p>\n<p>Paljud kommentaarid olid sarnased, et me oleme selle kuskilt varastanud. See \u00fcllatas meid veidi. No okei, see on \u00fche inimese arvamus, kuid taolisi kommentaare kohtasime erinevates v\u00e4ljaannetes erinevatelt inimestelt. Alguses ei teadnud, kuidas sellele reageerida. Kas kurvastada selle \u00fcle, et m\u00f5nel inimesel on arvamus, et Venemaal ei suuda keegi midagi ise teha, vaid saab ainult varastada, v\u00f5i r\u00f5\u00f5mustada, et arvatakse, et ainus v\u00f5imalus on varastada selle. <\/p>\n<p>Praegu oleme l\u00f5petanud EV Code Sign Certificate'i hankimise protseduuri. Selle saamiseks tuleb l\u00e4bida rida kontrolle ja esitada palju ettev\u00f5tte dokumente, millest osa peab olema juristi t\u00f5endatud. EV Code Sign sertifikaadi saamine pandeemia tingimustes on \u00fcldse eraldi teema artiklisse. Protseduur venis kuu aega. Ja see polnud ooteaeg, vaid pidev t\u00e4iendavate dokumentide n\u00f5udmine. V\u00f5ib-olla pole pandeemial sellega midagi pistmist, ja k\u00f5igil l\u00e4ks protsess nii kaua? Jagage.<\/p>\n<p>M\u00f5ned \u00fctlevad, et nad ei kasuta, kuna FSTEK sertifikaati ei ole. Peame selgitama, et me ei saa seda hankida ja me ei saa, kuna selle sertifikaadi saamiseks peab kr\u00fcpteerimine toimuma vastavalt GOST-ile, aga me plaanime levitada tarkvara mitte ainult Venemaal ja kasutame AES-i.<\/p>\n<p>K\u00f5ik need kommentaarid valmistasid mingi ebakindluse, et kas on v\u00f5imalik toota toodet, millele tuleb luua kontod, olemata samal ajal t\u00e4helepanu keskpunktis. Isegi arvestades, et me teadsime, et leidub neid, kes sellele v\u00e4ga negatiivselt suhtuvad. P\u00e4rast seda, kui registreerimine \u00fcletas tuhande piiri, l\u00f5petasime selle m\u00f5tlemise. Eriti p\u00e4rast seda, kui lisaks nendele, kes isegi toodet ei proovinud, hakkasid ilmuma ka v\u00e4ga positiivsed arvustused. Tuleb \u00f6elda, et need positiivsed arvustused on k\u00f5ige suurem motivatsioon toote arendamiseks.<\/p>\n<h3>T\u00f6\u00f6tajate kaugjuhtimise funktsionaalsuse lisamine<\/h3>\n<p>\n\u00dcks klientide sagedasi soove on \"andke Vanele v\u00f5imalus oma arvutile kodust ligi p\u00e4\u00e4seda\". Me t\u00f5stsime VPN-i Mikrotikule ja tegime kasutajatele kontod. Kuid see on t\u00f5eliselt probleem. Kasutajad ei suuda vaadata juhendit ja j\u00e4rgida samme VPN-iga \u00fchenduse loomiseks. Erinevad Windowsi versioonid. \u00dches Windowsis l\u00e4heb k\u00f5ik h\u00e4sti, teises on vajalik teistsugune protokoll. Ja kokkuv\u00f5ttes on see alati seotud v\u00f5rguseadmete seadistamisega, mis toimib VPN-serverina, kuid mitte k\u00f5igil t\u00f6\u00f6tajatel pole sellele juurdep\u00e4\u00e4su ning see oli ebamugav. <\/p>\n<p>Aga meil on juba kaug\u00fchendused serverite ja v\u00f5rguseadmetega. Miks mitte kasutada olemasolevat transporti ja luua eraldi v\u00e4ike utiliit, mille saaks lihtsalt kasutajale \u00fchendamiseks anda. Soov oli ainult teha nii, et kasutaja ei peaks seal midagi keerulist sisestama. Lihtsalt \u00fcks nupp \u201e\u00fchenda\u201c. Kuid kuidas see utiliit peaks aru saama, kuhu \u00fchenduda, kui seal on vaid \u00fcks nupp? Oli idee koostada vajalikke rakendusi meie serverites. S\u00fcsteemiadministraator vajutab nuppu \u201elaadi ikoon alla\u201c ja meie pilve saadetakse k\u00e4sk individuaalse binaari koostamiseks, kus on sisse kirjutatud teave, kuidas \u00fchenduda vajalikku serverisse \/ arvutisse RDP kaudu. \u00dcldiselt oleks seda v\u00f5imalik teha. Kuid see v\u00f5taks kaua aega, administraator peaks esmalt ootama, kuni binaar koostatakse, ja seej\u00e4rel ka alla laadima. Loomulikult oleks saanud lisada lihtsalt teise faili config jaoks, kuid see on juba 2 faili, ja kasutajale on lihtsuse nimel vajalik \u00fcks. \u00dcks fail, \u00fcks nupp ja mingeid installereid pole. Veidi Google'i avarustes ringi vaadates j\u00f5udsin j\u00e4reldusele, et kui manustada mingit teavet kompileeritud \u201c.exe\u201d l\u00f5ppu, siis see ei riku (no peaaegu). Tood sisse isegi s\u00f5da ja rahu ja see t\u00f6\u00f6tab nagu varem. H\u00e4bi on seda mitte \u00e4ra kasutada. N\u00fc\u00fcd on v\u00f5imalik lihtsalt jooksvalt kliendis rakendust dekompresseerida, muide selle nimi on Veliam Connector, ja lihtsalt kirjutada l\u00f5ppu vajalikud \u00fchenduse loomise andmed. Ja rakendus ise teab, mida sellega teha. Miks ma kirjutasin sulgudes \u201eno peaaegu\u201c? Sest selle mugavuse eest tuleb maksta sellega, et rakendus kaotab enda digitaalallkirja. Kuid meie praeguses etapis peame seda v\u00e4ikeseks hinnaks sellise mugavuse eest. <\/p>\n<h3>Kolmandate osapoolte moodulite litsentsid<\/h3>\n<p>\nEelnevalt mainisin, et p\u00e4rast otsust toode avalikuks teha, mitte ainult enda tarbeks, tuli k\u00f5vasti vaeva n\u00e4ha ja leida asendusi teatud moodulitele, mis ei v\u00f5imaldanud neid meie toote koosseisu kaasata. Kuid juba p\u00e4rast v\u00e4ljaandmist avastati juhuslikult \u00fcsna ebameeldiv asi. Veliam Serveri, mis oli kliendi poolel, koosseisus oli andmebaas MariaDB. Ja sellel on GPL-litsents. GPL-litsents eeldab, et tarkvara peab olema avatud l\u00e4htekoodiga, ja kui meie toote koosseisu kuulub MariaDB, millel on see litsents, siis peab ka meie toode olema selle litsentsi all. Kuid \u00f5nneks on selle litsentsi eesm\u00e4rk avatud l\u00e4htekood, mitte karistamine kohtus neid, kes on kogemata eksinud. Kui \u00f5iguste omanikul tekib pretensioon, peab ta kirjalikult teavitama rikkumise tegijat ja see peab 30 p\u00e4eva jooksul rikkumise k\u00f5rvaldama. Me avastasime oma vea ise ja kirju ei saanud ning asusime kohe kaaluma v\u00f5imalusi, kuidas probleemi lahendada. Lahendus osutus ilmselgeks \u2014 \u00fcleminek SQLite'ile. Sellel andmebaasil ei ole mingeid litsentsimise piiranguid. Enamik kaasaegseid brauserid kasutab SQLite'i, samuti palju teisi programme. Leidsin internetist teavet, et SQLite on maailma k\u00f5ige levinum andmebaas, just t\u00e4nu brauseritele, kuid ma ei otsinud t\u00f5endeid, nii et see teave ei ole t\u00e4pne. Alustasin uurimist, millised riskid kaasnevad \u00fcleminekuga SQLite'ile.<\/p>\n<p>See muutub juba mittet\u00fcliks \u00fclesandeks, kui klientidel on mitu sada serverit, kus on paigaldatud MariaDB ja kus on andmed. M\u00f5ned MariaDB funktsioonid ei ole SQLite'is saadaval. N\u00e4iteks, koodis kasutati p\u00e4ringuid, mis on kujul <\/p>\n<pre><code class=\"sql\">Select * FROM `table` WHERE `id`&gt;1000 FOR UPDATE\n<\/code><\/pre>\n<p>\nSee konstruktsioon mitte ainult ei salvesta andmeid tabelist, vaid blokeerib ka vastavad read. Veel paar konstruktsiooni tuli samuti \u00fcmber kirjutada. Kuid lisaks sellele, et tuli \u00fcmber kirjutada palju p\u00e4ringuid, tuli v\u00e4lja m\u00f5elda ka mehhanism, mis Veliam Serveri uuendamisel kliendil k\u00f5ik andmed uude andmebaasi seadistaks ja vana eemaldaks. Samuti ei t\u00f6\u00f6tanud SQLite'is tehingud ja see oli t\u00f5eliseks probleemiks. Kuid p\u00e4rast internetis ringi vaatamist leidsin kergesti, et SQLite'is saab tehingud sisse l\u00fclitada, edastades \u00fchendamisel lihtsa k\u00e4su <\/p>\n<pre><code class=\"sql\">PRAGMA journal_mode=WAL;<\/code><\/pre>\n<p>\nKokkuv\u00f5ttes on \u00fclesanne t\u00e4idetud ja n\u00fc\u00fcd t\u00f6\u00f6tab klientide serveripoolne osa SQLite'il. Me ei ole s\u00fcsteemi t\u00f6\u00f6 osas mingeid muutusi t\u00e4heldanud.<\/p>\n<h3>Uus HelpDesk<\/h3>\n<p>\nSisemisest versioonist SaaS versiooniks oli vaja portida HelpDeski s\u00fcsteem, kuid teatud muudatustega. Esimene asi, mida sooviti teha \u2014 oli klientide domeeniga integreerimine, et tagada kasutajate sujuv autentimine s\u00fcsteemis. N\u00fc\u00fcd, et kasutaja p\u00e4\u00e4seks HelpDeski ja esitaks s\u00fcsteemis taotluse, peab ta lihtsalt oma t\u00f6\u00f6laual asjale kl\u00f5psama, mis avab brauseri. Kasutaja ei sisesta mingeid kontodetaile. Apache SSPI moodul, mis kuulub Veliam Serveri koosseisu, autentib kasutaja automaatselt domeeni kontoga. Kui kasutaja asub ettev\u00f5tte v\u00f5rgust v\u00e4ljaspool ja soovib s\u00fcsteemis taotlust esitada, siis vajutab ta nuppu ja saab meilile lingi, mille kaudu saab ta s\u00fcsteemi HelpDesk ilma paroolideta sisse logida. Kui kasutaja domeenis keelatakse v\u00f5i kustutatakse, siis l\u00f5petab ka tema HelpDeski konto toimimise. Seega ei pea s\u00fcsteemiadministraator j\u00e4lgima kontosid nii domeenis kui ka HelpDeskis. Kui t\u00f6\u00f6taja lahkub, siis keelatakse tema konto domeenis ja k\u00f5ik, ta ei p\u00e4\u00e4se enam s\u00fcsteemi ei ettev\u00f5tte v\u00f5rgust ega ka lingiga. Selle integreerimise t\u00f6\u00f6ks peab s\u00fcsteemiadministraator looma \u00fche GPO, mis <noindex><a rel=\"nofollow\" href=\"https:\/\/veliam.com\/%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D1%8F\/helpdesk\/%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%B0-%D0%B2-%D0%B7%D0%BE%D0%BD%D1%83\/\">lisab sisemise saidi intraneti tsooni<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/veliam.com\/%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D1%8F\/helpdesk\/%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D1%8F%D1%80%D0%BB%D1%8B%D0%BA%D0%B0-helpdesk-%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8-gpo\/\">levitab ikooni k\u00f5igile kasutajatele t\u00f6\u00f6lauale<\/a><\/noindex>. <\/p>\n<p>Teine asi, mida peame HelpDeski s\u00fcsteemide jaoks \u00e4\u00e4rmiselt vajalikuks, v\u00e4hemalt meie jaoks, on v\u00f5imalus \u00fchendust v\u00f5tta kaebuse esitajaga otse kaebusest \u00fche klikiga. Veelgi enam, \u00fchendused peaksid toimuma ka siis, kui s\u00fcsteemiadministraator asub teises v\u00f5rgus. V\u00e4lja\u00e4estamiseks on see h\u00e4davajalik ning ka tavap\u00e4raste s\u00fcsteemiadministraatorite jaoks sageli v\u00e4ga vajalik. On juba mitmeid tooteid, mis teevad kaug\u00fchendusi suurep\u00e4raselt. Otsustasime nendele luua integratsioonid. Praegu oleme integreerinud VNC ning tulevikus kavandame Radmini ja TeamVieweri lisamist. Kasutades meie v\u00f5rgutransporti kaug\u00fchenduste jaoks infrastruktuurile, saime teha nii, et VNC \u00fchendub kaug-t\u00f6\u00f6jaamadega NAT-i taga. Sama kehtib ka Radmini puhul. Praegu, et kasutajaga \u00fchendust v\u00f5tta, peab kaebuses lihtsalt klikkima nuppu \"\u00fchenda kaebuse esitajaga\". Avaneb VNC klient, mis \u00fchendub kaebuse esitaja juurde, s\u00f5ltumata sellest, kas olete samas v\u00f5rgus v\u00f5i istute kodus p\u00fckstes. Eelnevalt peaks s\u00fcsteemiadministraator GPO vahendusel installima k\u00f5igile t\u00f6\u00f6jaamadele VNC Serveri. <\/p>\n<p>Praegu viime ise \u00fcle uuele HelpDeskile ja kasutame integreerimist domeeniga ja VNC-ga. See on meie jaoks v\u00e4ga mugav. N\u00fc\u00fcd ei pea me maksma TeamVieweri eest, mida oleme kasutanud rohkem kui kolm aastat oma tugiteenuse t\u00f6\u00f6ks.<\/p>\n<h3>Mida plaanime edaspidi teha<\/h3>\n<p>\nKui me toote turule t\u00f5ime, ei hakanud me pakkuma tasulisi hindu, vaid piirasime tasuta plaani 50 j\u00e4lgitava objektiga. Me m\u00f5tlesime, et viisk\u00fcmmend v\u00f5rguseadet ja serverit peaks k\u00f5igile piisama. Ja siis hakkasid tulema k\u00fcsimised limiidi suurendamise kohta. \u00d6elda, et olime veidi \u0161okeeritud \u2014 oleks alahinnatud. Kas t\u00f5esti on meie tarkvara huvitatud ettev\u00f5tetest, kellel on nii palju servereid? Me suurendasime tasuta limiiti neile, kes seda k\u00fcsisid. M\u00f5nelt k\u00fcsisime vastuseks, miks neil on nii palju, kas t\u00f5esti on neil nii palju servereid ja v\u00f5rguseadmeid. Selgus, et s\u00fcsteemi hakkasid kasutama s\u00fcsteemiadministraatorid, nii nagu me \u00fcldse ei plaaninud. K\u00f5ik osutus lihtsaks \u2014 meie tarkvaraga hakati j\u00e4lgima mitte ainult servereid, vaid ka t\u00f6\u00f6jaamu. Seet\u00f5ttu tuli palju k\u00fcsida limiitide suurendamise kohta. Praegu oleme juba sisse viinud tasulised plaanid ja limite saab ise suurendada. <\/p>\n<p>Serverid t\u00f6\u00f6tavad peaaegu alati kas SDH-de (salvestusseadmete s\u00fcsteemide) v\u00f5i kohalike diskide RAID-massiividega. Alguses tegime me toote nende jaoks. SMART-i j\u00e4lgimine ei olnud selle \u00fclesande jaoks huvitav. Kuid arvestades, et inimesed kohandasid tarkvara t\u00f6\u00f6jaamade j\u00e4lgimiseks, tulid k\u00fcsimised SMART-i j\u00e4lgimise rakendamise kohta. Varsti viime selle ellu. <\/p>\n<p>Veliam Connectori saabumisega on ettev\u00f5tte v\u00f5rgus VPN-serveri seadistamine v\u00f5i RDGW loomine v\u00f5i lihtsalt sadamate suunamine vajalikest masinatest RDP \u00fchendamiseks osutunud enam mitte vajalikuks. Paljud kasutavad meie s\u00fcsteemi ainult nende kaug\u00fchenduste jaoks. Veliam Connector on saadaval ainult Windowsile, kuid m\u00f5ned ettev\u00f5tte kasutajad \u00fchendavad oma koduloodud MacOS-i s\u00fclearvutite kaudu t\u00f6\u00f6jaamade v\u00f5i terminalide juurde ettev\u00f5tte v\u00f5rgus. Seega peab s\u00fcsteemiadministraator ikka veel tegelema sadamate suunamise v\u00f5i VPN-iga, kuna m\u00f5ned kasutajad vajavad seda. Seet\u00f5ttu viime praegu l\u00f5pule Veliam Connectori versiooni MacOS-i jaoks. Kasutajad saavad oma lemmik Apple'i seadmete kaudu \u00fche klikiga ettev\u00f5tte infrastruktuuri \u00fchenduda.<\/p>\n<p>Mulle meeldib v\u00e4ga, et suure arvu s\u00fcsteemi kasutajatega ei ole vaja muretseda selle \u00fcle, mida inimesed vajavad ja mis neile mugav on. Nad kirjutavad ise oma soovid, nii et l\u00e4hiajal on arendamiseks palju plaane.<\/p>\n<p>Samas plaanime praegu s\u00fcsteemi t\u00f5lkimist inglise keelde ja selle levitamist v\u00e4lismaal. Me ei tea veel, kuidas me toodet v\u00e4ljaspool meie riiki levitame, otsime v\u00f5imalusi. V\u00f5imalik, et sellest tuleb hiljem eraldi artikkel. V\u00f5ib-olla suudab keegi, kes on seda artiklit lugenud, soovitada vajalikku suunda, v\u00f5i teab ja oskab seda teha ning pakub oma teenuseid. Oleme aitamise eest t\u00e4nulikud.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/audit-telecom\/blog\/505678\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043e \u043f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f Veliam \u0438 \u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u0435\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u043f\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0435 SaaS. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e \u0431\u044b \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0441\u0442\u0430\u043b \u043d\u0435 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c, \u0430 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u043c. \u041e \u0442\u043e\u043c, \u043a\u0430\u043a \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438 \u0441 \u043a\u0430\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u043c\u0438 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c. \u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0422\u0435\u043a\u0443\u0449\u0430\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u044b\u043b\u0430 \u043d\u0430 Linux. \u041f\u043e\u0447\u0442\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-85605","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043e \u043f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f Veliam \u0438 \u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u0435\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u043f\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0435 SaaS.\" \/>\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\/iz-autsorsa-v-razrabotku-chast-2\" \/>\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\udd47\u0418\u0437 \u0430\u0443\u0442\u0441\u043e\u0440\u0441\u0430 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 (\u0427\u0430\u0441\u0442\u044c 2) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043e \u043f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f Veliam \u0438 \u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u0435\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u043f\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0435 SaaS.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/iz-autsorsa-v-razrabotku-chast-2\" \/>\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=\"2020-06-17T11:42:57+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-06-17T11:42:57+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\udd47Aoutsourcingust arendusse (Osa 2) | ProHoster","description":"Eelnevas artiklis r\u00e4\u00e4kisin Veliumi loomise taustast ja selle levitamise otsusest SaaS-s\u00fcsteemis.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/iz-autsorsa-v-razrabotku-chast-2","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\udd47\u0418\u0437 \u0430\u0443\u0442\u0441\u043e\u0440\u0441\u0430 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 (\u0427\u0430\u0441\u0442\u044c 2) | ProHoster","og:description":"\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b \u043e \u043f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f Veliam \u0438 \u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u0435\u0433\u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u043f\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0435 SaaS.","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/iz-autsorsa-v-razrabotku-chast-2","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":"2020-06-17T11:42:57+00:00","article:modified_time":"2020-06-17T11:42:57+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"85605","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 14:33:42","updated":"2022-09-28 15:54:11","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\/85605","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=85605"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/85605\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=85605"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=85605"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=85605"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}