Na čem běží české Weby, aneb Windows NT versus UNIX

Jako operační systém webových serverů se dnes nejčastěji používají Windows NT nebo některá z mnoha verzí UNIXu. O...


Jako operační systém webových serverů se dnes nejčastěji používají Windows NT
nebo některá z mnoha verzí UNIXu. Oba systémy mají své skalní příznivce i
odpůrce. Pokud se chystáte zprovoznit nový internetový server, stojíte před
otázkou, kterou platformu zvolit.
Rozhodnutí to je zodpovědné, protože na výběru platformy závisí i další
software nutný pro provoz internetových aplikací tedy nejen webový server, ale
např. také databázový server a skriptovací prostředí. Dnes se vám pokusíme
představit výhody a nevýhody obou řešení. O zkušenosti se s vámi podělí i
provozovatelé dvou zřejmě největších českých serverů Seznamu a Portálu Atlas.
Je sice pravda, že jejich potřeby nemusí být vždy relevantní pro menší firmu,
na druhé straně však lze říci, že pokud systém vydrží tak masivní nápor
uživatelů, k jakému dochází v případě portálů, pak by vás rozhodně neměl
zklamat.
UNIX není jen Linux
Pokud dnes někdo mluví o použití UNIXu jako operačního systému pro webový
server, má na mysli většinou Linux. Obliba Linuxu pramení především z jeho
nízké ceny, slušné stability a velké flexibility. Linux však není jediné
řešení. Za stejnou cenu (tedy zadarmo) lze pořídit i FreeBSD, což je další z
verzí UNIXu. Pak tu jsou ještě různé komerční verze UNIXu (např. Solaris, AIX,
IRIX, nebo HP-UX). Oproti Linuxu často nabízejí lepší zabezpečení, vyšší výkon
a snadnější správu a za to vše se již samozřejmě platí.
Nejprve webový server
Poté co si vyberete ten "pravý" operační systém, musíte se rozhodnout pro
nějaký webový server. V unixovém světě volba obvykle padne na server Apache,
který je dnes používán na více než 50 % všech webových serverů. Vlastní webové
servery nabízí i většina producentů komerčních UNIXů. K dispozici jsou kromě
Apache i další "free" servery např. Xitami nebo velice rychlý Boa.
Dodejte trochu dynamiky
Statické HTML stránky již dnes pro kvalitní webovou prezentaci nestačí, a je
proto potřeba sáhnout po nějakém prostředí, které umožní dynamické generování
stránek a jejich propojení s databází. K dispozici máte hned několik
technologií. Vaše volba zpravidla záleží na tom, co již umíte, a na tom, jaký
druh webových aplikací budete vytvářet.
Velice jednoduchý a přitom výkonný je skriptový jazyk PHP. Ten se zapisuje
přímo do HTML kódu, a umožňuje tak velice přirozeným způsobem kombinovat HTML s
příslušnými příkazy. PHP je možno provozovat s libovolným webovým serverem
(nejen na UNIXech, ale i ve Windows), avšak nejlepších výsledků dosáhnete právě
ve spojení se serverem Apache.
Obecnějším řešením je použití CGI skriptů. Ty mohou být napsány v téměř
libovolném jazyce. Nejčastěji se píší v Perlu nebo v jazyce C. Generování HTML
kódu v těchto jazycích již není tak přímočaré jako v PHP, programujete však v
prostředí, na které jste zvyklí. Výhodou CGI skriptů napsaných v jazyce C je
jejich velká rychlost programy jsou na serveru uloženy přímo ve spustitelné
podobě a nemusí se pomalu interpretovat nebo překládat. Pomalejší je však vývoj
aplikací, protože skript musíte vždy pro provedení změny kódu přeložit a
slinkovat s knihovnami.
Mezi nevýhody CGI patří velká režie pro každé volání CGI skriptu je potřeba
vytvořit nový proces, což je na některých systémech velmi zdlouhavé. Tento
problém lze obejít využitím rozhraní FastCGI, kdy je CGI skript při prvním
volání zaveden do paměti a všechny další požadavky jsou obsluhovány přímo bez
vyvolávání dalšího procesu. Kombinace FastCGI a jazyka C je jednou z
nejrychlejších. Za rychlost však platíte pomalejším vývojem aplikací.
V poslední době se stále větší popularitě těší i Java. Dá se použít i pro psaní
serverových skriptů, tzv. servletů. Java je jistě výborný jazyk, ale pro psaní
jednoduchých skriptů se alespoň podle mého názoru příliš nehodí. Navíc není
implementace Javy na Linuxu právě rychlá na druhou stranu, na jiných
platformách (např. na AIXu nebo na Solarisu) běží mnohem svižněji.
A nakonec databázi
Poslední důležitou komponentou je databázový server. Během posledního roku
spatřilo světlo světa několik portů velkých databázových serverů pro Linux.
Tyto servery samozřejmě již delší dobu podporují komerční verze UNIXu. Pokud
sháníte nějaký SQL server, který je zadarmo, máte dvě možnosti PostgreSQL a
MySQL. MySQL je velice rychlé a nenáročné na prostředky počítače, chybí mu však
podpora transakcí, triggerů a uložených procedur. PostgreSQL je výrazně
pomalejší než MySQL, nabízí však to, co MySQL nejvíce postrádá transakce.
Shrnutí
Pokud jako platformu pro svůj webový server použijete UNIX, máte tedy poměrně
širokou možnost výběru dalšího softwaru. Asi největší výhodou oproti Windows
je, že kompletní software můžete pořídit zcela zadarmo. Pravdou však je, že pro
náročnější aplikace budete asi muset sáhnout po komerční databázi, protože free
databázové servery zatím nedosahují kvalit těch komerčních.
Windows NT
Pokud se rozhodnete pro platformu Windows NT, je celkem přirozenou volbou
webového serveru Internet Information Server (IIS), který je součástí
operačního systému. Existují i další servery jak komerční, tak free, ale příliš
se nepoužívají.
ISAPI a ASP
Při výběru skriptového prostředí máte podobné možnosti jako na UNIXu.
Samozřejmostí je možnost tvorby CGI skriptů v libovolném jazyce, ta se zde však
příliš nevyužívá.
Mnohem vyšší výkon nabízejí skripty napsané jako ISAPI aplikace. ISAPI je
speciální rozhraní pro komunikaci mezi webovým serverem a aplikací. Umožňuje,
aby byl program neustále zaveden v paměti, a nemusel se tudíž znovu načítat a
spouštět pro každý požadavek. Zjednodušeně se dá říci, že to je obdoba FastCGI
skriptů nebo modulů serveru Apache, jak jsou známé z unixového světa.
Asi nejpoužívanějším nástrojem pro tvorbu webových aplikací na platformě
Windows NT jsou Active Server Pages (ASP). Princip je podobný jako u PHP přímo
do HTML kódu se zapisují příkazy. ASP mají modulární strukturu, takže umožňují
použití téměř libovolného programovacího jazyka. Microsoft standardně nabízí
VBScript a JScript. Od dalších firem lze získat interprety Perlu, REXXu a
Pythonu. V ASP lze bez problému využívat COM objekty. Větší aplikace se proto v
ASP píší tak, že časově náročné operace se naprogramují v podobě COM komponent
nejčastěji v C++ nebo Visual Basicu. Funkce těchto komponent se pak volají z
ASP.
ASP však nejsou jedinou cestou. Pro méně zkušené programátory je k dispozici
např. ColdFusion, kde se příkazy zapisují pomocí tagů přidaných do HTML. Pro
jednoduché aplikace je to velice snadná cesta, pro složitější však zcela
nevhodné řešení.
Microsoft versus Oracle
Při výběru databáze máme opět několik možností. Jednak můžete zůstat věrni
Microsoftu a pořídit si MS SQL Server. Další možností je sáhnout po databázi
jiného výrobce za všechny uveďme databázi Oracle, která má podle průzkumu
Dataquestu (součást firmy Gartner Group) vůbec největší podíl na trhu
databázových serverů, dokonce včetně platformy Windows NT.
V poslední době většina producentů databázových serverů přidala do svých
produktů vlastní prostředky pro vývoj webových aplikací. Při jejich použití
zůstane vaše aplikace těsně svázána s databází to může přinést rychlejší běh
aplikace, zároveň však budete zcela závislí na jediném producentovi softwaru.
Shrnutí
Platforma Windows nabízí v podstatě stejně široké spektrum produktů jako UNIX.
V praxi se však téměř výhradně používá linie Microsoftu Windows NT, Internet
Information Server, Active Server Pages. Jako databáze se nejčastěji využívá MS
SQL Server a Oracle.
Další možnosti
Hlavní pole střetu probíhá dnes mezi kombinací Windows NT a IIS a UNIXu spolu
se serverem Apache.
To však neznamená, že byste se nemohli setkat také s jinými řešeními: lze
například použít webové servery od SGI, stejně tak však lze nad Irixem
provozovat např. Netscape Enterprise Server. S jeho použitím se můžete setkat i
na platformě Windows NT a na UNIXech. Zapomínat byste neměli ani na další hráče
na trhu, Sun či IBM/Lotus.
A samozřejmě existují i webové servery pracující na platformě Macintosh (např.
WebSTAR či MacHTTP od společnosti StarNine), na Windows 95/98 (Personal
WebServer) či na operačním systému BeOS. A aby situace byla ještě trochu
komplikovanější, jsou zde ještě webové servery napsané v jazyce Java. Zde už o
platformě nemá ani smysl mluvit.
Pokud k tomu připočtete, že kromě webového a databázového serveru se jako další
komponenta systému může vyskytnout server aplikační, možných kombinací je téměř
nekonečný počet. Často (i u renomovaných firem) lze najít kombinace využívající
pohromadě technologie navzájem si konkurujících výrobců. Např. CityBank
používala dohromady Microsoft IIS a aplikační software Netscapu (původně od
firem Kiva a Actra, které Netscape koupil).
Závěrečný výběr
Jestli jste čekali, že se v tomto článku dozvíte, že pro webový server je lepší
Linux (respektive jiný UNIX), nebo naopak Windows NT, musíme vás zklamat. Obě
platformy si s provozem webových serverů poradí bez větších problémů, a
konkrétní volba tedy závisí jen na vás.
Nejspíše budete volit tu platformu, kterou lépe znáte. Pokud navíc nebudete mít
webové aplikace na vlastním serveru, budete se muset nejspíše rozhodnout mezi
variantami UNIX + Apache + PHP a Windows + IIS + ASP: to jsou nejčastější
kombinace softwaru, které dnes nabízejí profesionální poskytovatelé připojení
na svých serverech.
9 1873 / pah


Přehled některých webových serverů spolu s adresami jejich domovských stránek
Apachehttp://www.apache.org
Strongholdhttp://www.ukweb.com
NCSAhttp://hoohoo.ncsa.uiuc.edu/
Netscape Commerce Server,
Netscape Communications Server,
Netscape FastTrack, Netscape Enterprisehttp://home.netscape.com/servers/
Microsoft Internet Information Serverhttp://www.microsoft.com/ntserver/web/
WebSite, WebSiteProhttp://website.ora.com
WebSTARhttp://www.starnine.com/webstar
Lotus Dominohttp://domino.lotus.com
Java WebServerhttp://www.sun.com/software/jwebserver

Portál Atlas
Portál Atlas dnes nabízí největší spektrum služeb na českém Internetu. Od
katalogu stránek a fulltexové vyhledávací služby přes bezplatné e-mailové a
web-hostingové služby až po on-line hry, živé vysílání a chatování. Nedávnou
byla na Atlasu spuštěna nová služba Mapy, která kromě mapy celé České republiky
obsahuje i plány mnoha měst.
Všechny tyto služby běží na serverech, které používají operační systém Windows
NT 4.0. Jako webový server Atlas používá IIS 4 a pro databáze MS SQL Server
6.5. Pro psaní skriptů je využíváno ASP, ze kterého jsou volány vlastní COM
komponenty.
Na zkušenosti s tímto prostředím jsme se zeptali technického ředitele firem
Atlas a Sprinx Michala Bláhy.
Proč jste si vybrali právě platformu Windows NT?
Protože je nejlepší. Myslíme si, že to je platforma, kde jsou jednotlivé části
nejlépe integrovány a která je nejvhodnější pro tvorbu podnikových řešení.
Vadí vám něco na NT?
Je to mnoho věcí, ale žádná není zásadní. Snad jen větší hardwarová náročnost.
Se spolehlivostí problémy nemáme. Jen je potřeba vyladit konfiguraci, aby
server zvládl vysokou zátěž.
Jak často je potřeba servery restartovat?
Máme servery, které již běží třičtvrtě roku nepřetržitě. Hodně vytížené servery
je lepší preventivně tak jednou za čtrnáct dní restartovat.
Kolik přístupů máte měsíčně na vaše stránky?
Podle auditu DCCI 4,2 milionu na portál Atlas a 4,8 milionu na Mujweb (údaje z
května 1999).
Na kolika počítačích běží celý Portál Atlas se všemi jeho službami?
Celkem používáme 9 serverů. Celý systém je přitom předimenzovaný tak, aby
vydržel ještě pětkrát větší zátěž.
Jaký používáte hardware?
Naše servery pracují na platformě Intel. Používáme intelovské serverové
motherboardy, které jsou většinou osazené Dual Pentiem II na frekvencích 300
nebo 350 MHz. Servery používají SCSI disková pole, případně samostatné SCSI
disky.
Poštovní služby jsou asi nejvíce vytížené. Nedávno jste spustili i webové
rozhraní. Jaký na to používáte software?
Jako jedni z prvních jsme využili rozsáhlý balík Microsoft Commercial Internet
Services, který nabízí komplexní služby zejména pro poskytovatele připojení a
internetových služeb. Elektronická pošta a její webové rozhraní jsou jen částí
celého systému.
V čem jsou Windows NT lepší než ostatní platformy?
Jednoznačně v integraci, v COM. Pokud znám Visual Basic, mohu ho využít pro
psaní aplikací, pro tvorbu ASP skriptů, pro dávky ve WSH. Ve všech těchto
skriptovacích protředích můžu navíc použít i libovolný jiný jazyk např. JScript
nebo Perl. A to je úžasná věc.

Seznam
Seznam je nejznámějším českým portálem. Proslul zejména díky dodnes
nepřekonanému rozsáhlému katalogu odkazů. Postupně byl doplněn o další služby
fulltextové vyhledávání, aktuální zpravodajství, bezplatnou e-mailovou službu,
mapy, adresář e-mailových adres a další.
Servery Seznamu pracují pod operačním systémem Linux (distribuce Debian). Jako
webový server je používán Apache. Skripty jsou většinou psány v C jako FastCGI
a využívají služeb dalších na míru šitých aplikací. Pro některé speciální věci
jsou vytvořeny přímo moduly serveru Apache. Seznam používá databáze MySQL a
Solid, do budoucna se uvažuje o přechodu na Oracle.
Na zkušenosti s těmito technologiemi jsme se zeptali ředitele Seznamu Iva
Lukačoviče a technického ředitele Petra Šnajdra.
V květnu 1999 zaznamenal Seznam přes 15 milionů přístupů. Jak se vypořádáváte s
takovouto zátěží?
Aplikace jsou vytvořeny tak, aby měl CGI skript obsluhující požadavek uživatele
co nejmenší algoritmickou náročnost. Aby veškeré věci, které lze předem
připravit např. jednou denně byly předpřipraveny.
Na kolika počítačích vlastně běží všechny služby Seznamu?
Na sedmi. Rozhodli jsme se, že budeme šetřit český Internet. Zjistili jsme, že
velkou část provozu v peeringovém centru NIX tvoří Seznam. Aby zbylo místo
ještě na jiná data, rozhodli jsme se propagovat "ekologickou strategii".
Vytvořili jsme mechanismus, kdy obrázky používané na našich službách máme na
serverech u více providerů. Když uživatel přijde na naši službu, snažíme se
podle jeho IP adresy zjistit, kde je pro něj nejbližší obrázkový server, ze
kterého se pak bude načítat grafika. Tímto způsobem jsme ušetřili asi 50 %
provozu peeringové linky. Technologii nyní testujeme, a někdy v budoucnu bude
používána mnohem více než dnes.
Jaký používáte hardware?
Jsou to klasické počítače s Pentiem, spíše střední nebo nižší třída mezi
servery.
Proč jste si vybrali právě platformu Linuxu a dalšího free softwaru? V čem je
lepší oproti konkurenčním Windows NT.
Když si na UNIXu vyvinete vlastní software typu FastCGI, obsloužíte čtyřikrát,
možná až osmkrát více uživatelů, než když na obdobném hardwaru máte Windows NT.
Vzdálená správa Linuxu a jakéhokoliv UNIXu je úžasná.
Vadí vám něco na technologiích, které používáte?
Na Linuxu je vidět, že je to poměrně mladý systém. Je vidět, že například po
síťové stránce není optimalizován pro maximální výkony. Jsou v něm další věci,
které by bylo potřeba dotáhnout např. souborový systém. Zatím jsme také
neudělali dobrou zkušenost s Linuxem na víceprocesorových serverech, ale je
možné, že to je způsobeno jen nešťastnou volbou hardwarových komponent.
Jak často servery restartujete?
Máme počítače, které běží několik měsíců bez restartu. Obvykle se server
restartuje pouze tehdy, když měníme jádro Linuxu.
Kdybyste dnes měli napsat celý Seznam znovu od začátku, použili byste stejné
technologie?
Použili bychom tytéž technologie, ony tady ani moc jiné nejsou. Mají výhodu v
tom, že jsou dost otevřené a poměrně lehce se s nimi pracuje. Asi existují
lepší technologie, např. velké počítače od IBM a Sunu, ale to je zcela jiná
třída.
Asi nejvíce zatíženou aplikací je e-mail s webovým rozhraním. Jaké pro ni
používáte technologie?
Vše je obsluhováno skupinou klasických FastCGI skriptů. Jako poštovní server
používáme qmail.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.