SlideShare a Scribd company logo
1 of 19
Kiedy popularność jest pocałunkiem śmierci... Skalowalność serwisów internetowych w dobie Web 2.0 Piotr Karwatka - Biznes20.pl
Kiedy oglądalność jest pocałunkiem śmierci Web 1.0 – read, Web 2.0 – read &  write - serwisy web 2.0 nie wiedzą kiedy i z jakim impetem ich treści zostaną rozbudowane, - serwisy muszą być przygotowane na nagły wzrost liczby użytkowników ... ... ale  nie wszystkie  są przygotowane .... :-) ‏ - co odróżnia jedne serwisy od drugich? nasza-klasa.pl youtube.com Piotr Karwatka - Biznes20.pl
Dlaczego istnieje problem? Przyczyny: - dobra architektura jest droga? (niekoniecznie),  - „pomyślimy o tym, gdy stanie się problemem” (za późno!), - programowanie w ruby/php/python/asp.net jest proste! :-), - korzystamy z gotowych, „profesjonalnych” rozwiązań! większość oprogramowania jest  źle zaprojektowana gro popularnego oprogramowania  jest źle zaprojektowane i  bardzo trudne w skalowaniu! Jeśli używasz osCommerce, Drupala lub Joomli  przyhamuj swoich marketingowców! ( ) ‏ ... i co my teraz zrobimy? Piotr Karwatka - Biznes20.pl
Skalowanie aplikacji jest proste... 1.   Technologie - większość największych serwisów korzysta z PHP i MySQL, - cudeńka jak RoR mogą być pułapką ..., - ... ale to nie prawda że języki/technologie są mniej lub bardziej skalowalne.... - ceny rozwiązań komercyjnych rosną wykładniczo wraz ze skalą! „ Każdy nowy język programowania jest jak nowa dziewczyna – nasz związek jest   lepszy, bo JA jestem lepszym programistą!” pingdom.com Piotr Karwatka - Biznes20.pl
Skalowanie aplikacji jest proste... 2. Architektura aplikacji ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Piotr Karwatka - Biznes20.pl
- używaj bytecodu (w PHP -> APC, Xcache), -  optymalizuj /profiluj, optymalizuj/profiluj, optymalizuj/profiluj   - ale nie za wcześnie!, - wykrywaj wcześnie wąskie gardła - najczęściej dostęp do danych i I/O, - używaj  cache'u  aby je zlikwidować (memcached!) ‏ - to jest  pierwszy krok . Skalowanie aplikacji jest proste... Zrobiłem to wszystko. Co dalej? Piotr Karwatka - Biznes20.pl
Skalowanie aplikacji jest proste... 3. Skalowanie aplikacji na poziomie sprzętu -  pionowe  - więcej ramu, lepsze CPU -> szybko docieramy do granic, drogie!   - ale pomoże bez żadnych zmian w aplikacji -  poziome  – więcej tanich serwerów -> nie ma granic (w teorii!) ‏ - ale też ew. problemy ze stanem sesji,    trudniejsza konfiguracja,  trudniejsze zarządzanie  (capistrano?) ‏ - większa dostępność aplikacji (n+1, 2n ...) ‏ - darmowe loadbalancery na poziomie aplikacji ( perlball ,  nginx  jako proxy, o dchudzony apache  jako proxy, .. serwer DNS?),  - sprzętowe (cisco!) lepsze ale droższe, sporo droższe. Piotr Karwatka - Biznes20.pl
koszt ilość cpu skalowanie pionowe skalowanie poziome Skalowanie aplikacji jest proste... ... + = Piotr Karwatka - Biznes20.pl
Skalowanie aplikacji jest proste... 4. Gotowe rozwiązania – EC2 (+enomalism.com), 3tera,  rightscale.com ... + nie wymagają opieki nad własnym środowiskiem sprzętowym, + łatwe w konfiguracji i zarządzaniu (zarządzanie obrazami systemów), + przezroczysta obsługa wielu centrów danych – maksymalna odporność na awarie, + tanie przy małych i średnich projektach (kilka centów za godzinę pracy), +  odporność na skoki ! - ale drooogie przy dużych rozwiązaniach, - skalowanie  tylko aplikacji oraz storage wirtualizacja środowiska, elastyczne chmury obliczeniowe Piotr Karwatka - Biznes20.pl
Skalowanie aplikacji jest proste... ... ale bazy danych nie! - rdbms to najczęstsze wąskie gardło – połączenia, req/s, -  nie ma jednego – właściwego rozwiązania  a naprawdę skalowalne    rozwiązania są trudne! Unikaj skomplikowanych rozwiązań póki to możliwe: 1) Przechwytuj wolne kwerendy i je optymalizuj - używaj profilowania i EXPLAIN (mysql) ‏ - optymalizuj strukturę (indeksy, denomralizacja jeśli potrzebna), 2) Używaj  cache  na poziomie dostępu do danych    (nie cache.. tylko memcached!) ‏ cache db SELECT ..... FROM ... Hit - 90% Miss - 10% Nie żartuj... to wszystko dawno zrobiłem! Piotr Karwatka - Biznes20.pl
Skalowanie aplikacji jest proste... ... ale bazy danych nie! Replikacja – odporność na awarie, szybkość dostępu + wiele punktów dostępu do danych  –  większe req/s i odporność na awarie  Zyski: + aplikacja która dużo czyta, mało pisze: - aplikacja która dużo czyta i dużo pisze: - opóźnienia replikacji, - sesje użytkowników + tworzenie wyspecjalizowanych serwerów DB    (kilka tabel, wyszukiwanie...), master slave master master master master master master TB: users TB: photos :-( :-) ‏ Piotr Karwatka - Biznes20.pl
Skalowanie aplikacji jest proste... ... ale bazy danych nie! Partycjonowanie – skalowanie poziome bazy danych Partycjonowanie pionowe Partycjonowanie poziome - federacja - różne tabele na różnych hostach, - prosta implementacja (replikacja), - szybko dochodzimy do ściany - podział  ogromnej tabeli  pomiędzy różne serwery, - umożliwia tworzenie  user-clusterów - bardzo dobre zrównoważenie zapisów i odczytów, - nigdy nie dochodzimy do ściany A - F G - O P - Z A - Z A - Z A - Z A - Z 1 2 3 A - Z 4 .... Table3 JOIN Table2 ??? ... WHERE Table.Imie = 'Alfons'    AND Table.Imie = 'Zenon' ??? Piotr Karwatka - Biznes20.pl
A co z moimi fotkami? ” Jeden  nginx  znaczy więcej niż 1000 apachy” - wydziel serwery dla treści statycznych (static.serwis.pl?)  -  dla fotek, CSS, JS ... Pliki użytkowników szybko rosną? 1) RAID (0, 01...) 2)  NAS  – (NetApp  FAS ?) – stosunkowo drogie, bardzo szybkie,    automatyczne kopie,   rozmiary powyżej 500TB, 3) Clustered File Systems (MogileFS, odłamki NFS/SMB/FTP) – chcesz być jak  Google? :-) automatyczna replikacja na wielu serwerach, odporność na problemy,  szybkość przy szybkiej sieci, 4) CDN (Akamai ...) – serwujesz 300 tys. strumieni wideo na raz? 5) S3 – CDN dla ubogich – stosunkowo wolny, tani przy małych i średnich    ilościach danych, drogi przy duuużej skali! One rosną jeszcze szybciej! Piotr Karwatka - Biznes20.pl
Jak się przeskalować? primo:  o ile to możliwe, projektuj z myślą o skalowaniu poziomym, 1) ‏ - skaluj pionowo dokąd tylko się da: - optymalizuj to co wykorzystuje wąskie gardła, - korzystaj z Cache gdzie tylko można, - umieść bazę danych na osobnym serwerze 2) ‏ - wydziel serwery dla obrazków i plików statycznych, - dodaj kolejne serwery aplikacji, - stwórz klaster cache, - stosuj serwery storage – a jeśli to za mało twórz klastry rozproszonego systemu plików, - zastosuj serwery reverse proxy (SQUID, Varnish) ‏ 3) ‏ - skaluj bazę danych korzystając z replikacji, - ... ale dąż do skalowania poziomego o ile to możliwe rosnące  koszta + + + + + + ... ... + + + proxy www sql memcache storage ... ... Piotr Karwatka - Biznes20.pl
Jeśli jesteś tutaj to masz  przynajmniej milion  użytkowników!  ;-) 4) ‏ Jak się przeskalować? Piotr Karwatka - Biznes20.pl
http://highscalability.com/flickr-architecture Piotr Karwatka - Biznes20.pl
LiveJournal http://highscalability.com/livejournal-architecture Piotr Karwatka - Biznes20.pl
Co dalej? - PaaS - persistance as a service (Google BigTable, GigaSpaces IMDG,    Microsoft SQL) - platform as a service – Google AppEngine (wymaga pythona, beta testy,  darmowe do 5000 000 odsłon miesięcznie!) ‏ Zupełna  abstrakcja ! + nowe podejście do wytwarzania aplikacji, + rezygnacja z typowych baz danych na rzecz operacji na abstrakcjach obiektowych, + cała platforma -> WWW, DB, Storage jako usługa. Chcesz korzystać z infrastruktury wyszukiwarki google? - bardzo trudna zmiana platformy technologicznej! Praktycznie niemożliwa, - brak łatwych rozwiązań przejściowych Piotr Karwatka - Biznes20.pl
Q & A  [email_address] Biznes20.pl Bizneswiki.pl Piotr Karwatka - Biznes20.pl

More Related Content

What's hot

PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...
PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...
PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...PROIDEA
 
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danych
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danychProjektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danych
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danychAntoni Orfin
 
PLNOG 3: Tomasz Paszkowski Wysokowydajny system składowania plików graficzny...
PLNOG 3: Tomasz Paszkowski  Wysokowydajny system składowania plików graficzny...PLNOG 3: Tomasz Paszkowski  Wysokowydajny system składowania plików graficzny...
PLNOG 3: Tomasz Paszkowski Wysokowydajny system składowania plików graficzny...PROIDEA
 
Złam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDKZłam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDKSemihalf
 
PLNOG16: Integracja Ceph w OpenStack - status i przyszłość, Paweł Stefański
PLNOG16: Integracja Ceph w OpenStack - status i przyszłość, Paweł StefańskiPLNOG16: Integracja Ceph w OpenStack - status i przyszłość, Paweł Stefański
PLNOG16: Integracja Ceph w OpenStack - status i przyszłość, Paweł StefańskiPROIDEA
 
Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Divante
 
GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...
GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...
GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...GOG.com dev team
 
Marcin Motylski - Globalna Chmura Obliczeniowa
Marcin Motylski - Globalna Chmura ObliczeniowaMarcin Motylski - Globalna Chmura Obliczeniowa
Marcin Motylski - Globalna Chmura ObliczeniowaPROIDEA
 
Dystrybucja gier w świecie online, przykład architektury webowego systemu ro...
Dystrybucja gier w świecie online, przykład architektury webowego systemu ro...Dystrybucja gier w świecie online, przykład architektury webowego systemu ro...
Dystrybucja gier w świecie online, przykład architektury webowego systemu ro...GOG.com dev team
 
Czym jest złożoność ?
Czym jest złożoność ?Czym jest złożoność ?
Czym jest złożoność ?GOG.com dev team
 
Ochrona przed atakami DDoS na platformie x86. Czy można mieć jednocześnie wyd...
Ochrona przed atakami DDoS na platformie x86. Czy można mieć jednocześnie wyd...Ochrona przed atakami DDoS na platformie x86. Czy można mieć jednocześnie wyd...
Ochrona przed atakami DDoS na platformie x86. Czy można mieć jednocześnie wyd...Redge Technologies
 
100Mpps czyli jak radzić sobie z atakami DDoS?
100Mpps czyli jak radzić sobie z atakami DDoS?100Mpps czyli jak radzić sobie z atakami DDoS?
100Mpps czyli jak radzić sobie z atakami DDoS?Redge Technologies
 
PLNOG 18 - Marcin Motylski - Budowa wirtualnego Data Center
PLNOG 18 - Marcin Motylski - Budowa wirtualnego Data CenterPLNOG 18 - Marcin Motylski - Budowa wirtualnego Data Center
PLNOG 18 - Marcin Motylski - Budowa wirtualnego Data CenterPROIDEA
 
PLNOG 18 - Sebastian Pasternacki - Bezpieczeństwo sieci operatorskich oraz en...
PLNOG 18 - Sebastian Pasternacki - Bezpieczeństwo sieci operatorskich oraz en...PLNOG 18 - Sebastian Pasternacki - Bezpieczeństwo sieci operatorskich oraz en...
PLNOG 18 - Sebastian Pasternacki - Bezpieczeństwo sieci operatorskich oraz en...PROIDEA
 
Citrix provisioning services
Citrix provisioning servicesCitrix provisioning services
Citrix provisioning servicesPawel Serwan
 
100 M pakietów na sekundę dla każdego.
100 M pakietów na sekundę dla każdego. 100 M pakietów na sekundę dla każdego.
100 M pakietów na sekundę dla każdego. Redge Technologies
 
PLNOG 21: Marcin Motylski - Bezpieczeństwo_i_Firewalle_w_Multi_Cloud / Data _...
PLNOG 21: Marcin Motylski - Bezpieczeństwo_i_Firewalle_w_Multi_Cloud / Data _...PLNOG 21: Marcin Motylski - Bezpieczeństwo_i_Firewalle_w_Multi_Cloud / Data _...
PLNOG 21: Marcin Motylski - Bezpieczeństwo_i_Firewalle_w_Multi_Cloud / Data _...PROIDEA
 
Adam Selin - Na czym WordPress stoi. O serwerach słów kilka
Adam Selin - Na czym WordPress stoi. O serwerach słów kilkaAdam Selin - Na czym WordPress stoi. O serwerach słów kilka
Adam Selin - Na czym WordPress stoi. O serwerach słów kilkaLeriss
 
PLNOG16: Budowa DC Świadczenie usług dla klientów, Łukasz Bromirski, Piotr ...
PLNOG16: Budowa DC Świadczenie usług dla klientów, Łukasz Bromirski, Piotr ...PLNOG16: Budowa DC Świadczenie usług dla klientów, Łukasz Bromirski, Piotr ...
PLNOG16: Budowa DC Świadczenie usług dla klientów, Łukasz Bromirski, Piotr ...PROIDEA
 

What's hot (20)

PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...
PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...
PLNOG 6: Łukasz Jagiełło - Wdrożenie skalowalnego systemu plików GlusterFS w ...
 
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danych
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danychProjektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danych
Projektowanie wysokowydajnych i skalowalnych serwisów WWW - Warstwa danych
 
PLNOG 3: Tomasz Paszkowski Wysokowydajny system składowania plików graficzny...
PLNOG 3: Tomasz Paszkowski  Wysokowydajny system składowania plików graficzny...PLNOG 3: Tomasz Paszkowski  Wysokowydajny system składowania plików graficzny...
PLNOG 3: Tomasz Paszkowski Wysokowydajny system składowania plików graficzny...
 
Złam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDKZłam zasady i stwórz wydajny stos IP przy użyciu DPDK
Złam zasady i stwórz wydajny stos IP przy użyciu DPDK
 
PLNOG16: Integracja Ceph w OpenStack - status i przyszłość, Paweł Stefański
PLNOG16: Integracja Ceph w OpenStack - status i przyszłość, Paweł StefańskiPLNOG16: Integracja Ceph w OpenStack - status i przyszłość, Paweł Stefański
PLNOG16: Integracja Ceph w OpenStack - status i przyszłość, Paweł Stefański
 
Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13Skalowalność Magento - MMPL13
Skalowalność Magento - MMPL13
 
GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...
GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...
GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej...
 
Marcin Motylski - Globalna Chmura Obliczeniowa
Marcin Motylski - Globalna Chmura ObliczeniowaMarcin Motylski - Globalna Chmura Obliczeniowa
Marcin Motylski - Globalna Chmura Obliczeniowa
 
Dystrybucja gier w świecie online, przykład architektury webowego systemu ro...
Dystrybucja gier w świecie online, przykład architektury webowego systemu ro...Dystrybucja gier w świecie online, przykład architektury webowego systemu ro...
Dystrybucja gier w świecie online, przykład architektury webowego systemu ro...
 
Czym jest złożoność ?
Czym jest złożoność ?Czym jest złożoność ?
Czym jest złożoność ?
 
Ochrona przed atakami DDoS na platformie x86. Czy można mieć jednocześnie wyd...
Ochrona przed atakami DDoS na platformie x86. Czy można mieć jednocześnie wyd...Ochrona przed atakami DDoS na platformie x86. Czy można mieć jednocześnie wyd...
Ochrona przed atakami DDoS na platformie x86. Czy można mieć jednocześnie wyd...
 
100Mpps czyli jak radzić sobie z atakami DDoS?
100Mpps czyli jak radzić sobie z atakami DDoS?100Mpps czyli jak radzić sobie z atakami DDoS?
100Mpps czyli jak radzić sobie z atakami DDoS?
 
PLNOG 18 - Marcin Motylski - Budowa wirtualnego Data Center
PLNOG 18 - Marcin Motylski - Budowa wirtualnego Data CenterPLNOG 18 - Marcin Motylski - Budowa wirtualnego Data Center
PLNOG 18 - Marcin Motylski - Budowa wirtualnego Data Center
 
PLNOG 18 - Sebastian Pasternacki - Bezpieczeństwo sieci operatorskich oraz en...
PLNOG 18 - Sebastian Pasternacki - Bezpieczeństwo sieci operatorskich oraz en...PLNOG 18 - Sebastian Pasternacki - Bezpieczeństwo sieci operatorskich oraz en...
PLNOG 18 - Sebastian Pasternacki - Bezpieczeństwo sieci operatorskich oraz en...
 
Citrix provisioning services
Citrix provisioning servicesCitrix provisioning services
Citrix provisioning services
 
100 M pakietów na sekundę dla każdego.
100 M pakietów na sekundę dla każdego. 100 M pakietów na sekundę dla każdego.
100 M pakietów na sekundę dla każdego.
 
PLNOG 21: Marcin Motylski - Bezpieczeństwo_i_Firewalle_w_Multi_Cloud / Data _...
PLNOG 21: Marcin Motylski - Bezpieczeństwo_i_Firewalle_w_Multi_Cloud / Data _...PLNOG 21: Marcin Motylski - Bezpieczeństwo_i_Firewalle_w_Multi_Cloud / Data _...
PLNOG 21: Marcin Motylski - Bezpieczeństwo_i_Firewalle_w_Multi_Cloud / Data _...
 
Adam Selin - Na czym WordPress stoi. O serwerach słów kilka
Adam Selin - Na czym WordPress stoi. O serwerach słów kilkaAdam Selin - Na czym WordPress stoi. O serwerach słów kilka
Adam Selin - Na czym WordPress stoi. O serwerach słów kilka
 
PLNOG16: Budowa DC Świadczenie usług dla klientów, Łukasz Bromirski, Piotr ...
PLNOG16: Budowa DC Świadczenie usług dla klientów, Łukasz Bromirski, Piotr ...PLNOG16: Budowa DC Świadczenie usług dla klientów, Łukasz Bromirski, Piotr ...
PLNOG16: Budowa DC Świadczenie usług dla klientów, Łukasz Bromirski, Piotr ...
 
PHP-PM. Hit czy kit?
PHP-PM. Hit czy kit?PHP-PM. Hit czy kit?
PHP-PM. Hit czy kit?
 

Similar to Pocałunek śmierci

Optymalizacja hostingu
Optymalizacja hostinguOptymalizacja hostingu
Optymalizacja hostinguDivante
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz
 
PLNOG 13: Adam Heczko: Openstack, Ceph, SDN
PLNOG 13: Adam Heczko: Openstack, Ceph, SDNPLNOG 13: Adam Heczko: Openstack, Ceph, SDN
PLNOG 13: Adam Heczko: Openstack, Ceph, SDNPROIDEA
 
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.Wojciech Barczyński
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...The Software House
 
[#2] architektura - IBM Integrated Analytics System
[#2] architektura - IBM Integrated Analytics System[#2] architektura - IBM Integrated Analytics System
[#2] architektura - IBM Integrated Analytics SystemArtur Wronski
 
Optimizing Drupal Performance (Polish)
Optimizing Drupal Performance (Polish)Optimizing Drupal Performance (Polish)
Optimizing Drupal Performance (Polish)Timur Kamanin
 
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr BuckiPROIDEA
 
Jak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayJak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayTomasz Dziuda
 
Serwery i hosting w służbie SEO
Serwery i hosting w służbie SEOSerwery i hosting w służbie SEO
Serwery i hosting w służbie SEOSilesia SEM
 
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.comNGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.comLeszek Mi?
 
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...Michal Furmankiewicz
 
IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl 3camp
 
Michał Dec - Quality in Clouds
Michał Dec - Quality in CloudsMichał Dec - Quality in Clouds
Michał Dec - Quality in Cloudskraqa
 
CISSPDAY 2011 - 2 AM A Disaster just Began
CISSPDAY 2011 - 2 AM A Disaster just BeganCISSPDAY 2011 - 2 AM A Disaster just Began
CISSPDAY 2011 - 2 AM A Disaster just BeganTobias Koprowski
 

Similar to Pocałunek śmierci (20)

Optymalizacja hostingu
Optymalizacja hostinguOptymalizacja hostingu
Optymalizacja hostingu
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
 
PLNOG 13: Adam Heczko: Openstack, Ceph, SDN
PLNOG 13: Adam Heczko: Openstack, Ceph, SDNPLNOG 13: Adam Heczko: Openstack, Ceph, SDN
PLNOG 13: Adam Heczko: Openstack, Ceph, SDN
 
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
Wprowadzenie do Kubernetesa. K8S jako nowy Linux.
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
 
[#2] architektura - IBM Integrated Analytics System
[#2] architektura - IBM Integrated Analytics System[#2] architektura - IBM Integrated Analytics System
[#2] architektura - IBM Integrated Analytics System
 
Optimizing Drupal Performance (Polish)
Optimizing Drupal Performance (Polish)Optimizing Drupal Performance (Polish)
Optimizing Drupal Performance (Polish)
 
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
4Developers 2015: Frameworki jee vs cross-site scripting (xss) - Piotr Bucki
 
Jak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayJak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training Day
 
Serwery i hosting w służbie SEO
Serwery i hosting w służbie SEOSerwery i hosting w służbie SEO
Serwery i hosting w służbie SEO
 
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.comNGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.com
NGSec 2016 - Ile warstw, tyle szans. - Leszek Miś@Defensive-Security.com
 
Wprowadzenie do Microsoft Azure
Wprowadzenie do Microsoft AzureWprowadzenie do Microsoft Azure
Wprowadzenie do Microsoft Azure
 
OpenEmbedded
OpenEmbeddedOpenEmbedded
OpenEmbedded
 
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
 
It od kuchni w nokaut.pl
It od kuchni w nokaut.plIt od kuchni w nokaut.pl
It od kuchni w nokaut.pl
 
IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl IT od kuchni w Nokaut.pl
IT od kuchni w Nokaut.pl
 
Od Zera do Farmera
Od Zera do FarmeraOd Zera do Farmera
Od Zera do Farmera
 
Michał Dec - Quality in Clouds
Michał Dec - Quality in CloudsMichał Dec - Quality in Clouds
Michał Dec - Quality in Clouds
 
CISSPDAY 2011 - 2 AM A Disaster just Began
CISSPDAY 2011 - 2 AM A Disaster just BeganCISSPDAY 2011 - 2 AM A Disaster just Began
CISSPDAY 2011 - 2 AM A Disaster just Began
 
MySQL
MySQLMySQL
MySQL
 

More from Divante

How to spin off the product from the agency
How to spin off the product from the agencyHow to spin off the product from the agency
How to spin off the product from the agencyDivante
 
I love-marketing - Technologie w ktore warto inwestowac w eCommerce
I love-marketing - Technologie w ktore warto inwestowac w eCommerceI love-marketing - Technologie w ktore warto inwestowac w eCommerce
I love-marketing - Technologie w ktore warto inwestowac w eCommerceDivante
 
Zaskakujące czynniki porażek we wdrażaniu Omnichanel i eCommerce
Zaskakujące czynniki porażek we wdrażaniu Omnichanel i eCommerce Zaskakujące czynniki porażek we wdrażaniu Omnichanel i eCommerce
Zaskakujące czynniki porażek we wdrażaniu Omnichanel i eCommerce Divante
 
Sprzedaż rozwiązuje wszystkie problemy
Sprzedaż rozwiązuje wszystkie problemySprzedaż rozwiązuje wszystkie problemy
Sprzedaż rozwiązuje wszystkie problemyDivante
 
Wejście do Omnichannel - 5 czynników sukcesu
Wejście do Omnichannel - 5 czynników sukcesuWejście do Omnichannel - 5 czynników sukcesu
Wejście do Omnichannel - 5 czynników sukcesuDivante
 
Wysoka skalowalność systemu e-commerce na przykładzie magento
Wysoka skalowalność systemu e-commerce na przykładzie magentoWysoka skalowalność systemu e-commerce na przykładzie magento
Wysoka skalowalność systemu e-commerce na przykładzie magentoDivante
 
Wzorce projektowe w Magento
Wzorce projektowe w MagentoWzorce projektowe w Magento
Wzorce projektowe w MagentoDivante
 
Agregacja i analiza logów
Agregacja i analiza logówAgregacja i analiza logów
Agregacja i analiza logówDivante
 
Code review
Code reviewCode review
Code reviewDivante
 
CDP.pl - tech case study by Divante
CDP.pl - tech case study by DivanteCDP.pl - tech case study by Divante
CDP.pl - tech case study by DivanteDivante
 
Kongres eHandlu - Przyszłość e-Commerce
Kongres eHandlu - Przyszłość e-CommerceKongres eHandlu - Przyszłość e-Commerce
Kongres eHandlu - Przyszłość e-CommerceDivante
 
Jak mierzyć e-Commerce - Big Data w e-Commerce
Jak mierzyć e-Commerce - Big Data w e-CommerceJak mierzyć e-Commerce - Big Data w e-Commerce
Jak mierzyć e-Commerce - Big Data w e-CommerceDivante
 
Sprzeda zagraniczna case study funmedia-bart-omiej postek
Sprzeda  zagraniczna case study funmedia-bart-omiej postekSprzeda  zagraniczna case study funmedia-bart-omiej postek
Sprzeda zagraniczna case study funmedia-bart-omiej postekDivante
 
Sprzeda zagraniczna case study divante-tomasz karwatka
Sprzeda  zagraniczna case study divante-tomasz karwatkaSprzeda  zagraniczna case study divante-tomasz karwatka
Sprzeda zagraniczna case study divante-tomasz karwatkaDivante
 
Sprzeda saa s via facebook-catvertiser_mi-osz belter
Sprzeda  saa s via facebook-catvertiser_mi-osz belterSprzeda  saa s via facebook-catvertiser_mi-osz belter
Sprzeda saa s via facebook-catvertiser_mi-osz belterDivante
 
Saa s sales funnel brand24_mick griffin
Saa s sales funnel brand24_mick griffinSaa s sales funnel brand24_mick griffin
Saa s sales funnel brand24_mick griffinDivante
 
Predictable revenue w praktyce usability tools_jakub królikowski
Predictable revenue w praktyce usability tools_jakub królikowskiPredictable revenue w praktyce usability tools_jakub królikowski
Predictable revenue w praktyce usability tools_jakub królikowskiDivante
 
Jak eskportuj polskie spó-ki technol right-hello_bartosz majewski
Jak eskportuj  polskie spó-ki technol right-hello_bartosz majewskiJak eskportuj  polskie spó-ki technol right-hello_bartosz majewski
Jak eskportuj polskie spó-ki technol right-hello_bartosz majewskiDivante
 
10 b -dów przy wprowadzaniu e commerce na rynki zagr-goralewicz.co_bartosz gó...
10 b -dów przy wprowadzaniu e commerce na rynki zagr-goralewicz.co_bartosz gó...10 b -dów przy wprowadzaniu e commerce na rynki zagr-goralewicz.co_bartosz gó...
10 b -dów przy wprowadzaniu e commerce na rynki zagr-goralewicz.co_bartosz gó...Divante
 
Quick Wins w e-Commerce
Quick Wins w e-CommerceQuick Wins w e-Commerce
Quick Wins w e-CommerceDivante
 

More from Divante (20)

How to spin off the product from the agency
How to spin off the product from the agencyHow to spin off the product from the agency
How to spin off the product from the agency
 
I love-marketing - Technologie w ktore warto inwestowac w eCommerce
I love-marketing - Technologie w ktore warto inwestowac w eCommerceI love-marketing - Technologie w ktore warto inwestowac w eCommerce
I love-marketing - Technologie w ktore warto inwestowac w eCommerce
 
Zaskakujące czynniki porażek we wdrażaniu Omnichanel i eCommerce
Zaskakujące czynniki porażek we wdrażaniu Omnichanel i eCommerce Zaskakujące czynniki porażek we wdrażaniu Omnichanel i eCommerce
Zaskakujące czynniki porażek we wdrażaniu Omnichanel i eCommerce
 
Sprzedaż rozwiązuje wszystkie problemy
Sprzedaż rozwiązuje wszystkie problemySprzedaż rozwiązuje wszystkie problemy
Sprzedaż rozwiązuje wszystkie problemy
 
Wejście do Omnichannel - 5 czynników sukcesu
Wejście do Omnichannel - 5 czynników sukcesuWejście do Omnichannel - 5 czynników sukcesu
Wejście do Omnichannel - 5 czynników sukcesu
 
Wysoka skalowalność systemu e-commerce na przykładzie magento
Wysoka skalowalność systemu e-commerce na przykładzie magentoWysoka skalowalność systemu e-commerce na przykładzie magento
Wysoka skalowalność systemu e-commerce na przykładzie magento
 
Wzorce projektowe w Magento
Wzorce projektowe w MagentoWzorce projektowe w Magento
Wzorce projektowe w Magento
 
Agregacja i analiza logów
Agregacja i analiza logówAgregacja i analiza logów
Agregacja i analiza logów
 
Code review
Code reviewCode review
Code review
 
CDP.pl - tech case study by Divante
CDP.pl - tech case study by DivanteCDP.pl - tech case study by Divante
CDP.pl - tech case study by Divante
 
Kongres eHandlu - Przyszłość e-Commerce
Kongres eHandlu - Przyszłość e-CommerceKongres eHandlu - Przyszłość e-Commerce
Kongres eHandlu - Przyszłość e-Commerce
 
Jak mierzyć e-Commerce - Big Data w e-Commerce
Jak mierzyć e-Commerce - Big Data w e-CommerceJak mierzyć e-Commerce - Big Data w e-Commerce
Jak mierzyć e-Commerce - Big Data w e-Commerce
 
Sprzeda zagraniczna case study funmedia-bart-omiej postek
Sprzeda  zagraniczna case study funmedia-bart-omiej postekSprzeda  zagraniczna case study funmedia-bart-omiej postek
Sprzeda zagraniczna case study funmedia-bart-omiej postek
 
Sprzeda zagraniczna case study divante-tomasz karwatka
Sprzeda  zagraniczna case study divante-tomasz karwatkaSprzeda  zagraniczna case study divante-tomasz karwatka
Sprzeda zagraniczna case study divante-tomasz karwatka
 
Sprzeda saa s via facebook-catvertiser_mi-osz belter
Sprzeda  saa s via facebook-catvertiser_mi-osz belterSprzeda  saa s via facebook-catvertiser_mi-osz belter
Sprzeda saa s via facebook-catvertiser_mi-osz belter
 
Saa s sales funnel brand24_mick griffin
Saa s sales funnel brand24_mick griffinSaa s sales funnel brand24_mick griffin
Saa s sales funnel brand24_mick griffin
 
Predictable revenue w praktyce usability tools_jakub królikowski
Predictable revenue w praktyce usability tools_jakub królikowskiPredictable revenue w praktyce usability tools_jakub królikowski
Predictable revenue w praktyce usability tools_jakub królikowski
 
Jak eskportuj polskie spó-ki technol right-hello_bartosz majewski
Jak eskportuj  polskie spó-ki technol right-hello_bartosz majewskiJak eskportuj  polskie spó-ki technol right-hello_bartosz majewski
Jak eskportuj polskie spó-ki technol right-hello_bartosz majewski
 
10 b -dów przy wprowadzaniu e commerce na rynki zagr-goralewicz.co_bartosz gó...
10 b -dów przy wprowadzaniu e commerce na rynki zagr-goralewicz.co_bartosz gó...10 b -dów przy wprowadzaniu e commerce na rynki zagr-goralewicz.co_bartosz gó...
10 b -dów przy wprowadzaniu e commerce na rynki zagr-goralewicz.co_bartosz gó...
 
Quick Wins w e-Commerce
Quick Wins w e-CommerceQuick Wins w e-Commerce
Quick Wins w e-Commerce
 

Pocałunek śmierci

  • 1. Kiedy popularność jest pocałunkiem śmierci... Skalowalność serwisów internetowych w dobie Web 2.0 Piotr Karwatka - Biznes20.pl
  • 2. Kiedy oglądalność jest pocałunkiem śmierci Web 1.0 – read, Web 2.0 – read & write - serwisy web 2.0 nie wiedzą kiedy i z jakim impetem ich treści zostaną rozbudowane, - serwisy muszą być przygotowane na nagły wzrost liczby użytkowników ... ... ale nie wszystkie są przygotowane .... :-) ‏ - co odróżnia jedne serwisy od drugich? nasza-klasa.pl youtube.com Piotr Karwatka - Biznes20.pl
  • 3. Dlaczego istnieje problem? Przyczyny: - dobra architektura jest droga? (niekoniecznie), - „pomyślimy o tym, gdy stanie się problemem” (za późno!), - programowanie w ruby/php/python/asp.net jest proste! :-), - korzystamy z gotowych, „profesjonalnych” rozwiązań! większość oprogramowania jest źle zaprojektowana gro popularnego oprogramowania jest źle zaprojektowane i bardzo trudne w skalowaniu! Jeśli używasz osCommerce, Drupala lub Joomli przyhamuj swoich marketingowców! ( ) ‏ ... i co my teraz zrobimy? Piotr Karwatka - Biznes20.pl
  • 4. Skalowanie aplikacji jest proste... 1. Technologie - większość największych serwisów korzysta z PHP i MySQL, - cudeńka jak RoR mogą być pułapką ..., - ... ale to nie prawda że języki/technologie są mniej lub bardziej skalowalne.... - ceny rozwiązań komercyjnych rosną wykładniczo wraz ze skalą! „ Każdy nowy język programowania jest jak nowa dziewczyna – nasz związek jest lepszy, bo JA jestem lepszym programistą!” pingdom.com Piotr Karwatka - Biznes20.pl
  • 5.
  • 6. - używaj bytecodu (w PHP -> APC, Xcache), - optymalizuj /profiluj, optymalizuj/profiluj, optymalizuj/profiluj - ale nie za wcześnie!, - wykrywaj wcześnie wąskie gardła - najczęściej dostęp do danych i I/O, - używaj cache'u aby je zlikwidować (memcached!) ‏ - to jest pierwszy krok . Skalowanie aplikacji jest proste... Zrobiłem to wszystko. Co dalej? Piotr Karwatka - Biznes20.pl
  • 7. Skalowanie aplikacji jest proste... 3. Skalowanie aplikacji na poziomie sprzętu - pionowe - więcej ramu, lepsze CPU -> szybko docieramy do granic, drogie! - ale pomoże bez żadnych zmian w aplikacji - poziome – więcej tanich serwerów -> nie ma granic (w teorii!) ‏ - ale też ew. problemy ze stanem sesji, trudniejsza konfiguracja, trudniejsze zarządzanie (capistrano?) ‏ - większa dostępność aplikacji (n+1, 2n ...) ‏ - darmowe loadbalancery na poziomie aplikacji ( perlball , nginx jako proxy, o dchudzony apache jako proxy, .. serwer DNS?), - sprzętowe (cisco!) lepsze ale droższe, sporo droższe. Piotr Karwatka - Biznes20.pl
  • 8. koszt ilość cpu skalowanie pionowe skalowanie poziome Skalowanie aplikacji jest proste... ... + = Piotr Karwatka - Biznes20.pl
  • 9. Skalowanie aplikacji jest proste... 4. Gotowe rozwiązania – EC2 (+enomalism.com), 3tera, rightscale.com ... + nie wymagają opieki nad własnym środowiskiem sprzętowym, + łatwe w konfiguracji i zarządzaniu (zarządzanie obrazami systemów), + przezroczysta obsługa wielu centrów danych – maksymalna odporność na awarie, + tanie przy małych i średnich projektach (kilka centów za godzinę pracy), + odporność na skoki ! - ale drooogie przy dużych rozwiązaniach, - skalowanie tylko aplikacji oraz storage wirtualizacja środowiska, elastyczne chmury obliczeniowe Piotr Karwatka - Biznes20.pl
  • 10. Skalowanie aplikacji jest proste... ... ale bazy danych nie! - rdbms to najczęstsze wąskie gardło – połączenia, req/s, - nie ma jednego – właściwego rozwiązania a naprawdę skalowalne rozwiązania są trudne! Unikaj skomplikowanych rozwiązań póki to możliwe: 1) Przechwytuj wolne kwerendy i je optymalizuj - używaj profilowania i EXPLAIN (mysql) ‏ - optymalizuj strukturę (indeksy, denomralizacja jeśli potrzebna), 2) Używaj cache na poziomie dostępu do danych (nie cache.. tylko memcached!) ‏ cache db SELECT ..... FROM ... Hit - 90% Miss - 10% Nie żartuj... to wszystko dawno zrobiłem! Piotr Karwatka - Biznes20.pl
  • 11. Skalowanie aplikacji jest proste... ... ale bazy danych nie! Replikacja – odporność na awarie, szybkość dostępu + wiele punktów dostępu do danych – większe req/s i odporność na awarie Zyski: + aplikacja która dużo czyta, mało pisze: - aplikacja która dużo czyta i dużo pisze: - opóźnienia replikacji, - sesje użytkowników + tworzenie wyspecjalizowanych serwerów DB (kilka tabel, wyszukiwanie...), master slave master master master master master master TB: users TB: photos :-( :-) ‏ Piotr Karwatka - Biznes20.pl
  • 12. Skalowanie aplikacji jest proste... ... ale bazy danych nie! Partycjonowanie – skalowanie poziome bazy danych Partycjonowanie pionowe Partycjonowanie poziome - federacja - różne tabele na różnych hostach, - prosta implementacja (replikacja), - szybko dochodzimy do ściany - podział ogromnej tabeli pomiędzy różne serwery, - umożliwia tworzenie user-clusterów - bardzo dobre zrównoważenie zapisów i odczytów, - nigdy nie dochodzimy do ściany A - F G - O P - Z A - Z A - Z A - Z A - Z 1 2 3 A - Z 4 .... Table3 JOIN Table2 ??? ... WHERE Table.Imie = 'Alfons' AND Table.Imie = 'Zenon' ??? Piotr Karwatka - Biznes20.pl
  • 13. A co z moimi fotkami? ” Jeden nginx znaczy więcej niż 1000 apachy” - wydziel serwery dla treści statycznych (static.serwis.pl?) - dla fotek, CSS, JS ... Pliki użytkowników szybko rosną? 1) RAID (0, 01...) 2) NAS – (NetApp FAS ?) – stosunkowo drogie, bardzo szybkie, automatyczne kopie, rozmiary powyżej 500TB, 3) Clustered File Systems (MogileFS, odłamki NFS/SMB/FTP) – chcesz być jak Google? :-) automatyczna replikacja na wielu serwerach, odporność na problemy, szybkość przy szybkiej sieci, 4) CDN (Akamai ...) – serwujesz 300 tys. strumieni wideo na raz? 5) S3 – CDN dla ubogich – stosunkowo wolny, tani przy małych i średnich ilościach danych, drogi przy duuużej skali! One rosną jeszcze szybciej! Piotr Karwatka - Biznes20.pl
  • 14. Jak się przeskalować? primo: o ile to możliwe, projektuj z myślą o skalowaniu poziomym, 1) ‏ - skaluj pionowo dokąd tylko się da: - optymalizuj to co wykorzystuje wąskie gardła, - korzystaj z Cache gdzie tylko można, - umieść bazę danych na osobnym serwerze 2) ‏ - wydziel serwery dla obrazków i plików statycznych, - dodaj kolejne serwery aplikacji, - stwórz klaster cache, - stosuj serwery storage – a jeśli to za mało twórz klastry rozproszonego systemu plików, - zastosuj serwery reverse proxy (SQUID, Varnish) ‏ 3) ‏ - skaluj bazę danych korzystając z replikacji, - ... ale dąż do skalowania poziomego o ile to możliwe rosnące koszta + + + + + + ... ... + + + proxy www sql memcache storage ... ... Piotr Karwatka - Biznes20.pl
  • 15. Jeśli jesteś tutaj to masz przynajmniej milion użytkowników! ;-) 4) ‏ Jak się przeskalować? Piotr Karwatka - Biznes20.pl
  • 18. Co dalej? - PaaS - persistance as a service (Google BigTable, GigaSpaces IMDG, Microsoft SQL) - platform as a service – Google AppEngine (wymaga pythona, beta testy, darmowe do 5000 000 odsłon miesięcznie!) ‏ Zupełna abstrakcja ! + nowe podejście do wytwarzania aplikacji, + rezygnacja z typowych baz danych na rzecz operacji na abstrakcjach obiektowych, + cała platforma -> WWW, DB, Storage jako usługa. Chcesz korzystać z infrastruktury wyszukiwarki google? - bardzo trudna zmiana platformy technologicznej! Praktycznie niemożliwa, - brak łatwych rozwiązań przejściowych Piotr Karwatka - Biznes20.pl
  • 19. Q & A [email_address] Biznes20.pl Bizneswiki.pl Piotr Karwatka - Biznes20.pl