Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Skalowanie aplikacji PHP
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Leszek Krupiński
September 27, 2014
Programming
440
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Skalowanie aplikacji PHP
Leszek Krupiński
September 27, 2014
More Decks by Leszek Krupiński
See All by Leszek Krupiński
So that the daemon won’t die
leafnode
2
420
Practical PHP7
leafnode
2
510
Dobrze posól swoje hasło
leafnode
0
130
Dobrze posól swoje hasło (z notatkami)
leafnode
0
120
PHPNG kontra HHVM
leafnode
0
130
PHPNG kontra HHVM (z notatkami)
leafnode
0
90
Ewolucja PHP: PHP 5.6, NG, PHP 7, HHVM
leafnode
2
320
Sculpin - Generowanie statycznych stron w PHP
leafnode
2
81
Varnish to the Rescue
leafnode
0
140
Other Decks in Programming
See All in Programming
조합이폭발하는디자인시스템이걸눈으로도테스트하라고요
giljongyu
0
400
Jetpack Compose Mechanisms
skydoves
3
860
自サークルのIdPからログアウトできるようになるまで
taiseiue
1
150
AWSに止められる覚悟してますか?
morizo_1984
2
550
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
120
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
160
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
APNsからLive Activityを開始する話
yumnumm
0
170
SalesForceを内製化!? ~ HR事業を支える顧客管理基盤のインフラを大公開 ~
oku053
0
200
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
1.8k
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
110
残高管理から台帳サービスへの進化
artoy
1
210
Featured
See All Featured
Bash Introduction
62gerente
615
220k
Documentation Writing (for coders)
carmenintech
77
5.6k
Git: the NoSQL Database
bkeepers
PRO
433
67k
The Cult of Friendly URLs
andyhume
79
7k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
290
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
The World Runs on Bad Software
bkeepers
PRO
72
12k
The Invisible Side of Design
smashingmag
301
52k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
540
RailsConf 2023
tenderlove
30
1.6k
Transcript
SKALOWANIE APLIKACJI PHP Leszek Krupiński, PHPCon 2014
LEAFNODE
CO TO JEST SKALOWALNOŚĆ?
— WIKIPEDIA Skalowalność (ang. scalability) - zapewnienie coraz wydajniejszej pracy
w miarę zwiększania liczby elementów składowych.
SKALOWANIE WERTYKALNE
SKALOWANIE HORYZONTALNE
PO CO DBAĆ O SKALOWALNOŚĆ?
ZADOWOLENIE KLIENTA
bit.ly/slowwebspeed
None
None
JAKIE SĄ KRYTYCZNE WARTOŚCI?
None
None
WYMIERNE KORZYŚCI
15,4% WIĘCEJ POBRAŃ FIREFOKSA PO PRZYSPIESZENIU STRONY MOZILLI O 2,2s
14% WIĘCEJ WPŁAT NA KAMPANIĘ BARACKA OBAMY PO PRZYSPIESZENIU STRONY
ZGŁOSZENIOWEJ O 60%
WYLICZENIA WALMARTU I AMAZONU: ZYSKI WIĘKSZE O 1% ZA KAŻDE
100ms
WYLICZENIA YAHOO: 9% WIĘCEJ RUCHU W SERWISIE ZA KAŻDE 400ms
PODSTAWY
HTTP REQUEST
None
None
None
SKOCZĘ JESZCZE PO WARZYWA
CO MOŻNA ZROBIĆ?
• SZYBSZA OBSŁUGA KLIENTA • WIĘCEJ KAS • KOLEJNE SKLEPY
KUPMY WIĘKSZY SERWER
KUPMY WIĘCEJ SERWERÓW
BEZ ODPOWIEDNIEJ ARCHITEKTURY NIE MA TO SENSU
BYĆ MOŻE WYSTARCZY OPTYALIZACJA APLIKACJI
WYCIŚNIĘCIE MAKSIMUM Z MOŻLIWOŚCI MASZYNY
OPTYMALIZUJ ISTOTNE FRAGMENTY KODU
— Donald Knuth Premature optimization is the root of all
evil.
UPEWNIJ SIĘ, ŻE TO NA PEWNO PHP JEST WINNE
NARZĘDZIA
xdebug + cachegrind
None
XHProf
None
New Relic
NEWRELIC POKAŻE KTÓRE KOMPONENTY DOMINUJĄ OBCIĄŻENIE
METRYKI
None
STATSD
None
MIN, MAX, 90th, COUNT, MEAN
GRAPHITE
None
None
ANALIZA LOGÓW: LOGSTASH, GRAYLOG2
PHP
ZAKTUALIZUJ PHP
STANDARD NA 2014: NGINX + PHP-FPM
NGINX: SZYBKOŚĆ, ELASTYCZNOŚĆ
PHP-FPM: ROZDZIELENIE PROCESÓW
WŁĄCZ OPCODE CACHE
ZOPTYMALIZUJ FRAMEWORK
WŁĄCZ CACHE
WYŁĄCZ AUTOGENEROWANIE
WYŁĄCZ ZBĘDNE MODUŁY
OPTYMALIZACJA BAZY DANYCH
GŁÓWNA PRZYCZYNA PROBLEMÓW Z WYDAJNOŚCIĄ
SLOW LOG? PERCONA TOOLKIT
INDEKSY QUERY CACHE ALTERNATYWNE SILNIKI
NOSQL
ARCHITEKTURA
None
DOBIERZ KOMPONENTY
FULL TEXT SEARCH? SPHINX.
STRUKTURY DANYCH? REDIS.
BUFORUJ DANE
•WYNIKI ZAPYTAŃ •ODPOWIEDZI API •KONFIGURACJA •GENEROWANE DANE
NAJCZĘŚCIEJ UŻYWANE: W PAMIĘCI
MEMCACHE
MOŻLIWOŚĆ WYDZIELENIA WSPÓŁDZIELONEGO SERWERA MEMCACHE
VARNISH
NAGŁÓWKI HTTP bit.ly/httpcache
MAX AGE LAST MODIFIED ETAG
ROZDZIEL SKŁADNIKI
! ARCHITEKTURA HEKSAGONALNA
None
PRZETWARZAJ ASYNCHRONICZNIE
GDZIEŚ TU UŻYTKOWNIK KLIKA “RELOAD”
Aplikacja Kolejka
Nowa%piosenka Rekodowanie C++ MusicShare Generowanie%skrótu% piosenki C++ Web%Service Java Jabber
erlang Statyczny%HTML PHP DECOUPLING
LOAD BALANCING Front&end RabbitMQ Consumer
! POZA JEDEN SERWER
LOAD BALANCER
VARNISH HAPROXY NGINX
PROBLEMY
! DANE WSPÓŁDZIELONE
SESJE
! PERSISTENT LOAD BALANCER
! WSPÓLNY MEMCACHE
INNE DANE
! PLIKI STATYCZNE
! WSPÓLDZIELONY SYSTEM PLIKÓW
API
ARCHITEKTURA DLA BAZ DANYCH
REPLIKACJA MASTER-SLAVE
SHARDING
None
None
None
PROBLEMY
RESHARDING
JOIN
NA KONIEC
NIE OPTYMALIZUJ PRZEDWCZEŚNIE
BUDUJ ARCHITEKTURĘ PERSPETYWICZNIE
OPTYMALIZUJ STOSOWNIE DO SKALI
BĄDŹ ZEN
ŻYCZĘ WSZYSTKIM TAKICH PROBLEMÓW :-)
https://joind.in/11839 @leafnode
PYTANIA?
DZIĘKUJĘ ZA UWAGĘ Title image credits: https://www.flickr.com/photos/torkildr/3462607995/