Open source software: co to přesně je a čím se liší od proprietárního?
S open source softwarem mají zkušenosti téměř všichni uživatelé IT technologií, často i nevědomky. Ne každý ale ví, co přesně musí takový software splňovat. Častý pohled, že se jedná o bezplatnou alternativu s horším uživatelským rozhraním, je opravdu hodně zjednodušený. Vysvětlíme vám proč.
Open source software zažívá v posledních letech velký rozvoj. Nástroje a programy s otevřeným kódem tak úspěšně dohání a v některých případech i překonávají software s neveřejným kódem (tzv. proprietární software). Co ale tento pojem přesně znamená, v čem se liší od svobodného software a jaké má výhody a nevýhody oproti tomu proprietárnímu?
Od svobodného software k open source
Výraz open source se začal používat až na konci minulého tisíciletí. Důvodem pro jeho zavedení bylo, že termín free software (svobodný software) byl asociován s bezplatností. Na konci 90. let se však tyto programy začaly využívat i komerčně, označení “free software” proto začalo být matoucí.
Anglický výraz “free” se ovšem vztahuje spíše ke svobodnému nakládání se softwarem než k samotné bezplatnosti. Klíčovým znakem svobodného software totiž je, že jeho kód lze měnit, slučovat s jiným kódem, studovat nebo šířit zcela bez omezení. Stejně tak lze k softwaru založeném na otevřeném kódu poskytovat placené doplňky nebo podporu.
Samotný výraz open source je v nejširším slova smyslu výraz pro technickou otevřenost a veřejnost kódu. Je proto možné říct, že každý svobodný software je zároveň i open source, nikoliv však naopak. Užší definice tak, jak je popsána níže, je pak přísnějším vymezením open source projektů, stejně ale není tak striktní jako u svobodného softwaru.
Open source snadno s MasterDC
Využijte zkušeností našich administrátorů a vývojářů a nechte si od nich poradit s implementací, nastavením nebo konfigurací nejrůznějších open source nástrojů. Vyberte si z široké nabídky technologií a ozvěte se nám, s čím vám můžeme poradit.
Užší definice open source software
Veřejně prospěšná společnost Open Source Initiative popsala v deseti bodech, co přesně by měl software splňovat, aby mohl být označen jako open source. Někdy se také pro odlišení software, který splňuje všech 10 kritérií, používá označení s velkými písmeny – “Open Source”. Zatímco v širším slova smyslu, kdy je software otevřený, ale nesplňuje všechna kritéria, se používá označení s malými písmeny – “open source”.
Mezi 10 body lze kromě pravidel pro šíření a úpravu kódu najít i zákaz diskriminace skupin a garance stejných pravidel pro různé způsoby užití. Definice obsahuje také ustanovení, jež výslovně povoluje distribuci open source software na stejném médiu i s programy, které otevřený kód nemají. Kompletní desatero je zveřejněné na stránkách Open Source Initiative.
Základní typy open source licencí
Licencí pro open source software je celá řada a jejich podrobný popis by vystačil hned na několik dalších článků. Pro základní přehled však lze uvést několik základních pojmů a licencí, které se používají nejčastěji.
V souvislosti s open source se velice často skloňuje projekt GNU, který vznikl v roce 1983 za účelem vytvoření svobodného operačního systému, který nebude založený na UNIXu. Cíl projektu se podařilo splnit v roce 1992, kdy bylo do systému dodáno jádro Linuxu. Pro tento operační systém se také ujalo označení „Linux“, ačkoliv kompletní název zní „GNU/Linux“. Pro GNU je navíc možné využít i jiné jádro, jako například Hurd. Dohromady tak tvoří operační systém GNU/Hurd.
Po vydání open source operačního systému se iniciativa GNU zaměřovala na podporu svobodných programů, které budou na GNU/Linux spustitelné. V rámci projektu byly proto vytvořeny svobodné licence GPL (General Public License) GFDL (GNU Free Documentation License) a LGPL (Lesser General Public License). Poslední z jmenovaných umožňuje využití i v nesvobodných softwarech, například v podobě knihovny.
Jednou z nejsvobodnějších licencí vůbec je BSD (Berkeley Software Distribution), která vznikla na University of California v Berkeley. Software s BSD licencí je možné volně šířit, přičemž povinností je jen zmínit autora, informace o licenci a upozornění, že autor nenese za kód žádnou odpovědnost. Zcela oproštěný od jakýchkoliv povinností při užívání, šíření či modifikaci, včetně uvádění jména autora, je pak software označený jako “Unlicensed”.
Licence otevřeného softwaru tak lze shrnout do tří základních kategorií. První z nich je zcela bez omezení a příkladem je tzv. Unlicensed software. Druhá kategorie, do níž patří licence BSD, už zadává určité povinnosti, jako třeba zveřejnění autora. U obou kategorií je možné využívat kód pro komerční účely. Poslední kategorie se označuje také jako “copyleft”, což je slovní hříčka, která se staví do protikladu ke copyrightu. Tento software už zpravidla mívá omezení ohledně proprietizace a spadá do něj licence GPL nebo GFDL.
Konkrétní open source programy a jejich využití
Chronicky známým open source projektem je už zmíněný operační systém GNU/Linux. Užívání Linuxu je zcela zdarma a otevřený kód lze navíc rozvíjet. Samotné linuxové jádro je šířeno pod licencí GPL (konkrétně verze 2) a licence jednotlivých linuxových distribucí se liší. Nutně však musí odpovídat alespoň volnějšímu výkladu open source software. Díky tomu je možné využívat libovolný linuxový operační systém bezplatně.
Jak ovšem již dlouho ukazuje společnost Red Hat, na Linuxu se dá i přesto vydělávat. I když je distribuce Red Hat Enterprise Linux stále open source, Red Hat poskytuje placenou podporu, servis a přístup k webové službě Red Hat Network. Využívání komplexního servisu od Red Hatu je pro firmy mnohem jednodušší a ve výsledku často i levnější, než vše řešit po vlastní ose.
Operační systémy ale nejsou ani zdaleka jediným open sourcem, který je firmami hojně využívaný. Jako provozovatel datových center jsme za 20 let nabrali spoustu zkušeností s nejrůznějším open source softwarem, který se využívá v IT infrastruktuře.
V posledních letech získává například stále více na oblíbenosti kontejnerizace v čele s Dockerem a orchestrátorem Kubernetes. Pro vytváření spolehlivých linuxových virtuálních serverů zase využíváme open source platformy KVM a LXC. Monitoring serverů a celé IT infrastruktury zajišťujeme díky programu Icinga, který vznikl jako modifikace známého projektu Nagios.
Open source má široké uplatnění i při sestavování pokročilé IT infrastruktury. Například pro clusterová řešení pracujeme s GlusterFS, Ceph nebo Galera cluster. Cizí nám rozhodně nejsou ani nástroje určené k automatizaci – pro účely vývoje software umíme poradit a nastavit verzovací software GitLab a denním chlebem našich administrátorů je práce s Ansiblem, který usnadňuje správu většího množství serverů a uzlů. K vyhledávání a analýze strukturovaných i nestrukturovaných dat se pak hodí nástroj Elasticsearch.
Proprietární software
Jako proprietární se označuje software, který nedovoluje úpravy ani další distribuci a mívá uzavřený zdrojový kód, jež je střežen jako obchodní tajemství. Nakládání s takovými programy je pro koncového uživatele zpravidla upravené v dokumentu EULA (End User License Agreement). Podle právního systému jednotlivých států je smlouvu možné odsouhlasit různými způsoby, například zaškrtnutím políčka nebo porušením originálního obalu.
Ačkoliv je kód programu neveřejný a chráněný, nevylučuje to, aby byl distribuován zdarma. Běžnou praxí je například bezplatné využívání programu s neúplnými funkcemi, na určité časové období nebo s jinými omezeními, například jen pro osobní či nekomerční účely.
Vendor lock-in aneb závislost na dodavateli jako nákladná past
Termín “proprietární uzamčení” nebo také “vendor lock-in” označuje situaci, kdy je zákazník závislý na konkrétním výrobci daného software. Dodavatel toho docílí tak, že implementuje do kódu chráněné, například patentované, části. Zákazník se tak dostává do pasti, protože jakékoliv změny nebo opravy musí objednávat u původního výrobce. Pro dodavatele je taková situace naopak velice výhodná, protože tím zvyšuje své budoucí zisky.
Problém s vendor lock-in softwarem je nejzřetelnější ve veřejné správě. Právě díky závislosti na dodavateli, která je příslibem budoucích zisků, stojí proprietární software na zakázku často méně než open source řešení. Díky tomu získává více bodů při vyhodnocování veřejné zakázky. V praxi se ale ukáže, že je nutné software ještě dodatečně modifikovat, případně postupem času zastarává a je potřeba provést rozsáhlé úpravy nebo ho vyměnit, což je u vendor lock-in systémů problematické a často i extrémně nákladné.
Vysoutěžení nového otevřenějšího systému navíc může zkomplikovat migraci databází a dalších dat ze starého systému. To je jeden z hlavních důvodů, proč je IT ve veřejné správě často velmi zastaralé a zároveň stojí zbytečně moc peněz. Známým příkladem vysoké závislosti zadavatele na dodavateli je systém Opencard z roku 2006.
Konkrétní příklady proprietárního software
Podobně jako je u open source typickým příkladem GNU/Linux, u propriprietárního software je to operační systém Windows nebo textový editor Office od Microsoftu. Pro oba programy poskytuje Microsoft nejrůznější typy licencí pro osobní i firemní použití, které jsou většinou placené. Výjimku však tvoří Microsoft Office 365, který je poskytován bezplatně pro studenty a školy.
Proprietární software se využívá i pro IT infrastrukturu. V MasterDC používáme například Hyper-V. Tento profesionální hypervisorHypervizorHypervizor umí virtualizovat hardware do izolovaných virtuálních strojů.více umožňuje vytvářet kvalitní VPS s plnou virtualizací a s operačním systémem Windows. Architektura našeho cloud hostingu zase stojí na virtualizačním nástroji vSphere od společnosti VMware.
Srovnání: Open source vs proprietární software
Jak z výše uvedeného vyplývá, hlavním rozdílem mezi open source a proprietárním software není cena, ale otevřenost všech částí kódu a možnosti modifikace či distribuce. S tím souvisí i výhody a nevýhody, které z obou přístupů vyplývají.
Mezi často uváděné výhody pro open source patří kromě nižších nákladů také absence proprietárního uzamčení, lepší kvalita a vyšší bezpečnost. Zejména poslední dva zmiňované aspekty však mají mnoho svých “ale”, které se mnohdy mohou naopak obrátit ve značnou nevýhodu, proto si je blíže rozebereme.
Kvalita a bezpečnost softwaru
Základní argument obhájců open source software je jednoduchý a srozumitelný: „Otevřený kód, na kterém pracuje široká komunita se neustále organicky vyvíjí, a proto se takový software rychleji inovuje, velmi flexibilně reaguje na potřeby uživatelů a neustále odstraňuje své bezpečnostní nedostatky.“ Co když ale vývojářská komunita kolem open source softwaru není dostatečně silná?
V takové chvíli může dojít k tomu, že některé komponenty daného software přestanou být vyvíjené a postupně zastarávají jak z hlediska funkčnosti, tak z hlediska bezpečnosti. Vývojářů, kteří v open source komunitě působí, je omezený počet, tudíž s narůstajícím množstvím projektů je velmi pravděpodobné, že na méně zajímavé a zřídka používané části kódu nezbude tolik času. To si vlastníci uzavřeného kódu většinou nemohou dovolit, protože by tím mohli ztrácet zákazníky nebo dobré jméno firmy.
Když se na to podíváme z opačné strany, tak i častá aktualizace kódů a přidávání nových verzí může být pro využívání open source software problém. Uživatelé z řad jednotlivců i firem totiž musí neustále aktualizace i nové verze kontrolovat a posléze implementovat, aby předešli bezpečnostním rizikům nebo částečné nefunkčnosti programu.
Také samotný otevřený přístup ke kódu má své světlé i temné stránky. Na jedné straně může jakýkoliv programátor hledat bezpečnostní rizika a jiné chyby, na straně druhé mají hackeři snadnější cestu k hledání zranitelností. Zapomenout nelze také na to, že vydavatel proprietárního software za něj nese zodpovědnost a dává určité záruky, což je oproti open source programům značná výhoda.
Které výhody používání open source SW vnímají firmy jako největší?
Podpora a organizace práce
Další nevýhodou open source oproti proprietárnímu software může být chybějící podpora, a to zákaznická i technická. Její úroveň totiž závisí jednak na velikosti a ochotně vývojářské komunity, a jednak na případném zájmu firem takovou, zpravidla placenou, službu podpory vytvořit.
Open source projekt může také narazit při procesních věcech. V týmu, kde není jasná hierarchie, žádné smlouvy a většinou ani finanční motivace, se nemusí vždy podařit udržet dostatečnou disciplínu. Výsledkem pak může být chaotická organizace práce, nedodržení určených postupů a bezpečnostních zásad nebo nedostatečná dokumentace.
Shrnutí obou přístupů k vývoji software
Rozhodně nelze říct, jestli je pro firemní či osobní využití lepší open source nebo proprietární software – oba mají své klady i zápory a existuje jich nepřeberné množství na to, aby bylo možné vyvozovat nějaké obecně platné závěry.
Lze však konstatovat, že u open source projektů je potřeba dávat pozor zejména na velikost a kvalitu vývojářské komunity, možnosti podpory a udržovat aktuálnost kódu. Při využívání proprietárních programů je zase důležité zkontrolovat, zda vydavatel dodržuje bezpečnostní zásady při vývoji software a zhodnotit, jestli nebude závislost na dodavateli v budoucnu příliš nákladná. Zapomenout se nesmí ani na podmínky a možnosti užívání, aby nedošlo k porušení autorských práv.
Trend oblíbenosti open source neustále roste, a to nejen ze strany uživatelů, ale i ze strany vývojářů a sponzorů svobodných a otevřených softwarů. Dokonce i tradiční firmy, které doposud vydávaly hlavně proprietární software, se začínají zabývat také open source projekty. Důvodů je hned několik – rychlejší vývoj i distribuce, vylepšení image, šíření firemního brandu a v neposlední řadě také možnost vyvíjet placené modulární časti a pluginy nebo poskytovat dodatečnou podporu.
V MasterDC hojně využíváme oba typy softwaru, abychom mohli poskytovat co nejkvalitnější služby pro naše zákazníky. Díky bohaté praxi s open source projekty navíc nabízíme i částečnou technickou podporu k některým oblíbeným nástrojům. Podívejte se na přehled technologií, které u nás využíváme.