


Aichi
![]()
Zdeněk

Vašek




Martin
Vzpomínka na druhý červenec 2006 se mi z paměti ještě úplně nevytratila. Pohledem do
elektronického kalendáře si přesně vybavuji
ten úterní prázdninový večer, kdy jsem se v poklidu chystal na
týdenní dovolenou do Švýcarska. Ani v nejmenším mne tehdy nenapadlo, jakou předzvěstí jsou všechny ty
timeouty, co jsem náhle zpozoroval na
našich Seznamáckých mapách. Za pár
minut, po první desítce jasně hrozivých telefonátů, jsem ale měl jasno: výpadek elektřiny v serverovně a všechny služby Seznamu
pryč.
Na dovolenou jsem tehdy nakonec přece jen odjel. Pravda, se 14 hodinovým zpožděním. Ostatní kolegové bez plánovaných dovolených
takové štěstí neměli. Z výpadku elektřiny v tehdy jediné serverovně
Seznamu se tu vzpamatovávali ještě
několik dalších týdnů.
Toto neradostné, bez dvou měsíců dvouleté výročí, jsme si
připomněli právě o tomto víkendu. Jeden rozdíl tu ale přece jen byl: za ty dva
poslední roky jsme stihli zbudovat
druhou serverovnu v Naganu a díky
práci vývojářů zdualizovat většinu z více jak 50ti služeb Seznamu. Výpadek byl stejně jako před dvěma lety
neplánovaný, stejně jako před dvěma lety v TTC nenaběhlo záložní napájení.
Zbytek havárie proběhl identicky.
Díky serverovně v Naganu se nám ale podařila dříve nemyslitelná věc. Plné znovu rozběhnutí celého Seznamáckého freemailu v TTC netrvalo 1,5 měsíce, ale pár hodin. Neztratili jsme při tom žádná uživatelská nastavení ani emailové zprávy. Z pohledu uživatele byla služba díky druhé serverovně zprovozněna v řádech desítek minut.
Řekl bych, že jsme na dobré cestě, ne však
v cíli. Zbývají další jednotky
služeb v portfoliu Seznamu, které ještě nemají duální architekturu. Stejně
tak víme, že ne všechno se v TTC znovu rozběhlo bez pomoci. Odhadem nás
výpadek v TTC stoji zhruba dva dny prací na dočištění všeho, co se
rozbilo. Díky druhé serverovně jsou to však práce - z pohledu uživatele -
neviditelné a nevýznamné.
Naším cílem je ideálně nulový zásah techniků.
Aby do práce v neděli už konečně nemuseli system administrátoři z týmů Martina Dolečka, Pavla Danihelky, Honzy Vokase, Honzy Mojžíše a Zdeňka Spáčila. Aby i system operátoři v TTC Jirka Tauber, Tomáš Soukup a ostatní dohlíželi na provoz v klidu.
Až v létě
2010 udeří blesk znovu, uvidíme, jak moc
se nám s tím podařilo hnout. ;-)

Michal
Po API Mapy.cz jsme se na základě podnětů zvenku i přímluvy od Centra TEREZA rozhodli uvolnit pro veřejné nekomerční použití prostřednictvím API i náš CAPTCHA server. Na rozdíl od jiných obdobných řešení je naše CAPTCHA vybavena možností generovat audio stopu a díky tomu je použitelná i pro zrakově handicapované uživatele. Pro její využití máte k dispozici rozhraní jak HTTP tak XML-RPC, respektive FastRPC.![]()
BoB
![]()
Vlasta
Požadavky uživatelů jsem doteď řešili hlavně e-mailovou
formou a pomocí kontaktních formulářů. Tak se tvořilo hodně písemné komunikace a její vyřízení mohlo
trvat dlouho. Díky novému systému uživatelé už nečekají na naši písemnou odpověď, ale problém řeší v
reálném čase přímo s operátorem.
Průměrná doba řešení jednoho požadavku je 5 minut,
přičemž operátoři komunikují hned s několika uživateli najednou. To významně
zvyšuje možnosti využití technické podpory pro uživatele , pro operátory to ale
znamená větší soustředěnost a nasazení.
Prvním krokem k úspěchu na obou stranách je identifikace služby, ke které
se problém nebo dotaz vztahují. Hodně pomáhá i to, když má uživatel rozmyšleno,
co přesně požaduje nebo s čím má problém. Pouhé konstatování „nefunguje to“
zbytečně prodlužuje dobu řešení a znepříjemňuje komunikaci oběma stranám zbytečným
množstvím otázek. Velmi proto doporučujeme využívat centrální nápovědu služeb. Většina z nejčastějších otázek je v
nápovědě detailně zpracována.

A se kterými službami Vám na online podpoře pomůžeme?
V první řadě se jedná o e-mailové služby (mimo zapomenutá hesla, které
mají vlastní
formulář), Sweb, fulltextové
vyhledávání, komunitní služby Lidé.cz a Spolužáci.cz a jiné.
On-line podpora je dostupná ve všední dny od 07:00h do 20:00h. Souběžně s
ní je možné využít i telefonickou podporu, která je však kapacitně omezena.

Věříme, že nová on-line
podpora přinese uživatelům ještě jednodušší práci s našimi službami a nám nové
zkušenosti, bez kterých bychom nemohli naši práci dál vylepšovat.
Zdeněk a Lukáš
Jak si mnozí z vás jistě všimli, veškeré zdrojové soubory obsahující JavaScript a kaskádové styly máme na našich službách v komprimované podobě. Tedy bez zbytečných bílých znaků, konců řádků a komentářů. Také naše Javascriptová knihovna JAK je uvolněna i v komprimované formě. Nyní chceme uvolnit jako OpenSource i nástroj, kterým tuto komprimaci děláme.
Na komprimaci se v historii seznamu používalo několik různých interních nástrojů, ale každý měl nějaké problémy, díky nimž bylo nutno si dávat velký pozor na výsledek komprimace. Chyby se však v komprimované verzi hledají těžko.
Během několika obědů strávených s kodéry, jsem se v rámci tučňákových dnů rozhodl, že vyzkouším napsat nový komprimátor JavaScriptu postavený na gramatice jazyka. Tak aby komprimátor parsoval jazyk jak se má a nědelal chyby. Po chvíli hledání a několika pokusech jsem nakonec použil knihovnu KHTML a vytáhl z ní potřebné kusy. Za pomocí několika málo úprav vznikla první implementace již funkčního komprimátoru. No a protože jsem měl v ruce jednoduchý kód, nedalo mi to a vyzkoušel jsem si udělat i obfuskaci. Jedná se sice jen o pokus, ale třeba to někdo použije :).
Původní kód komprimátor pro kaskádové styly napsal náš produktový ředitel Chosé, když se chtěl seznámit s Céčkem. Jak to dopadlo se můžete všichni podívat :). Protože u komprimace kaskádových stylů je potřeba myslet na podporu různých háčků, tento komprimátor zachovává všechny komentáře a další věci. Vynechávají se pouze přesně specifikované komentáře (viz. manuál).
Protože jsme chtěli oba komprimátory mít pohromadě, tak jsme je dali do jednoho balíčku a udělali jsme pro ně jednotné rozhraní a už je vesele používáme. Kód je napsán v C/C++ a najdete ho včetně binárních balíčků pro debian na kjscompress.sourceforge.net.
![]()
Michal
První myšlenky na něco takového jsme vedli asi před půl rokem v hospodě U Žíznivého jelena v Praze na Smíchově. Nutno podotknout, že to byly velice filozofické debaty :), jak to tak už u piva bývá. Konkrétní podobu tomu dal až čas, konzultace a příspěvky na vnitrofiremním diskusním fóru.
Jako Open Source existuje sice celá řada systémů (Coda, GlusterFS), které by se určitě taky daly použít, ale z nějakého důvodu se nám jakékoliv jiné řešení zdálo buď zbytečně složité, nevýkonné, nebo síťově moc ukecané.
A tak se stalo, že se jeden krásný víkend Eda (jeden z členů mého týmu) tak nudil, že se do toho prostě pustil a v pondělí přinesl do práce první funkční prototyp. Nakonec to dotáhl až do konce, ještě to chtělo hodně ladění, ale výsledek je asi přesně to, co jsme čekali.
Co to vlastně je a jak to funguje? Jedná se o replikovaný filesystem postavený na Filesystem in Userspace, zkráceně FUSE. Stačí tedy na jakémkoliv Unixovém počítači s modulem fuse připojit nový filesystem a SeznamFS se bude starat o to, aby všechny operace v tomto bodě zapisovaly do binárního logu. Základní filozofie je v podstatě okopírovaná z MySQL master master replikace databází.
Binární log obsahuje všechno, co je důležité pro repliku filesystemu do jakéhokoliv jiného umístění. Všechny operace (touch, mv, rm, ln, chmod, chown ...) v něm lze nalézt a samozřejmě i všechna zapsaná data. Systém je postaven na master-slave komunikaci. Každá instance systému může sloužit jako master a zároveň si může stahovat data z jednoho master systému. Hlavní síla celého řešení je v tom, že lze zapisovat do několika míst najednou, typicky na dva různé počítače, mezi kterými existuje TCP spojení a SeznamFS se postará o zreplikování souboru na druhou stranu. Další velkou výhodou je to, že se při změně nepřenáší celý soubor, ale jenom změněný blok na filesystemu a pak samozřejmě jednoduchá instalace a konfigurace.
Data, která se zapisují do mount pointu, se přesunují na klasický filesystem (EXT3, nebo cokoliv jiného do jakéhosi Storage adresáře), který máte nainstalovaný na počítači a jsou dostupná v nezměněné podobě. Zápisové i čtecí operace se tedy provádějí v mount pointu a pokud je potřeba číst ze systému opravdu hodně, dá se pro tento účel storage adresář bez problémů použít.
Pro administraci celého systému slouží jednak konfigurace, a druhak se da použít konzole v příkazovém řádku, ve které je možno i měnit část konfigurace a hlavně zadávat přikazy nutné pro správu systému.
Projekt má svou vlastní webovku s perfektní dokumentací na http://seznamfs.sourceforge.net/.
První projekt na kterém jsme SeznamFS vyzkoušeli je www.sport.cz pro replikaci obrázků a videí. Plánujeme nasazení na www.novinky.cz a taky na www.seznam.cz pro distribuci uživatelských favicon a dalších věcí.
A nakonec něco pro fajnšmekry. SeznamFS je napsaný v C++, síťově a v binlogu je Big Endian, to znamená, že replikace je možná i mezi souborovými systémy na různých platformách.
![]()
Zdeněk
| květen 2013 | ||||||
| Po | Út | St | Čt | Pá | So | Ne |
|---|---|---|---|---|---|---|
| - | - | 1 | 2 | 3 | 4 | 5 |
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | 31 | - | - |