Pavel Ježek: Pohled do zákulisního mozku Alzy aneb jak vypadá vývoj našeho interního informačního systému

Pavel JežekPavel Ježek

pavel-jezek-alzaInsider

Foto: Alza

Pavel Ježek, Head of ERP Development v Alza.cz

0Zobrazit komentáře

Přemýšleli jste někdy nad tím, jak po IT stránce fungují obří e-shopy se statisíci produkty v nabídce? Jak je možné, že v reálném čase na webu jako zákazník vidíte rovnou dostupnost daného zboží přímo ve skladech? Jak spolu komunikují logistika a naše výdejní AlzaBoxy nebo třeba co přesně obnáší doručení do pár hodin od objednání – co všechno je za tím?

O tom všem se pro CzechCrunch rozepsal Pavel Ježek, který v Alze působí jako šéf EPR vývoje a odhaluje IT zákulisí největšího českého e-shopu. Řeč bude především o tzv. mozku Alzy, který je běžně lidem neznámý, ale spolu s webem celý e-shop pohání a pomohl firmě vyrůst do dnešních rozměrů.

***

Zasvěcení vědí, že je řeč o interním informačním systému nebo počítačovou řečí o ERP. Alza si tzv. konzoli stejně jako web a mobilní aplikace vyvíjí sama in-house. Ano, čtete správně. U webů a aplikací to není neobvyklé, ale ERP? Možná si říkáte, že jsme se asi zbláznili, že to už nikdo nedělá, všichni přece mají svoje SAPy, tak proč si v Alze vyvíjíme ERP sami a z většiny in-house?

Abychom byli přesní, na vývoji spolupracuje i pár externích odborníků, ale vše jede pod naší taktovkou a je řízeno IT společně s byznysem.

Konzole jako centrální mozek Alzy

Centrální mozek Alzy se jmenuje Konzole. Alzáckou Konzoli vyvíjíme už dlouho, letos tomu bude 15 let. Začalo to skromně s pár moduly a pár tabulkami. Ale už od začátku jsme věděli, že si Konzoli chceme dělat sami. Důvod je nasnadě: kdo nejlépe zná náš byznys, naše nápady, naše procesy? Kdo v řádu dní stávající procesy postaví na hlavu a implementuje nové, lepší?

alza-vydej-showroom-holesovice2

Foto: Alza

Hlavní showroom Alzy v Holešovicích

Kdo za pár hodin a pár korun udělá nové moduly s novou funkčností? My, nikdo jiný. Konzole je nadupaná funkčností, umí toho neskutečně mnoho. Nyní už má přes 160 modulů a kromě zpracování objednávek v sobě zahrnuje i celý obchodní proces a nábor nových zaměstnanců. Pracují s ní všechna oddělení napříč firmou – logistika, celá naše pobočková síť včetně call centra, personálního, marketingu, obchodníků, prostě každý.

Alza letos slaví 25 let. Systém už má také svůj věk. Z historických důvodů má tlusté desktopové klienty, je to monolitická aplikace, veškerá aplikační logika je v uložených procedurách a pohledech na MS SQL Serveru. SQL Server je výborný, ale špatně se pro zápis škáluje. Optimalizujeme, nakupujeme nový hardware, třeba naše servery mají 6 TB paměti, tisíckrát víc než běžný notebook.

„Tvoříme úplně novou Konzoli. Chceme skok, ne krůček.“

Alza však roste výrazně rychleji než výkon hardwaru. Za to jsme rádi a děkujeme za to našim zákazníkům, na druhou stranu dobře víme, že brzy narazíme na výkonové limity architektury Konzole. To byl jeden z důvodů, proč jsme se rozhodli, že vytvoříme úplně nové ERP.

Konzole 2.0

V názvech ERP nejsme příliš kreativní, nová verze má pracovní název Konzole 2.0. O to víc jsme ale s ajťáky kreativnější ve vývoji. Rozhodli jsme se, že nové ERP nám musí vydržet taky minimálně 15 let, bude škálovatelné, postavené na cool, ale prověřených technologiích, ještě nám zrychlí vývoj a umožní nám být pro zákazníky lepší.

Chceme skok, ne krůček. Inspirujeme se a vybíráme technologie u lídrů, jako jsou Google, Facebook, Microsoft, Netflix, Uber, LinkedIn, Amazon, SoundCloud, RedHat a další. Bereme to z gruntu. Naši ajťáci se nepovažují za nejchytřejší na světě, a tak úzce spolupracují při vývoji s ostatními lidmi v Alze. Třeba i nějakou dobu pracují na jiném oddělení, aby dobře porozuměli tomu, co ostatní potřebují.

Zamýšlíme se nad každým modulem, nepotřebné vyřazujeme, stávající vylepšujeme – někdy i velmi radikálně – a vytváříme nové.

hello

Konzole 2.0 už není monolitická, je postavená na tzv. mikroservisách. Každá mikroservisa zahrnuje jednu doménu, např. logistiku nebo finance. Je v maximální možné míře nezávislá na ostatních mikroservisách, má svoji vlastní databázi. Je jasně daná zodpovědnost jak mikroservisy, tak vývojáře. Každý vývojář má svůj píseček, kterému rozumí, nemusí se bát složitého systému. A kdyby Alzák rozbil některou mikroservisu, tak zbytek systému stále funguje.

Jsme programátoři, ulehčujeme si práci, a proto jsme si vybudovali vlastní platformu pro backend i frontend, která nám umožňuje vytvářet nové moduly velmi rychle. Databázový engine už není pouze MS SQL Server, ale i PostgreSQL nebo třeba NoSQL databáze MongoDB.

linhnguyen

Přečtěte si takéLinh Nguyen ze studia TopMonks: Cleantech roste. Do rostlinných burgerů nebo 3D tisku se lijí stovky miliard dolarůLinh Nguyen ze studia TopMonks: Cleantech roste. Do rostlinných burgerů nebo 3D tisku se lijí stovky miliard dolarů

Mikroservisy programujeme v .NET Core a v Javě a máme více rozhraní. Používáme je podle toho, na co konkrétně se nám hodí. Kromě dnes už tradičního a u nás v menší míře využívaného RESTu, používáme GraphQL od Facebooku a gRPC od Googlu.

Máme vlastní cloud

Řadu lidí jistě překvapí, že Konzole 2.0 neběží ve veřejném cloudu. Místo toho jsme si ve firmě postavili svoje vlastní on-premise. Jdeme opět svojí vlastní cestou. Vede nás k tomu hned několik důvodů – mimo jiné síťová latence a cena. Známe přednosti cloudu, víme, na co se hodí, a na co ne.

Pokud budeme potřebovat zvednout výpočetní výkon, máme vyzkoušený hybridní cloud, kdy část nodů máme on-premise a část ve veřejném cloudu. Díky skriptování infrastruktury je vyrollování velmi rychlé, nejdéle trvá nastavení VPN tunelu a nalezení kreditní karty. Mikroservisy běží v docker linuxových kontejnerech, které orchestrujeme v Kubernetes.

Vychází z Borgu, na kterém běží služby Google. Kubernetes jsme začali provozovat dříve, než se o nich začalo mluvit na českých konferencích. Frontend vyvíjíme v Angularu, vyvíjíme si vlastní komponenty. Nové ERP bude dostupné téměř z jakéhokoliv zařízení a odkudkoliv z internetu. Díky dvoufaktorové autentifikaci odpadá nutnost pro lidi obtěžující VPN. Uvědomujeme si možnost útoků, a tak se soustředíme i na bezpečnost a kromě tradičních firewallů jsme například schovaní za scrubingovým centrem.

alza

Foto: Alza

Sklad Alza.cz

I u nás v Alze najdete populární termíny, jako jsou open source, agilní vývoj, scrum, DevOps, test driven development, domain driven development, C#, Java, Maven, Spring, CI/CD, git, kontejnery, Linux, Elastic Search, Kafka, monitoring, Prometheus, Kibana, Grafana, Redis, service mesh, K8s, Jira, Confluence, automatizované testy, micro frontendy.

Technologie jsou zajímavé, ale všechno je hlavně o lidech. Vážíme si stávajících lidí, přechází postupně ze starých technologií na nové. Znalost technologií je důležitá, ale mnohem důležitější je, když má vývojář hlavu na svém místě. Šikovní lidé u nás mají vždy místo, každý si může vybrat, co chce dělat.

Jestli to bude backend, frontend, nebo obojí. Ke stávajícím lidem hledáme další kolegy na různé pozice. Vymýšlíme, děláme řadu proof-of-conceptů, nebojíme se slepých uliček, ze kterých se umíme vrátit a vydat se jinou cestou. Know-how sdílíme s dalšími lídry v oboru a vzájemně se posouváme dál. Zdá se, že nové ERP bude výzva. Výzva, která nás v Alze baví, protože stavíme něco, co má smysl, co je vidět, a přitom u nás mají ajťáci volný prostor a důvěru. A ve finále rychlost ocení samotní zákazníci, a o to přeci jde.