Trilulilu.ro (zis și Trilu) este copilul minune al webdoizero-ului românesc. Dovadă stă și recentul premiu la Internetics, secțiunea “Site-uri divertisment și timp liber”. Este cu atât mai remarcabil cu cât este unul dintre puținele site-uri premiate de Internetics care nici nu este realizat integral în Flash (la mare vogă se pare în netul mioritic) și nu șine de o publicație offline, agenție de presă sau firmă de advertising. Este un succes destul de atipic pentru Internetul românesc dominat de site-uri care trăiesc dintr-o formă sau alta de publicitate convențională (bannere sau site dedicat unui produs/serviciu) și de mirobolantele site-uri “corporate”.

Singura problema pe care am reproșat-o și o reproșez celor de la Trilu este lipsa aproape totală de transparență. și nu mă refer doar la finanțarea cu capital de risc, care mai mult ca sigur există dar este “secretă” – sau la pretextele subțiri cu care suntem sistematic serviți. Este clar că ei ar avea multe lucruri interesante de spus – din punct de vedere tehnic – pentru toți cei care visează să dezvolte un site major pe Internetul românesc, dar care nu au nici cea mai mică idee de complexitatea și costurile pe care le implică un astfel de site. Cam acesta ar fi motivul care m-a determinat să fac o mică investigație, care s-a dovedit a fi foarte (prea?) ușor de efectuat. Plus faptul că azi 3 noiembrie au avut mai multe perioade de downtime ba chiar au mai și schimbat prin ip-urile serverelor. Aceasta, cu o probabilitate mare, indică oareșce upgrade-uri (neanunțate afaik) de servere și/sau structura aplicației. Ca “factor secundar” este fratele meu care în ultimii 2-3 ani cam o dată la 6 luni are o mare idee faraonică de site video, niciodată pusă în aplicare, și m-a cam bătut la cap lately ca să-i estimez costurile unui setup de genul Trilu. Voi da și detalii despre sursele de informare folosite, poate scap pe viitor de întrebări de acest tip :)

netcraft_trilu.gif

Cum poți să afli din exterior detaliile despre un site ? Primul loc spre care te îndrepți este Netcraft – ei țin evidența locașiei și tipului de server de pe toate site-urile cât de cât mari de pe planetă. Nu exagerez, este vorba de întregul Internet. De acolo se pot extrage două rapoarte interesante: site report și uptime report. Se vede destul de clar că pe 27 septembrie 2007 Trilu s-au mutat de pe furnizorul local Euroweb la un furnizor francez, și anume OVH. Pe data de 3 noiembrie, adică azi, IP-rile serverelor s-au schimbat din nou, este drept tot la OVH, iar semnătura serverului nu mai este Apache ci “unknown” dar din câte am mai săpat eu unele dintre mașini încă rulează Apache, pe altele lighttpd. Uptime reportul este minunat dar nu reflectă în întregime realitatea, pagina de intrare fiind servită azi pe alocuri, dar sub forma unui mirific HTTP 504 Gateway Timeout. În traducere liberă asta înseamnă că serverul fiind foarte lent nu a fost capabil să livreze pagina în timp util. Pentru tehnicieni, codul semnalează prezența unui balancer sau a unui reverse proxy. Din istoricul furnizat de Netcraft, mai deducem că site-ul este executat în PHP iar sistemul de operare pe care rulează este Linux – o versiune deDebian (probabil un Debian etch “curat” care este destul de solid și stabil).

Următoarea etapă este examinarea surselor pe o pagină oarecare a site-ului, care ne revelează faptul că Trilu servește conținutul de pe 4 tipuri de servere: www (codul HTML generat), static (css, imaginile din pagini dar nu contentul propriu-zis), thumbs (iconițele de la imagini, filme și utilizatori) și fs (contentul propriu-zis). De aici încolo este ușor pentru că ei folosesc o numerotare secvențială a serverelor, folosind o sculă de interogare DNS care se numește dig (este uzuală pe Linux, dar versiunea de Windows este aici), într-un singur tur de magie am adunat următoarele adrese (de precizat că nu merge să extragi tot domeniu cu nslookup, ar fi fost banal dar am fost servit cu reject):

www.trilulilu.ro.   1800    IN  A   91.121.49.21www.trilulilu.ro. 1800    IN  A   91.121.54.34www.trilulilu.ro. 1800    IN  A   91.121.60.45trilulilu.ro.           1778    IN      A       91.121.51.44


www1.trilulilu.ro.  1699    IN  A   91.121.51.44www2.trilulilu.ro.    1707    IN  A   91.121.45.27www3.trilulilu.ro.    1800    IN  A   91.121.54.34www4.trilulilu.ro.    1800    IN  A   91.121.49.21fs1.trilulilu.ro. 1800    IN  A   91.121.76.56fs2.trilulilu.ro. 1800    IN  A   91.121.2.32fs3.trilulilu.ro.  478 IN  A   91.121.18.68fs4.trilulilu.ro. 1800    IN  A   91.121.68.29fs5.trilulilu.ro. 477 IN  A   91.121.73.77fs6.trilulilu.ro. 478 IN  A   91.121.27.125fs7.trilulilu.ro.    1667    IN  A   91.121.73.79static.trilulilu.ro.  1667    IN  A   91.121.53.117static1.trilulilu.ro.    1667    IN  A   91.121.76.56static2.trilulilu.ro. 557 IN  A   91.121.2.32static3.trilulilu.ro.  1668    IN  A   91.121.18.68static4.trilulilu.ro. 892 IN  A   91.121.68.29static5.trilulilu.ro. 893 IN  A   91.121.73.77static6.trilulilu.ro. 892 IN  A   91.121.27.125static7.trilulilu.ro.    893 IN  A   91.121.73.79thumbs1.trilulilu.ro. 1668    IN  A   91.121.76.56thumbs2.trilulilu.ro. 1668    IN  A   91.121.2.32thumbs3.trilulilu.ro.  1669    IN  A   91.121.18.68thumbs4.trilulilu.ro. 1669    IN  A   91.121.68.29thumbs5.trilulilu.ro. 1669    IN  A   91.121.73.77thumbs6.trilulilu.ro. 1670    IN  A   91.121.27.125thumbs7.trilulilu.ro.    1669    IN  A   91.121.73.79


login.trilulilu.ro.     1800    IN      A       91.121.51.44


db1.trilulilu.ro.       1768    IN      A       91.121.79.11

O inspecție vizuală rapidă [remarcați, strategie clasică, DNS-ul roundrobin cu adrese diferite pentru www] ne arată ca numai 14 IP-uri sunt unice. Deși la o adică acestea ar putea fi toate găzduite pe unul și același server, bunul simț și experiența îmi spun că acestea indică fiecare câte un server. Sincer, nu văd de ce ar fi obfuscat adresele IP grupându-le “împotriva naturii”, deși cine știe poate o vor face după ce vor citi acest articol (sic!).

Ok, avem așadar 13 servere Linux care răspund toate la ping și rulează ceva pe portul 80 (chit că unele redirectează browserul) și un posibil server de baze de date db1.trilulilu.ro (DNS public ? greșeluță) care răspunde la ping dar nu la altele (recunosc că nu am stat sa fac portscan). Serverele de conținut nu trebuie să duduie prea tare la capitolul procesor, doar să aibă hdd mare și memorie suficient de multă. Din acest punct de vedere probabil că opăiunea lor se situează undeva la nivelul de servere cu Core 2 Duo, între Superplan 2007 L și MG++. Sunt servere cu 1.5 TB de disk și 1-4 GB de RAM, trafic nelimitat, care costă între 69 și 199 EUR/lună. Aceasta înseamnă un prim cost situat aproximativ între 900 și 2600 EUR/lună. Serverul cu baza de date ar trebui să fie ceva mai răsărit, aș paria pe unul dintre bi-Xeoanele quad-core sau ceva similar, cu un cost între 500 și 600 EUR/lună. Dacă punem un backup necesar în caz că db1 o ia la vale (nu l-am găsit în DNS dar bănuiesc că există) ajungem la estimarea finală undeva între 2000 și 4600 EUR/lună plus TVA. Este evident un minim necesar, nu am inclus aici eventualele deal-uri specifice cu OVH, care pot ridica foarte mult nota de plată (prioritizarea pentru streaming video este cam 1000 EUR/lună/server din câte îmi amintesc, dar nu este necesară), costurile de backup, hdd-urile suplimentare (care nu sunt piperate dar se adună), costul cu forța de muncă (programatori, admin, moderatori) și – cine știe – poate că mai au unul-două servere ascunse pe care nu le-au listat prin DNS :) (tsk, tsk, tsk) …

Cam acesta a fost “statul pe margine și datul cu presupusul” ca să-l citez chiar pe Sergiu. Sunt curios cât de aproape de adevăr sunt. La ora la care am finalizat articolul trilulilu.ro încă are probleme, come on boys nu terminați upgrade-ul ca să vedem noile funcționalități ?

Ultima notă: Să însemne totuși mutarea pe OVH o posibilă deschidere spre publicul european ? Îmi amintesc de un argument într-o vreme cum că avantajul major al lui Trilu față de YouTube&co este prezența pe Internetul metropolitan din România, care facilitează traficul internauților mioritici … evident că nu mai este cazul, de pe OVH avem trafic extern.