[QE 2018] Paul Gerrard – Automating Assurance: Tools, Collaboration and DevOps
Wydajne API dla aplikacji mobilnych
1. Wydajne API dla aplikacji mobilnych
co warto robić a czego warto unikać
aby wycisnąć jak najwięcej z naszego API
2. O mnie
•Programista PHP od 10 lat
•Obecnie programista w FutureProcessing
•WWW, CRM, ERP, API, integracja systemów
2014-09-27 Marcin Wójcik, PHPCon 2014 2 / 24
3. Plan
•Skąd ta prezentacja?
•Elementy systemu i wpływ na wydajność
•Optymalizacja
•Dobre praktyki
2014-09-27 Marcin Wójcik, PHPCon 2014 3 / 24
4. Skąd ta prezentacja?
2014-09-27 Marcin Wójcik, PHPCon 2014
1-3 req/ min
2500 req/ sek
4 / 24
5. Co robić, jak żyć?
•Zaprojektować dobrze architekturę systemu
•Obsługa żądań/połączeń
•Przepływ, przetwarzanie, przechowywanie danych
•Podział obowiązków: co ma robić API?
•(Z)optymalizować aplikację
•Optymalizacja frontendu(endpoints)
•Optymalizacja backendu
•Dbać o dobre praktyki podczas pisania kodu
2014-09-27 Marcin Wójcik, PHPCon 2014 5 / 24
6. Publiczne API
2014-09-27 Marcin Wójcik, PHPCon 2014
SZYBKIEZWALNIANIEZASOBÓW
6 / 24
Endpoints:
/getProduct/registerDevice
…
13. Szybkie zwalnianie zasobów
2014-09-27 Marcin Wójcik, PHPCon 2014
•Minimalizowanie czasu dostępu do danych
•Radzenie sobie z czasochłonnymi operacjami
•Możliwie krótki tor przetwarzania żądania
•Mało istotne operacje wykonywane po zwróceniu odpowiedzi
•RESTless
13 / 24
20. Dobre praktyki
•Ciągłe monitorowanie i profilowanie: (XHProf/ webgrind) + StatsD+ (Graphite/ Munin / Cacti)
2014-09-27 Marcin Wójcik, PHPCon 2014 20 / 24
21. Dobre praktyki
2014-09-27 Marcin Wójcik, PHPCon 2014 21 / 24
•szukaj optymalizacji
•unikaj @todoi @fixme
•functionalfirst
22. Dobre praktyki
2014-09-27 Marcin Wójcik, PHPCon 2014 22 / 24
API:
•architektura
•dostęp do danych
Backend:
•architektura
•mikrooptymalizacja
APC/OPcache