Společnost Kerio Technologies byla založena v roce 2001, ale její předchůdce nabízel svá řešení na trhu již od roku 1997. Od té doby se původem plzeňská firma rozrostla do řady zemí světa, nabrala množství zaměstnanců a její produkty patří k dobře známým v oblasti podnikové komunikace, sítí, bezpečnosti atd. Hlavní sídlo i vedení společnosti je dnes v srdci Silicon Valley v kalifornském San José. Jádrem firmy je však skupina 100 vývojářů v centru Plzně, kterou doplňuje dalších 100 lidí – technická podpora, obchod, marketing a management různě po světě.
Mezi základní produkty společnosti patří software Kerio Control – správa hrozeb s řešením přehledu v síti – a Kerio Connect – server pro spolupráci, který zahrnuje nástroje pro práci s e-maily, kalendářem atd. Kromě toho firma nabízí další doplňkové programy a provozuje několik interních systémů vlastní výroby, například prodejní software a testovací nástroje.
Bez open source to nejde
Open source figuruje ve všem, co Kerio dělá, už od úplných začátků. Co k tomu vedlo? Jinak to ani nejde, k většině softwaru totiž neexistuje alternativa.
Je samozřejmě možné mít veškeré softwarové vybavení a technologie od Microsoftu – to je jediná firma, která dělá všechno, co může firma naší velikosti potřebovat; jenže to vše je proprietární software. Takže open source se nevyhnete.
Naše důvody pro využívání open-source komponent jsou tedy veskrze praktické. Jestli něco je, nebo není open source, nebo je, či není zadarmo, není v první chvíli rozhodující. Hledáme hlavně řešení pro své problémy. Open source má velkou výhodu v transparentnosti a v tom, že si jej lze vyzkoušet a ověřit, jestli komunita nebo vývojáři reagují na problémy uživatelů.
Představa, že by open-source projekt byl záležitostí nějakých dvou, tří nadšenců, kteří pracují po večerech a o víkendech, je dnes úplně scestná. Linux je jasný příklad, ale i Mac OS X a z něj vycházející iOS (iPhone, iPad) jsou z velké části, zejména v systémové vrstvě, kde není GUI, postavené na open source (konkrétně na unixovém systému BSD).
Za zajímavými a dlouhodobě úspěšnými projekty stojí většinou i zajímavé a úspěšné firmy. Například Mozilla Foundation, vyvíjející prohlížeč Firefox, je plně profesionální organizace, která má roční příjmy přes 100 milionů dolarů. Kvalita je v mnoha případech stejná nebo lepší než u komerčních produktů, zejména jde-li o velké projekty s mnoha přispěvateli a silnými komerčními sponzory.
Jak již bylo zmíněno, jediná alternativa, jak získat rámec pro vývoj komerčního produktu, je postavit vše na Windows a platformě .NET. Jakmile chcete něco jiného, flexibilnějšího nebo nezávislého na jednom dodavateli (se kterým jsme mimochodem v konkurenčním vztahu), není jiná možnost než open source.
Vývoj všech potřebných komponentů od nuly vlastními silami je pro naše účely většinou ekonomicky zcela nesmyslný. Zajímavou výjimkou v našem případě je, že jsme si sami vyvinuli systém pro automatické testování softwaru. Člověk by čekal, že něco takového je k dispozici jako open source v mnoha podobách, ale není tomu tak.
Open source, kam se podíváš
Základem naší open-source výzbroje jsou desítky knihoven a jazyků pro vývojáře: OpenSSL, PHP, Perl, Qt, hodně knihoven pro Javu od Apache Foundation a dalších organizací. Dnes na vývoji a prodeji vývojářských nástrojů až na výjimky není možné postavit životaschopný komerční model, proto se vše dává jako open source a někdo to sponzoruje – ať už prodejem služeb, podpory, nebo hotových produktů postavených na tomto základě.
Některé produkty naší firmy jsou dodávány jako hotová hardwarová zařízení (appliances) včetně operačního systému postaveného na Linuxu. Kromě toho jsou na open source postaveny celé součásti našich aplikací. Např. upravený engine Snort jako IDPS komponenta ve firewallu nebo OpenOffice.org pro generování náhledů dokumentů MS Office. Všechny naše produkty využíváme v rámci firmy již od časných alfa verzí.
V případě OpenOffice.org se nám velice vyplatila spolupráce s českou komunitou. Potřebovali jsme nějaké opravy pro serverovou verzi, které nebyly úplně triviální.
Jen rozchodit kompilaci není zrovna hračka, je to přeci jen rozsáhlý projekt. Naštěstí jsou firmy, které se na open source specializují a pomůžou vám. Není reálné si představovat, že bychom přišli třeba za firmou Microsoft nebo za některým z jejích certifikovaných partnerů a chtěli po nich, aby nám do dvou týdnů opravili chybu. To je utopie.
Naše produkty běží na třech operačních systémech – Windows, Linux a Mac OS X a současně podporují všechna běžná mobilní zařízení. Naše interní prostředí je tedy podobně heterogenní. Nicméně, téměř všechna firemní infrastruktura je postavená na Linuxu, který využíváme i pro běžné vývojářské servery – software pro správu revizí Git a systém pro sledování chyb Bugzilla (obojí open source). Většina interních systémů běží jako virtuální stroje, což usnadňuje správu. Důležitý interní systém je KISS – Kerio Internal Sales System, který řídí náš obchod. KISS je napsaný v PHP a používá open-source databázi Firebird. Náš firemní web je postavený na open-source CMS Drupal.
Je z čeho vybírat
Vzhledem k tomu, že pro některé oblasti nasazení existuje množství různých open-source projektů, které řeší podobné nebo stejné úkoly, tak si pečlivě vybíráme. Děláme si interní výběrová řízení, kde formulujeme požadavky, a jednotlivé alternativy podle nich potom hodnotíme. Tento postup uplatňujeme například při výběru databáze SQL, do které budeme ukládat data nějaké naší aplikace.
Jedním z klíčových kritérií při výběru open-source softwaru je také velikost a kvalita komunity. Nelze svěřit něco důležitého projektu, který nemá stabilní tým vývojářů. Totéž platí pro projekty, u kterých se odpovědi na problémy nedají snadno najít s pomocí Googlu. Když máme nějaký problém, chceme, aby ho spolu s námi měly i stovky dalších uživatelů.
S tím souvisí i kvalita dokumentace, která se samozřejmě liší produkt od produktu. Některé projekty mají dokumentaci dokonalou a vycházejí o nich desítky knih, jiné projekty nemají kromě zdrojových kódů dokumentaci žádnou.
Kerio a open-source prostředí
Při využívání open source jde Kerio cestou nejmenšího odporu, tj. reportujeme chyby a případně poskytujeme patche (opravné kusy kódu), pokud jsme si chybu dokázali sami opravit. Významnějším způsobem jsme přispěli například k vývoji IDPS engine Suricata (alternativa k enginu Snort), který jsme portovali na platformu Windows. V rámci toho jsme také uvolnili zdrojové kódy knihovny pro filtrování paketů na Windows.
Snažíme se vytěžit maximální hodnotu z fungujícího open-source ekosystému, a proto používáme stabilní verze, pokud možno bez jakýchkoliv našich změn. Občas dočasně udržujeme vlastní úpravy, ale jen do té doby, než se objeví v oficiální stabilní verzi.
S ohledem na rozmanitost open-source nabídky to však nelze hodnotit paušálně: naše míra zapojení se liší případ od případu a každý open-source projekt spolupracuje jinak. Někde je naše „spolupráce“ čistě jednostranná a my open source jen používáme, jinde občas reportujeme chyby a snažíme se je případně i opravit, a to tím víc, čím víc nás pálí. Záleží také na ochotě daného projektu náš případný patch přijmout a integrovat. Mezi velmi ochotné patří např. výše zmíněná Suricata.
Cena pro nás není až tak důležitá, hlavní je licence – zejména pokud chceme dané řešení integrovat do našich produktů. V některých případech volíme i komerční licence postavené na open-source produktu. Tomu odpovídá skutečnost, že pro využití v našich uzavřených aplikacích volíme open source s tzv. permisivními open-source licencemi, tedy takovými, které nezavádějí copyleft (tj. nevyžadují sdílení zdrojových kódů softwaru, který s pomocí převzatého open-source díla vytvoříte a distribuujete). Nejraději proto máme licenci MIT, která po nás nic nechce a nijak nás neomezuje.
S přispěním open source vytváříme kvalitní software, na kterém stavíme svůj obchodní úspěch. Kerio sice nelze označit za typickou „open-source firmu“, protože náš podíl na vzniku open source je relativně malý, ale každopádně jsme pro open source velmi dobrou vizitkou.
Pavel Šuk (Vice-President of Engineering)
Jan Ježek (Product Development Manager pro Kerio Control)
Michal Ježek (Products Architect)
Jaroslav Šnajdr (Product Development Manager pro Kerio Workspace)
Jaroslav Šnajdr vystudoval Matematické inženýrství na Fakultě aplikovaných věd ZČU. V Keriu pracuje od roku 1999. Dlouhou dobu pracoval jako vývojář a vedoucí týmu na produktu Kerio Connect, poslední čtyři roky vede projekt Kerio Workspace, řešení pro sdílení dokumentů a spolupráci.
Článek vyšel v šestém čísle magazínu Open source & praxe.