Web 2.0 sviluppare e ottimizzare oggi

65
Web 2.0 sviluppare e ottimizzare oggi alessandro cinelli (cirpo)

Transcript of Web 2.0 sviluppare e ottimizzare oggi

Page 1: Web 2.0 sviluppare e ottimizzare oggi

Web 2.0 sviluppare e ottimizzare oggi

alessandro cinelli (cirpo)

Page 2: Web 2.0 sviluppare e ottimizzare oggi

Chi sono

• sviluppatore Php, Javascript e Java

• membro Lugbs, Grusp, symfony-it

• traduttore documentazione symfony, zend framework e ProGit

• sviluppatore progetto phpCollab

Page 3: Web 2.0 sviluppare e ottimizzare oggi

perche’ siamo qui?

• condividere

• barcamp

• webdebs

Page 6: Web 2.0 sviluppare e ottimizzare oggi

incontri

• web 2.0 sviluppare e ottimizzare oggi

• svcs: git e svn a confronto

• symfony framework, un’introduzione

• . . .

Page 7: Web 2.0 sviluppare e ottimizzare oggi

sbadiglio

Page 8: Web 2.0 sviluppare e ottimizzare oggi

C’era una volta...

Page 9: Web 2.0 sviluppare e ottimizzare oggi

LEGO 1996

Page 10: Web 2.0 sviluppare e ottimizzare oggi

Apple 1997

Page 11: Web 2.0 sviluppare e ottimizzare oggi

Apple 2000

Page 12: Web 2.0 sviluppare e ottimizzare oggi

LEGO 2000

Page 13: Web 2.0 sviluppare e ottimizzare oggi

LEGO 2004

Page 14: Web 2.0 sviluppare e ottimizzare oggi

Apple 2004

Page 15: Web 2.0 sviluppare e ottimizzare oggi

LEGO 2010

Page 16: Web 2.0 sviluppare e ottimizzare oggi

Apple 2010

Page 17: Web 2.0 sviluppare e ottimizzare oggi

LEGO 1996

Page 18: Web 2.0 sviluppare e ottimizzare oggi

LEGO 2000

Page 19: Web 2.0 sviluppare e ottimizzare oggi

LEGO 2010

Page 20: Web 2.0 sviluppare e ottimizzare oggi

Apple 1997

Page 21: Web 2.0 sviluppare e ottimizzare oggi

Apple 2000

Page 22: Web 2.0 sviluppare e ottimizzare oggi

Apple 2004

Page 23: Web 2.0 sviluppare e ottimizzare oggi

Apple 2010

Page 24: Web 2.0 sviluppare e ottimizzare oggi

2004 - oggi2005

2004

2006

2007

Page 25: Web 2.0 sviluppare e ottimizzare oggi

Tim O’Reilly

http://oreilly.com/web2/archive/what-is-web-20.html

Page 26: Web 2.0 sviluppare e ottimizzare oggi

Tecnologie

flash

css3ajax flexphp

java

groovymysql

nosql

couchDb

MongoDbpython

RoRsymfony

jquery

silverlightcomet

microformat

json xml

Yui

svgHTML5

Rest

cloud

agile

canvas

gitsvn

wireframes

webservices

redis

mvc

xunitTDD

ormXHTML zend fmxsl

DOM

memcachedHadoop

websockets

erlangmapreduce

xslt

Ec2

cassandra

Page 27: Web 2.0 sviluppare e ottimizzare oggi
Page 29: Web 2.0 sviluppare e ottimizzare oggi

HTML 5• canvas

• svg

• geo location

• Html5Storage

• web workers

• audio

• videohttp://diveintohtml5.org/

Page 30: Web 2.0 sviluppare e ottimizzare oggi

NoSql• Database documentali

• CouchDb

• MongoDb

• Key/Value

• MemcachedDb

• Redis

• Cassandra

Page 31: Web 2.0 sviluppare e ottimizzare oggi
Page 32: Web 2.0 sviluppare e ottimizzare oggi

YouTube

• Apache

• Python

• Mysql

• Lighthttpd(video)

http://video.google.com/videoplay?docid=-6304964351441328559

Page 33: Web 2.0 sviluppare e ottimizzare oggi

YouTube

while (true){ identify_and_fix_bottlenecks();drink();sleep();notice_new_bottleneck();}

Page 34: Web 2.0 sviluppare e ottimizzare oggi

YouTube

• 11,574 al secondo

• 694,444 al minuto

• 41,666,667 all’ora

• 1,000,000,000 al giorno

Pagine servite

Page 35: Web 2.0 sviluppare e ottimizzare oggi

YouTube• CDN• NetScaler(Citrix) Load Balancer• Lighttpd• mini cluster per video• Estension scritte in C• Html Cache• Python Object Cache• BigTable images• Mysql

Page 36: Web 2.0 sviluppare e ottimizzare oggi
Page 37: Web 2.0 sviluppare e ottimizzare oggi

Facebook

• 8 miliardi di minuti passati complessivamente ogni giorno

• 2, 5 miliardi di foto caricate ogni settimana

• 300 milioni di utenti

Page 38: Web 2.0 sviluppare e ottimizzare oggi

FacebookLOAD BALANCER

WEBSERVER (PHP) SERVICES

DATABASE(lento, persistente) MEMCACHED(veloce, semplice)SERVICES(veloci, complessi)

Page 39: Web 2.0 sviluppare e ottimizzare oggi

Facebook

• php

• java

• erlang

• python

• ruby

Page 41: Web 2.0 sviluppare e ottimizzare oggi

blog devs

• http://code.flickr.com/blog/

• http://developer.yahoo.com/

• http://developers.facebook.com/

Page 42: Web 2.0 sviluppare e ottimizzare oggi
Page 43: Web 2.0 sviluppare e ottimizzare oggi
Page 44: Web 2.0 sviluppare e ottimizzare oggi

strumenti di sviluppo

Page 45: Web 2.0 sviluppare e ottimizzare oggi

• svcs

• project management

• continuos integration system*

• wireframes/mockup

• ide/editor

• editor di immagini

• browser

Page 46: Web 2.0 sviluppare e ottimizzare oggi

ide

• vim

• eclipse/aptana

• netbeans

• dreamweaver

• textmate

Page 47: Web 2.0 sviluppare e ottimizzare oggi

ide/editor

Page 48: Web 2.0 sviluppare e ottimizzare oggi

monitor

• nagios

• mytop

Page 49: Web 2.0 sviluppare e ottimizzare oggi

debug lato server

• xdebug

• zend debugger

Page 50: Web 2.0 sviluppare e ottimizzare oggi

debug lato client

• firebug

• web developer

Page 51: Web 2.0 sviluppare e ottimizzare oggi

firebug

Page 52: Web 2.0 sviluppare e ottimizzare oggi

• framework

• librerie

• metodologie di sviluppo

Page 53: Web 2.0 sviluppare e ottimizzare oggi

ottimizzazione

• lato server

• lato client

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil -Donald Knuth-

Page 54: Web 2.0 sviluppare e ottimizzare oggi

ottimizzazione lato server

• cache

• web server

• database

Page 55: Web 2.0 sviluppare e ottimizzare oggi

ottimizzazione

• yslow

• live httpheaders

Page 56: Web 2.0 sviluppare e ottimizzare oggi

ottimizzazione

• http://code.google.com/closure/compiler

• http://developer.yahoo.com/yui/compressor/

Page 57: Web 2.0 sviluppare e ottimizzare oggi

http://lugbs.linux.it

Page 58: Web 2.0 sviluppare e ottimizzare oggi

sickgirl.it

Page 59: Web 2.0 sviluppare e ottimizzare oggi

sickgirl.it

Page 60: Web 2.0 sviluppare e ottimizzare oggi

sickgirl.it

Page 61: Web 2.0 sviluppare e ottimizzare oggi

ungolperlavita.it

Page 62: Web 2.0 sviluppare e ottimizzare oggi

ungolperlavita.cirpo.org

Page 63: Web 2.0 sviluppare e ottimizzare oggi

ugplv.cirpo.org

Page 64: Web 2.0 sviluppare e ottimizzare oggi

domande ?