Czas w biznesie jest jednym z jego kluczowych aspektów. Niedopuszczalne są sytuacje, w których dostawcy spóźniają się z towarem, kontrahent przychodzi na spotkanie 20 minut po umówionym czasie, itd. Nie dla każdego oczywistym faktem jest jednak, że ta sama zasada dotyczy stron internetowych, a szczególnie jest zauważalna przy poziomie sprzedaży e-commerce.
Prędkość działania strony internetowej – kogo to obchodzi?
Prowadzisz firmę i zależy Ci na jak największej sprzedaży, zatrudniasz agencję, która pod Twoim pilnym okiem wykona efektywny projekt graficzny, copywriter zadba o to, aby oferta była zrozumiała i przystępna dla konsumenta, wydajesz masę pieniędzy na kampanię reklamową, a finalnie… sprzedaż jest mizerna, cierpliwość i środki na dalsze działania na wyczerpaniu, a niezadowoleni klienci co jakiś czas zgłaszają, że widzieli “dziwny komunikat: HTTP 500 ERROR”. Ta historia może przydarzyć się każdemu, kto nie zadbał o istotne czynniki mające wpływ na prędkość działania witryny takie jak: geolokalizacja serwera względem użytkownika, właściwa konfiguracja serwera, optymalizację kodu strony i mediów. Jeżeli zastanawiałeś się kiedyś co dzieje się po wpisaniu w pasku adresu Twojej przeglądarki adresu witryny i kliknięciu przycisku ENTER – zapraszam do przeczytania dalszej części artykułu.
Prędkość działania strony internetowej – dobór i konfiguracja serwera
Domain Name System
Serwer DNS jest pierwszym z kolei, do którego nasza przeglądarka przesyła zapytanie po wprowadzeniu domeny, np. www.seo-partner.pl w pasku adresu. Dzieje się tak, ponieważ infrastruktura sieciowa operuje na adresach IP, np. 145.239.94.193. Nazwy domen służą jedynie ludziom w celu łatwiejszego zapamiętania nazw wybranych witryn. Serwery DNS tłumaczą ludzkie domeny na adresy IP, którymi posługują się systemy IT.
Wpływ serwera DNS na prędkość działania strony internetowej jest szczególnie zauważalny przy pierwszym wejściu na witrynę. Kiedy przeglądarka internetowa zorientuje się już, jaki jest docelowy adres IP odwiedzanej witryny – zapisuje tą informację w swojej pamięci podręcznej, dzięki czemu kolejne zapytania są realizowane z pominięciem tego etapu. W tym wypadku jednym z najistotniejszych czynników definiujących czas odpowiedzi serwera, jest jego fizyczna odległość od użytkownika. W skali globalnej infrastruktury sieciowej, jeżeli użytkownik znajduje się na terenie tego samego państwa co serwer, to prędkość komunikatu zwrotnego powinna być satysfakcjonująca. A jak jest w przypadku witryn międzynarodowych? Odpowiedzią jest DNS Anycast.
DNS Anycast – jest rozwiązaniem dla właścicieli stron międzynarodowych. Zasada działania polega na skopiowaniu wpisów strefy DNS dla wybranej domeny na wiele serwerów rozsianych po całym świecie. Dzięki takiemu rozwiązaniu każdy użytkownik dostaje odpowiedź z serwera, do którego ma najkrótszą trasę dostępu. Trochę jak z zamawianiem pizzy – jeżeli chcesz, aby dotarła jeszcze ciepła to dzwonisz do najbliższej pizzerii w Twoim mieście, a nie sąsiednim województwie.
Geolokalizacja jest istotna nie tylko w przypadku DNS, jeszcze większe znaczenie ma dla serwera www, na którym znajdują się pliki strony internetowej. Przeciętna witryna zbudowana na CMS WordPress wymaga zrealizowania od kilkudziesięciu do kilkuset zapytań do serwera o przesłanie kodu HTML, plików JS i CSS, zdjęć, zewnętrznych map, czcionek itp. Aby było szybko – musi być możliwie blisko.
Dobór parametrów serwera www
Czy kupując nowego laptopa zwracasz uwagę na parametry takie jak prędkość działania procesora, ilość pamięci RAM, czy rodzaj dysku twardego? A może znaczenie ma jedynie cena? Wydać 2000zł czy 5000zł? Prawidłowa odpowiedzieć na to pytanie brzmi – TO ZALEŻY. Analogiczna sytuacja ma miejsce, kiedy szukamy idealnej usługi serwera dla strony www. Pierwszą rzeczą, którą należy zrobić jest oszacowanie przeciętnego ruchu, który na niej występuje. Jeżeli mamy witrynę typu “mała wizytówka” z pięcioma podstronami dla lokalnej firmy odwiedzanej przez 40 unikalnych użytkowników dziennie, to prawdopodobnie wystarczy nam budżet na poziomie 200zł rocznie. Zupełnie inaczej będzie w sytuacji kiedy posiadamy sklep internetowy mający w bazie 3500 produktów, dzienny ruch na poziomie 25000 unikalnych użytkowników i kilka set sprzedaży – w takiej sytuacji koszt może wynieść nawet kilka tysięcy złotych rocznie.
W SEO PARTNER znaczną większość stron naszych klientów utrzymujemy na serwerach typu VPS z naszą indywidualną konfiguracją zapewniającą idealny stosunek jakość do ceny i potrzeb.
Serwer www to tak naprawdę nic innego jak komputer o specjalnym zastosowaniu. Każde zapytanie użytkownika (żądanie wyświetlenia strony internetowej) wymaga wykorzystania zasobów procesora i pamięci RAM a przechowywane zdjęcia, filmy i teksty – adekwatnej ilości miejsca na dyskach twardych. To jaka maszyna będzie potrzebna w danym przypadku zależy od kilku czynników takich jak rodzaj aplikacji, która będzie miała na niej pracować (np. WordPress, PrestaShop, Drupal, itp.), to czy aplikacja zostanie właściwie zoptymalizowana, wspomniana wcześniej ilość ruchu użytkowników, zabezpieczenie przed możliwymi atakami przeciążającymi maszynę, itd… Tutaj każdy przypadek jest indywidualny, jest jednak jeden popularny parametr, który łatwo zweryfikować, a większość dostawców usług hostingowych jeżeli go posiada – chwali się nim w bardzo dosadny sposób – chodzi o dyski SSD. O ich zaletach oraz zasadach działania można by śmiało napisać oddzielny artykuł, więc wspomnę jedynie, że dzięki nim strona internetowa może ładować się nawet kilka razy szybciej, a po szczegóły odsyłam do dodatkowej literatury.
Konfiguracja serwera i najnowsze oprogramowanie
OK, mamy już szybki sprzęt, ale to dopiero połowa sukcesu. Kolejnym krokiem jest korzystanie z najnowszych osiągnięć w świecie oprogramowania. Rozpatrując konkretny przypadek związany z najpopularniejszym dziś WordPressem (którego również z powodzeniem używamy w SEO PARTNER), trzeba zadbać o takie podstawowe rzeczy jak (na dzień pisania artykułu 08.03.2020r.):
- Serwer Apache 2.4.41
- PHP 7.4.3 w wersji FPM i wymaganymi dodatkami
- Serwer baz danych MySQL 8.0.19
- Szyfrowanie SSL
- Wykorzystanie HTTP/2
- System operacyjny, np. Ubuntu Server 18.04 i jego właściwa konfiguracja
- Ochrona przed atakami DDoS
Powyższe wytyczne to oczywiście jedynie ogromne uproszczenie – każdy z wyżej wymienionych elementów wymaga szczegółowej konfiguracji związanej często ze zmianą dziesiątek domyślnych wartości. Takie podejście pozwala jednak osiągać prędkości, które wyprzedzają konkurencję już na samym starcie.
Poniżej dzisiejsze statystyki dostępne na oficjalnej stronie: https://wordpress.org/about/stats/
Jak widać z najnowszych technologi korzysta zaledwie ułamek użytkowników. Wspomnę jedynie, że rozbieżność między numeracją wersji MySQL wynika z wykorzystania analogicznego serwera MariaDB, który swoją numerację wersji rozpoczął od 10.0. Najnowszy oficjalny serwer MySQL jest w wersji 8.0 a MariaDB 10.4.
IP Load Balancer
A co w sytuacji, kiedy strona internetowa jest tak popularna, że dzienny ruch liczony jest w setkach tysięcy albo i milionach użytkowników? Jak zachować taką samą wydajność i krótki czas dostępu? Rozwiązaniem takiego problemu jest zastosowanie dynamicznego rozkładu ruchu pomiędzy wiele serwerów z tą samą wersją aplikacji.
Problem oraz jego rozwiązanie można w łatwy sposób zobrazować na przykładzie działania kilku równoległych kas w hipermarkecie. Załóżmy, że właśnie wybiła godzina 17:00 i do sklepu masowo napływają nowi klienci, którzy właśnie skończyli pracę, kiedy tylko zakończą kompletowanie zamówienia do koszyka, czym prędzej biegną do kasy. Co się stanie jeżeli dostępna będzie tylko jedna kasa, która przecież przez cały dzień działała zgodnie z założeniami? Najprawdopodobniej Pani kasjerka po godzinie szalonej pracy i z paniką w oczach postanowi wybiec do ubikacji, a długi sznurek zniecierpliwionych klientów porzuci swoje koszyki i poszuka innego sklepu. Jeżeli jednak w odpowiednim momencie kierownik sklepu zorientuje się w sytuacji i wezwie pracowników do uruchomienia kolejnych kas – ruch rozładuje się pomiędzy wszystkie dostępne i cała sprzedaż odbędzie się z zyskiem dla właścicieli przy jednoczesnym zadowoleniu klientów.
Taka sama sytuacja ma miejsce, kiedy musimy przygotować naszą witrynę na ruch wielu użytkowników. Każdy serwer nawet o najlepszych parametrach w końcu dojdzie do granic swoich możliwości i jedyną opcją na dalsze zachowanie właściwej wydajności będzie po prostu uruchomienie kolejnej maszyny zwierającej kopię naszej aplikacji. Proces ten jest możliwy przy okazji zastosowania IP LB – jest on wtedy pierwszym serwerem, którego jedynym zadaniem jest realizowanie przekierowań użytkowników na docelowe maszyny aplikacji. Te z kolei realizują zapytania użytkowników i przechowują treść strony. Dzięki zastosowaniu mechanizmów orchestracji serwerów cały proces można w pełni zautomatyzować. W przypadku wzrostu obciążenia uruchamiane są kolejne serwery i na odwrót – wyłączane zbędne przy spadku.
Prędkość działania strony internetowej – optymalizacja kodu i mediów
Optymalizacja kodu strony internetowej jest równie ważna, co samo dobranie odpowiedniego serwera. Nawet najmocniejsza maszyna może nie podołać, jeżeli do przetwarzania otrzyma błędne dane. Na szczęście użytkownicy popularnego systemu zarządzania treścią WordPress mają do dyspozycji szereg wtyczek automatyzujących ten proces. Niemniej jednak działania te nie zrealizują się same, a wdrożyć można je na kilka sposobów.
Dbamy o proces przetwarzania danych na każdym poziomie: geolokalizacji, konfiguracji i optymalizacji kodu. Serwery dla naszych klientów dobieramy pod kątem wymagań ich użytkowników. Strony tworzymy na przyjaznym systemie zarządzania treścią CMS WordPress. Kupując stronę od SEO PARTNER dostajesz możliwość swobodnego redagowania treści po zaledwie kilkuminutowym szkoleniu. Skontaktuj się z nami i złóż zamówienie na swoją wymarzoną stronę internetową!