Blog IT, Blog Marketing

Strona się wolno otwiera?

Strona się wolno otwiera?

Marcin Sarna , 20.09.2021 r.

Parę sposobów na optymalizację tworzonej witryny: CDN, NoSQL i Ops Toggles.

Użyj (i zoptymalizuj) treści z CDN

W 2021 roku korzystanie z CDN powinno być oczywiste - przeniesienie wszystkich zasobów statycznych do sieci CDN jest zdecydowanie najłatwiejszym sposobem na zwiększenie wydajności serwera. CDN poprawia wydajność poprzez buforowanie — lub zapisywanie — zawartości statycznej (np. takiej jak obrazy i filmy) dzięki czemu zasoby te można załadować tylko raz, a następnie udostępnić setkom lub tysiącom odwiedzających. Tradycyjne udostępnianie plików statycznych z serwera sieci Web zajmuje cykle procesora oraz przepustowość i zawraca głowę wątkom zamiast używać je do tego, co powinien robić serwer sieciowy — obsługi zawartości dynamicznej.

W zależności od konfiguracji możesz załadować zawartość CDN z innej domeny (np. zasoby.mojawitryna.pl) co wymaga odpowiedniego skonfigurowania Twojej aplikacji. Ale możliwe też jest konfigurowanie reguł w celu określenia, co powinno ładować się z sieci CDN, a co z (innych) serwerów internetowych.

Nawet jeśli masz już CDN, istnieje duża szansa, że nie czerpiesz z niego tyle ile możesz. Pierwotnie sieci CDN pomagały właśnie wyłącznie w dostarczaniu treści statycznych. Ale dziś robią o wiele więcej: od buforowania zawartości dynamicznej, przez routing i ochronę przed atakami DDoS. Niektórzy dostawcy, jak Akamai EdgeWorkers czy Cloudflare Workers, oferują nawet wykonywanie kodu. Ale pozostają też takie zagadnienia jak odpowiedzialność dostawcy usług za publikowane w sieci treści.

Użyj odpowiedniego narzędzia do danej pracy

Wbrew powszechnemu przekonaniu z ostatnich dziesięcioleci, relacyjna baza danych nie jest idealna do wszystkiego. Dochodziło wręcz do takich patologii, że wysokie ceny przechowywania danych i licencji na oprogramowanie skłaniały programistów i architektów do wykorzystywania relacyjnej bazy danych do zapisywania obrazów lub danych tymczasowych, takich jak stan sesji.

Relacyjne bazy danych to najczęstszy powód, dla którego strony internetowe nie skalują się prawidłowo. Niewielu programistów czy architektów zdaje sobie sprawę, że istnieją inne sposoby utrwalania danych — bazy danych NoSQL, przechowywanie blobów, kolejki wiadomości, powiadomienia push czy przechowywanie danych w przeglądarce. A skalowanie relacyjnej bazy danych jest trudniejsze niż sięgnięcie po właściwe narzędzia.

Żeby aplikacja była elastyczna

Wydajność to nie tylko sprzęt, narzędzia i algorytmy. Chodzi również o to, jak zaprojektowałeś i zbudowałeś swoją aplikację. Jeśli chodzi o elastyczność w skalowaniu aplikacji webowych to skalowanie w poziomie jest generalnie preferowane przed skalowaniem w pionie. Oznacza to, że powinieneś dążyć raczej do tego aby dodawać kolejne, mniejsze serwery niż zastępować obecne serwery większymi.

Skalowanie w poziomie z wieloma mniejszymi serwerami oznacza większą elastyczność i niższe koszty, zarówno zakupu, naprawy, jak i wymiany sprzętu. Jest to już zwłaszcza niezbędne, jeśli Twoja aplikacja ma działać w chmurze. Gdy skalujesz w poziomie, Twoja aplikacja może wymagać niewielkich tylko zmian, na przykład dodanie nowych serwerów i obsługi tego samego użytkownika z wielu serwerów (starych i nowych).

Elastyczny czas pracy

Najważniejsze jest jednak to, że równoważenie obciążenia pomaga zmaksymalizować zasoby serwera poprzez dystrybucję żądań na wiele serwerów. System równoważenia obciążenia oparty na chmurze podejmuje decyzję na brzegu sieci, bliżej użytkowników, co pozwala skrócić czas reakcji i skutecznie zoptymalizować infrastrukturę, jednocześnie minimalizując ryzyko awarii serwera. Nawet jeśli pojedynczy serwer ulegnie awarii, system równoważenia obciążenia może przekierować i rozdzielić ruch na pozostałe maszyny, zapewniając, że klienci nie doświadczą znacznych opóźnień czy wręcz awarii witryny.

Włączanie i wyłączanie poszczególnych funkcji i „fajerwerków”

Pomimo wysiłków zmierzających do maksymalizacji wydajności, na pewno znajdziesz się w sytuacji, w której brakuje zasobów. W takim przypadku lepiej mieć responsywną, podstawową stronę internetową niż stronę bogatą w funkcje ale generalnie niedostępną.

Załóżmy, że spędziłeś lata na ulepszaniu i dostosowywaniu jakiejś witryny, aby była taka, jak lubisz. Zawsze jest coś do optymalizacji, a po drodze dodałeś kilka fajnych „bajerów”. Mogą one jednak wymagać dużej wydajności o czym dowiesz się nierzadko dopiero gdy ilość użytkowników strony zacznie rosnąć.

Pomyśl o swojej funkcji wyszukiwania. Gdy ktoś szuka produktu, zaawansowana funkcja wyszukiwania musi znaleźć wszystkie elementy pasujące do wyszukiwanych haseł, uwzględniając błędy ortograficzne, kategorie produktów i funkcje itd. A to bardzo obciąża procesor.

Zbuduj więc swoją aplikację zgodnie z ideą Ops Toggles - tak aby funkcje wymagające dużej wydajności były wyłączane, gdy dostępne zasoby są ograniczone. Tak, wrażenia użytkownika ulegną pogorszeniu. Ale nawet giganci, tacy jak Amazon, robią to, na przykład wtedy, gdy witryna została przytłoczona popytem w Prime Day w 2018 roku. Amazon wdrożył wtedy zmniejszoną, „awaryjną” stronę główną. A jeśli taki Amazon korzysta z Ops Toggles, Ty też możesz chyba tego spróbować?

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej