{"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\/cs\/blog\/administrirovanie\/iz-autsorsa-v-razrabotku-chast-2","title":{"rendered":"Z outsourcingu do v\u00fdvoje (\u010d\u00e1st 2)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>V <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/audit-telecom\/blog\/504376\/\">p\u0159edchoz\u00ed \u010dl\u00e1nku<\/a><\/noindex>, vypr\u00e1v\u011bl jsem o historii vzniku Veliamu a o rozhodnut\u00ed jeho distribuce prost\u0159ednictv\u00edm syst\u00e9mu SaaS. V tomto \u010dl\u00e1nku se pod\u011bl\u00edm o to, co bylo t\u0159eba ud\u011blat, aby se produkt stal ve\u0159ejn\u00fdm, nikoli lok\u00e1ln\u00edm. O tom, jak jsme za\u010dali s distribuc\u00ed a s jak\u00fdmi probl\u00e9my jsme se setkali.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Pl\u00e1nov\u00e1n\u00ed<\/h3>\n<p>\nSou\u010dasn\u00e1 serverov\u00e1 \u010d\u00e1st pro u\u017eivatele byla na Linuxu. V t\u00e9m\u011b\u0159 ka\u017ed\u00e9 organizaci jsou Windows servery, co\u017e nelze \u0159\u00edci o Linuxu. Hlavn\u00ed silnou str\u00e1nkou Veliam je vzd\u00e1len\u00e9 p\u0159ipojen\u00ed k server\u016fm a s\u00ed\u0165ov\u00fdm za\u0159\u00edzen\u00edm za NAT. Ale tahle funkce byla velmi siln\u011b v\u00e1z\u00e1na na to, \u017ee routerem musel b\u00fdt nutn\u011b Mikrotik. A to by mnoh\u00e9 evidentn\u011b neuspokojovalo. Nejprve jsem za\u010dal p\u0159em\u00fd\u0161let o p\u0159id\u00e1n\u00ed podpory pro routery od nejb\u011b\u017en\u011bj\u0161\u00edch v\u00fdrobc\u016f. Ale ch\u00e1pal jsem, \u017ee je to nekone\u010dn\u00fd z\u00e1vod s roz\u0161i\u0159ov\u00e1n\u00edm seznamu podporovan\u00fdch zna\u010dek. Nav\u00edc i ty, kter\u00e9 jsou ji\u017e podporov\u00e1ny, mohou m\u00edt od modelu k modelu r\u016fzn\u00fd soubor p\u0159\u00edkaz\u016f pro zm\u011bnu pravidel NAT. Jedin\u00fdm v\u00fdchodiskem ze situace se jevilo VPN. <\/p>\n<p>Kdy\u017e jsme se rozhodli produkt distribuovat, av\u0161ak nikoli jako open source, nebylo mo\u017en\u00e9 zahrnout do n\u011bj r\u016fzn\u00e9 knihovny s otev\u0159en\u00fdmi licencemi typu GPL. To je v\u016fbec jin\u00e9 t\u00e9ma; po rozhodnut\u00ed o prodeji produktu bylo nutn\u00e9 p\u0159ezkoumat polovinu knihoven, proto\u017ee byly pod GPL. Kdy\u017e jsme to psali pro sebe, bylo to v po\u0159\u00e1dku. Ale pro distribuci to nevyhovovalo. Prvn\u00ed VPN, kter\u00e9 m\u011b napadne, je OpenVPN. Ale to je GPL. Je\u0161t\u011b byla mo\u017enost pou\u017e\u00edt japonsk\u00fd SoftEther VPN. Jeho licence umo\u017e\u0148ovala zahrnout ho do na\u0161eho produktu. Po p\u00e1r dnech r\u016fzn\u00fdch test\u016f, jak ho integrovat tak, aby u\u017eivatel v\u016fbec nic nemusel nastavovat a zn\u00e1t o SoftEther VPN, vznikl prototyp. V\u0161echno fungovalo jak m\u011blo. Ale z n\u011bjak\u00e9ho d\u016fvodu n\u00e1s tento syst\u00e9m p\u0159esto znerv\u00f3z\u0148oval a nakonec jsme od n\u011bj ustoupili. Samoz\u0159ejm\u011b jsme v\u0161ak odstoupili a\u017e pot\u00e9, co jsme vymysleli jinou variantu. Nakonec jsme v\u0161echno ud\u011blali na b\u011b\u017en\u00fdch TCP p\u0159ipojen\u00edch. \u010c\u00e1st p\u0159ipojen\u00ed funguje p\u0159es koordin\u00e1tor, \u010d\u00e1st p\u0159\u00edmo pomoc\u00ed technologie Nat Hole Punching (NHP), kter\u00e1 byla tak\u00e9 implementov\u00e1na ve Free Pascal. Mus\u00edm \u0159\u00edct, \u017ee o NHP jsem p\u0159edt\u00edm v\u016fbec nesly\u0161el. A ani m\u011b nenapadlo, \u017ee je mo\u017en\u00e9 spojit 2 s\u00ed\u0165ov\u00e1 za\u0159\u00edzen\u00ed, kter\u00e1 ob\u011b za NAT stoj\u00ed, p\u0159\u00edmo. Prostudoval jsem t\u00e9ma, pochopil princip fungov\u00e1n\u00ed a pustil se do psan\u00ed. Pl\u00e1novan\u00e9 bylo uskute\u010dn\u011bno, u\u017eivatel se p\u0159ipojuje jedn\u00edm kliknut\u00edm k po\u017eadovan\u00e9mu za\u0159\u00edzen\u00ed za NAT p\u0159es RDP, SSH nebo Winbox bez zad\u00e1v\u00e1n\u00ed hesel a nastavov\u00e1n\u00ed VPN. A v\u011bt\u0161ina t\u011bchto p\u0159ipojen\u00ed obch\u00e1z\u00ed na\u0161eho koordin\u00e1tora, co\u017e m\u00e1 dobr\u00fd vliv na ping a n\u00e1klady na \u00fadr\u017ebu t\u011bchto p\u0159ipojen\u00ed.<\/p>\n<h3>P\u0159evod serverov\u00e9 \u010d\u00e1sti z Linuxu na Windows<\/h3>\n<p>\nProbl\u00e9m\u016f p\u0159i p\u0159echodu na Windows bylo hned n\u011bkolik. Prvn\u00ed \u2014 vestav\u011bn\u00fd wmic ve Windows neumo\u017e\u0148uje prov\u00e1d\u011bt WQL dotazy. A v na\u0161em syst\u00e9mu u\u017e bylo v\u0161e postaveno na nich. A bylo je\u0161t\u011b n\u011bco, ale te\u010f si nepamatuji, pro\u010d jsme nakonec ustoupili od jeho pou\u017e\u00edv\u00e1n\u00ed. Mo\u017en\u00e1 rozd\u00edly mezi verzemi Windows. Druh\u00fd probl\u00e9m \u2014 v\u00edcest threading. Nena\u0161el jsem dobrou extern\u00ed utilitu s \"p\u0159ijatelnou\" licenc\u00ed, tak\u017ee jsem znovu spustil IDE Lazarus. A napsal jsem pot\u0159ebnou utilitu. Na vstupu se zad\u00e1 pot\u0159ebn\u00fd seznam objekt\u016f a jak\u00e9 konkr\u00e9tn\u00ed dotazy je t\u0159eba prov\u00e1d\u011bt, a na v\u00fdstupu dost\u00e1v\u00e1m data. A to v\u0161e v mnohovl\u00e1knov\u00e9m re\u017eimu. Skv\u011ble.<\/p>\n<p>Po nastaven\u00ed pthreads pro PHP na Windows jsem si myslel, \u017ee v\u0161echno pob\u011b\u017e\u00ed, ale bylo to jinak. Po n\u011bjak\u00e9m \u010dase lad\u011bn\u00ed jsem pochopil, \u017ee pthreads sice funguje, ale konkr\u00e9tn\u011b v na\u0161em syst\u00e9mu nepracoval. Uk\u00e1zalo se, \u017ee s pthreads v syst\u00e9mu Windows je n\u011bjak\u00e1 zvl\u00e1\u0161tnost. A skute\u010dn\u011b to tak bylo. P\u0159e\u010detl jsem dokumentaci, kde bylo uvedeno, \u017ee pro Windows je po\u010det vl\u00e1ken omezen, p\u0159i\u010dem\u017e, pokud si dob\u0159e pamatuji, implicitn\u011b. To se stalo probl\u00e9mem. Proto\u017ee kdy\u017e jsem za\u010dal sni\u017eovat po\u010det vl\u00e1ken, p\u0159i kter\u00fdch aplikace fungovala, jej\u00ed provoz byl velmi pomal\u00fd. Znovu jsem otev\u0159el IDE a do t\u00e9 sam\u00e9 utility byla p\u0159id\u00e1na funkce pro v\u00edcen\u00e1sobn\u00e9 pingov\u00e1n\u00ed objekt\u016f. No a nakonec i skenov\u00e1n\u00ed port\u016f. Po t\u00e9to zm\u011bn\u011b pot\u0159eba pthreads pro PHP zmizela a u\u017e se nepou\u017e\u00edv\u00e1. Do t\u00e9to utility bylo p\u0159id\u00e1no je\u0161t\u011b n\u011bkolik funkc\u00ed a funguje dodnes. Pot\u00e9 byl vytvo\u0159en instal\u00e1tor pro Windows, kter\u00fd zahrnoval Apache, PHP, MariaDB, samotnou PHP aplikaci a sadu utilit pro interakci se syst\u00e9mem napsan\u00fdch ve Free Pascal. Co se t\u00fd\u010de instal\u00e1toru, myslel jsem si, \u017ee tento probl\u00e9m rychle vy\u0159e\u0161\u00edm, proto\u017ee je to b\u011b\u017en\u00fd a pot\u0159ebn\u00fd prvek t\u00e9m\u011b\u0159 pro ka\u017ed\u00fd software. A\u0165 u\u017e jsem hledal \u0161patn\u011b, nebo z jin\u00e9ho d\u016fvodu, st\u00e1le jsem narazil na produkty, kter\u00e9 byly bu\u010f nedostate\u010dn\u011b flexibiln\u00ed, nebo p\u0159\u00edli\u0161 drah\u00e9 a z\u00e1rove\u0148 tak\u00e9 nepru\u017en\u00e9. A p\u0159ece jsem na\u0161el bezplatn\u00fd instal\u00e1tor, ve kter\u00e9m lze p\u0159edpokl\u00e1dat jak\u00e9koli po\u017eadavky. To je InnoSetup. P\u00ed\u0161u o tom zde, proto\u017ee jsem musel chv\u00edli hledat, snad t\u00edm n\u011bkomu u\u0161et\u0159\u00edm \u010das.<\/p>\n<h3>Odm\u00edtnut\u00ed pluginu ve prosp\u011bch vlastn\u00edho klienta<\/h3>\n<p>\nD\u0159\u00edve jsem psal, \u017ee klientskou \u010d\u00e1st\u00ed byl prohl\u00ed\u017ee\u010d s \"pluginem\". Byly doby, kdy se Chrome aktualizoval a rozvr\u017een\u00ed se trochu rozch\u00e1zelo, nebo kdy\u017e se aktualizoval Windows a custom uri sch\u00e9ma se ztr\u00e1cela. Opravdu jsem necht\u011bl m\u00edt takov\u00e9 p\u0159ekvapen\u00ed v ve\u0159ejn\u00e9 verzi produktu. Nav\u00edc, custom uri za\u010dala mizet po ka\u017ed\u00e9 aktualizaci Windows. Microsoft jednodu\u0161e odstra\u0148oval v\u0161echny jej\u00ed v\u011btve v pot\u0159ebn\u00e9 sekci. Tak\u00e9 Google Chrome nyn\u00ed nedovoluje zapamatovat si v\u00fdb\u011br, zda otev\u0159\u00edt aplikaci z custom uri, a klade tuto ot\u00e1zku p\u0159i ka\u017ed\u00e9m kliknut\u00ed na objekt sledov\u00e1n\u00ed. A celkov\u011b bylo nutn\u00e9 m\u00edt norm\u00e1ln\u00ed interakci s m\u00edstn\u00edm syst\u00e9mem u\u017eivatele, co\u017e prohl\u00ed\u017ee\u010d nenab\u00edz\u00ed. Nejjednodu\u0161\u0161\u00ed variantou v tomto sch\u00e9matu se zd\u00e1 b\u00fdt prost\u011b vytvo\u0159it sv\u016fj prohl\u00ed\u017ee\u010d, jak nyn\u00ed d\u011bl\u00e1 mnoho lid\u00ed pomoc\u00ed Electronu. Ale u\u017e bylo naps\u00e1no mnoho v\u011bc\u00ed ve Free Pascalu, v\u010detn\u011b serverov\u00e9 \u010d\u00e1sti, proto jsme se rozhodli ud\u011blat klienta ve stejn\u00e9m jazyce, abychom nevytv\u00e1\u0159eli zoo. Tak byl naps\u00e1n klient s Chromium na palub\u011b. Pot\u00e9 za\u010dal z\u00edsk\u00e1vat r\u016fzn\u00e9 obvazov\u00e9 vrstvy.<\/p>\n<h3>Uvoln\u011bn\u00ed<\/h3>\n<p>\nNakonec jsme vybrali n\u00e1zev pro syst\u00e9m. Po celou dobu transformace lok\u00e1ln\u00ed verze na SaaS jsme neust\u00e1le zva\u017eovali r\u016fzn\u00e9 mo\u017enosti. Proto\u017ee jsme p\u016fvodn\u011b pl\u00e1novali vstoupit nejen na dom\u00e1c\u00ed trh, hlavn\u00edm krit\u00e9riem pro v\u00fdb\u011br n\u00e1zvu byla dostupnost nezaplacen\u00e9 nebo levn\u00e9 dom\u00e9ny v z\u00f3n\u011b \u201c.com\u201d. N\u011bkter\u00e9 funkce\/modules je\u0161t\u011b nebyly portov\u00e1ny z lok\u00e1ln\u00ed verze do Veliamu, ale rozhodli jsme se, \u017ee vyd\u00e1me produkt s aktu\u00e1ln\u00edmi funkcemi a zbytek dolad\u00edme jako aktualizace. V prvn\u00ed verzi chyb\u011bl HelpDesk, Veliam Connector, nebylo mo\u017en\u00e9 m\u011bnit prahy pro spou\u0161t\u011bn\u00ed upozorn\u011bn\u00ed a mnoho dal\u0161\u00edho. Zakoupili jsme Code Sign Certificate, podepsali klientskou a serverovou \u010d\u00e1st. Napsali jsme webov\u00e9 str\u00e1nky pro produkt, zah\u00e1jili postup registrace softwaru, ochrann\u00e9 zn\u00e1mky atd. Celkov\u011b jsme p\u0159ipraveni za\u010d\u00edt. Mal\u00e1 euforie z odveden\u00e9 pr\u00e1ce a toho, \u017ee m\u016f\u017ee b\u00fdt n\u011bkdo, kdo bude pou\u017e\u00edvat v\u00e1\u0161 produkt, i kdy\u017e o tom jsme nem\u011bli pochybnosti. A pak stop. Partner \u0159ekl, \u017ee bez upozorn\u011bn\u00ed do messenger\u016f nem\u016f\u017eeme vstoupit na trh. Bez mnoha jin\u00fdch v\u011bc\u00ed to jde, ale bez toho ne. Po kr\u00e1tk\u00fdch sporech byla p\u0159id\u00e1na integrace s Telegramem, co\u017e n\u00e1m vyhovovalo. Z v\u0161ech sou\u010dasn\u00fdch messenger\u016f je to jedin\u00fd, kter\u00fd nab\u00edz\u00ed p\u0159\u00edstup k API zdarma a bez slo\u017eit\u00fdch schvalovac\u00edch procedur. WhatsApp nab\u00edz\u00ed kontaktovat poskytovatele, kte\u0159\u00ed si \u00fa\u010dtuj\u00ed nemal\u00e9 pen\u00edze za pou\u017e\u00edv\u00e1n\u00ed jejich slu\u017eeb, v\u0161echny \u017e\u00e1dosti o poskytnut\u00ed p\u0159\u00edstupu bez zprost\u0159edkovatel\u016f byly ignorov\u00e1ny. No a Viber\u2026 Nev\u00edm, kdo ho te\u010f pou\u017e\u00edv\u00e1, proto\u017ee spam a reklama tam p\u0159ekra\u010duj\u00ed m\u00edru. Na konci prosince, po s\u00e9rii intern\u00edch testov\u00e1n\u00ed a testov\u00e1n\u00ed mezi p\u0159\u00e1teli, jsme otev\u0159eli registraci pro v\u0161echny a um\u00edstili software k dispozici ke sta\u017een\u00ed. <\/p>\n<h3>Za\u010d\u00e1tek \u0161\u00ed\u0159en\u00ed<\/h3>\n<p>\nOd sam\u00e9ho za\u010d\u00e1tku jsme v\u011bd\u011bli, \u017ee pot\u0159ebujeme mal\u00fd tok u\u017eivatel\u016f syst\u00e9mu, aby produkt ji\u017e v provozn\u00edm re\u017eimu otestovali a dali n\u011bjakou prvotn\u00ed zp\u011btnou vazbu. N\u011bkolik zakoupen\u00fdch p\u0159\u00edsp\u011bvk\u016f na VK p\u0159ineslo v\u00fdsledky. P\u0159i\u0161ly prvn\u00ed registrace. <\/p>\n<p>Je t\u0159eba \u0159\u00edci, \u017ee je velmi obt\u00ed\u017en\u00e9 vstoupit na trh, kdy\u017e va\u0161e spole\u010dnost nem\u00e1 slavn\u00e9 jm\u00e9no, a sou\u010dasn\u011b poskytovat funkci bezagentn\u00edho monitorov\u00e1n\u00ed, do kter\u00e9 je pot\u0159eba zad\u00e1vat \u00fa\u010dty ze sv\u00fdch server\u016f a pracovn\u00edch stanic. Mnoho lid\u00ed to odrazuje. Od za\u010d\u00e1tku jsme ch\u00e1pali, \u017ee s t\u00edm budou probl\u00e9my, a byli jsme na to p\u0159ipraveni jak technicky, tak mor\u00e1ln\u011b. V\u0161echna vzd\u00e1len\u00e1 p\u0159ipojen\u00ed, i kdy\u017e jsou RDP a SSH standardn\u011b \u0161ifrov\u00e1na, jsou nav\u00edc \u0161ifrov\u00e1na na\u0161\u00edm softwarem podle standardu AES. V\u0161echna data z lok\u00e1ln\u00edch server\u016f jsou p\u0159en\u00e1\u0161ena do cloudu pomoc\u00ed HTTPS. \u00da\u010dty jsou uchov\u00e1v\u00e1ny v za\u0161ifrovan\u00e9 podob\u011b. Kl\u00ed\u010de \u0161ifrov\u00e1n\u00ed pro v\u0161echny podsyst\u00e9my maj\u00ed v\u0161ichni klienti individu\u00e1ln\u00ed. Pro vzd\u00e1len\u00e1 p\u0159ipojen\u00ed se pou\u017e\u00edvaj\u00ed sezen\u00ed \u0161ifrovac\u00ed kl\u00ed\u010de. <\/p>\n<p>V\u0161e, co m\u016f\u017eeme v t\u00e9to situaci ud\u011blat, aby se lid\u00e9 c\u00edtili klidn\u011bji, je b\u00fdt co nejv\u00edce otev\u0159en\u00ed, pracovat na bezpe\u010dnosti a ne\u00fanavn\u011b odpov\u00eddat lidem na jejich znepokojiv\u00e9 ot\u00e1zky. <\/p>\n<p>Pro mnoh\u00e9 p\u0159eva\u017euje pohodl\u00ed a funk\u010dnost softwaru nad strachem, a tak se registruj\u00ed. N\u011bkte\u0159\u00ed jedinci v publikovan\u00fdch p\u0159\u00edsp\u011bvc\u00edch na VK psali, \u017ee tento software nelze pou\u017e\u00edvat, proto\u017ee sb\u00edr\u00e1 jejich hesla a jde o naprosto nezn\u00e1mou spole\u010dnost. Je t\u0159eba \u0159\u00edci, \u017ee tento n\u00e1zor nem\u011bl jen jeden \u010dlov\u011bk. Mnoz\u00ed prost\u011b nech\u00e1pou, \u017ee kdy\u017e si na server instaluj\u00ed jin\u00fd propriet\u00e1rn\u00ed software, kter\u00fd funguje jako slu\u017eba, m\u00e1 stejn\u00e1 pr\u00e1va v syst\u00e9mu a nepot\u0159ebuj\u00ed \u00fa\u010dty, aby mohli d\u011blat n\u011bco nez\u00e1konn\u00e9ho (je jasn\u00e9, \u017ee je mo\u017en\u00e9 zm\u011bnit u\u017eivatele, pod kter\u00fdm slu\u017eba b\u011b\u017e\u00ed, ale zde je to stejn\u00e9, m\u016f\u017eete zadat jak\u00fdkoliv \u00fa\u010det). Ve skute\u010dnosti jsou obavy lid\u00ed pochopiteln\u00e9. Instalace softwaru na server je b\u011b\u017en\u00e1 z\u00e1le\u017eitost, ale zad\u00e1n\u00ed \u00fa\u010dtu je u\u017e trochu d\u011bsiv\u00e9 a intimn\u00ed, proto\u017ee polovina lid\u00ed m\u00e1 jedno heslo pro v\u0161echny slu\u017eby a b\u00fdt l\u00edn\u00ed vytvo\u0159it si samostatn\u00fd \u00fa\u010det i pro testov\u00e1n\u00ed. Nicm\u00e9n\u011b v sou\u010dasn\u00e9 dob\u011b existuje obrovsk\u00e9 mno\u017estv\u00ed slu\u017eeb, kter\u00fdm lid\u00e9 d\u016fv\u011b\u0159uj\u00ed se sv\u00fdmi p\u0159ihla\u0161ovac\u00edmi \u00fadaji a nejen s t\u011bmi. A my se sna\u017e\u00edme st\u00e1t jednou z nich. <\/p>\n<p>Mnoho koment\u00e1\u0159\u016f bylo takov\u00e9ho r\u00e1zu, \u017ee jsme to n\u011bkde ukradli. To n\u00e1s trochu p\u0159ekvapilo. Dob\u0159e, n\u00e1zor jednoho \u010dlov\u011bka, ale takov\u00e9 koment\u00e1\u0159e se objevovaly v r\u016fzn\u00fdch publikac\u00edch od r\u016fzn\u00fdch lid\u00ed. Nev\u011bd\u011bli jsme zpo\u010d\u00e1tku, jak na to reagovat. M\u011bli bychom smutnit nad t\u00edm, \u017ee n\u011bkte\u0159\u00ed lid\u00e9 maj\u00ed n\u00e1zor, \u017ee v Rusku nikdo nic s\u00e1m neud\u011bl\u00e1 a m\u016f\u017ee jen kr\u00e1st, nebo se radovat, \u017ee si mysl\u00ed, \u017ee takov\u00e9 v\u011bci lze pouze ukr\u00e1st. <\/p>\n<p>Nyn\u00ed jsme dokon\u010dili proceduru z\u00edsk\u00e1n\u00ed certifik\u00e1tu EV Code Sign. Pro jeho z\u00edsk\u00e1n\u00ed je nutn\u00e9 proj\u00edt \u0159adou kontrol a poslat spoustu dokument\u016f o spole\u010dnosti, z nich\u017e \u010d\u00e1sti mus\u00ed b\u00fdt ov\u011b\u0159eny pr\u00e1vn\u00edkem. Z\u00edsk\u00e1n\u00ed certifik\u00e1tu EV Code Sign za podm\u00ednek pandemie je v\u016fbec samostatn\u00e9 t\u00e9ma pro \u010dl\u00e1nek. Procedura se prot\u00e1hla na m\u011bs\u00edc. A to byl m\u011bs\u00edc nikoli \u010dek\u00e1n\u00ed, ale neust\u00e1l\u00fdch \u017e\u00e1dost\u00ed o dodate\u010dn\u00e9 dokumenty. Mo\u017en\u00e1 pandemie za to nem\u016f\u017ee a u v\u0161ech byla procedura tak dlouh\u00e1? Pod\u011blte se.<\/p>\n<p>N\u011bkte\u0159\u00ed \u0159\u00edkaj\u00ed, \u017ee nebudeme pou\u017e\u00edvat, proto\u017ee nem\u00e1me certifik\u00e1t FSTEK. Mus\u00edme vysv\u011btlit, \u017ee ho nem\u016f\u017eeme z\u00edskat a nebudeme, proto\u017ee pro jeho z\u00edsk\u00e1n\u00ed mus\u00ed b\u00fdt \u0161ifrov\u00e1n\u00ed podle GOST, a my pl\u00e1nujeme distribuci softwaru nejen v Rusku a pou\u017e\u00edv\u00e1me AES.<\/p>\n<p>V\u0161echny tyto koment\u00e1\u0159e vyvol\u00e1valy ur\u010ditou nejistotu, zda je mo\u017en\u00e9 propagovat produkt, do kter\u00e9ho je t\u0159eba zad\u00e1vat \u00fa\u010dty, ani\u017e bychom byli p\u0159itom na ve\u0159ejnosti. I s ohledem na to, \u017ee jsme v\u011bd\u011bli, \u017ee budou ti, kdo se k tomu postav\u00ed velmi negativn\u011b. Pot\u00e9, co po\u010det registrac\u00ed p\u0159ekro\u010dil tis\u00edc, jsme na to p\u0159estali myslet. Zvl\u00e1\u0161\u0165 po tom, co krom\u011b negativity t\u011bch, kdo to ani nezkusili, se za\u010daly objevovat i velmi p\u0159\u00edjemn\u00e9 recenze. Mus\u00edm \u0159\u00edct, \u017ee tyto pozitivn\u00ed recenze jsou nejv\u011bt\u0161\u00edm motiv\u00e1torem pro rozvoj produktu.<\/p>\n<h3>P\u0159id\u00e1n\u00ed funkce vzd\u00e1len\u00e9ho p\u0159\u00edstupu pro zam\u011bstnance<\/h3>\n<p>\nJedn\u00edm z \u010dast\u00fdch po\u017eadavk\u016f od klient\u016f je: \"Umo\u017en\u011bte Va\u0148ovi p\u0159\u00edstup k jeho po\u010d\u00edta\u010di z domova.\" Vytv\u00e1\u0159eli jsme VPN na MikroTiku a nastavovali \u00fa\u010dty pro u\u017eivatele. Ale to je skute\u010dn\u00fd probl\u00e9m. U\u017eivatel\u00e9 nejsou schopn\u00ed sledovat n\u00e1vod a vykon\u00e1vat ho krok za krokem, aby se p\u0159ipojili p\u0159es VPN. R\u016fzn\u00e9 verze Windows. Na jedn\u00e9 verzi Windows se v\u0161e p\u0159ipojuje bez probl\u00e9m\u016f, na jin\u00e9 je pot\u0159eba jin\u00fd protokol. A obecn\u011b to v\u017edy souviselo s p\u0159enastaven\u00edm s\u00ed\u0165ov\u00e9ho za\u0159\u00edzen\u00ed, kter\u00e9 fungovalo jako VPN server, a ne v\u0161ichni zam\u011bstnanci maj\u00ed k n\u011bmu p\u0159\u00edstup, co\u017e je nepohodln\u00e9. <\/p>\n<p>M\u00e1me ji\u017e vzd\u00e1len\u00e9 p\u0159ipojen\u00ed k server\u016fm a s\u00ed\u0165ov\u00e9mu vybaven\u00ed. Pro\u010d tedy nevyu\u017e\u00edt hotov\u00e9ho transportu a nevytvo\u0159it malou utilitu, kterou bychom mohli jednodu\u0161e poskytnout u\u017eivateli pro p\u0159ipojen\u00ed? Cht\u011blo by to ud\u011blat tak, aby u\u017eivatel nic slo\u017eit\u00e9ho nezad\u00e1val. Jen jedno tla\u010d\u00edtko 'p\u0159ipojit se'. Ale jak bude tato utilita v\u011bd\u011bt, kam se p\u0159ipojit, kdy\u017e m\u00e1 jen jedno tla\u010d\u00edtko? Byla my\u0161lenka na online sestaven\u00ed pot\u0159ebn\u00e9 aplikace na na\u0161ich serverech. Syst\u00e9mov\u00fd administr\u00e1tor stiskne tla\u010d\u00edtko 'st\u00e1hnout z\u00e1stupce' a k n\u00e1m do cloudu se pod\u00e1 p\u0159\u00edkaz na sestaven\u00ed individu\u00e1ln\u00edho bin\u00e1rn\u00edho souboru s zabudovanou informac\u00ed o p\u0159ipojen\u00ed k po\u017eadovan\u00e9mu serveru \/ po\u010d\u00edta\u010di p\u0159es RDP. Celkov\u011b to bylo mo\u017en\u00e9 ud\u011blat. Ale trvalo by to dlouho, administr\u00e1tor by musel \u010dekat, a\u017e se bin\u00e1rn\u00edk zkompiluje a pot\u00e9 st\u00e1hne. Mohli bychom samoz\u0159ejm\u011b p\u0159idat druh\u00fd soubor s konfigurac\u00ed, ale to by u\u017e byly 2 soubory a pro jednoduchost u\u017eivatele je pot\u0159eba jeden. Jeden soubor, jedno tla\u010d\u00edtko a \u017e\u00e1dn\u00e9 instal\u00e1tory. Po p\u0159e\u010dten\u00ed n\u011bkolika informac\u00ed na Googlu jsem dosp\u011bl k z\u00e1v\u011bru, \u017ee pokud na konec zkompilovan\u00e9ho '.exe' p\u0159id\u00e1me n\u011bjak\u00e9 informace, tak se neporu\u0161\u00ed (no skoro). M\u016f\u017eete tam p\u0159idat t\u0159eba V\u00e1lku a m\u00edr a bude fungovat stejn\u011b jako d\u0159\u00edv. Nem\u016f\u017eeme toho nevyu\u017e\u00edt. Nyn\u00ed m\u016f\u017eeme p\u0159\u00edmo v klientovi na m\u00edst\u011b rozbalovat aplikaci, kter\u00e1 se mimochodem naz\u00fdv\u00e1 Veliam Connector, a jednodu\u0161e k n\u00ed na konci p\u0159id\u00e1vat pot\u0159ebn\u00e9 informace pro p\u0159ipojen\u00ed. A samo o sob\u011b v\u00ed, co s t\u00edm d\u011blat. Pro\u010d jsem v\u00fd\u0161e v z\u00e1vork\u00e1ch napsal 'no skoro'? Proto\u017ee za toto pohodl\u00ed mus\u00edme zaplatit t\u00edm, \u017ee aplikace ztr\u00e1c\u00ed sv\u016fj podpis kvalifikovan\u00e9ho certifik\u00e1tu. Ale v tomto st\u00e1diu pova\u017eujeme, \u017ee to je mal\u00e1 cena za takov\u00e9 pohodl\u00ed. <\/p>\n<h3>Licencov\u00e1n\u00ed t\u0159et\u00edch stran modul\u016f<\/h3>\n<p>\nJi\u017e jsem psal, \u017ee pot\u00e9, co bylo rozhodnuto u\u010dinit produkt ve\u0159ejn\u011b dostupn\u00fdm, a ne jen pro vlastn\u00ed pou\u017eit\u00ed, bylo nutn\u00e9 usilovn\u011b pracovat a hledat n\u00e1hrady za ur\u010dit\u00e9 moduly, kter\u00e9 nebyly schopny b\u00fdt sou\u010d\u00e1st\u00ed na\u0161eho produktu. Ale po vyd\u00e1n\u00ed jsme n\u00e1hodou objevili velmi nep\u0159\u00edjemnou v\u011bc. V r\u00e1mci Veliam Serveru, kter\u00fd byl na stran\u011b klienta, byla datab\u00e1ze MariaDB. A ta m\u00e1 licenci GPL. Licence GPL p\u0159edpokl\u00e1d\u00e1, \u017ee software mus\u00ed b\u00fdt s otev\u0159en\u00fdm zdrojov\u00fdm k\u00f3dem, a pokud je v na\u0161em produktu zahrnuta MariaDB, kter\u00e1 tuto licenci m\u00e1, mus\u00ed b\u00fdt i n\u00e1\u0161 produkt pod touto licenc\u00ed. Na\u0161t\u011bst\u00ed je \u00fa\u010delem t\u00e9to licence otev\u0159en\u00fd zdrojov\u00fd k\u00f3d, nikoli trest\u00e1n\u00ed soudem t\u011bch, kte\u0159\u00ed ud\u011blali chybu. Pokud se dr\u017eitel pr\u00e1v ozve s n\u00e1rokem, mus\u00ed p\u00edsemn\u011b informovat poru\u0161itele a ten mus\u00ed b\u011bhem 30 dn\u016f poru\u0161en\u00ed odstranit. Na\u0161i chybu jsme objevili sami a nedostali jsme \u017e\u00e1dn\u00e9 dopisy, proto jsme se ihned za\u010dali zab\u00fdvat mo\u017enostmi, jak probl\u00e9m vy\u0159e\u0161it. \u0158e\u0161en\u00ed se uk\u00e1zalo jako z\u0159ejm\u00e9 - p\u0159echod na SQLite. Tato datab\u00e1ze nem\u00e1 \u017e\u00e1dn\u00e1 licen\u010dn\u00ed omezen\u00ed. V\u011bt\u0161ina modern\u00edch prohl\u00ed\u017ee\u010d\u016f pou\u017e\u00edv\u00e1 SQLite a tak\u00e9 spousta dal\u0161\u00edch program\u016f. Na internetu jsem na\u0161el informace, \u017ee SQLite se pova\u017euje za nejroz\u0161\u00ed\u0159en\u011bj\u0161\u00ed datab\u00e1zov\u00fd syst\u00e9m na sv\u011bt\u011b, pr\u00e1v\u011b d\u00edky prohl\u00ed\u017ee\u010d\u016fm, ale nehledal jsem d\u016fkazy, tak\u017ee to je nep\u0159esn\u00e1 informace. Za\u010dal jsem zkoumat, co obn\u00e1\u0161\u00ed p\u0159echod na SQLite.<\/p>\n<p>St\u00e1v\u00e1 se to ji\u017e netrivi\u00e1ln\u00ed \u00fakol, kdy\u017e je u klient\u016f nainstalov\u00e1no n\u011bkolik stovek server\u016f s MariaDB a daty v n\u00ed. N\u011bkter\u00e9 funkce MariaDB nejsou dostupn\u00e9 v SQLite. Nap\u0159\u00edklad v k\u00f3du jsme pou\u017e\u00edvali dotazy typu <\/p>\n<pre><code class=\"sql\">Select * FROM `table` WHERE `id`&gt;1000 FOR UPDATE\n<\/code><\/pre>\n<p>\nTato konstrukce nejen vyb\u00edr\u00e1 z tabulky, ale tak\u00e9 blokuje dan\u00e9 \u0159\u00e1dky. A tak\u00e9 bylo nutn\u00e9 p\u0159epsat n\u011bkolik dal\u0161\u00edch konstrukc\u00ed. Krom\u011b toho, \u017ee bylo nutn\u00e9 p\u0159epsat mnoho dotaz\u016f, bylo pot\u0159eba vymyslet mechanismus, kter\u00fd p\u0159i aktualizaci Veliam Serveru u klienta p\u0159evede v\u0161echna data do nov\u00e9 datab\u00e1ze a odstran\u00ed tu starou. Tak\u00e9 nefungovaly transakce v SQLite a to byla skute\u010dn\u00e1 probl\u00e9m. Ale po prostudov\u00e1n\u00ed internetu jsem bez probl\u00e9m\u016f zjistil, \u017ee transakce v SQLite lze zapnout jednoduch\u00fdm p\u0159\u00edkazem p\u0159i p\u0159ipojen\u00ed. <\/p>\n<pre><code class=\"sql\">PRAGMA journal_mode=WAL;<\/code><\/pre>\n<p>\nNakonec byla \u00faloha spln\u011bna a nyn\u00ed serverov\u00e1 \u010d\u00e1st klient\u016f b\u011b\u017e\u00ed na SQLite. \u017d\u00e1dn\u00e9 zm\u011bny ve fungov\u00e1n\u00ed syst\u00e9mu jsme si nev\u0161imli.<\/p>\n<h3>Nov\u00fd HelpDesk<\/h3>\n<p>\nBylo nutn\u00e9 portovat syst\u00e9m HelpDesk z intern\u00ed verze na verzi SaaS, ale s ur\u010dit\u00fdmi zm\u011bnami. Prvn\u00ed krok, kter\u00fd jsme cht\u011bli prov\u00e9st, byla integrace s dom\u00e9nou klienta pro zaji\u0161t\u011bn\u00ed pr\u016fhledn\u00e9 autorizace u\u017eivatel\u016f v syst\u00e9mu. Nyn\u00ed, aby se u\u017eivatel p\u0159ihl\u00e1sil do HelpDesku a mohl podat \u017e\u00e1dost, sta\u010d\u00ed, kdy\u017e klikne na z\u00e1stupce na pracovn\u00ed plo\u0161e a otev\u0159e se mu prohl\u00ed\u017ee\u010d. U\u017eivatel nemus\u00ed zad\u00e1vat \u017e\u00e1dn\u00e9 p\u0159ihla\u0161ovac\u00ed \u00fadaje. Modul pro Apache SSPI, kter\u00fd je sou\u010d\u00e1st\u00ed Veliam Server, automaticky autorizuje u\u017eivatele pou\u017eit\u00edm dom\u00e9nov\u00e9ho \u00fa\u010dtu. Aby mohl u\u017eivatel podat \u017e\u00e1dost zevn\u011b mimo firemn\u00ed s\u00ed\u0165, klikne na tla\u010d\u00edtko a na jeho e-mail p\u0159ijde odkaz, pomoc\u00ed kter\u00e9ho se bez hesel p\u0159ihl\u00e1s\u00ed do syst\u00e9mu HelpDesk. Pokud bude u\u017eivatel v dom\u00e9n\u011b deaktivov\u00e1n nebo odstran\u011bn, jeho \u00fa\u010det v HelpDesku p\u0159estane tak\u00e9 fungovat. T\u00edmto zp\u016fsobem nen\u00ed pro syst\u00e9mov\u00e9ho administr\u00e1tora nutn\u00e9 sledovat \u00fa\u010dty jak v dom\u00e9n\u011b, tak v HelpDesku. Kdy\u017e zam\u011bstnanec odch\u00e1z\u00ed, deaktivuje \u00fa\u010det v dom\u00e9n\u011b a t\u00edm to kon\u010d\u00ed; nem\u016f\u017ee se p\u0159ihl\u00e1sit ani z firemn\u00ed s\u00edt\u011b, ani pomoc\u00ed odkazu. Pro zaji\u0161t\u011bn\u00ed t\u00e9to integrace je nutn\u00e9, aby syst\u00e9mov\u00fd administr\u00e1tor vytvo\u0159il jedno GPO, kter\u00e9 <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\/\">p\u0159id\u00e1 intern\u00ed web do z\u00f3ny intranetu<\/a><\/noindex> a <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\/\">distribuuje z\u00e1stupce v\u0161em u\u017eivatel\u016fm na pracovn\u00ed plo\u0161e<\/a><\/noindex>. <\/p>\n<p>Druh\u00e1 v\u011bc, kterou pova\u017eujeme za naprosto nezbytnou pro syst\u00e9my HelpDesk, alespo\u0148 pro n\u00e1s \u2013 je p\u0159ipojen\u00ed k \u017eadateli p\u0159\u00edmo z \u017e\u00e1dosti jedn\u00edm kliknut\u00edm. Nav\u00edc by se m\u011bla p\u0159ipojen\u00ed prov\u00e1d\u011bt, i kdy\u017e je syst\u00e9mov\u00fd administr\u00e1tor v jin\u00e9 s\u00edti. Pro outsourcing je to nutn\u00e9, pro st\u00e1l\u00e9 syst\u00e9mov\u00e9 administr\u00e1tory to tak\u00e9 \u010dasto velmi pot\u0159ebn\u00e9. Ji\u017e existuje n\u011bkolik produkt\u016f, kter\u00e9 skv\u011ble zvl\u00e1daj\u00ed \u00fakol vzd\u00e1len\u00fdch p\u0159ipojen\u00ed. A rozhodli jsme se pro n\u011b vytvo\u0159it integrace. Moment\u00e1ln\u011b jsme vytvo\u0159ili integraci pro VNC, a v budoucnu pl\u00e1nujeme p\u0159idat Radmin a TeamViewer. S vyu\u017eit\u00edm na\u0161eho s\u00ed\u0165ov\u00e9ho transportu pro vzd\u00e1len\u00e1 p\u0159ipojen\u00ed k infrastruktu\u0159e jsme zajistili, \u017ee se VNC p\u0159ipojuje k vzd\u00e1len\u00fdm pracovn\u00edm stanic\u00edm za NAT. Tot\u00e9\u017e bude platit pro Radmin. Nyn\u00ed, abyste se mohli p\u0159ipojit k u\u017eivateli, sta\u010d\u00ed v samotn\u00e9 \u017e\u00e1dosti stisknout tla\u010d\u00edtko \u201ep\u0159ipojit se k \u017eadateli\u201c. Otev\u0159e se klient VNC a p\u0159ipoj\u00ed se k \u017eadateli bez ohledu na to, zda jste v jedn\u00e9 s\u00edti, nebo sed\u00edte doma v pantofl\u00edch. P\u0159edem by m\u011bl syst\u00e9mov\u00fd administr\u00e1tor prost\u0159ednictv\u00edm GPO nainstalovat v\u0161em pracovn\u00ed stanice VNC Server. <\/p>\n<p>Nyn\u00ed sami p\u0159ech\u00e1z\u00edme na nov\u00fd HelpDesk a vyu\u017e\u00edv\u00e1me integraci s dom\u00e9nou a VNC. To je pro n\u00e1s velmi pohodln\u00e9. Te\u010f nemus\u00edme platit za TeamViewer, kter\u00fd jsme pou\u017e\u00edvali v\u00edce ne\u017e t\u0159i roky pro na\u0161i podporu.<\/p>\n<h3>Co pl\u00e1nujeme d\u011blat d\u00e1l<\/h3>\n<p>\nKdy\u017e jsme uvedli produkt na trh, neud\u011blali jsme \u017e\u00e1dn\u00e9 placen\u00e9 tarify, ale jednodu\u0161e jsme omezili bezplatn\u00fd tarif na 50 monitorovan\u00fdch objekt\u016f. Pades\u00e1t s\u00ed\u0165ov\u00fdch za\u0159\u00edzen\u00ed a server\u016f by m\u011blo sta\u010dit ka\u017ed\u00e9mu, pomysleli jsme si. A pak za\u010daly p\u0159ich\u00e1zet \u017e\u00e1dosti o zv\u00fd\u0161en\u00ed limitu. \u0158\u00edct, \u017ee jsme byli trochu v \u0161oku, je slab\u00e9 slovo. Opravdu se na\u0161\u00edm softwarem zaj\u00edmaj\u00ed spole\u010dnosti, kter\u00e9 maj\u00ed tolik server\u016f? Bezplatn\u011b jsme zvy\u0161ovali limit pro ty, kte\u0159\u00ed takov\u00e9 \u017e\u00e1dosti pod\u00e1vali. U n\u011bkter\u00fdch jsme se ptali, pro\u010d pot\u0159ebuj\u00ed tolik, jestli maj\u00ed skute\u010dn\u011b tak velk\u00e9 mno\u017estv\u00ed server\u016f a s\u00ed\u0165ov\u00e9ho vybaven\u00ed. A uk\u00e1zalo se, \u017ee syst\u00e9mov\u00ed administr\u00e1to\u0159i za\u010dali pou\u017e\u00edvat syst\u00e9m zp\u016fsobem, jak\u00fdm jsme to v\u016fbec nepl\u00e1novali. V\u0161echno bylo jednoduch\u00e9 \u2014 na\u0161i softwaru za\u010dali monitorovat nejen servery, ale i pracovn\u00ed stanice. Odtud pramenilo mnoho \u017e\u00e1dost\u00ed o roz\u0161\u00ed\u0159en\u00ed limit\u016f. Nyn\u00ed u\u017e m\u00e1me zaveden\u00e9 placen\u00e9 tarify a limity lze roz\u0161\u00ed\u0159it samostatn\u011b. <\/p>\n<p>Servery obvykle pracuj\u00ed bu\u010f s extern\u00edmi \u00falo\u017ei\u0161ti, nebo s m\u00edstn\u00edmi disky v RAID poli. A p\u016fvodn\u011b jsme produkt vytv\u00e1\u0159eli pro n\u011b. Monitoring SMART nebyl pro tuto \u00falohu zaj\u00edmav\u00fd. Ale vzhledem k tomu, \u017ee lid\u00e9 p\u0159izp\u016fsobili software k monitorov\u00e1n\u00ed pracovn\u00edch stanic, objevily se \u017e\u00e1dosti o realizaci monitorov\u00e1n\u00ed SMART. Brzy ho implementujeme. <\/p>\n<p>S p\u0159\u00edchodem Veliam Connectoru u\u017e nen\u00ed nutn\u00e9 nasazen\u00ed VPN serveru v podnikov\u00e9 s\u00edti, ani vytv\u00e1\u0159et RDGW, nebo pouze prohazovat porty k pot\u0159ebn\u00fdm stroj\u016fm pro p\u0159ipojen\u00ed p\u0159es RDP. Velmi mnoho lid\u00ed pou\u017e\u00edv\u00e1 n\u00e1\u0161 syst\u00e9m pouze pro tato vzd\u00e1len\u00e1 p\u0159ipojen\u00ed. Veliam Connector existuje pouze pro Windows, ale n\u011bkte\u0159\u00ed u\u017eivatel\u00e9 firem se p\u0159ipojuj\u00ed z dom\u00e1c\u00edch notebook\u016f s MacOS k pracovn\u00edm stanic\u00edm nebo termin\u00e1l\u016fm v podnikov\u00e9 s\u00edti. A tak se syst\u00e9mov\u00fd administr\u00e1tor kv\u016fli n\u011bkolika u\u017eivatel\u016fm op\u011bt dost\u00e1v\u00e1 k ot\u00e1zce prohazov\u00e1n\u00ed port\u016f nebo VPN. Proto nyn\u00ed dokon\u010dujeme verzi Veliam Connectoru pro MacOS. U\u017eivatel\u00e9 sv\u00e9 obl\u00edben\u00e9 Apple techniky z\u00edskaj\u00ed tak\u00e9 mo\u017enost p\u0159ipojit se jedn\u00edm kliknut\u00edm k podnikov\u00e9 infrastruktu\u0159e.<\/p>\n<p>Oce\u0148uji, \u017ee s velk\u00fdm po\u010dtem u\u017eivatel\u016f syst\u00e9mu se nemus\u00edme tr\u00e1pit t\u00edm, co lid\u00e9 pot\u0159ebuj\u00ed a co by bylo pohodln\u011bj\u0161\u00ed. Oni sami p\u00ed\u0161\u00ed sv\u00e9 po\u017eadavky, tak\u017ee pl\u00e1n\u016f na v\u00fdvoj na nejbli\u017e\u0161\u00ed dobu m\u00e1me opravdu hodn\u011b.<\/p>\n<p>Sou\u010dasn\u011b pl\u00e1nujeme p\u0159elo\u017eit syst\u00e9m do angli\u010dtiny a jeho distribuci do zahrani\u010d\u00ed. Zat\u00edm nev\u00edme, jak budeme produkt \u0161\u00ed\u0159it mimo na\u0161i zemi, hled\u00e1me mo\u017enosti. Mo\u017en\u00e1 o tom pozd\u011bji nap\u00ed\u0161eme samostatn\u00fd \u010dl\u00e1nek. Mo\u017en\u00e1 n\u00e1s n\u011bkdo, kdo si p\u0159e\u010detl tento \u010dl\u00e1nek, dok\u00e1\u017ee nasm\u011brovat spr\u00e1vn\u00fdm sm\u011brem, nebo to zn\u00e1 a um\u00ed ud\u011blat a nab\u00eddne sv\u00e9 slu\u017eby. Budeme vd\u011b\u010dn\u00ed za pomoc.<br \/>\n<br \/>Zdroj: <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.3 - 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\/cs\/blog\/administrirovanie\/iz-autsorsa-v-razrabotku-chast-2\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/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\udd47Z outsourcingu do v\u00fdvoje (\u010c\u00e1st 2) | ProHoster","description":"V p\u0159edchoz\u00edm \u010dl\u00e1nku jsem hovo\u0159il o pozad\u00ed vzniku Veliam a o rozhodnut\u00ed jeho distribuce prost\u0159ednictv\u00edm syst\u00e9mu SaaS.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/iz-autsorsa-v-razrabotku-chast-2","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/85605","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=85605"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/85605\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=85605"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=85605"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=85605"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}