Jaké technologie hrají při vývoji v Alza.cz prim a jak firma zvládá enormní zátěž svých databází? Nahlédněte pod pokličku IT oddělení v Alza.cz!
Z dob dřevných až po současnost
Pomalu se začíná dostávat do povědomí, že Alza.cz si svůj informační systém vyvíjí vlastními silami. Uplynulo již 10 let od momentu, kdy položil v té době jediný programátor ve firmě základní kameny IS a vytvořil první modul Ceník. Do té doby se ve firmě používal pouze malý krabicový účetní systém a ostatní agenda se spravovala ve sdílených excelovských souborech, jak to u začínajících firem většinou bývá. Postupem času se vytvářely nové a nové moduly (reklamační modul, logistické moduly, správa objednávek a další), které stály vedle zmíněného účetního systému, jenž přestával stačit velikosti a tempu firmy, a tak byl přibližně před 3 lety kompletně přepsán do stávající podoby IS. Od té doby je celý informační systém plně pod správou interního IT. V současné době systém obsahuje více než 100 samostatných modulů, které slouží ke zrychlení a zefektivnění provozu všech oddělení společnosti.
Zákazník vidí jen špičku ledovce
Druhou, neméně významnou částí, je také webový vývoj. Člověk by řekl, že na vývoji e-shopu není nic složitého, opak je však pravdou – webové aplikace v Alza.cz mají více než 600 tisíc řádků zdrojových kódů. Výpis a detail zboží či košík jsou pouze některé z částí celého systému. Další hromada věcí se děje na pozadí – například roboty pravidelně kontrolují stav plateb, ověřuje se dostupnost zboží či probíhá synchronizace katalogu a dalších objektů. Získávají se a ověřují data (import a aktualizace katalogu, provolávání API třetích stran) a zároveň se i exportují (XML pro srovnávače a další systémy). Zajímavé jsou pak implementace různých platebních systémů třetích stran, kdy si vývojáři oživují znalosti certifikátů, šifrování a dalších bezpečnostních pravidel.
Technologie/Architektura
Informační systém je postaven databázi Microsoft SQL Server 2012. Drtivá většina business logiky je držena právě zde. Jen pro představu – systém aktuálně obsahuje více než 1 000 tabulek a 1 000 uložených procedur, které musí být maximálně vyladěny na výkon.
Většina aplikací informačního systému je napsaná ve vývojovém prostředí Delphi v jazyce Object Pascal. Důvod, proč zrovna tento jazyk, je převážně historický, ale díky neustálému vývoji této platformy už Object Pascal před několika lety dohnal své objektově orientované kolegy, jako je C++, C# nebo Java. Pro představu rozsahu, systém obsahuje více než 1,2 milionu řádků zdrojových kódů.
Napojení na databázi zastřešuje vrstva aplikačních objektů, které jsou díky svému oddělenému charakteru využitelné jak v grafickém uživatelském rozhraní, tak například i v robotických aplikacích nebo v HW řešeních, jako jsou platební automaty – Alza Payboxy.
Způsob vývoje
Tím, že je celý IS vyvíjen inhouse, je výhradním zákazníkem vývoje každý uživatel IS. Jednotlivá oddělení zadávají svoje požadavky na vývoj do takzvaného ticketovacího modulu (jeden z mnoha modulů IS). Jednotlivé požadavky (tickety) pak konzultují senior vývojáři a analytici spolu se zadavateli a sestavují finální podklady pro koncové programátory. Výstupem takové analýzy je soupis toho, jaké tabulky je potřeba vytvořit v databázi, jaké sloupce by v nich měly být, jak by měly být napojeny na zbytek systému. Dále také jaké třídy by měly vzniknout a jaké funkce nést, případně jakými algoritmy by měly být implementovány. V neposlední řadě jde i o návrh grafického rozhraní tak, aby práce s novými moduly byla pro cílového uživatele co nejvíce intuitivní a efektivní. Kompletní podklady se dostávají k programátorům, kteří daný kus systému vytvoří. Nový modul se spolu s uživatelskou dokumentací předá cílovému oddělení, které dokáže ihned funkcionalitu otestovat a začít používat. Jelikož jsou koncoví uživatelé vždy nablízku, mají prakticky okamžitý feedback a vývoj je tak o hodně rychlejší.
Alza.cz si vyvíjí e-shop na míru
Veškeré webové aplikace jsou postaveny na Microsoft technologiích. Webové stránky Alza.cz a m.alza.cz jsou postaveny na ASP.NET, C# a .NET frameworku v kombinaci s MS SQL 2012 servery. Kvůli enormnímu zatížení stránek je většina zobrazovaných ASP.NET komponent přepsána do vlastního custom řešení, především z důvodu optimalizace rychlosti načítání stránek. Díky charakteru dat (většina dat je read-only nebo se málo obměňují) se využívá také pokročilé cachování obsahu, které výrazně pomáhá snížení zátěže SQL serverů. K načítání dat se nepoužívají žádné ORM, kompletní načítání dat z SQL do objektů se řeší pomocí vlastních data managerů a optimalizovaných stored procedur. Díky úpravám na backendu a frontendu webu dokážou garantovat rychlost webu i při exponenciálním růstu firmy.
Pozornost upřena na neustálý rozvoj
Díky velikosti firmy se při webovém vývoji v Alza.cz setkáte s mnoha zajímavými projekty, které u menších společností většinou nenajdete. Jsme velice pyšní na prvenství v evropském prodeji elektronických licencí Microsoftu. Zákazníci Alza.cz mohli jako první nakupovat své oblíbené produkty v elektronické podobě – tedy nemuseli si chodit fyzicky pro DVD, ale na 2 kliknutí měli zakoupené licence a na další 2 kliknutí si programy stahovali a instalovali do svých počítačů. Z pohledu IT super projekt – komunikace v AJ, spolupráce s velkou firmou typu Microsoft a také implementace zajímavého a robustního API. Programátorsky i projektově zajímavá práce.
Exponenciální růst
Díky rychle rostoucímu rozvoji firmy a množství zákazníků (20% meziroční růst v počtu zobrazení stránek) je také potřeba vhodně dimenzovat systém. Ještě před 3 lety běžel web Alza.cz na dvou webových serverech. Dnes IT oddělení spravuje 16 serverů + 6 image serverů a 2 download servery. Ano, počítáte správně – rostou exponenciálně. O servery se starají vlastními silami v kooperaci s administračním oddělením, jakékoliv custom úpravy a zásahy jsou tedy v jejich režii (HW i SW aktualizace a podobně).
Záběr specializace je široký
Prostor pro hrátky
je všude, kam se člověk podívá. V týmu se někdo zajímá o datamining (segmentace zákazníků, rozesílka marketingových akčních e-mailů), jiný o frontend (JavaScript, jQuery, CSS a LESS), někoho zase baví zajímavé algoritmické problémy, a tak tvoří doporučovací systémy na základě parametrizace zboží.
Práci si vymýšlí sami
Na rozdíl od ostatních oddělení ve firmě je webový tým primárně rozvojový. Je zaměřen na projekty, které zvyšují komfort při nákupu či rozvoji prodávaného obsahu (elektronické zboží a podobně).
Veškeré inovace na webu plynou primárně z IT a z webového vývoje. Je zde tedy prostor pro proaktivní jedince, kteří mají kreativní a out-of-the-box nápady a jsou schopni je projektově a technicky realizovat.
UX oddělení
Webová aplikace je vyvíjena s cílem vyhovět zákazníkům v jejich potřebách a nabídnout jim maximální komfort a prožitek při nákupu. Na IT oddělení proto existuje oddělení starající se primárně o uživatelský prožitek, o user experience.
Členové tohoto týmu neustále přicházejí s novými podněty na zlepšení či optimalizaci procesů, webových prvků a stránek, mobilních obrazovek aplikací či mailových šablon.
Kreslením podivných čar na tabuli či papíře vše jen začíná, po společných debatách se později vytváří jednoduché funkční mockupy, ve Photoshopu se rodí konkrétní návrhy obrazovek.
Díky tomu, že je web primárním nákupním kanálem firmy, jsou oddělení UX a webového vývoje sjednoceny do jednoho týmu, který společnými silami tvoří všechny aplikace (webové, mobilní i tabletové).
Testování na lidech povoleno
Portfolio zákazníků Alza.cz už dávno není úzce vyprofilovaný segment geeků, kteří nakupovali specializovaný hardware do svých herních PC. V dnešní době na Alza.cz nakupuje snad každý, kdo potřebuje novou elektroniku, a tento fakt je potřeba reflektovat do myšlení a vývoje e-shopu.
Rozhodování o budoucím rozvoji webu se ve většině případů děje na základě dat (Google Analytics, A/B testy, interní měření a podobně) a zpětné vazby od zákazníků, ale také na základě zkušeností jednotlivých pracovníků. Tím je zajištěn neustálý přísun nových nápadů a postřehů, které podporují vývojovou aktivitu a potažmo i růst celé společnosti.
To ostatně potvrzuje i personální oddělení, které pro IT oddělení pravidelně hledá nové kolegy a kolegyně. Ročně rozšíří počet zaměstnanců společnosti o 30 %.
Pokud je Vám prostředí Alza.cz blízké a chtěli byste se přidat do jejich týmu, doporučujeme se podívat na seznam aktuálních volných pracovních míst na www.alza.cz/kariera.