fbpx
Damir Špoljarič

Zdvojnásobení našich vývojářských kapacit v krátké době má svůj důvod. Pracujeme na mnoha zajímavých projektech paralelně a na jeden z těch hodně zajímavých se teď podíváme trochu blíž: Managed Admin.

Co je to projekt Managed Admin

Za téměř 11letou historii jsme si vyzkoušeli či používali mnoho různých control panelů. Žádný nám ale nevyhovoval do náročného prostředí plnohodnotných managed služeb. Vždy bylo nějaké „ale“, kdy se musel přizpůsobit buď klient se svojí aplikací či admin s možnostmi optimalizací a instalací dalšího software.

Běžný control panel se snaží vyrábět z individuální služby, kterou by managed služba měla být, krabicové řešení, které službu zbytečně částečně degraduje. Proto jsme se rozhodli začít vyvíjet vlastní unikátní ovládací prostředí managed serverů pro klienty s názvem Managed Admin.

Decentralizace a zachování individuálních požadavků

Základní myšlenka celého konceptu Managed Admin je decentralizace. Pro ovládání každé služby bude na serveru nainstalován konkrétní balíček (pochopitelně v debianím balíčku viz https://vshosting.cz/blog/nase-seznamovani-s-automatizaci-procesu-nasazeni) s danou konkrétní servisou, které budou komunikovat s centrálním systémem, které klientovi poskytnou ucelený pohodlný pohled na všechny servery a všechny ovládatelné služby a možnosti ovládání přes GUI či restAPI.

Konkrétní servisy vyvíjíme v GoLang. Servisy jsou nezávislé jak na klientských aplikací, tak i mezi sebou. Na databázovém serveru tak bude například pouze balíček pro ovládání klientských účtů a balíček pro ovládání výjimek ve firewallu. Systém bude umožňovat provádět většinu rutinních činností, které klient či vývojář potřebuje ke své každodenní činnosti, pomocí Managed Admin bez nutnosti kontaktovat technickou podporu.

Velký důraz je kladen na uživatelské pohodlí, rozhraní tak bude intuitivní a hlavně díky elasticu extrémně rychlé, jak to mnozí uživatelé znají například z CloudMailu. Pracujeme rovněž na přípravě nového klientského rozhraní, které bude všechny ovládací systémy centralizovat v jednom klientském účtu – jak Managed Admin, tak správu DNS, tak CloudMail a další služby, které chystáme.

Co bude Managed Admin umět

Managed Admin je modulární systém a seznam modulů, které chceme vyvinout je dlouhý. Aplikaci budeme spouštět po dokončení prvních několika modulů a další moduly budeme postupně přidávat. Součástí však bude postupně ovládání cronů (včetně výstupu z logu o provedení), virtualhostů (nginx, apache) včetně automatizace nasazení SSL a dalších častých požadavků (zaheslování, přesměrování, aliasy, popř. možnost nahrazení konfiguračního souboru nginx s možností rollbacku dle konkrétních podmínek SLA dané služby apod), ovládání výjimek ve firewallu pro vybrané služby, ovládání databází/uživatelů na databázovém serveru, stav poštovní fronty serveru, správa logů a rotace logů, správa přístupu k serveru (FTP/SFTP atd).

Jak bude probíhat implementace

Je před námi velký kus práce s vývojem (minimálně půl roku). Implementace bude po dokončení první části projektu prováděna postupně a s každým klientem individuálně.


Damir Špoljarič

Před dvěma týdny jsme oznamovali chystaný velký upgrade sítě na nové routery (Juniper MX960) a další zajímavá zařízení (Nexus řady 7000). Servisní práce jsme oznamovali na čas mezi 1 a 5 ráno středoevropského času s možností výpadků v řádu až jedné hodiny. Při akci jsme se setkali s pár komplikacemi. Důležité je však, že pro klienta vše proběhlo prakticky bez výpadku.

Na akci jsme byli řádně připraveni, vše bylo předem otestováno v testovacím prostředí a postup byl podrobně připraven. Zbývalo ho tedy zreplikovat v produkčním prostředí. Routery již byly zapojeny a propojeny v předstihu, noční servisní okno jsme si šetřili na části akce, které mohou způsobit výpadky v době „hýbání“ s routovací logikou, topologií sítě apod. Jedinou montážní částí byla úprava zapojení některých fyzických tras do více nezávislých WDM (konkrétně ze 2 na 3). Jelikož máme všechny klíčové trasy zdvojené na úrovni L2 s technologií vPC (Cisco Nexus) nad více fyzickými trasami, které vedou do našich síťových uzlů (popů), ale mají naprosto nezávislý průběh tras, přepojování části trasy probíhalo bez jakéhokoliv výpadku, pouze došlo k omezení kapacity trasy (např. ze 100Gbps na 90Gbps apod.) po dobu přepojování. Traffic na takové trase v době akce byl minimální a nedošlo k žádnému omezení.

Následovala úprava konfigurace topologie a nastavení sítě a zapojení nových routerů „do akce“. Jediný problém, na který jsme narazili a se kterým jsme částečně počítali, byla spolupráce s třetími stranami – tedy zahraničními operátory, kde docházelo k úpravě nastavení propojení (tedy aby každý globální IP transit TIER1 operátor, se kterým spolupracujeme, nebyl zakončen pouze na jednom z routerů – každý na jiném, ale aby každý operátor byl propojen s každým naším páteřním routerem). Vše dohodnuto a předpřipraveno, samotné provedení akce se zdrželo o téměř hodinu, když jsme se snažili dovolat síťařům u protistrany, kteří byli na akci vyhrazeni a s časem počítali. S ohledem na to, že jde o největší operátory (např. Telia), tak by člověk takovou situaci nečekal. Nakonec se vše podařilo realizovat dle dohody. Poté zbývalo přemigrovat provoz a služby ze starých routerů na nové, což již byla rutinní a připravená část.

Na akci se zúčastnilo za nás 7 kolegů – 3x síťoví specialisté, +2x senior administrátoři pro případné řešení problémů s replikacemi, clustery atd., 1x technik datacentra a +1x administrátor rychlé podpory pro rychlejší reakci na případné dotazy klientů a průběžnou kontrolu služeb.

Čeho jsme docílili – zapojené nové špičkové routery s obrovským výkonem, topologie dvojité hvězdy, reakce na poruchu na trase okamžitě díky L2/LACP/vPC bez nutnosti cokoliv přeroutovávat (což má vždy nějaký byť minimální dopad na provoz), 100Gbps ready, zvýšení kapacity (již příští týden chystáme zapojování dalšího zahraničního peeringového centra ;-)), vnitřní redundace všech core prvků (každý core router má 2 nezávislé router enginy atd.) = větší spolehlivost, větší propustnost, příprava na další expanze, výrazná technologická inovace.

No a to nejlepší nakonec. Pro drtivou většinu klientů znamenala akce výpadek v době trvání cca 2 minuty.

Poprvé jsme vše online komentovali na http://status.vshosting.cloud (zatím pouze v angličtině):

Foto – právě je cca 3h ráno:

Jeden z nových routerů – tento na lokalitě ServerPark – před zapojením všech propojů ? (foceno cca týden před akcí):

Snídaně šampiónů – už po akci ?

Všem našim kolegům velké díky za skvělě odvedenou práci !

P.S.: chcete být stále v obraze ohledně toho, co se děje ve světě hostingu/cloudu/ecommerce nebo ze zákulisí VSHostingu či datových center? Odebírejte naše videa, která pro Vás nově chystáme ? bit.ly/2lOYT6h


vshosting~

FTP není cesta

Když chce náš zadavatel vidět ukázku hotové práce, či tester brečí, že nemá co testovat, není nic jednoduššího než prostě otevřít to FTP, překopírovat data na webhosting a hotovo. Tester nám to otestuje, zjistí, že jsou tam chyby (ještě aby nebyly), my je opravíme a znovu vypublikujeme.

Vše super až do okamžiku, než tam pošleme tak rozbitou aplikaci, že prostě neběží vůbec a my okamžitě musíme vrátit tu minulou verzi. No jo, ale na jaké verzi to minule běželo? Pamatuje si to někdo z vás? Copak z FTP zjistím, jaká tam byla verze? Ooops.

Git na server nepatří

Ok, tak FTP cestou jsme se ještě zatím nevydali, rovnou jsme šli na “level 2”. Na server vlezu přes SSH, projekt nainicializuji pomocí git clone a všechny updaty projektu jsou pak jen “git pull”. Když je třeba něco víc, tak to zaobalím shell scriptem, který to “všechno udělá”. Stáhne novou verzi z gitu, aktualizuje composer, promaže cache a jede se.

Celý deploy je pak jen SSH na server a spustit /projekt/deploy.sh. Prostě úžasně jednoduché a snadné. Ale má to tři zásadní nevýhody. Jednak pokud každá aplikace běží na jiném serveru, pořád jen lovíte to správné SSH a vzpomínáte, kam máte vlastně jít a co dělat. Tak ty data zapíšeme do wiki a problém solved ?

…až do doby, co ten jediný v týmu, který doteď měl odvahu na to, aby na serveru na ostré pouštěl ty scripty, o kterých nikdo neví, co udělají, a modlil se u toho, že to dopadne a aplikace pak ještě poběží, třeba onemocní a není nikdo jiný, kdo by to uměl udělal. No a tester stojí a kouká do stropu, protože nemá co dělat. Ale tak jo, zaškolíme dalšího. Přemluvíme toho windowsáka, co si myslí o linuxu, že je to nadávka, vše mu pečlivě vysvětlíme a naučíme, aby, až zase dostaneme rýmičku, byly projekty jako v bavlnce.

Takhle to docela funguje, až na to, že ty deploye jsou otravná věc a zdržuje to. Několikrát denně na server, aktualizovat projekt, vrátit se k práci, aby za hodinu zase…? Prostě jak “u blbečků na dvorečku”. Nešlo by to, aby se to na ty servery dostalo nějak samo? Proč by programátor, měl aplikaci deployovat? To přeci není naše práce, nás to zdržuje a otravuje. Ale zase ono to přece funguje, tak to tak necháme.

Společná řeč s adminem

Takhle se vesele jede do doby, než přijde rána z čistého nebe. Přijdou za vámi admini a oznámí, že SSH na produkční server na projekt XYZ dát nemohou z bezpečnostních důvodů. Proč by taky měl mít programátor přistup k produkci. Jednak se potom neustále dohadujete, kdo aplikaci rozbil, zda špatný deploy, nebo admini jejich aktualizacemi. Kromě toho taky nechceme, aby programátoři měli přístup k ostré databázi a jiným službám.

Po několika týdnech dohadů ty přístupy stejně nedostanete a všechna jistota je pryč. Prý jim máme dávat aplikace v podobě deb balíčku a oni si to nainstalují sami. PHP jako deb balíček? To myslí vážně? Oni ti admini asi v životě neviděli webovou aplikaci. Kdo to kdy slyšel, aby se webové aplikace publikovaly jako deb? A jak asi udělám nějaký balíček? …..

Po vystřízlivění a zjištění, že fakt není jiná možnost, nakonec zjistíme, že vytvořit deb balíček jde plně automatizovaně. Takét to má tu výhodu, že vím přesně, na jaké verzi aplikace jedu a pokud potřebuji “rollback”, jen udělám downgrade balíčku.

Plná automatizace je správná cesta

Přešli jsme tedy na “level 3”. Po push do repozitáře se spustí v GitLab-CI, které stáhne závislosti z composeru, spustí testy, sestaví deb balíček a pošle ho do apt-repository a dle git-branch rovnou ten balíček ihned na serveru nasadí (pokud má SSH [test či devel]).

Deploy u nás tedy probíhá tak, že prostě pošleme svůj kód do gitu, provedeme code-review a následně si mergneme větev do testu (develu dle libosti). V ten okamžik má test/devel verze ihned novou verzi a “křeček tester zase může testovat jak divej” a nás to nezdržuje v práci. No a až je aplikace hotová a je třeba ji nasadit na produkci, jen napíšeme, ať admini nainstalují verzi balíčku x.y.z a dál se o to nestaráme.

Jak jsme mohli žít bez automatického deploye pomocí deb balíčků?

Vývojový tým vshosting~


Damir Špoljarič

Cílovou skupinou vshosting~ v posledních pěti letech se čím dál častěji stávají střední a velké e-commerce projekty – eshopy, eshop platformy či nástroje pro e-shopy. Vedle e-commerce je vshosting~ oblíbeným poskytovatelem také pro portály, webové agentury (mezi klienty patří například většina členů Asociace.biz) a další.

Mezi zákazníky vshosting~ patří již mnoho let desítky největších českých a slovenských e-commerce projektů a stovky středních a menších. Můžeme jmenovat například Okay, AAA AUTO, Electro World, Nay.sk, Shoptet, Shopsys, Notino (Parfums), Vivantis, Megapixel a spoustu dalších. Proč je vshosting~ největším českým a slovenským poskytovatelem komplexní infrastruktury pro e-commerce?

Know how se správou tisíců systémů

10 let se staráme o čím dál více systémů. Známe slabá místa všech běžně používaných platforem, víme, které technologie jde nejlépe škálovat, které technologie si příliš nelámou hlavu se zabezpečením a jaký koncept aplikací bude pro klienta nejdéle udržitelným, nejlépe škálovatelným a nejspolehlivějším. Klient a jeho vývojáři tak od nás mají potřebné informace a technologického partnera, který jim poskytne a v praxi uplatní know-how, které jejich vlastní administrátorský tým jen stěží získá.

Umožňuje nám to široký technologický záběr a velký počet rozsáhlých produkčních systémů, o které se staráme. Smyslem je, že nás kontaktuje klientův architekt aplikace s tím, že chce aplikaci postavit na následujících technologií a od nás chce slyšet zhodnocení rizik jakožto od budoucího provozovatele produkčního prostředí v režimu 24/7, jehož úkol je zajistit co nejvyšší dostupnost a případně sdělit lepší alternativy (stabilnější, efektivnější, škálovatelnější, bezpečnější).

Vlastní lab prostředí a prošlapávání cesty vývojářům

Testujeme nové technologie ideálně dříve, než je klient chce. Tuto činnost budeme navíc dále rozvíjet a u nejpoužívanějších technologií se zapojovat do testování release candidate serverových aplikací. Klientovi poté napíšeme „navrhujeme upgradovat software na verzi xy, protože tím získáme následující výhody. Upgrade doporučujeme první provést ve vašem labu“.

Skvělá infrastruktura

O tom jsme napsali desítky článků. To, že máme jedno z nejlepších datových center ve Střední Evropě je už snad všeobecně známo. Nadměrné investice do ServerParku se ukázaly jako vhodně vynaložené z pohledu stability, kterou naši klienti pociťují bez pár měsíců dva roky od zahájení provozu. Na páteřní síti nešetříme a pořídili jsme jedny z nejspolehlivějších a nejvýkonnějších routerů a switchů v dané řadě, které je možné pořídit (MX960, Nexus řady 7000 a další).

Provozujeme již více než 5 let vlastní cloudovou platformu, kterou neustále inovujeme. Nově budeme do infrastruktury zapojovat nejnovější enterprise storage NetApp FAS8200 s podporou automatického disaster recovery.

Zvažujeme i poskytování služeb na infrastruktuře třetí strany, konkrétně na infrastruktuře AWS. Na klientovi poté bude vybrat, kterou variantu infrastruktury zvolí.

Individuální přístup a DevOps

Ať už jde o malý e-shop na jednom cloud serveru, jehož součástí jsou samozřejmě naše plnohodnotné managed služby, nebo o velké řešení, přístup je individuální. Před rokem jsme si vyzkoušeli migraci projektu Shoptet (platforma pro více než 10 000 eshopů), kterou jsme hravě zvládli během dvou nocí a o infrastrukturu se nyní staráme kompletně.

Všechny rozsáhlé projekty disponují vlastním individuálním labem v logickém zapojení 1:1 s produkční infrastrukturou (výkonnostně je lab samozřejmě výrazně méně výkonný), ve kterém testujeme, v rámci individuálně nastavených DevOps procesů, nové serverové aplikace, rozsáhlejší updaty a klient lab používá i jako staging infrastrukturu svých aplikací před deploy na produkci.

Letos plánujeme rozšít managed služby pro velká řešení o sekci, kterou pracovně nazýváme Managed Special Operations, což bude další krok v individuálním přístupu, kdy bude služba rozšířena o trvalou službu serverového architekta a dalších konkrétních specialistů nad rámec běžné a stálé údržby systémů. Tuto službu pro velké projekty již poskytujeme, od letošního roku bude ale oficiálně představena a nabídnuta i novým klientům.

SLA

Reklama v primetime v televizi prý stojí i několik set tisíc za půl minutový spot. Při představě jakéhokoliv problému například ve vánoční sezóně běhá každému provozovateli eshopu mráz po zádech. Jako jediní poskytujeme nadstandardní SLA a další garance a služby, o kterých si konkurence může nechat zdát. Při problému (o kterém budeme vědět dřív než vy, v ideálním případě u některých situací díky novému monitoringu i dříve než se projeví v reálném provozu) budete do 60 vteřin mluvit se server administrátorem.

Obrovskou výhodou vshosting~ je rovněž to, že známe běžný průběh vánoční sezóny a umíme na to eshop připravit tak, aby se minimalizovalo riziko nečekaného přetížení či se nenarazilo na jiný nečekaný problém v době, kdy to bude nejméně vhodné.


Managed CDN, Maily, …

Aby byly naše služby opravdu komplexní, poskytujeme e-commerce klientům i další přidané služby například v podobě ManagedCDN, která má své POPy již po Evropě a USA a zajišťuje zrychlení webu za minimální finanční náklad a plně v naší správě bez jakýchkoliv starostí. Na konci roku 2016 jsme spustili službu CloudMail – plně automatizované mailové řešení, které je spolehlivé a se spoustou výhod a pohodlných vlastností pro koncové uživatele.

Kdo to pro e-commerce dělá krom nás v takovém rozsahu v ČR/SR?

Zatím nikdo.

Další trhy, na které budeme cílit s naším e-commerce řešením je Polsko.


Během 17 let jsme provedli úspěšnou migrací stovky klientů. Pomůžeme i vám.

  1. Domluvte se na konzultaci

    Stačí nám zanechat kontakt. Obratem se vám ozveme.

  2. Bezplatný návrh řešení

    Nezávazně probereme, jak vám můžeme pomoct. Navrhneme řešení na míru.

  3. Profesionální realizace

    Připravíme vám prostředí pro bezproblémovou migraci dle společného návrhu.

Zanechte nám svůj e-mail nebo telefon




    Nebo nás kontaktujte napřímo

    +420 246 035 835 V provozu 24/7
    konzultace@vshosting.cz
    Zkopírovat
    Obratem se vám ozveme