Web 2.0 sviluppare e ottimizzare oggi

Post on 08-May-2015

1.298 views 0 download

Transcript of Web 2.0 sviluppare e ottimizzare oggi

Web 2.0 sviluppare e ottimizzare oggi

alessandro cinelli (cirpo)

Chi sono

• sviluppatore Php, Javascript e Java

• membro Lugbs, Grusp, symfony-it

• traduttore documentazione symfony, zend framework e ProGit

• sviluppatore progetto phpCollab

perche’ siamo qui?

• condividere

• barcamp

• webdebs

incontri

• web 2.0 sviluppare e ottimizzare oggi

• svcs: git e svn a confronto

• symfony framework, un’introduzione

• . . .

sbadiglio

C’era una volta...

LEGO 1996

Apple 1997

Apple 2000

LEGO 2000

LEGO 2004

Apple 2004

LEGO 2010

Apple 2010

LEGO 1996

LEGO 2000

LEGO 2010

Apple 1997

Apple 2000

Apple 2004

Apple 2010

2004 - oggi2005

2004

2006

2007

Tim O’Reilly

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

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

HTML 5• canvas

• svg

• geo location

• Html5Storage

• web workers

• audio

• videohttp://diveintohtml5.org/

NoSql• Database documentali

• CouchDb

• MongoDb

• Key/Value

• MemcachedDb

• Redis

• Cassandra

YouTube

• Apache

• Python

• Mysql

• Lighthttpd(video)

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

YouTube

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

YouTube

• 11,574 al secondo

• 694,444 al minuto

• 41,666,667 all’ora

• 1,000,000,000 al giorno

Pagine servite

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

Facebook

• 8 miliardi di minuti passati complessivamente ogni giorno

• 2, 5 miliardi di foto caricate ogni settimana

• 300 milioni di utenti

FacebookLOAD BALANCER

WEBSERVER (PHP) SERVICES

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

Facebook

• php

• java

• erlang

• python

• ruby

blog devs

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

• http://developer.yahoo.com/

• http://developers.facebook.com/

strumenti di sviluppo

• svcs

• project management

• continuos integration system*

• wireframes/mockup

• ide/editor

• editor di immagini

• browser

ide

• vim

• eclipse/aptana

• netbeans

• dreamweaver

• textmate

ide/editor

monitor

• nagios

• mytop

debug lato server

• xdebug

• zend debugger

debug lato client

• firebug

• web developer

firebug

• framework

• librerie

• metodologie di sviluppo

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-

ottimizzazione lato server

• cache

• web server

• database

ottimizzazione

• yslow

• live httpheaders

ottimizzazione

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

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

http://lugbs.linux.it

sickgirl.it

sickgirl.it

sickgirl.it

ungolperlavita.it

ungolperlavita.cirpo.org

ugplv.cirpo.org

domande ?

grazie a tutti :)

• alessandro.cinelli@gmail.com

• twitter.com/cirpo

• http://delicious.com/cirpo

• http://it.linkedin.com/in/cinellialessandro