Prihlásenie





Home Blogy Technológia Technológie TOP 10 web stránok
Technológie TOP 10 web stránok PDF Vytlačiť E-mail
Napísal Ján Šuňavec   
24.04.2009

Veľké projekty, veľa užívateľov, veľké nároky na hardware, také sú požiadavky na najväčšie stránky sveta. Otázka je, na akých technológiách bežia? Aké programovacie jazyky používajú? Aké databázové stroje? Práve na tieto otázky sa dnes pokúsim odpovedať.

 

global projectZameral som sa len na najväčšie stránky podla alexa.com. V zozname sa nachádza msn.com a live.com, ktoré som auditoval spolu, ako jednu stránku. V podstate ide o jednu službu na viacerých doménach.
Pri každom projekte/stránke uvádzam presné zdroje ako som k informáciám dospel. Tak si môžete informácie overiť a tak isto zistiť vieryhodnosť zdrojov.

Google.com

Pri čítaní o hardwarovom vybavení tohto molocha, behá mráz po chrbte. 450 000 počítačov po celom svete, 5 Petabytov úložného priestoru, pričom tieto disky čítajú alebo zapisujú každú sekundu 40 Gigabytov dát. Google svoje datacentrá stavia pri elektrárňach a blízko vodných zdrojov, aby mal dostatok elektrickej energie a vodu na chladenie počítačov.
Ešte k tomu sa google rád zdôverí s technológiami, takže nieje problém nájsť dostatok informácií, či už dátových centrách alebo o technológiách na ktorých beží.

technológie
Python, Java, C++, PHP, Linux, Oracle, GFS

Primárne Google používa pre svoje služby Python, ktorý je špeciálne upravený pre jeho potreby. Majú nielen vlastné rozšírenia, ale tak isto si upravovali virtuálnu mašinu Pythona, ktorú optimalizovali na lepšie využívanie zdrojov a zrýchlenie behu aplikácií. Tým pádom je však Google Python nekompatibilný s originálnym Pythonom. Našiel som aj projekt, ktorý sa snaží spojiť Google Python s terajšou verziou Pythona. 
Pri vývoji aplikácií používajú vlastný Google frond-end framework.
Okrem tejto základnej technológie Google používa PHP, Javu a C++. Nepodarilo sa mi zistiť na čo presne používa Javu, ale predpokladám že v Jave má vybudované vnútorné biznis aplikácie. PHP používa pri niektorých front-end službách. C++ používa pravdepodobne na spidera, ale túto informáciu nemám potvrdenú.
Toto všetko samozrejme beží na Linuxe.
Ako databázu používa Google Oracle, ale pozor túto databázu používa len ako index na vlastnom Google file systéme (GFS). GFS je vlastne databáza, ktorú si sami vytvorili. 

použité zdroje
http://highscalability.com/google-architecture

http://www.eweek.com/c/a/Application-Development/Google-to-Speed-Up-Python-Add-Java-to-App-Engine-591455/?kc=rss

http://arstechnica.com/open-source/news/2009/03/google-launches-project-to-boost-python-performance-by-5x.ars

http://panela.blog-city.com/python_at_google_greg_stein__sdforum.htm

http://www.scribd.com/doc/20251/The-Google-File-System


Yahoo.com

Yahoo už je trochu skúpejší na zverejňovaní informácií o sebe. Našiel som však stránky kde Yahoo zháňa developerov a podľa požiadaviek som sa ako tak dopracoval k technológiám ktoré používa.

technológie
PHP, Python, Perl, Java (JEE), C++, Linux, MySQL, Oracle.

Yahoo pri svojom vzniku používalo C++. Z dnešného pohľadu sa to zdá ako bláznovstvo stavať projekt v C++, ale treba si uvedomiť že výber technológií bol v roku 1994 veľmi obmedzený. Ešte neexistovalo PHP, ani Java.
Takže časti Yahoo služieb dodnes bežia na C++. Neskôr prešli na PHP, ktoré výdatne používajú vo svojich službách. Python, Perl a Bash používajú pravdepodobne v backend procesoch, ale ide o dohad. Ako operačný systém sa používa Linux.
Nenašiel som však žiadnu zmienku, akú databázu Yahoo používa. Tak isto som chcel zistiť do akej miery si upravujú PHP, a či vôbec.

použité zdroje
http://www.slideshare.net/fullo/federico-feroldi-php-in-yahoo

http://careers.yahoo.com/jdescription.php?frm=jsres&oid=18414

http://careers.yahoo.com/jdescription.php?frm=jsres&oid=18424

http://careers.yahoo.com/jdescription.php?frm=jsres&oid=19852


Youtube.com

Je celkom zaujímavé, že Youtube používa technológie podobné tým ktoré používa Google. A to ich používali predtým ako ich Google kúpil.

technológie
Python, Psyco, MySQL, Apache, lighttpd

Python je základ tohoto projektu. Nenašiel som informáciu o tom či si Python upravujú, alebo používajú oficiálny. V každom prípade používajú Psyco, čo je vlastne just-in-time Python kompilátor. Takže kód pythona sa pri požiadavke najprv skompiluje a potom sa priamo vykonáva. Výsledok je rýchlejšie vykonávanie kódu a rýchlejšie výsledky. 
Na distribúciu samotných videí používajú web server lighttpd. Celkom logická voľba, keďže jediné čo treba je dodať video, na čo je tento web server ako stvorený. Na zvyšok používajú štandardne Apache. Celkovo môžem povedať že používajú typický LAMP.

použité zdroje
http://video.google.com/videoplay?docid=-6304964351441328559

http://highscalability.com/youtube-architecture


Facebook.com

Tiež sa veľmi nezvyknú chváliť s tým čo používajú. Ale pár dní dozadu sa objavilo zaujímavé video , kde je do detailu vysvetlené aké technológie a architektúru facebook používa. 

Technológie
PHP, MySQL, Linux

Primárne sa všade používa PHP, ktoré je však špeciálne upravené. Virtual machine PHP je upravené na úrovni inštrukcií. Teda optimalizovali inštrukcie, aby PHP bežalo rýchlejšie. Tak isto do jazyka popridávali vlastné rozšírenia. Je mi jasné, že toto PHP nieje kompatibilné s originálnym PHP.
Ako databázu využívajú MySQL, ktorú si zvolili kvôli rýchlosti. Trochu zamrzí, že vôbec nedbajú o integritu dát. Nieje mi celkom jasné ako riešia integritu obchodných tranzakcií.
Ako framework majú opäť vlastné riešenie. Takže tu nenájdete žiadny Zend Framework alebo Symphony.

použité zdroje
http://www.infoq.com/presentations/Facebook-Software-Stack


Live.com

Bohužial ďalšií projekt, ktorého technológie nie sú veľmi známe. Microsoft nepatrí medzi firmy, ktoré by tieto dáta radi zdieľali. Keďže majú veľa ďalších projektov nieje možné sledovať voľné pracovné miesta ktoré ponúkajú, a podľa toho zisťovať použité technológie.

technológie
ASP.NET, IIS 6.0

Použitú technológiu som zistil len s prípony súboru .aspx, čo je .NET technológia. Služba buildwith.com zas zistila webový server IIS 6.0. Ako databáza sa pravdepodobne používa MS SQL, kedže ide o ich vlastnú databázu. Ale je to len dohad.

použité zdroje
http://www.google.com/search?hl=sk&client=opera&rls=en&q=site%3Alive.com+filetype%3Aaspx&btnG=H%C4%BEada%C5%A5&lr=

http://builtwith.com/?help.live.com


Wikipedia.org

Projekt používa technológiu ktorú aj zverejnili ako open source projekt z názvom MediaWiki. Takže kto chce môže si naštudovať kódy a architektúru. V podstate čo sa týka technologických informácií o tomto projekte, je na webe asi úplne všetko. V zozname zdrojov úvadzam len podstatné linky.

technológia
PHP, MySQL, Linux (Ubuntu), Apache

wikipedia má v podstate klasickú LAMP zostavu. Ešte by bolo zaujímavé vedieť aký používajú urýchľovač PHP. Keďže wiki nieje klasická biznis aplikácia odpadajú problémy s integritou databázy. Takže použitie MySQL je celkom logické. Keď si pozriete kódy MediaWiki, zistíte že nepoužívajú žiadny zložitý framework. Je to skôr stavané na výkon a jednoduchosť. Rozsahom kódu ide v podstate o mini projekt. Oproti molochom ako Google, sa to nedá ani porovnávať. Je zaujímavé, že taký malý projekt s tak malými nákladmi na programovanie tak prerazil.

použité zdroje
http://www.mediawiki.org/wiki/MediaWiki 

http://www.linux.com/feature/40486


Blogger.com

Blogger je ďalšia služba ktorú kúpil Google. Zas bol problém nájsť aspoň aké také zdroje o technológiách ktoré používajú. 

technológie
Python

Keďže blogger už beží na Google frond end frameworku, je jasné že používajú upravovaný Python. To sa dá tak isto vyčítať s pripony .py pri niektorých URL. Bolo by ešte zaujímavé vedieť akú technológiu používala táto služba ešte pred splynutím s Google. Čo sa týka databázy, pravdepodobne pôjde o spomínaný Google File System. Celkovo sa Blogger javý ako typickáGoogle aplikácia.

použité zdroje
http://ubuntuforums.org/archive/index.php/t-217644.html

http://builtwith.com/?http%3A//help.blogger.com

http://www.google.com/search?hl=sk&client=opera&rls=en&q=site%3Ablogger.com+filetype%3Apy&btnG=H%C4%BEada%C5%A5&lr=


Myspace.com

Celkom som bol prekvapený používanou technológiou. V TOP 10 figuruje len jedna služba s microsoft technológiami (live.com). MySpace tiež nezverejnila priamo informácie o sebe, takže databázu môžem len typovať.

technológia
IIS 6.0, BlueDragon.NET

Ako som už spomínal, firma vsadila na proprietárne technológie. Používa upravovaný ColdFusion pre .NETv ktorý sa volá BlueDragon.NET. Je to produkt firmy New Atlanta. MySpace najprv používal len ColdFusion, neskôr chceli používať výhody .NET jazykov, tak našli projekt ktorý spája ColdFusion s .NET technológiou. Výsledok bol ten, že nemuseli prepisovať tony ColdFusion scriptou na nový jazyk. 
Ako DB sa pravdepodobne používa MS SQL, ale nieje to celkom jasné s textov čo som preštudoval. Takže túto informáciu berte s rezervou.

použité zdroje
http://builtwith.com/?myspace.com

http://www.fusionauthority.com/community/4477-bluedragon-net-and-myspace-com-an-interview-with-new-atlanta.htm

http://computer.howstuffworks.com/myspace1.htm

http://blog.owensperformance.com/1969/12/myspacecom-switches-from-coldfusion-to-blue-dragon/

 

Baidu.com

Nuž toto bol asi najväčší háčik. Baidu je čínsky vyhľadávač, ktorý je v ázií veľmi populárny. Nanešťastie Čína nieje krajina, kde sa radi delia o informácie. Takže som pekne dlho prehľadával internet, kým som našiel aspoň niečo.

technológia
Apache, PHP, Java, JSP, Hypertable

Ako databázu používa Baidu pravdepodobne hypertable, keďže do tohto projektu dosť investuje. V podstate ide o obdobu Google File System. S textov sa mi nepodarilo vyčítať či ho používa vo všetkých službách, alebo len na vyhľadávanie. Čo sa týka web servera používa sa Apache. Ako programovací jazyk sa používa na front-end PHP a JAVA o čom sa môžete presvedčíť kliknutím na prvú a druhú linku v sekcií použité zdroje. Opäť by sa hodila informácia, do akej miery si jazyk upravovali. Zaujímavé je, že použili Java Server Pages na frond-ende niektorých služieb.

použité zdroje
http://www.google.com/search?hl=sk&client=opera&rls=en&q=site%3Abaidu.com+filetype%3Aphp&btnG=H%C4%BEada%C5%A5&lr=

http://www.google.com/search?hl=sk&client=opera&rls=en&q=site%3Abaidu.com+filetype%3Ajsp&btnG=H%C4%BEada%C5%A5&lr=

http://highscalability.com/hypertable-new-bigtable-clone-runs-hdfs-or-kfs

http://translate.google.com/translate?hl=sk&sl=zh-CN&u=http://www.chinapromoter.com/net-marketing/baidu/index.htm&ei=U0jxSYusC4Kx-Qb39fWeDw&sa=X&oi=translate&resnum=2&ct=result&prev=/search%3Fq%3Dbaidu.com%2B%25E6%258A%2580%25E6%259C%25AF%26hl%3Dsk%26client%3Dopera%26rls%3Den%26hs%3DkuD%26sa%3DN%26start%3D20

http://builtwith.com/?baidu.com


Zhrnutie
Len pre úplnosť všetky spomínané stránky používajú CSS a JavaScript. Z technológií jednoznačne prevládajú open technológie. S jazykov zas dynamické jazyky ako PHP alebo Python. Týmto jazykom sekunduje statická Java, prípadne C++. Je zaujímavé do akej miery museli upravovať programovacíe jazyky a databázové prostredia aby mohli vyvinúť svoje produkty. Výnimku tvorí len Wikipedia, ktorá je však veľmi malý projekt a nemuseli siahnuť po špeciálnych úpravách.


 
Komentáre (3)
integrita dát - narp: Facebook.com
1 24.04.2009
atlas
Čo si myslel tým že neriešia integritu dát. Myslel si to že mysql nedokáže robiť transakcie uzamykanie a podobné veci? ale ona to dokáže od MYSQL5.0 - innoDB
a LAMP je linux - apache - mysql - php, takže to youtube nesplnuje podla tej specifikácie,

ps: utekát ti písmo pri väčšom rozlíšení
ps2: zaujimave citanie, dik :)
integracia dat
2 04.05.2009
Jan Sunavec
MySQL samozrejme transakcie a integritu dokaze riesit. Len potom uz nema svoj vykon a oplati sa skor poobzerat po niecom lepsom. Preto ked ide o vykon pouziva sa len MyISAM.
Co sa tyka LAMP http://en.wikipedia.org/wiki/LAMP_(software_bundle). To P moze byt Python, Perl alebo PHP.
Na to pismo sa este pozriem, dik za upozornenie.
Skype technologia
3 23.11.2009
Jan Sunavec
Zda sa ze Skype pouziva ako Databazu PostgreSQL

https://developer.skype.com/SkypeGarage/DbProjects

Pridať tvoj komentár

Vaše meno:
Nadpis:
Komentár: