Wydajne API dla aplikacji mobilnych

  • Published on
    13-Jun-2015

  • View
    324

  • Download
    3

DESCRIPTION

Prezentacja Marcina Wjcika z Future Processing w ramach konferencji PHPCon Poland 2014.

Transcript

1. Wydajne API dla aplikacji mobilnychco warto robi a czego warto unikaaby wycisn jak najwicej z naszego API 2. O mnieProgramista PHP od 10 latObecnie programista w FutureProcessingWWW, CRM, ERP, API, integracja systemw2014-09-27 Marcin Wjcik, PHPCon 2014 2 / 24 3. PlanSkd ta prezentacja?Elementy systemu i wpyw na wydajnoOptymalizacjaDobre praktyki2014-09-27 Marcin Wjcik, PHPCon 2014 3 / 24 4. Skd ta prezentacja?2014-09-27 Marcin Wjcik, PHPCon 20141-3 req/ min2500 req/ sek4 / 24 5. Co robi, jak y?Zaprojektowa dobrze architektur systemuObsuga da/poczePrzepyw, przetwarzanie, przechowywanie danychPodzia obowizkw: co ma robi API?(Z)optymalizowa aplikacjOptymalizacja frontendu(endpoints)Optymalizacja backenduDba o dobre praktyki podczas pisania kodu2014-09-27 Marcin Wjcik, PHPCon 2014 5 / 24 6. Publiczne API2014-09-27 Marcin Wjcik, PHPCon 2014SZYBKIEZWALNIANIEZASOBW6 / 24Endpoints:/getProduct/registerDevice 7. Backend2014-09-27 Marcin Wjcik, PHPCon 2014 7 / 24 8. Architektura2014-09-27 Marcin Wjcik, PHPCon 2014processes8 / 24 9. ArchitekturaEventualconsistencyspjno ostateczna :)o ile do systemu nie s zgaszane nowe dania modyfikujce, dane ostatecznie staj si spjne2014-09-27 Marcin Wjcik, PHPCon 2014 9 / 24 10. Optymalizacja rodowiska -soft2014-09-27 Marcin Wjcik, PHPCon 2014 10 / 24nginxphp-fpmKeepAlivemoduytuningLEMPtuningOS 11. Optymalizacja rodowiska -sprzt2014-09-27 Marcin Wjcik, PHPCon 2014 11 / 24routingVM vs boxdostawianie maszyncloud? 12. Szybkie zwalnianie zasobw2014-09-27 Marcin Wjcik, PHPCon 2014 12 / 24 13. Szybkie zwalnianie zasobw2014-09-27 Marcin Wjcik, PHPCon 2014Minimalizowanie czasu dostpu do danychRadzenie sobie z czasochonnymi operacjamiMoliwie krtki tor przetwarzania daniaMao istotne operacje wykonywane po zwrceniu odpowiedziRESTless13 / 24 14. Architektura -dane2014-09-27 Marcin Wjcik, PHPCon 2014Rejestracja urzdzenia + pobranie listy produktw14 / 24 15. Optymalizacja API2014-09-27 Marcin Wjcik, PHPCon 2014Pregenerowaniedanych15 / 24IdentyfikatoryDane w JSONURLe 16. Optymalizacja API2014-09-27 Marcin Wjcik, PHPCon 2014Uproszczenie dostpu do danychHGET usersapp_hash:user_hashHGET purchasesapp_hash:user_hashHGET issuesapp_hashDane gotowe do wystawienia// getJSON with prepareddata$purchases= $redis->hGet(`purchases`, $app_user_hash);echo $purchases;16 / 24 17. Optymalizacja API2014-09-27 Marcin Wjcik, PHPCon 2014fastcgi_finish_request()brak frameworka, usunicie autoloadera, minimalizacja iloci doczanych plikwwyczenie rewrite, oparcie API na strukturze katalogw: ../public_html/getProducts/index.php17 / 24 18. jMeter2014-09-27 Marcin Wjcik, PHPCon 2014UWAGA: stosowanie GUI ogranicza ilo da!18 / 24 19. Idea2014-09-27 Marcin Wjcik, PHPCon 2014 19 / 24 20. Dobre praktykiCige monitorowanie i profilowanie: (XHProf/ webgrind) + StatsD+ (Graphite/ Munin / Cacti)2014-09-27 Marcin Wjcik, PHPCon 2014 20 / 24 21. Dobre praktyki2014-09-27 Marcin Wjcik, PHPCon 2014 21 / 24szukaj optymalizacjiunikaj @todoi @fixmefunctionalfirst 22. Dobre praktyki2014-09-27 Marcin Wjcik, PHPCon 2014 22 / 24API:architekturadostp do danychBackend:architekturamikrooptymalizacjaAPC/OPcache 23. Dobre praktykiFailover/ disasterrecovery2014-09-27 Marcin Wjcik, PHPCon 2014 23 / 24 24. Pytania?2014-09-27 Marcin Wjcik, PHPCon 2014 24 / 24https://joind.in/talk/view/11846