SlideShare a Scribd company logo
1 of 77
Download to read offline
pan oponka
biografia
filip@tepper.pl
http://tepper.pl/
#panoponkateam
czy gadu-gadu nie stać
na lepsze serwery?!?!?!?
stać.
“takiego blipa to ja bym
w 2 tygodnie na php
przepisał”
nie.
36
^fazibear
^filiptepper
^lotus
3662.
7913.
fajne.
nic nie działa.
mysql
:-(
memcached
:-(
sqlite
:-(
tokyo tyrant
:-(
redis
xD
xD
xD
:-(
replikacja mysql.
wackamole /
pacemaker.
aof.
bgsave.
free.
xD
równie fajne.
ruby 1.9
denormalizacja.
ALTER TABLE `updates`
ADD INDEX uid_type_index (`user_id`,
`type`);
SELECT *
FROM `updates`
WHERE
`user_id` = 123
AND
`type` = "Status"
ORDER BY `id` DESC;
<
ALTER TABLE `updates`
ADD COLUMN uid_type VARCHAR(255);
ADD INDEX uid_type_index
(`uid_type`);
SELECT *
FROM `updates`
WHERE
`uid_type` = "S-123"
ORDER BY `id` DESC;
nie sortuj.
rób to asynchronicznie.
memcached tylko w c.
pipeline.
rób w tym, co znasz.
inne genialne odkrycia.
mini_magick ssie.
html::whitelistsanitizer ssie.
vlad ssie.
starling ssie, ale nie
bardzo.
1 000 000 plików w
katalogu ssie.
0.7.3 > 0.7.2 ?
przeczytaj kod.
przeczytaj kod.
zrozum kod.
się nie udało się.
active record / sinatra.
twitter.
testy.
2 x haproxy
rozdzielanie ruchu
2 x varnish
pliki statyczne
bliplogi
api
wklejki
2 x lighttpd
pliki statyczne
2 x storage
pliki statyczne
10 x passenger
www / api
bliplog
facebook
5 x mysql
klucz-wartość
2 x 2 x sphinx
wyszukiwanie użytkowników
wyszukiwanie wiadomości
2 x memcached
cache rekordów
cache wyświetlanych elementów
2 x redis
kolejki wiadomości
odwiedzający
liczniki
2 x starling / workling
przetwarzanie wiadomości
1 x jabber
ejabberd
jabberhttp
2 x rabbitmq
kolejkowanie zadań
2 x workers
kolejkowanie wiadomości
usuwanie wiadomości
rozsyłanie e-maili
synchronizacja z twitterem
wyszukiwanie w czasie rzeczywistym
jabber / gadu-gadu
¡muchas gracias!

More Related Content

What's hot

Aplikacje internetowe real-time w oparciu o React/Redux
Aplikacje internetowe real-time w oparciu o React/ReduxAplikacje internetowe real-time w oparciu o React/Redux
Aplikacje internetowe real-time w oparciu o React/ReduxDawid Rusnak
 
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketwAsynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketwLuke Adamczewski
 
Reactive programming
Reactive programmingReactive programming
Reactive programmingSunscrapers
 
Ulepszanie aplikacji webowej z AngularJS
Ulepszanie aplikacji webowej z AngularJSUlepszanie aplikacji webowej z AngularJS
Ulepszanie aplikacji webowej z AngularJSTomasz Bak
 
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHPXdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP3camp
 

What's hot (8)

Aplikacje internetowe real-time w oparciu o React/Redux
Aplikacje internetowe real-time w oparciu o React/ReduxAplikacje internetowe real-time w oparciu o React/Redux
Aplikacje internetowe real-time w oparciu o React/Redux
 
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketwAsynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
 
Reactive programming
Reactive programmingReactive programming
Reactive programming
 
Ulepszanie aplikacji webowej z AngularJS
Ulepszanie aplikacji webowej z AngularJSUlepszanie aplikacji webowej z AngularJS
Ulepszanie aplikacji webowej z AngularJS
 
Monitoring sieci
Monitoring sieciMonitoring sieci
Monitoring sieci
 
Mongodb with Rails
Mongodb with RailsMongodb with Rails
Mongodb with Rails
 
Torquebox
TorqueboxTorquebox
Torquebox
 
Xdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHPXdebug – debugowanie i profilowanie aplikacji PHP
Xdebug – debugowanie i profilowanie aplikacji PHP
 

Viewers also liked

Artur Senk, OKE Poland, Big Data na zakupach
Artur Senk, OKE Poland, Big Data na zakupachArtur Senk, OKE Poland, Big Data na zakupach
Artur Senk, OKE Poland, Big Data na zakupach3camp
 
Przetwarzanie asynchroniczne w zastosowaniach webowych
Przetwarzanie asynchroniczne w zastosowaniach webowychPrzetwarzanie asynchroniczne w zastosowaniach webowych
Przetwarzanie asynchroniczne w zastosowaniach webowychleafnode
 
Evented applications with RabbitMQ and CakePHP
Evented applications with RabbitMQ and CakePHPEvented applications with RabbitMQ and CakePHP
Evented applications with RabbitMQ and CakePHPmarkstory
 
Agregacja i analiza logów
Agregacja i analiza logówAgregacja i analiza logów
Agregacja i analiza logówDivante
 
O wyprawie królika przez maszynkę do gniazdka, czyli EventMachine w praktyce
O wyprawie królika przez maszynkę do gniazdka, czyli EventMachine w praktyceO wyprawie królika przez maszynkę do gniazdka, czyli EventMachine w praktyce
O wyprawie królika przez maszynkę do gniazdka, czyli EventMachine w praktyceThe Software House
 
RabbitMQ with python and ruby RuPy 2009
RabbitMQ with python and ruby RuPy 2009RabbitMQ with python and ruby RuPy 2009
RabbitMQ with python and ruby RuPy 2009Paolo Negri
 
Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)Chris Richardson
 

Viewers also liked (7)

Artur Senk, OKE Poland, Big Data na zakupach
Artur Senk, OKE Poland, Big Data na zakupachArtur Senk, OKE Poland, Big Data na zakupach
Artur Senk, OKE Poland, Big Data na zakupach
 
Przetwarzanie asynchroniczne w zastosowaniach webowych
Przetwarzanie asynchroniczne w zastosowaniach webowychPrzetwarzanie asynchroniczne w zastosowaniach webowych
Przetwarzanie asynchroniczne w zastosowaniach webowych
 
Evented applications with RabbitMQ and CakePHP
Evented applications with RabbitMQ and CakePHPEvented applications with RabbitMQ and CakePHP
Evented applications with RabbitMQ and CakePHP
 
Agregacja i analiza logów
Agregacja i analiza logówAgregacja i analiza logów
Agregacja i analiza logów
 
O wyprawie królika przez maszynkę do gniazdka, czyli EventMachine w praktyce
O wyprawie królika przez maszynkę do gniazdka, czyli EventMachine w praktyceO wyprawie królika przez maszynkę do gniazdka, czyli EventMachine w praktyce
O wyprawie królika przez maszynkę do gniazdka, czyli EventMachine w praktyce
 
RabbitMQ with python and ruby RuPy 2009
RabbitMQ with python and ruby RuPy 2009RabbitMQ with python and ruby RuPy 2009
RabbitMQ with python and ruby RuPy 2009
 
Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)Microservices + Events + Docker = A Perfect Trio (dockercon)
Microservices + Events + Docker = A Perfect Trio (dockercon)
 

More from Filip Tepper

Getting the most out of your Ruby on Rails applications: from zero to hero
Getting the most out of your Ruby on Rails applications: from zero to heroGetting the most out of your Ruby on Rails applications: from zero to hero
Getting the most out of your Ruby on Rails applications: from zero to heroFilip Tepper
 
OpenReaktor, Not Only SQL
OpenReaktor, Not Only SQLOpenReaktor, Not Only SQL
OpenReaktor, Not Only SQLFilip Tepper
 
WebClusters, Redis
WebClusters, RedisWebClusters, Redis
WebClusters, RedisFilip Tepper
 
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]Filip Tepper
 
API. Czy warto i dlaczego tak?
API. Czy warto i dlaczego tak?API. Czy warto i dlaczego tak?
API. Czy warto i dlaczego tak?Filip Tepper
 

More from Filip Tepper (7)

ls &
ls &ls &
ls &
 
Getting the most out of your Ruby on Rails applications: from zero to hero
Getting the most out of your Ruby on Rails applications: from zero to heroGetting the most out of your Ruby on Rails applications: from zero to hero
Getting the most out of your Ruby on Rails applications: from zero to hero
 
OpenReaktor, Not Only SQL
OpenReaktor, Not Only SQLOpenReaktor, Not Only SQL
OpenReaktor, Not Only SQL
 
WebClusters, Redis
WebClusters, RedisWebClusters, Redis
WebClusters, Redis
 
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
NoSQL i dlaczego go nie potrzebujesz? [OlCamp]
 
Redis at WRUG
Redis at WRUGRedis at WRUG
Redis at WRUG
 
API. Czy warto i dlaczego tak?
API. Czy warto i dlaczego tak?API. Czy warto i dlaczego tak?
API. Czy warto i dlaczego tak?
 

Pan Oponka - Biografia