Portál AbcLinuxu, 21. května 2025 23:09
Vlastimil Pečínka v rozhovoru popisuje například interní IT oddělení Seznamu, důvody pro používání distribuce Debian na serverech, výběr linuxového jádra pro produkční systémy a projekt SeznamFS.
1) Představte se, prosím, čtenářům. Co v Seznamu děláte a jak a kdy jste do Seznamu přišel?
Věřím, že o mě již čtenáři AbcLinuxu něco četli. V Seznamu v současnosti pracuji na pozici technického ředitele, tj. pozici, která má na starosti řízení celého IT oddělení. Jsem původem a srdcem vývojář, profesionální dráhu jsem začal v Brně v ATC, s. r. o. Ta je nejvíc známá asi díky Email.cz, který jsem vyvíjel a provozoval, prsty jsem však měl i v dalších projektech. Po osmi letech jsem v roce 2004 přešel do Seznamu pracovat v týmu Štěpána Škroba na zbrusu novém fulltextovém vyhledávači. Díky Štěpánovi a inspirativní práci na tomto projektu jsem se v Seznamu rychle uchytil.
Zhruba po roce došlo k restrukturalizaci vývoje a já se ujal nabídnuté pozice senior programátora týmu, který měl na starosti email, registrace a homepage. V té době vznikl webmail v podobě provozované dodnes, Seznam koupil Email.cz a Post.cz a zaintegroval je nebo vznikla první dynamická homepage Seznamu. Díky Ondrovi Procházkovi, tehdejšímu šéfovi vývoje, a systému manažerského vzdělávání v Seznamu to byl pro mě silně akcelerující rok z hlediska zkušeností.
Za další rok došlo k další reorganizaci, tentokrát se to již týkalo celého Seznamu. Pavel Zima, do té doby technický ředitel, se stal výkonným ředitelem a vypsal minitendr na pozici technického ředitele. Byl jsem také osloven a minitendr vyhrál. Od srpna roku 2006 tak řídím celé IT Seznamu.
2) A jak vypadá takové IT oddělení Seznamu?
Skládá se z několika pododdělení. Pochopitelně zde najdete vývojové oddělení, resp. dvě taková - jedno v Praze a druhé v Brně. Dále pak provozní oddělení (nazývané Operations) a oddělení helpdesku. Nově zvažuji samostatné testovací pododdělení. Provozní oddělení je strukturou nové, donedávna to byla dvě samostatná oddělení - provoz, který byl zaměřený na naše internetové služby, a podpora a kontrola kvality - zaměřené na interní IT Seznamu.
3) O interním IT Seznamu se moc nemluví. Jak vypadá v takové internetové firmě? Děláte si také vlastní aplikace?
Náplní je určitě podobné obdobným oddělením v jiných společnostech. Některé aplikace jsou naše, některé samozřejmě kupujeme. Kluci z "interního IT" mají tu výhodu, že mohou sdílet know-how a postupy zbytku oddělení, zejména provozu. Ostatně, to byla i jedna z motivací organizačního sloučení obou oddělení.
Seznam.cz má asi 500 zaměstnanců. Nejsou to všichni "ajťáci", je potřeba jim pomáhat s hardwarem i softwarem, obecně je potřeba jim poskytnout IT servis. Tedy podporu a provoz systémů. Těch systémů je hodně, ať již na Linuxu nebo MS Windows. Nyní probíhá projekt implementace centrálního informačního systému, takže hledáme snad poprvé v historii Seznamu i MS Windows administrátory.
4) Tedy nepatříte k Linux či Windows dogmatikům...
To rozhodně ne. Jsem pragmatik. Vývoj a provoz našich internetových služeb je z hlediska možností a svobody rozhodně výhodnější v linuxovém světě. Pro obchodníky, produktové manažery, finanční oddělení a další části Seznamu je však výhodnější jít s mainstreamem. Zde hrají roli i psychologické otázky. Lidé řeší, jestli mají ten nebo ten software, ten nebo ten notebook, apod. Takový obchodník má však svobodu volby, může se klidně pro Linux rozhodnout :).
5) Objevuje se svoboda volby i jinde, např. v tom, v jakém programovacím jazyce programátor píše?
Na to se nedá jednoznačně odpovědět. Podporuji ty, kteří chtějí něco zkoušet, hledat jiné alternativní cesty. Na druhou stranu za ta léta, co Seznam vyvíjí své aplikace, používá především C/C++ a Python. Vše ostatní vybočuje a je z hlediska nákladů a distribuce know-how náročnější. Spíš se svoboda volby projevuje v tom, že je možné zkoušet, adoptovat nebo vyvinout novou technologii a obhájit ji. Například SeznamFS. A taky v tom, v jakém prostředí si vývojář vyvíjí, jakou linuxovou distribuci používá, apod. Výstup je však jednotný - debianovský balíček pro podporovanou verzi distribuce.
6) Takže v provozu používáte Debian?
Ano, v drtivé většině případů je to Debian Etch (64bit, amd64), některé nezmigrované služby ještě jedou dočasně na Debian Sarge (32bit, i386). S 64bitovým kernelem jsme začali experimentovat v době čekání na Etch a pak se rozhodli zmigrovat i naše aplikace. Zejména u některých datově náročných aplikací jsme velmi často naráželi na limit velikosti virtuální paměti. Dnes už není např. problém si namapovat do paměti mnohagigabajtové datové barely a zahodit v aplikacích složitou logiku manipulace se souborem po částech.
Debian nám vyhovuje z hlediska podpory prostředků pro vývoj aplikací a určité konzervativnosti distribuce. To je důležité pro stabilitu výsledného provozního prostředí a omezení výskytu chyb plynoucích z toho, že máte nejnovější knihovny, programy nebo kernel. Na druhou stranu konzervativnost v otázce kernelu je zároveň překážkou, protože ne všechny nové věci v něm nalezneme.
7) A jak je to tedy s jádrem v Seznamu?
Opakovaně řešíme otázku, jestli používat distribuční jádro, distribuční jádro s našimi či jinými patchi, případně vanilla kernel s případnými patchi. Aktuálně je situace taková, že si udržujeme dvě verze kernelu. Tzv. hard verze kernelu vychází z Red Hat jádra, je určena pro drtivou většinu strojů a obsahuje pouze nezbytné a ověřené komponenty. Druhá udržovaná verze kopíruje víceméne oficiální vanilla verzi a slouží k experimentům, zkoumáním, nasazením tam, kde potřebujeme využít inovací (algoritmy v kernelu nebo nové drivery).
8) Vaše servery sice běží na Linuxu, ale weby musejí být dobře přístupné i pro uživatele MSIE. Jak se vypořádáváte s chybami a nedostatky tohoto prohlížeče?
Ony jsou to dva rozdílné světy. Svět prohlížečů a svět serverů. Tady žádná překážka není. Samotný MSIE je jeden z několika podporovaných prohlížečů, na kterých naše aplikace testujeme. Naši webmasteři pracují s více operačními systémy, takže mají možnost ověřit si chování a vzhled na všem, co používá drtivá většina uživatelů. Chyby a nedostatky mají všechny prohlížeče.
9) Nedávno jste vydali souborový systém SeznamFS. Podle blogu, ve kterém byl projekt oznámen, to vypadá, že šlo o 'one-man-show'. Jak doopravdy probíhal vývoj a ladění? Jak dlouho trvalo, než byl kód připraven k nasazení?
SeznamFS je v zásadě především dítě Edy Veleby, který jej napsal. Hledali jsme jednoduché a efektivní řešení, jak distribuovat soubory mezi dvěma lokalitami navzájem a v rámci lokalit na více strojů. S tím, aby nebylo třeba řešit kolize. Do té doby jsme používali interní AsapSync postavený na iNotify, ale ten nesplňoval prvky "master-master" replikace a jeho výkon byl žalostně nízký. Diskutovaly se existující distribuované filesystémy, vylepšení AsapSync, něco postaveného na FUSE, ... Pak jednou Eda přišel, že si s tím hrál a má to v podobě plně funkčního prototypu. Dostal prostor to dotáhnout, nechat si otestovat od kolegů v oddělení kontroly kvality a nasadit na Sport.cz. V čistém čase to byla otázka několika dní, procesně se to stihlo odhadem za 3 týdny dostat do našeho provozu a hlav ostatních programátorů.
10) SeznamFS je uvolněn jako opensource. Jaké další opensource projekty máte a jaké plánujete?
Vedle SeznamFS na http://opensource.seznam.cz najdete náš jednoduchý šablonovací systém Teng, dále FastRPC knihovnu middleware, konsoli k FastRPC a XML-RPC serverům, JavaScriptovou knihovnu JAK z dílny našich webmasterů. Dále k nim patří malé knihovničky DBGlog a ConfigParser.
Uveřejňování opensource není nijak plánováno a kalkulováno, je spíš založeno na momentálním nápadu nebo okolnostech. Např. DBGlog a ConfigParser byly uveřejněny, protože jsou prerekvizitou pro SeznamFS.
11) Je používání open source v Seznamu ideologické nebo praktické rozhodnutí?
Především pragmatické. Slovo ideologie se mi nelíbí, protože i proprietární uzavřené systémy mohou mít svůj význam a přínos. Open source je pro nás synonymem pro svobodu volby, možnosti porozumění toho, co přijímáme, možnosti adaptace, možnosti podělit se o naše poznatky. To vše vede k potřebné vnitřní i vnější flexibilitě (ve vývoji, v řešení chyb, ...), která je potřebná, pokud chcete jít v daném oboru odhodlaně za svým cílem. Open source nevnímám jako nic, co by bylo nespolehlivé nebo nestabilní.
12) Které vývojové nástroje používáte? Jak řešíte správu zdrojových kódů? Co používáte pro interní komunikaci?
Zkoušel jste třeba porovnat stránku s výsledkem na dotaz "dřevěná okna" na Seznamu a na tom bájném Google?Občas bych hodně ocenil volbu -eshop, která by pustila jenom výsledky mimo internetové obchody.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.