dev mday

Održan prvi Developers’ mDay

Vladimir Cerić

Vremenske nepogode u Beogradu nisu sprečile sve zainteresovane developere koji su došli na prvi mDay, kako bi od kolega koji rade na nekim od najvećih Web sajtova u Srbiji čuli iskustva u radu na velikim projektima.

U sredu, 14. maja u Kulturnom centru „Grad“ održan je Developers’ mDay, prvi u nizu događaja koje će organizovati kompanija Mainstream, a namenjeni su svima koji se bave naprednim Web razvojem. Prepuna sala nije bila dovoljna da primi sve zainteresovane, a oni koji su se među prvima registrovali imali su priliku da čuju iskustva webmastera i drugih stručnjaka koji su angažovani na nekim od najvećih Web sajtova u Srbiji.

mday 2

Skup je otvorio Boško Radivojević, jedan osnivača i direktora kompanije Mainstream, i prisutnima predstavio agendu mDay-a, govornike i teme o kojima će oni govoriti, kao i samu kompaniju. Zahvaljujući fokusu na pružanje naprednih hosting usluga i insistiranju na kvalitetu pruženih usluga, Mainstream je uspeo da brzo postane tržišni lider. O kvalitetu usluga koje pruža dovoljno govori i podatak da se od 10 najposećenijih domaćih sajtova njih čak 8 nalaze na Mainstream-ovim serverima, smeštenim u jednom od tri datacentra u Srbiji. Pored usluge managed hostinga, Mainstream odnedavno nudi i mCloud, prilagodljivi cloud hosting servis koji krajnjim korisnicima pruža mogućnost lakog i jednostavnog podizanja sopstvenih servera.

bosko radivojevic

Prvi gost bio je Miodrag Stefanović iz popularnog aukcijskog sajta Limundo. On je zadužen za razvoj dva veoma popularna domaća sajta, Limundo i Kupindo, koji imaju 300.000 poseta i oko 10 miliona prikaza stranica dnevno, a na sajtu se nalazi 1,2 miliona aktivnih predmeta kojima korisnici trguju. Da bi se ovi korisnici opslužili dovoljno brzo bilo je neophodno primeniti napredniji sistem za pretragu od uobičajene pretrage baza podataka.

mday 3

Limundo za ovu svrhu koristi Sphinx Search&Indexing Server tj. klaster sa 15 virtuelizovanih servera. Ovaj proizvod koristi tzv. princip invertovanog indeksa, a promene skoro u realnom vremenu su omogućene upotrebom diferencijalnih indeksa koji se generišu na svakih 5-60 minuta, dok se glavni indeks generiše jednom dnevno i to je proces koji traje oko sat vremena, najčešće u noćnim satima kada je opterećenje manje. Eksponencijalni rast indeksa je amortizovan skalabilnošću sistema, kroz povećanje broja servera koji opslužuju Sphinx, a iskustvo koje su stekli ukazuje da je bolje podizati veći broj servera slabije konfiguracije nego manje jačih virtuelnih serverskih instanci.

Nikola Savić iz sajta KupujemProdajem.com je predstavio način na koji su oni iskoristili MessageQueue, na sajtu koji ima 511.000 registrovanih korisnika. Messaging sistem omogućuje razmenu poruka između udaljenih delova aplikacije, a fokus je na brzom odzivu sistema i visokoj dostupnosti, pa se pored uobičajenih optimizacija koriste i keširanje, odložena obrada, i paralelno procesiranje. Sistem trenutno obrađuje i do 1000 poruka/s, a za dalji razvoj planirano je balansiranje opterećenja između više MessageQueue servera.

nikola savic

Odabrano rešenje je RabbitMQ, koji sarađuje sa Web aplikacijom i PHP skriptama koje prihvataju poruke. Koriste se dva paralelna sistema, čime se dobija na sigurnosti, pored podrške za standardni AMQP protokol ovo rešenje podržava i dodatne protokole, a među razlozima zašto je odabrano ovo rešenje su podrška za višejezično okruženje, kao i podrška za sve platforme.

Pre prve pauze Igor Lukić iz kompanije ByteOut je predstavio publici osnovne karakteristike i prednosti Web Socket-a i njihove upotrebe za obradu informacija u realnom vremenu. Uz njihovu pomoć se eliminiše glavni nedostatak HTTP protokola – odsustvo dvosmerne komunikacije. Trenutno oko 75% aktivnih Web browsera podržava Web Socket-e (Chrome od verzije 14, Firefox od verzije 11, a Internet Explorer od verzije 10), a na raspolaganju su gotova rešenja koja osluškuju Web Socket zahteve.

igor lukic

Među nezavisnim proizvodima namenjenim JS i PHP okruženjima se izdvajaju socket.io, sockJS i Ratchet, dok Java ima integrisan Web Socket API. Posle zanimljive diskusije Igorov, ali i zaključak prisutnih je bio da nema uniformnog odgovora da li na nekom sajtu treba primeniti Web Socket-e, već da se mora odlučiti prema konkretnoj situaciji i zahtevima.

Nakon kratke pauze za osveženje na scenu je izašao Marko Uskoković, Mainstream-ov System Architect sa preko 10 godina iskustva u administraciji Linux sistema. On je dao vrlo konkretne preporuke Web developerima kako da postave svoje produkciono okruženje u vidu preciznih uputstava proisteklih iz prakse rada sa nekim od najvećih i najposećenijih Web sajtova u Srbiji. Mainstream preporučuje upotrebu dupliranih resursa kako bi se postigla maksimalna pouzdanost, tako da minimalnu konfiguraciju bazira na dva frontend web servera i dve backend baze podataka, između kojih load balancer raspodeljuje opterećenje.

marko uskokovic

Zbog skalabilnosti podaci se drže na deljenim storage kapacitetima, kojima se pristupa kroz NFS protokol, a zbog stabilnosti sistema webmasterima se dodeljuje samo FTP, ne i root pristup. Među konkretnim preporukama su i sledeće: ne držite fajlove u folderu u kojem PHP može da piše, odvojite statičke od dinamičkih sadržaja, izbegavajte česte direktne/sinhrone upise u bazu, ne koristite perzistentne MySQL konekcije, planirajte mogućnost arhiviranje baze i korišćenje više baza, i odvojite generisanje podataka od serviranja podataka.

Ivan Jelić, tehnički direktor B92 Weba, je govorio o promeni paradigme u današnjem svetu i proveravao da li je Web živ. Sa konstantnim rastom prodaje mobilnih uređaja menja se način na koji korisnici pristupaju Web sadržajima, što je nešto čemu i developeri moraju da se prilagode kreirajući rešenja adaptirana za prikazivanje na mobilnim uređajima.

ivan jelic

Prema Ivanovom mišljenju važno je posvetiti dužnu pažnju razvoju posebnih aplikacija za nove platforme, bez zanemarivanja ijedne trenutno pristupne. Pored mobilnih uskoro će biti bitno obezbediti i sadržaje na drugim tipovima uređaja, kao što je na primer Smart TV.

Kao logičan nastavak na Ivanovo izlaganje sledeći su nastupili Marko Milovanović i Stevan Koprivica iz kompanije Mrežni sistemi, koja je zaslužna za razvoj B92.net. Oni su prikazali izazove koje donosi višegodišnji razvoj u timskom okruženju, i kao glavne probleme izdvojili su saradnju sa naručiocima i definisanje procedure za saradnju unutar tima. I pored primene AGILE metodologije, koja omogućava razvoj bez kompletne slike o krajnjem proizvodu, važno je imati na umu da se na dugoročnim projektima menja praktično sve – ljudi, ciljevi, zadaci – pa je neophodno definisati procedure koje će štititi razvojni proces od poremećaja.

marko milovanovic

Marko i Stevan su posebno naglasili važnost osmišljavanja strategije za integraciju svih članova tima, a kao najčešći problem sa kojim se mnogi razvojni timovi suočavaju izdvojili su nedostatak informacija o lokaciji svih potrebnih resursa, zbog čega se gubi mnogo vremena na pronalaženje tih informacija. Da bi razvoj pravilno napredovao potrebno je definisati kanale komunikacije, odrediti alate koji se koriste i uspostaviti procedure za timsko kodiranje. Naglasili su i važnost periodičnih sastanaka za rešavanje svakodnevnih problema, kao i važnost usvajanja novih alata za versioning, čime se unapređuje razvojni proces.

Pomalo neočekivana zvezda mDay-a nije bio programer, već sportista. Ivan Miljković, jedan od najuspešnijih odbojkaša svih vremena, predstavio je svoj projekat WorldOfVolley.com. Ideja ovog specifičnog portala bila je da na jednom mestu okupi sve timove i igrače i kreira neku vrstu poslovne društvene mreže za odbojkaše. Kao odgovor na pitanje kako spojiti sport, biznis i internet, nastala je jedinstvena svetska baza podataka o odbojci, sa vestima i podacima o igračima, timovima, statistikama, video snimcima i svim kontaktima. Trenutno na portalu ima oko 30.000 profila, a dnevno ima oko 5.000 posetilaca koji čitaju vesti i druge aktuelnosti iz sveta odbojke.

ivan miljjkovic

Miloš Vukosavljević iz kompanije Inbox Online, koja je razvila ovaj portal, je predstavio tehničke detalje platforme koja pokreće WorldOfVolley.com. Kao razvojna platforma korišćena je Java, a portal pokreću Apache i Tomcat. Kao najveći izazov on je izdvojio održavanje rastuće baze video snimaka utakmica, kojih trenutno ima oko 5.000 i zauzimaju skoro 8 TB prostora. Ova specifičnost je uslovila podelu portala na dva zasebna segmenta, od kojih prvi upravlja samim Web portalom, dok je drugi posvećen isključivo serviranju video fajlova.

milos vukosavljevic

Na kraju je Bojan Kovačev iz kompanije Quiddita prikazao mogućnosti .NET platforme za razvoj naprednih Web rešenja. On je naglasio važnost sistematizovanog pristupa analizi zahteva klijenata i projektovanju rešenja, kao i korišćenja višeslojne arhitekture i modularnog pristupa. U ovoj kompaniji za razvoj koriste Nhibernate ORM Framework i LINQ, koji olakšava održavanje koda i pisanje upita direktno u kodu, i radi sa svim bazama podataka, a na brzinu njihovog rada dodatno pozitivno utiče korišćenje reusable blokova i prilagođavanje postojećih biblioteka za validaciju, logovanje i multi-language podršku.

bojan kovacev

Korišćenje ASP.NET MVC-a im omogućuje kompletnu kontrolu HTML koda i dobru integraciju sa JavaScript-om, a koriste i Backbone.js framework. Dodatnu optimizaciju razvijenih rešenja donelo im je keširanje na više nivoa, dok za indeksiranje sadržaja koriste Apache Solr, kao enterprise leve rešenje koje je integrisano u samo okruženje, čime dobija na brzini i upotrebljivosti.

mday 4

Na samom kraju Boško Radivojević se ispred Mainstream-a zahvalio svim prisutnima na poseti prvom mDay-u i najavio niz sličnih događaja u narednom periodu.

 

1 komentar. Ostavi novi

Developers’ mDay u Heineken pivari | PC Press
септембар 18, 2015 10:00 am

[…] ograničenog broja mesta registracija obavezna i trajaće do popune mesta. Pogledajte kako je bilo prošle godine a ukoliko želite da prisustvujete, popunite formular na mCloud sajtu kako biste rezervisali […]

Одговори

Оставите одговор

Ваша адреса е-поште неће бити објављена. Неопходна поља су означена *