Rapid deployment u primjeni i praksi

Posted on Sunday 24 February 2008

Ja nisam vuk, ja sam Gordan Orlić :-), i da ja sam taj lik bez bloga koji će ovdje gostovati narednih nekoliko dana i postova. Web-based programiranjem se bavim gotovo 10 godina tijekom kojih sam napisao poveću količinu webova, intranet aplikacija i polu-poslovnih aplikacija. Radio sam na aplikacijama koje je samo selotejp držao na okupu, ali i na onima gdje je sve bilo uredno kao u apoteci. No, tijekom svih tih godina i poslova nikada ništa nisam radio mjesecima. Pod ovim ne mislim da nisam programirao mjesecima već da se projekti nisu razvlačili kao žvaka u nedogled bez kraja i granica. Dijelom to dugujem svojoj zdravoj prosudbi o veličini projekta koju ja (ili moja firma) mogu progutat, ali i svojoj “politici” programiranja koja se uvelike temelji na rapid deploymentu i extreme programiranju.
Teorija je jedno, a praksa koju ću pokušat demonstrirat na konkretnom projektu nešto sasvim drugo. Ambiciozna ideja koju kanim realizirati u dvadeset i četiri (24) radna sata je izrada prvog i jedinog servisa za napredno pretraživanje hr domenskog prostora pod nazivom WhoisHR.

Zašto baš taj projekt?
Za razliku od velike većine TLD domena hrvatska TLD domena (hr) nema whois server koji bi vam primjerenom brzinom i adekvatnom pouzdanošću mogao reći je li neka domena registrirana ili ne, tko je njen vlasnik, kada je registrirana, koji su NS serveri i slično. Nadležni organ, CARNet nudi tek rudimentarno pretraživanje putem web forme. Usluga je krajnje spora, i nerijetko nedostupna. Svatko tko ima ozbiljniju potrebu za provjeravanje dostupnosti hr domena našao se pred zidom jer naprosto ne postoji način da dođete do traženih podataka osim preko CARNeta.
U polusnu duboke hladovine Krka tijekom prošlog ljeta osmislio sam aplikaciju koja će omogućit pretraživanje hr domena prema svim dostupnim parametrima, a ne samo prema nazivu domene. Uz podosta muke uspio sam riješit i najveći problem takve aplikacije - prikupljanje podataka o registriranim domenama. Mjeseci su prolazili, a projekt je postojao samo u mojoj glavi, pa sam konačno u veljači u firmi predložio da ostavimo sve što radimo na par dana i realiziramo WhoisHR. Odgovor koji sam dobio je bio: “treba te pogodit strelicom za uspavljivanje nosoroga” (ovo s nosorogom neću komentirat). Prepušten samom sebi tvrdoglavo sam zaključio da ću svejedno stvar riješit u tri dana.

Koliko teško to može bit? (aka “nesposoban si, ja to riješim u par sati”)
Površnim promatranjem stvari servis se svodi na jednu bazu podataka za koju treba napisati web sučelje i malo to sredit da liči na nešto. To je nažalost samo dio problema. Tu bazu treba puniti podacima, konstanto, bez prestanka i to iz desetak različitih izvora od kojih svaki (naravno) ima svoji način formatiranja podataka. Drugi problem je što kanim napraviti kompletnu aplikaciju koja je ponešto kompliciranija od jedne web forme i koja će među ostalim nudit i sljedeće:

  • jednostavno pretraživanje domena (hr, com.hr, iz.hr)
  • napredno pretraživanje domena prema nazivu, vlasniku domene, adresi vlasnika, datumu kreiranja, statusu, hostu, NS serverima, hosteru, …
  • praćenje statusa domene
  • obavještavanje o kreiranju novih domena vezanih uz određene ključne riječi
  • API
  • i još ponešto …

Plan i program je sljedeći:
1. dan - ponedjeljak

  • Kliknut “create new project”. Lokalno riješit environment, subversion i ostalo potrebno za nesmetan razvoj
  • Dizajn. Pronaći odgovarajući free template i prilagodit ga potrebama aplikacije, XHTML + CSS kljucanje
  • Domena, hosting. Riješit NS-ove, instalirat na server što je potrebno, ustvrdit treba li nabavit još jedan stroj kako bi se baza osvježavala adekvatnom brzinom
  • Dizajn baze i aplikacije. Sve je odavno gotov u glavi ali pametan čovjek piše pa …
  • Punjenje baze. Hrpa mrežnog koda, napisat kvalitetno koliko je moguće ali najvažnije je odmah pokrenut punjenje da se podaci prikupljaju jer će to potrajat

2. dan - utorak

  • Punjenje baze. Vidjet odvija li se stvar u konačnom vremenu
  • Jednostavno i napredno pretraživanje
  • “Napredne” stvarima poput domain watchinga i API-ja

3. dan - srijeda

  • Finaliziranje servisa za osvježavanje baze
  • Stavit stvar na server
  • Bug hunting i optimizacija

Mnogi će ostat zatečeni mojim izborom prioriteta i poretkom zadataka. Sve ima svoje razloge, a detalje ćete doznati u naredna tri dana.

I što ako to (ne)uspijem napravit?
Zemlja će se i dalje okretat, to je neupitno :-). U ta tri dana će sigurno biti realizirano ono što će se najviše koristit: pouzdano, jednostavno pretraživanje hr domena. Izrada ostalih “naprednih” servisa (od kojih neki neće biti besplatni) ovisit će primarno o mojoj koncentraciji i spremnosti da isključim telefon i mobitel.
Kako projekt napreduje moći ćete pratiti na blogu u naredna tri dana. Planiram svako nekoliko sati stavljati status update.

hr.digg|prijavi: hr.digg

8 Comments for 'Rapid deployment u primjeni i praksi'

  1.  
    24.2.2008. | 0:09
     

    This is going to be fun. Sretno! :)

  2.  
    24.2.2008. | 3:36
     

    Ja nisam zatecen izborom prioriteta, a nisam zatecen niti metodologijom, i sam bih skoro slicno slozio stvar …
    Jest da je specificna aplikacija pa se neke stvari moraju preslozit, li recimo da bih i ja tako to nekako rijesio.

    Jedino sto bih mozda maaaalkice konkretnije definirao i razbio tocku “prikupljanje i pohrana podataka iz raznih izvora” - tu leze mnooogi potencijalni problemi, nedostatak standarda, visok stupanj nepouzdanosti izvora, bla bla - toj bi tocki u biti posvetio sigurno cijeli dan, ali sve ostalo ima smisla.

    Ajde, iako sam prestao citati blogove, ovo ce mi bit gust citati :)

    BTW, i ovaj blogerski swinging mi se isto svidja, jos toga treba.

  3.  
    24.2.2008. | 15:25
     

    Usputno — nisam *nikad* imao slucaj u zadnjih 8-9 godina da nije radilo Web-based pretrazivanje CARNetove (iako ga SRCE odrzava) Whois baze (odnosno HR gTLD podataka sa dns.srce.hr). Dapace, trosim ga iz jwhoisa direktno iz CLI-ja, tako da se razmjerno fleksibilno da koristiti. Sto se pak tice Whois servisa kao takvog, koliko znam postoji CARNet HR Whois posluzitelj, medjutim on AFAIK je jos uvijek za internu upotrebu.

    S obzirom da otprilike znam kako funkcionira CARNet DNS sluzba, ne vidim da si rekao da si sluzbeno dobio (odnosno da ces dobivati) eksportove ili neki interface prema HR gTLD bazi? Takodjer, podatak da postoji 10ak izvora mi zvuci prilicno cudno, s obzirom da je maintainership iskljucivo posao pojedinog RIR-a, u ovom slucaju drzavnog tijela zaduzenog za pojedinu gTLD bazu. Mozes li pojasniti kako si ti to zamislio? Jesi li uopce direktno pitao DNS sluzbu?

  4.  
    24.2.2008. | 17:05
     

    Pocelo je :) Sretno, pratim razvoj situacije ;)

  5.  
    24.2.2008. | 20:44
     

    Ambiciozno nema sta! Samo napred i pratimo napredak preko bloga :)

  6.  
    24.2.2008. | 21:42
     

    @dkorunic
    sve što si napisao je točno. whois server postoji ali nece tako skoro u public upotrebu. što se tiče dostupnosti web sučelja nažalost nemam tako pozitivna iskustva ponajprije kada je riječ o brzini kojom se stvar odvija kada želiš potegnut malo više upita. no bez obzira na to mislim da ima puno prostora za poboljšanje dotične usluge
    ne Carnet mi nije dao popis domena, niti će mi ga davat. DNS službu nisam kontaktirao. o načinu prikupljanja popisa domena će biti riječ u naredna 3 dana iako još nisam odlučio koliko je pametno opisat postupak kako bi bilo tko mogao doć do popisa (i ne to nije zbog moje želje za očuvanjem monopola :-) već zato što s razlogom takvi popisi nisu javni)

  7.  
    Skeptik
    25.2.2008. | 1:11
     

    damn, skepticizam me lupa opako…naime, ono sto ne shvacam je razlog izrade takvog servisa.

    kome je to potrebno?
    ali zaista, ne salim se - pogledaj neke od razloga zasto mislim da je to apsolutno nepotrebno. za razliku od whoishostingthis.com koji je takoreci koristan.

    - hr domene se ne produzuju u klasicnom smislu; cemu dakle monitoring i podatak poput “expiry date”?

    - slicno za status domene. Nije to liberalizirano trziste da bi status nesto znacio; ako je domena “disputed” to ce se vidjeti prije ili kasnije na stranicama arbitraze. Ako je domena “inactive” to se vidi u browseru. “Transfer prohibited” ionako ne postoji - kamo mozes transferirati hr domenu? A da ne trebas 103 formulara slati postom…that is.

    - nameserveri i slicne tehno djindje se mogu trositi i “obicnim” traceroute,dig,whatever alatima. web sucelje ako je i potrebno vec postoji na dnsreport.com i radi i sa hr domenama. jest, placa se ali vrijedi. ako mozes bolje i jeftinije, samo naprijed.

    - “vaznost” i “popularnost” iz.hr je tolika da nam svima strasno fali takav alat za te “domene” :-)

    - svi koji ne mogu dobiti svoju .hr domenu su vec odavno na globalnim ekstenzijama. dakle, 95% pucanstva. i nesto malo tvrtki koje drze do sebe (podravka.com, i sl.)

    ponoviti cu tvoje rijeci…vidi:
    “Za razliku od velike većine TLD domena hrvatska TLD domena (hr) nema whois server koji bi vam primjerenom brzinom i adekvatnom pouzdanošću mogao reći je li neka domena registrirana ili ne, tko je njen vlasnik, kada je registrirana, koji su NS serveri i slično.”

    da su htjeli da narod zna - javljalo bi se nesto na portu 43. transparento, azurno.

    internet nam je skoro punoljetan a nije se javilo…
    - nakon 5 godina, ajde…nije se stiglo, “rat”.
    - nakon 10 godina, ajde…tek se razvijamo.
    - nakon 15 godina…well, pada na pamet: ne zeli se?

    ali zato postoji whois server koji se sve to vrijeme koristi “interno”?!?

    Go figure.

    Govorimo o *osnovnom* servisu (”dijelu” infrastrukture?) koji uostalom i nije tesko implementirati. A “nema” ga.
    Ja ne mislim da nitko u carnetu to jednostavno - ne zna!
    Mislis li ti tako?

    Opet cu te citirati:
    “zato što s razlogom takvi popisi nisu javni”

    Stekao sam dojam da bi ti podaci *morali* biti javni.

    Koji su to razlozi koje spominjes?
    Ili se niti o njima ne smije javno?

    Kada bi ti stvarno uspio sloziti neki alat koji bi promijenio stanje stvari barem na korisnickom nivou (brzo pretrazivanje i ukupna korisnost alata), postao bi heroj webmajstorske hr zajednice. :-)
    Pa jos u 3 dana?

    Ono sto ja vidim da mozes sloziti je isto ono sto imamo na dns.hr a sto nam je “uvrh glave” - kao sto rece Dinko, radi sasvim ok. Vidis da je domena slobodna ili ne i koji d.o.o. ili koja od 70k cro udruga je vlasnik. Na to ces eventualno dodati neku ip adresicu, google popularity, alexa archive link ili tako neku slicnu djindju. I to je sve sto mozes.

    Koliko je to potrebno i kome?
    Doduse, mozes to prikazati kao strasno dobar servis ali to je vec stvar marketinga. Stvarna korisnost nece se mnogo podici u odnosu na dns.hr, imho…

    Uostalom, cak da i nije takva situacija ostaje pitanje pravne valjanosti takvoga servisa - naime, nisam siguran da se podaci toga tipa smiju redistribuirati tek tak’ - bez pitanja.
    A kazes da pitao nisi…a da pitas, hm…mozda i prodje.
    Ali ne u 3 dana. Treba formularima vise od toga da ih postar dostavi. :-)

    Slicne finte o redistribuciji i fair koristenju podataka uostalom vrijede i za .com i pisu na pocetku svakog whois .com ispisa.

    Kad navalis puniti bazu i blokaju ti ip servera imati ces dobar izgovor zasto ne sljaka stvar. :-)

    Moj savjet ti je da, s obzirom da smo offtopic, promijenis ekstenziju i slozis neki slican servis u 3 dana i demonstriras nam rapid deployment. Onako kako si i namjeravao.

    Ako nista drugo do zonskih fajlova je lakse doci (citaj: moguce).

    No, palo mi je na pamet par savjeta cak i za .hr servis kakav si najavio…razmisli o ovim sugestijama:

    - ukljucivanje .biz.hr “ekstenzije”? barem ne moras pitati carnet - on to vise ne kontrolira. pretpostavljam da onaj tko kontrolira moze samo biti sretan da bude ukljucen - sve sto moze povecati “awareness”, prodaju i povecanje profita je dobrodoslo.

    - opcija “obavještavanje o kreiranju novih domena vezanih uz određene ključne riječi” ima smisla narocito kao marketinski ili SEO alat, za pracenje konkurencije itd. Ali ne dok je na snazi carnetov pravilnik o dodjeljivanju a namespace nije liberaliziran. Kljucne rijeci u 90% slucajeva nece biti genericke rijeci vec imena kompanija. Predlazem zamijenu ovu opcije sa npr. “detekcija novih webova na .hr i pronalazenje koje su djelatnosti”

    - kreiranje imenika korisnika na from.hr (ili kako se vec zove). Problem: vec spomenuta pravna strana - koga si pitao da ga uneses u imenik? Rjesenje: reci da je alat crawler javnih podataka. :-)

    Osobno u izradi takvog servisa vidim najvece probleme ne u sferi same tehnologije koliko u domeni “politike” i potencijalnih pravnih problema.

    IMHO, ekipa koja je predlozila “strelicu za uspavljivanje nosoroga” je bila preblaga. :-D

    Sretno, pratim razvoj. ;-)

    P.S.
    Za nekoliko godina kada carnet napokon donese novi pravilnik, neke od opcija koje si naveo ce imati smisla.
    S druge strane, do tada ce mozda postojati i “pravi” whois server pa ce ostati upitnim smislenost izrade takva alata.

  8.  
    25.2.2008. | 2:27
     

    ajde, drzim fige da sve ide po planu i obecavam da te necu gnjaviti u gtalku :o)
    a ovo sa nosorogom…. definitivno se slazem da je ekipa preblaga, plavetni kit je bolja usporedba za to koliko sredstva ti za uspavljivanje treba ;o)

Leave a comment

(required)

(required)


Information for comment users
Line and paragraph breaks are implemented automatically. Your e-mail address is never displayed. Please consider what you're posting.

HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>


RSS feed for comments on this post |