Zavrieť reklamu

Vlastné dátové centrá, výroba serverov aj vývoj softvéru. To sú piliere úspechu českej internetovej jednotky Seznam.cz. Ďalším je novo aj redakčný systém pre obsahové weby, na ktorom vývojári pracovali posledné dva roky. Moderná publikačná platforma pre články, fotky a videá ušetrí čas vývojárov a je dostatočne flexibilná pre spravodajské, odborové aj úplne nové projekty.

čnsx ilu v5a

Miesto monolitického systému flexibilné moduly

Novú platformu sme pilotne vyskúšali na webe Garáž.sk, nasledovali web a mobilné aplikácie Zoznam Správy, pred nedávnom sme na ňu previedli obsahovú časť Sport.cz. Novinka nahrádza našu skoršiu platformu, ktorú sme ale stavali na úplne inej filozofii. Počítala s väčšou centralizáciou jednotlivých komponent, jednalo sa o monolitický systém a jeden repozitár pre všetky komponenty. Ukázalo sa, že tento systém naráža na limity vo chvíli, keď jeden tím špecifickou úpravou pre konkrétny komponentu mohol rozbiť niečo v inom tíme. Výhodou novej platformy je, že je čiastočne na mieru pre naše jednotlivé obsahové weby, ale zároveň je veľká časť zdieľaná. Vyjadrené v číslach, zdieľame približne 60 % na frontende a 80 % na backende. Rovnaký kód teda nepíšeme viackrát, ale iba raz. Je možné ho použiť na všetkých službách, a zároveň je pre každú službu zaručená flexibilita.

Všetko máme novopostavené modulárnym spôsobom. Základom je skeletón, čo je malý program, ktorý do seba dokáže nahrávať ďalšie programy. Mimo skeletón s modulmi potom môžu bežať ešte samostatné mikroslužby, ktoré ďalej rozširujú systém o špecifickú funkcionalitu. Dohromady má systém aktuálne cez štyridsať modulov. Každý modul má sadu unit testov a integračných testov, ktoré udržujú funkčné jednotlivé moduly. Na službách, ktoré vychádzajú zo skeletónu, sú unit testy, integračné testy, E2E testy, performance testy a QApe . Protože služba môže rozširovať alebo upravovať funkcionalitu modulov. 

Jednoduchšie vylepšovanie jednotlivých funkcionalít

Platformu neustále vyvíjame a zohľadňujeme potrebu ďalších nových funkcií. Keď príde zmena, je výhoda, že stačí upraviť len jeden z modulov, ktorý potom ostatní môžu využiť, a nie je potrebné vyrábať úpravu pre každú z našich obsahových služieb zvlášť. Rovnako je to s reportovaním chýb, opravujú sa len raz. Každá zo služieb si zvolí len to, čo potrebuje. Príkladom modulu, ktorý využívajú len niektoré služby, je potrebné živé vysielanie.

Výrazne vylepšeným modulom na novej platforme sú tagy - štítkovanie. Tie samozrejme používa každá redakcia. My ale máme už iba jednu databázu štítkov nad všetkými službami, ktorú spravujeme centrálne. Hlavná výhoda tohto riešenia je, že nevznikajú duplicity. Vďaka modulu rušíme synonymá alebo skratky, aby sa štítky neduplikovali. Máme to zaznamenané aj do budúcnosti. Napríklad České aerolínie a ČSA, to je u nás jeden štítok a keby náhodou vznikol akýkoľvek druhý s rovnakým obsahom, vieme to vyriešiť. Rovnako tak vieme riešiť aj preklepy v založených štítkoch. Štítok nemá na obsahovom webe svoju profilovú stránku, pokiaľ je duplicitný alebo zlý. Pri toľkých weboch a veľkom množstve obsahu je to veľmi užitočné.

Najlepšie naviazanie na ďalšie systémy firmy

Pro základ a modulárnosť frontendových komponent nám slúži framework IMA.js so šablónovacou knižnicou React. Ostatné backendové komponenty sú postavené v Python, kde pre základ API používame Flask. Hlavnou databázou je MongoDB, ale pre konkrétne prípady používame aj Redis a MySQL.

Všetky komponenty sú balené do Docker, ktoré sa potom spúšťa v Zoznam Kubernetes. Pro monitorovanie metrík z  jednotlivých komponent nám slúži Prometheus. Pro dashboardy a alerting pouzivame Grafanu. Logy z jednotlivých komponent vyhľadávame v Kibane.

Na prvý pohľad je vlastný vývoj cesta, ktorá je drahšia a celkovo náročnejšia, napriek tomu je pre nás výhodnejšia. Keby sme siahli po hotovom open source riešení zadarmo, alebo aj po outsourcovanom riešení, museli by sme v každom prípade zaistiť stabilitu webu s ohľadom na našu veľkú návštevnosť. Systém by sme museli napájať na zoznamácku analytiku, odporúčanie obsahu, interné a externé prihlasovanie, vyhľadávanie, reklamný systém a niekoľko ďalších vecí. Vďaka vývoju riešení priamo pre naše potreby získavame konkurenčnú výhodu oproti ostatným platformám na trhu. Máme najmenej desať vnútrofiremných partnerov, ktorých potrebujeme integrovať do celku. Integrácia do služieb Zoznamu open source riešenie neponúka. Naše požiadavky sú v niektorých prípadoch dosť špecifické.

Výhody pre redaktorov

Redaktori, editori a ďalší ľudia v redakcii dostávajú do ruky technicky úplne nový systém a nové nástroje na prácu s textom, ktorý ale súčasne nenabúral ich doterajšie zvyky. Nebolo zmyslom robiť zmeny pre zmeny, takže vizuálne vyzerá upgrade dosť podobne ako pôvodná verzia. Zmeny sme robili len tam, kde sme videli potenciál zlepšenia redakčnej práce. Príkladom je ovládanie netextových prvkov v editácii výsledného textu, nahrávanie fotiek a videí zostalo naopak rovnaké.

Počty a typy položiek, ktoré dávali zmysel, sme zachovali. Tie, ktoré zmysel postrádali, sme zrušili alebo prerobili do iných, ale snažili sme sa, aby zmien v najčastejších scenároch redakcie bolo minimum. Ľudí všeobecne prijímajú zmeny ťažko, preto u každej musia vnímať jej dôvod a výhody, ktoré im prináša. Zlepšili sme napríklad celý editor WYSIWYG – What You See Is What You Get. Predtým nezodpovedal takmer vôbec definíciu - že čo editujem, to dostanem. Teraz je tomu editor podstatne bližšie. Všetko navyše pracuje oveľa rýchlejšie.

Odlišnosť od ostatných platforiem je, že z WYSIWYG editora neberieme HTML, ale surové dáta. Tá sa potom ďalej k jednotlivým konzumentom, napríklad do mobilnej aplikácie, fulltextu či webovej stránky, dostávajú v surovej podobe. To nikto z redakcie neocení, ale pre nás vo vývoji je to nesporná výhoda.

Máme jedno API, ktoré je možné využiť na ktorejkoľvek platforme. Súčasne s novou platformou sa vydali aktualizované mobilné aplikácie, tie pracujú na rovnakom API ako webová stránka. Pro prvky, ktoré sme predtým z WYSIWYG editora získavali v HTML formátoch, teraz aplikácia dokáže použiť natívne prvky, takže ich môže jednoduchšie spracovať. 

Šetríme prácu programátorov

Výhoda tejto platformy tiež je, že môžeme nastavovať vzhľad webu priamo z administrace. Bez zásahu programátorov priamo z administrace je tiež možné úplne preskladať stránku, alebo poskladať novú stránku pre novú tému. Je možné urobiť aj v stránke zmenu a tú si otestovať pomocou AB testu. Platforma nám tak dáva silný nástroj v tom, že aj neprogramátor môže meniť a preskladať webovú aj mobilnú stránku z existujúcich prvkov. Stránky môže ovplyvniť ktokoľvek, kto má administrátorské práva. Takýto prístup do administrace má pochopiteľne len niekoľko ľudí, pretože je to mocný, ale zároveň nebezpečný nástroj. Keby sa niekto pomýlil, prejaví sa chyba hneď v reálnom prostredí. Nám to však šetrí kapacity vývojárov, ktorí sa nemusia zaoberať týmito menšími zmenami. Vývojové tímy pracujú predovšetkým na väčších úpravách a nových funkcionalitách. 

Oproti predchádzajúcej verzii máme pre každý typ stránky možnosť definovať dve odlišné podoby layoutu, jeden pre desktop a jeden pre mobil, z ktorého na naše weby prichádza čoraz viac ľudí. Teraz si len jednoducho nadefinujeme, ktoré prvky av akom poradí majú byť na malých zariadeniach a ktoré na desktope.

Zrátané a podčiarknuté. S novou publikačnou platformou budeme schopní kontinuálne rozvíjať naše obsahové weby ďalších najmenej desať rokov. Už tento rok ju plánujeme využiť na spustenie najmenej jedného nového projektu. Môžeme využívať synergie. Čím viac podobných projektov s touto platformou prepojíme, tým viac dáva zmysel rozvíjať ju a zlepšovať spoločné functionality. Aby sme to mohli robiť čo najlepšie, rozširujeme tím expertov. Vývojári, ktorí by sa chceli zapojiť do tohto a ďalších technologických projektov v Zozname, sú u nás vítaní a môžu si vybrať z niekoľkých aktuálne otvorených pozícií.

Dnes najčítanejšie

.