.

Obsługiwanie stron o dużym natężeniu ruchu w Drupalu. Strona z przepisami

Użytkownicy odwiedzający daną stronę internetową oczekują, że będzie działać szybko i bez żadnych przeszkód. Zadaniem właścicieli witryny jest zatem zadbanie o taki stan i utrzymywanie go. To wyzwanie jest jeszcze większe w przypadku stron o dużym nateżeniu ruchu. Odwiedziny wielu osób w tym samym czasie mogą spowodować problemy nie tylko ze stroną, ale także z infrastrukturą serwerową. Pokażemy jak sobie z tym poradzić na przykładzie popularnej strony z przepisami kulinarnymi.

Wyzwanie - jedna z największych stron z przepisami w Polsce

Portal Kwestia Smaku gromadzi bardzo obszerną bazę przepisów i inspiracji kulinarnych, które internauta może odszukać i przygotować we własnej kuchnii. Czytelny i przyjemny interfejs zachęca użytkowników do korzystania z tej strony internetowej, dlatego jest jedną z najczęściej odwiedzanych witryn z przepisami w Polsce. Jak pokazują dane dostępne w sieci, ma miliony odwiedzin miesięcznie.

Na początku zespół Kwestii Smaku zwrócił się do nas z nowymi pomysłami do wykonania w ich serwisie opartym na Drupalu. Przeanalizowaliśmy je, a następnie stworzyliśmy potrzebne funkcjonaliści. W kolejnych etapach współpracy musieliśmy podjąć się wyzwania związanego ze zwiększającą się popularnością strony. Kiedy zbliża się okres świąteczny (Boże Narodzenie, Wielkanoc) ruch jest jeszcze bardziej wzrasta. Pomimo dużego ruchu, platforma musiała generować się i ładować w krótkim czasie, aby internauci mogli komfortowo przeglądać przepisy.

Wdrożenia na stronie o dużym natężeniu ruchu

Kiedy wielu użytkowników korzysta z witryny w trakcie gotowania, wyłączenie serwisu nawet na moment nie wchodzi w grę. Zatem potrzebne było opracowanie wysokiej jakości procesu na cele wprowadzania, nawet najmniejszych, zmian. Dlatego, aby strona była dostępna bez zakłóceń, przed wdrożeniem wykonywaliśmy szereg testów, które miały wykluczyć problem w trakcie wdrożenia oraz po jego wykonaniu.

Testy przeprowadzaliśmy na środowisku testowym z wykorzystaniem Jenkinsa, aby wdrożenie zmian na środowisku produkcyjnym przebiegło pomyślnie. Było ono wykonywane w godzinach nocnych (22-6), z użyciem panelu AEgir.

Rezultaty - optymalizacja wydajności i nowe funkcjonalności

Duży ruch na stronie generuje wiele zapytań do bazy danych. Aby zmniejszyć liczbę operacji na bazie danych podczas przeszukiwania treści, wykorzystaliśmy platformę Apache Solr. Wszystkie widoki rezultatów, które wcześniej korzystały bezpośrednio z bazy danych, a także wyszukiwarka oraz filtry, zostały zmodyfikowane i teraz korzystają z platformy Solr. Umożliwiło to także uruchomienie techniki AJAX, czyli aktualizacje poszczególnych elementów bez przeładowywania całej strony.

Elastyczne wyszukiwanie

Korzystając z Apache Solr i modułu Drupala Search API, opracowaliśmy elastyczną i precyzyjną funkcjonalność wyszukiwania, dopasowaną do potrzeb osób odwiedzających witrynę Kwestia Smaku. Mogą teraz wyszukać przepisy na podstawie frazy, składników lub rodzaju potrawy, którą chcą ugotować.

Funkcja elastycznego wyszukiwania, którą opracowaliśmy dla strony KwestiaSmaku.com

 

Optymalizacja

Ważna rolę odgrywa szybkość ładowania strony, gdy przegląda ją wielu użytkowników jednocześnie. Dlatego musieliśmy zadbać o bardzo optymalne pobieranie danych, które są wyświetlane na stronie. Dokonaliśmy niezliczonej liczby różnego rodzaju optymalizacji wydajności oraz zapytań do bazy danych, a także ustawienia czasu życia pamięci tymczasowej (cache). Wykorzystaliśmy do tego celu narzędzia New Relic i Blackfire.

Interfejs graficzny

Przy użyciu technologii Sass, Less i JavaScript wprowadziliśmy zmiany frontendowe, mające na celu dostosowanie interfejsu graficznego do przejrzystego wyświetlania się na różnych ekranach urządzeń (responsywność). Użytkownik zyskał czytelny i przyjazny interfejs, dzięki któremu ma możliwość swobodnego korzystania z serwisu i przyglądania przepisów.

Wyszukiwarki i social media

Duży nacisk został położony na to, aby przepisy prezentowały się przyjaźnie w wynikach wyszukiwarek, a także podczas udostępnia przepisów w mediach społecznościowych. Wykorzystaliśmy do tego celu moduł Drupala Metatag, wraz z konfiguracją według wytycznych klienta, m.in. ilość opinii, średnia ocena przepisu i zdjęcie dostosowane do wyszukiwarek i mediów społecznościowych.

Przyjazny wygląd przepisu ze strony Kwestia Smaku w wynikach wyszukiwania

 

Ulubione

Jest to ciesząca się wielką popularnością realizacja, która umożliwia tworzenie własnych list ulubionych przepisów. Aby dzielić się listą przepisów, użytkownik ma możliwość sklonowania dowolnej listy do własnego konta, wysłania linku z listą na konkretny adres email oraz udostępnienia listy na Facebooku. Funkcjonalność została oparta o moduł Flag, a część wizualna o bibliotekę umożliwiającą użycie funkcji przeciągnij i upuść.

Na stronie Kwestiasmaku.com użytkownicy mogą tworzyć listy z ulubionymi przepisami

 

Inne udogodnienia dla użytkowników

Chcąc dostarczyć użytkownikom jak najlepsze doświadczenia korzystania z serwisu, uruchomiliśmy udogodnienie w postaci możliwości logowania poprzez konto Facebook.

Innym ułatwieniem, które przygotowaliśmy, jest przelicznik kuchenny. Można dzięki niemu znaleźć podstawowe informacje na temat miar i wag stosowanych w kuchni, a także przeliczyć ilość potrzebnych składników.

Przelicznik kuchenny pomaga obliczyć ilość składników potrzebnych do wykonania danego dania

 

Prywatne notatki

Użytkownicy mogą dodawać własne notatki do przepisów, żeby jeszcze lepiej je dostosować do swojego gustu. Dzięki temu portal Kwestia Smaku sprawdza się zarówno dla początkujących jak i doświadczonych fanów gotowania.

Możliwość dodawania notatek do przepisów na Kwestiasmaku.com - stronie o dużym natężeniu ruchu

 

Rozpoznawanie urządzeń mobilnych

Aby podczas przygotowywania posiłków strona przepisu nie wygaszała ekranu urządzeń mobilnych, wprowadziliśmy możliwość blokowania podświetlenia.

 

Możliwość blokowania podświetlenia podczas korzystania z serwisu Kwestia Smaku na telefonach

 

Wsparcie w zakresie bezpieczeństwa

Przez cały czas dbamy, aby strona posiadała aktualną wersje rdzenia Drupala oraz modułów. Gdy wydawane są aktualizacje bezpieczeństwa, niezwłocznie je wdrażamy.

Obsługiwanie stron z dużym ruchem w Drupalu

Dzięki optymalizacji serwisu, Kwestia Smaku może rozwijać się dalej bez konieczności zmiany serwerów czy rozbudowy infrastruktury serwerowej. Szybkość działania jest bardzo zadowalająca, a dostosowane funkcjonalności są wystarczające do przejrzystego i bardzo łatwego korzystania z serwisu.

Podczas pracy napotkaliśmy kilka znaczących wyzwań, którym musieliśmy stawić czoła. Cały development został zorganizowany tak, aby nie kolidował z działaniem strony produkcyjnej oraz spełnił oczekiwania klienta, pomimo dużego ruchu. Wydania zmian na produkcję były wykonywane w godzinach nocnych, kiedy ruch był niewielki. Podczas wdrażania zmian na stronę podejmowaliśmy współpracę z dostawcą hostingu, aby nieoczekiwane problemy były rozwiązywane błyskawicznie, a czas niedostępności był jak najkrótszy.

Jeśli potrzebujesz pomocy z obsługiwaniem i wdrażaniem zmian na stronie z dużym ruchem w Drupalu, zobacz, jak nasz zespół wsparcia Drupala może Cię w tym wesprzeć.

W ramach wsparcia dla Drupala utrzymujemy istniejące strony internetowe i rozbudowujemy je o nowe funkcjonalności