SlideShare une entreprise Scribd logo
1  sur  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 minimum 11 milionów 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

Contenu connexe

En vedette

Wskaźnikowe badania poziomu satysfakcji w transakcjach on-line
Wskaźnikowe badania poziomu satysfakcji w transakcjach on-lineWskaźnikowe badania poziomu satysfakcji w transakcjach on-line
Wskaźnikowe badania poziomu satysfakcji w transakcjach on-linee-commerce | InfoTrendy
 
Metal·lúrgia de les pólvores
Metal·lúrgia de les pólvoresMetal·lúrgia de les pólvores
Metal·lúrgia de les pólvoresleenk10
 
A tour abroad barcelona etwinning le
A tour abroad barcelona etwinning leA tour abroad barcelona etwinning le
A tour abroad barcelona etwinning leMary Joe Verdu
 
Tendencias en Internet 2016 con Tirso Maldonado
Tendencias en Internet 2016 con Tirso MaldonadoTendencias en Internet 2016 con Tirso Maldonado
Tendencias en Internet 2016 con Tirso MaldonadoTirso Maldonado
 
Opinion way les Français et les paradoxes de l'automobile - juin 2016
Opinion way les Français et les paradoxes de l'automobile - juin 2016Opinion way les Français et les paradoxes de l'automobile - juin 2016
Opinion way les Français et les paradoxes de l'automobile - juin 2016Ludovic Privat
 
La Supply Chain di Ebay e altre storie di retail
La Supply Chain di Ebay e altre storie di retailLa Supply Chain di Ebay e altre storie di retail
La Supply Chain di Ebay e altre storie di retailGianluca Greco
 
Brochure ConnecteDriver 2017
Brochure ConnecteDriver 2017Brochure ConnecteDriver 2017
Brochure ConnecteDriver 2017Ludovic Privat
 
Sessió 3 Grup de Treball Projectes col·laboratius Project work viatge final d...
Sessió 3 Grup de Treball Projectes col·laboratius Project work viatge final d...Sessió 3 Grup de Treball Projectes col·laboratius Project work viatge final d...
Sessió 3 Grup de Treball Projectes col·laboratius Project work viatge final d...Rosamaria Felip Falcó
 
Bandwidth Management Solutions for Network Operators
Bandwidth Management Solutions for Network OperatorsBandwidth Management Solutions for Network Operators
Bandwidth Management Solutions for Network Operatorsipoque
 
Evaluating and selecting literature for children
Evaluating and selecting literature for childrenEvaluating and selecting literature for children
Evaluating and selecting literature for childrenkadlawn36
 
إميل دوركهايم والتأسيس السوسيولوجي للحداثة
إميل دوركهايم والتأسيس السوسيولوجي للحداثةإميل دوركهايم والتأسيس السوسيولوجي للحداثة
إميل دوركهايم والتأسيس السوسيولوجي للحداثةحسن قروق
 

En vedette (13)

Wskaźnikowe badania poziomu satysfakcji w transakcjach on-line
Wskaźnikowe badania poziomu satysfakcji w transakcjach on-lineWskaźnikowe badania poziomu satysfakcji w transakcjach on-line
Wskaźnikowe badania poziomu satysfakcji w transakcjach on-line
 
Ios
IosIos
Ios
 
Metal·lúrgia de les pólvores
Metal·lúrgia de les pólvoresMetal·lúrgia de les pólvores
Metal·lúrgia de les pólvores
 
A tour abroad barcelona etwinning le
A tour abroad barcelona etwinning leA tour abroad barcelona etwinning le
A tour abroad barcelona etwinning le
 
Racibórz
RacibórzRacibórz
Racibórz
 
Tendencias en Internet 2016 con Tirso Maldonado
Tendencias en Internet 2016 con Tirso MaldonadoTendencias en Internet 2016 con Tirso Maldonado
Tendencias en Internet 2016 con Tirso Maldonado
 
Opinion way les Français et les paradoxes de l'automobile - juin 2016
Opinion way les Français et les paradoxes de l'automobile - juin 2016Opinion way les Français et les paradoxes de l'automobile - juin 2016
Opinion way les Français et les paradoxes de l'automobile - juin 2016
 
La Supply Chain di Ebay e altre storie di retail
La Supply Chain di Ebay e altre storie di retailLa Supply Chain di Ebay e altre storie di retail
La Supply Chain di Ebay e altre storie di retail
 
Brochure ConnecteDriver 2017
Brochure ConnecteDriver 2017Brochure ConnecteDriver 2017
Brochure ConnecteDriver 2017
 
Sessió 3 Grup de Treball Projectes col·laboratius Project work viatge final d...
Sessió 3 Grup de Treball Projectes col·laboratius Project work viatge final d...Sessió 3 Grup de Treball Projectes col·laboratius Project work viatge final d...
Sessió 3 Grup de Treball Projectes col·laboratius Project work viatge final d...
 
Bandwidth Management Solutions for Network Operators
Bandwidth Management Solutions for Network OperatorsBandwidth Management Solutions for Network Operators
Bandwidth Management Solutions for Network Operators
 
Evaluating and selecting literature for children
Evaluating and selecting literature for childrenEvaluating and selecting literature for children
Evaluating and selecting literature for children
 
إميل دوركهايم والتأسيس السوسيولوجي للحداثة
إميل دوركهايم والتأسيس السوسيولوجي للحداثةإميل دوركهايم والتأسيس السوسيولوجي للحداثة
إميل دوركهايم والتأسيس السوسيولوجي للحداثة
 

Plus de e-commerce | InfoTrendy

Systemy ERP - Systemy zintegrowane w sprzedaży Internetowej
Systemy ERP - Systemy zintegrowane w sprzedaży InternetowejSystemy ERP - Systemy zintegrowane w sprzedaży Internetowej
Systemy ERP - Systemy zintegrowane w sprzedaży Internetoweje-commerce | InfoTrendy
 
Systemy zintegrowane w sprzedaży Internetowej
Systemy zintegrowane w sprzedaży InternetowejSystemy zintegrowane w sprzedaży Internetowej
Systemy zintegrowane w sprzedaży Internetoweje-commerce | InfoTrendy
 
Dywersyfikacja kanałów sprzedaży, handel zagraniczny
Dywersyfikacja kanałów sprzedaży, handel zagranicznyDywersyfikacja kanałów sprzedaży, handel zagraniczny
Dywersyfikacja kanałów sprzedaży, handel zagranicznye-commerce | InfoTrendy
 
Zmiany trendów sprzedażowych w internecie
Zmiany trendów sprzedażowych w internecieZmiany trendów sprzedażowych w internecie
Zmiany trendów sprzedażowych w interneciee-commerce | InfoTrendy
 
Case study w programie lojalnościowym IKEA Family
Case study w programie lojalnościowym IKEA FamilyCase study w programie lojalnościowym IKEA Family
Case study w programie lojalnościowym IKEA Familye-commerce | InfoTrendy
 
Jak prowadzić sprzedaż hurtową w internecie
Jak prowadzić sprzedaż hurtową w internecieJak prowadzić sprzedaż hurtową w internecie
Jak prowadzić sprzedaż hurtową w interneciee-commerce | InfoTrendy
 
Z głową w chmurach, przyszłość sprzedaży internetowej
Z głową w chmurach, przyszłość sprzedaży internetowejZ głową w chmurach, przyszłość sprzedaży internetowej
Z głową w chmurach, przyszłość sprzedaży internetoweje-commerce | InfoTrendy
 
Rozproszony system Call Center - Studium przypadku na podstawie wdrożenia w f...
Rozproszony system Call Center - Studium przypadku na podstawie wdrożenia w f...Rozproszony system Call Center - Studium przypadku na podstawie wdrożenia w f...
Rozproszony system Call Center - Studium przypadku na podstawie wdrożenia w f...e-commerce | InfoTrendy
 
Analiza danych statystycznych serwisu na przykładzie Google Analytics
Analiza danych statystycznych serwisu na przykładzie Google AnalyticsAnaliza danych statystycznych serwisu na przykładzie Google Analytics
Analiza danych statystycznych serwisu na przykładzie Google Analyticse-commerce | InfoTrendy
 
Synergia portalu w promocji serwisów e-commerce
Synergia portalu w promocji serwisów e-commerceSynergia portalu w promocji serwisów e-commerce
Synergia portalu w promocji serwisów e-commercee-commerce | InfoTrendy
 
Jak projektować, żeby efektywniej sprzedawać
Jak projektować, żeby efektywniej sprzedawaćJak projektować, żeby efektywniej sprzedawać
Jak projektować, żeby efektywniej sprzedawaće-commerce | InfoTrendy
 
Ewolucja narzędzi marketingowych i ich skuteczność na przykładzie intymnie.com
Ewolucja narzędzi marketingowych i ich skuteczność na przykładzie intymnie.comEwolucja narzędzi marketingowych i ich skuteczność na przykładzie intymnie.com
Ewolucja narzędzi marketingowych i ich skuteczność na przykładzie intymnie.come-commerce | InfoTrendy
 
Realizacja projektów informatycznych w korporacji, Daniel Jabłoński
Realizacja projektów informatycznych w korporacji, Daniel JabłońskiRealizacja projektów informatycznych w korporacji, Daniel Jabłoński
Realizacja projektów informatycznych w korporacji, Daniel Jabłońskie-commerce | InfoTrendy
 

Plus de e-commerce | InfoTrendy (20)

Systemy ERP - Systemy zintegrowane w sprzedaży Internetowej
Systemy ERP - Systemy zintegrowane w sprzedaży InternetowejSystemy ERP - Systemy zintegrowane w sprzedaży Internetowej
Systemy ERP - Systemy zintegrowane w sprzedaży Internetowej
 
Systemy zintegrowane w sprzedaży Internetowej
Systemy zintegrowane w sprzedaży InternetowejSystemy zintegrowane w sprzedaży Internetowej
Systemy zintegrowane w sprzedaży Internetowej
 
Dywersyfikacja kanałów sprzedaży, handel zagraniczny
Dywersyfikacja kanałów sprzedaży, handel zagranicznyDywersyfikacja kanałów sprzedaży, handel zagraniczny
Dywersyfikacja kanałów sprzedaży, handel zagraniczny
 
Paczkomaty - Nowe usługi w InPost
Paczkomaty - Nowe usługi w InPostPaczkomaty - Nowe usługi w InPost
Paczkomaty - Nowe usługi w InPost
 
Zmiany trendów sprzedażowych w internecie
Zmiany trendów sprzedażowych w internecieZmiany trendów sprzedażowych w internecie
Zmiany trendów sprzedażowych w internecie
 
Case study w programie lojalnościowym IKEA Family
Case study w programie lojalnościowym IKEA FamilyCase study w programie lojalnościowym IKEA Family
Case study w programie lojalnościowym IKEA Family
 
Marketing rozliczany za efekt
Marketing rozliczany za efektMarketing rozliczany za efekt
Marketing rozliczany za efekt
 
Innowacje w e-commerce
Innowacje w e-commerceInnowacje w e-commerce
Innowacje w e-commerce
 
Jak prowadzić sprzedaż hurtową w internecie
Jak prowadzić sprzedaż hurtową w internecieJak prowadzić sprzedaż hurtową w internecie
Jak prowadzić sprzedaż hurtową w internecie
 
Z głową w chmurach, przyszłość sprzedaży internetowej
Z głową w chmurach, przyszłość sprzedaży internetowejZ głową w chmurach, przyszłość sprzedaży internetowej
Z głową w chmurach, przyszłość sprzedaży internetowej
 
Rozproszony system Call Center - Studium przypadku na podstawie wdrożenia w f...
Rozproszony system Call Center - Studium przypadku na podstawie wdrożenia w f...Rozproszony system Call Center - Studium przypadku na podstawie wdrożenia w f...
Rozproszony system Call Center - Studium przypadku na podstawie wdrożenia w f...
 
Analiza danych statystycznych serwisu na przykładzie Google Analytics
Analiza danych statystycznych serwisu na przykładzie Google AnalyticsAnaliza danych statystycznych serwisu na przykładzie Google Analytics
Analiza danych statystycznych serwisu na przykładzie Google Analytics
 
Synergia portalu w promocji serwisów e-commerce
Synergia portalu w promocji serwisów e-commerceSynergia portalu w promocji serwisów e-commerce
Synergia portalu w promocji serwisów e-commerce
 
Jak projektować, żeby efektywniej sprzedawać
Jak projektować, żeby efektywniej sprzedawaćJak projektować, żeby efektywniej sprzedawać
Jak projektować, żeby efektywniej sprzedawać
 
Ewolucja narzędzi marketingowych i ich skuteczność na przykładzie intymnie.com
Ewolucja narzędzi marketingowych i ich skuteczność na przykładzie intymnie.comEwolucja narzędzi marketingowych i ich skuteczność na przykładzie intymnie.com
Ewolucja narzędzi marketingowych i ich skuteczność na przykładzie intymnie.com
 
EkoTrendy Team
EkoTrendy TeamEkoTrendy Team
EkoTrendy Team
 
E-Urzad Wojewodzki
E-Urzad WojewodzkiE-Urzad Wojewodzki
E-Urzad Wojewodzki
 
Realizacja projektów informatycznych w korporacji, Daniel Jabłoński
Realizacja projektów informatycznych w korporacji, Daniel JabłońskiRealizacja projektów informatycznych w korporacji, Daniel Jabłoński
Realizacja projektów informatycznych w korporacji, Daniel Jabłoński
 
Casual Games, Roman Sawulski
Casual Games, Roman SawulskiCasual Games, Roman Sawulski
Casual Games, Roman Sawulski
 
AIP
AIPAIP
AIP
 

Pocalunek Smierci - Sukces i Skalowalność serwisów WWW, Piotr Karwatka

  • 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 minimum 11 milionów 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