Technologia, która zmienia świat na lepsze. Z Oktawave serwis Pajacyk jest gotowy nawet na największy ruch
Pajacyk jest jedną z najstarszych i najlepiej rozpoznawalnych inicjatyw dobroczynnych organizowanych w naszym kraju. Program Polskiej Akcji Humanitarnej wspiera najbardziej potrzebujących najmłodszych, zapewniając im codzienny posiłek. Pajacyk od ponad 18 lat symbolizuje walkę z problemem niedożywienia, który w Polsce dotyka – według szacunków – tysiące dzieci. Zasady pomocy są proste: wszystko, co trzeba zrobić, to kliknąć brzuszek Pajacyka.
Studium przypadku
Ten prosty i skuteczny pomysł od początku miał wpływ na olbrzymią popularność serwisu, notującego ponad 20 tysięcy codziennych wizyt. Sława Pajacyka przekłada się także na zwiększone natężenie ruchu, co w pewnym momencie zaczęło utrudniać obsłużenie wszystkich kliknięć na stronie.
Podczas organizowanych działań specjalnych, natężenie ruchu w witrynie wzrastało nawet o 25%, zwłaszcza gdy użytkownicy innych portali społecznościowych spontanicznie zachęcali do klikania Pajacyka. Chcąc zapewnić niezawodne działanie serwisu, postanowiono o migracji Pajacyka do chmury obliczeniowej Oktawave.
Pajacyk wędruje do chmury
Stara infrastruktura Pajacyka bazowała na jednym serwerze, wyposażonym w 8 vCPU, 16 GB RAM oraz z dyskiem twardym SSD o pojemności 80 GB. Taka konfiguracja sprawiała jednak trudności. Zespół przeprowadzający migrację zainicjował testy: rozpoczęto od instancji OCI o parametrach 8 vCPU, 8 GB RAM, a za dysk posłużył Oktawave Volume Storage (OVS) pracujący w Tier-2 o pojemności 20 GB.
Planując migrację, brano pod uwagę przede wszystkim specyfikę działania serwisu, na którym przeprowadza się wiele specjalnych akcji, a które zawsze spotykają się z dużym zainteresowaniem użytkowników. Kluczowym aspektem było więc zaprojektowanie skalowalnej infrastruktury, radzącej sobie ze wzmożonym ruchem.
Postanowiono wykorzystać load balancer będący częścią platformy Oktawave, który wraz z Autoskalerem horyzontalnym pozwala na skalowanie liczby instancji OCI w zależności od obciążenia środowiska.
Po wstępnych testach skoncentrowano się na dopracowaniu aplikacji oraz odpowiedniej konfiguracji serwera. Na system operacyjny wybrano Debiana Jessie. Serwowanie stron miało się odbywać za pośrednictwem najnowszej wersji serwera nginx wraz ze wsparciem w postaci plug-inu pagespeed, który bardzo dobrze się sprawdza w kontekście optymalizacji serwowanych obrazów i tekstowych plików statycznych.
Po odpowiedniej konfiguracji wspomniany plug-in umożliwił również automatyczne rozdzielanie ładowanych treści między subdomeny static. Wspomógł on również administratorów w kwestii dodawania odpowiednich nagłówków do plików, co pozwoliło na wydłużenie czasu przechowywania plików statycznych lokalnie, po stronie przeglądarki
Warto również wspomnieć o wykorzystaniu memcache, który pozwala serwować najczęściej wykorzystywane pliki bezpośrednio z pamięci RAM.
Dzięki tym zabiegom udało się zmniejszyć ruch generowany przez serwer oraz przyspieszyć ładowanie strony Pajacyk bezpośrednio u odwiedzających.
Powyższe działania nie zakończyły optymalizacji serwisu. Jako że system CMS serwisu Pajacyk to dobrze wszystkim znana platforma WordPress, postanowiono wykorzystać najnowszą wówczas wersję PHP – 7.0.2 w mechanizmie FPM. Ten ruch zaserwował serwisowi prawdziwe przyspieszenie – administratorzy zauważyli, że w porównaniu z wydajnością serwisu pod względem szybkości przetwarzania skryptów PHP udało się osiągnąć ponad dziewięciokrotną różnicę w czasie wykonywania wobec gałęzi 5.6.
Ramka
Czasy wykonania skryptów wordpressa po migracji na php 7.0.2
- real 0m0.394s
- user 0m0.320s
- sys 0m0.052s
*wykonania wszystkich skryptów Wordpressa
Administratorzy postanowili wykorzystać bazę danych na silniku mySQL w najnowszej dostępnej wersji (5.7), która oferuje ogólny wzrost wydajności względem poprzednich wersji.
W fazie testów i dostrajania infrastruktury aż do uzyskania zadowalających rezultatów posługiwano się narzędziem Apache Jmeter.
Z Oktawave można klikać do woli!
Zgodnie z pierwotnym założeniem, największe korzyści z migracji Pajacyka do chmury obliczeniowej Oktawave odnieśli najmłodsi adresaci akcji. Decyzja o przenosinach pozwoliła na obniżenie kosztów działania i przeznaczenie zaoszczędzonych środków na działania statutowe.
Na poniższym schemacie można prześledzić, jak zmieniła się dynamika ilości wymienianych danych w serwisie Pajacyk przy zachowaniu liczby odwiedzających. Week 03 obrazuje ruch sieciowy w serwisie tuż przed migracją do Oktawave, kolejne tygodnie odzwierciedlają ruch w witrynie tuż po migracji. W efekcie migracji i optymalizacji strony, udało się ograniczyć o połowę ilość danych przesyłanych do przeglądarek. Strona ładuje się zdecydowanie szybciej i wykorzystuje w sposób prawidłowy cache po stronie klienta.
Migracja przełożyła się na stabilność serwisu oraz jego odporność na skokowe zmiany w natężeniu ruchu, generowane przez odwiedziny podczas akcji specjalnych.
Bilans migracji
Obecnie nowa infrastruktura bez problemu jest w stanie obsłużyć ruch na poziomie 670 Mbps. W trakcie testów dowiedziono, że przekłada się to nawet na ponad 15 000 kliknięć na minutę.
Idealnym podsumowaniem wdrożenia są fakty zebrane w tydzień po przeprowadzonej migracji:
- serwer wysłał 1,3 TB danych do użytkowników,
- zarejestrowano ponad 300 tysięcy kliknięć w Pajacyka,
- zanotowano maksymalny ruch wychodzący na poziomie prawie 400 Mbps,
- utrzymano stałe obciążenie procesora na poziomie 20%,
- wykorzystano memcache przez pagespeed do obsługi ponad 93% zapytań.