Czy Twoja witryna WordPress jest skalowalna?

Opublikowany: 2017-05-16

Czy Twoja witryna WordPress jest skalowalna? Istnieje wiele przykładów wielkoskalowych instalacji WordPressa na wolności. Na przykład WordPress.com to ogromna instalacja wielostanowiskowa, która każdego miesiąca uzyskuje dziesiątki milionów odsłon. Obsługuje również tysiące użytkowników w dowolnym momencie.

Inne przykłady to Time, TechCrunch i CNN. Nie ma co do tego wątpliwości. Z pewnością możesz zbudować skalowalną witrynę z WordPressem, która jest wystarczająco mocna, aby obsłużyć dowolny ruch, o ile stworzysz odpowiednie środowisko. Konfiguracja instalacji w celu skalowania może być skomplikowana, ale jest to opłacalna inwestycja dla każdego właściciela witryny. W tym poście omówimy kilka obszarów, na których możesz się skoncentrować, aby zapewnić skalowalność, i zaoferujemy wskazówki, jak skonfigurować skalowalne środowisko.

Co rozumiemy przez skalowalność?

Co sprawia, że ​​witryna WordPress jest skalowalna? Skalowalna witryna WordPress ma możliwość zwiększania pojemności poprzez skalowanie w górę lub skalowanie w górę.

  • Skaluj w górę – zwiększ moc sprzętu (więcej pamięci RAM, mocniejszy procesor).
  • Skaluj w poziomie — zwiększ pojemność, dodając więcej węzłów (posiadając identyczne kopie witryny rozproszone na wielu komputerach).

Takie postępowanie zapewnia elastyczność w dostosowaniu się do wzrostu. Zasadniczo chcesz mieć możliwość bezproblemowego rozszerzenia swojej witryny. Dzięki WordPress nie musisz się martwić o oprogramowanie. Rdzeń WordPressa implementuje warstwowe konwencje architektury oprogramowania, takie jak oddzielanie znaczników (HTML i CSS) od danych (baza danych MySQL). Poniżej omówimy kilka sposobów na zapewnienie maksymalnej skalowalności.

Środowisko programistyczne

Czy Twoja witryna WordPress jest skalowalna?

Zdjęcie autorstwa Sentavio / shutterstock.com

Jedną z najtrudniejszych części skalowania witryny WordPress jest skonfigurowanie środowiska programistycznego. Dobre środowisko programistyczne będzie bez problemu odzwierciedlać środowisko produkcyjne. Jeśli masz małą witrynę, możesz ujść na sucho z tworzeniem na żywo, chociaż na pewno nie będzie się ona skalować.

Będziesz potrzebować pewnego rodzaju kontroli wersji, aby upewnić się, że programiści nie nadepną sobie nawzajem. Oprogramowanie do kontroli wersji rejestruje zmiany w plikach w czasie, dzięki czemu można je później przywołać. Dodatkowo jest to znacznie wydajniejszy, profesjonalny sposób na stworzenie skalowalnej witryny WordPress.

Dzięki ciężkiej pracy społeczności open source dostępnych jest wiele eleganckich rozwiązań. Git to rozproszone oprogramowanie do kontroli wersji, które umożliwia wielu programistom zdalną pracę w osobnych repozytoriach. Jest niezawodny, szybki i zdolny do obsługi niezwykle dużych projektów. W końcu Git został stworzony przez Linusa Torvaldsa dla rozwoju Linuksa.

Możesz zbudować zabójcze środowisko programistyczne za pomocą VVV (Varying Vagrant Vagrants). To bezpłatne oprogramowanie typu open source jest idealne do tworzenia rozproszonych środowisk programistycznych za pomocą WordPress. Zapoznaj się z naszym The Ultimate Guide to Setup Your WordPress środowisko programistyczne, aby uzyskać szczegółowy samouczek na ten temat. WordPress.org ma również pomocny samouczek dotyczący instalacji VVV.

Skalowalność pozioma

Skalowanie, czyli skalowanie poziome, to jedna z najważniejszych koncepcji tworzenia skalowalnego środowiska. Dzięki temu możesz uruchomić swoją witrynę na wielu różnych maszynach (serwerach). Niektórzy nazywają infrastrukturę „architekturą elastyczną” – ponieważ ilość posiadanych zasobów może się powiększać lub zmniejszać w zależności od potrzeb.

Odbywa się to za pomocą metod przetwarzania w chmurze, takich jak klastrowanie, równoważenie obciążenia i wirtualizacja. W informatyce klastrowanie to proces organizowania podobnych obiektów w grupy. Tak więc pojedynczy klaster będzie zawierał pliki, bazę danych i oprogramowanie Twojej witryny. Klastrowanie zapewnia wysoką dostępność witryny, eliminując problemy spowodowane awariami sprzętu i oprogramowania. Jak to działa?

Jeśli w Twojej witrynie pojawi się gwałtowny wzrost ruchu, system równoważenia obciążenia określi, jak odpowiednio przydzielić więcej zasobów, aby złagodzić zastój poprzez skalowanie – dzieje się to dynamicznie, a Twoi użytkownicy niczego nie zauważają. Chodzi o to, że masz identyczne kopie swojej witryny rozproszone na wielu komputerach i wszystkie one o sobie wiedzą. Tak więc w klastrze zawsze znajduje się komputer w trybie gotowości, jeśli nastąpi wzrost ruchu lub składnik stosu ulegnie awarii.

Usługi hostingu w chmurze, takie jak Amazon Web Services (AWS) lub RackSpace, to dwaj popularni dostawcy hostingu w chmurze, którzy umożliwiają skalowalność poziomą. Zapoznaj się z tym samouczkiem dotyczącym wdrażania wysoce dostępnej witryny WordPress z AWS, aby zapoznać się z przykładem typowej infrastruktury serwerowej z elastyczną architekturą.

Buforowanie

Pamięć podręczna to tymczasowe miejsce do przechowywania pamięci. Buforowanie może pomóc w szybszym dostarczaniu treści i uniknąć problemów ze współbieżnością. Każdy CMS wymaga pewnego rodzaju pamięci podręcznej, WordPress nie jest inny. Zła wiadomość jest taka, że ​​buforowanie może być absurdalnie skomplikowane. Dobrą wiadomością jest to, że społeczność open source wymyśliła wiele różnych rozwiązań w tej sprawie. Istnieje wiele narzędzi, które mogą Ci pomóc, w tym WP Super Cache i Batcache.

Odwrotne buforowanie proxy (buforowanie stron)

Buforowanie zwrotnego proxy to skuteczny sposób ładowania dynamicznych stron internetowych. Odwrotny serwer proxy to usługa pośrednicząca między WordPressem a przeglądarką. Pomoże to zmniejszyć obciążenie głównego serwera i skrócić postrzegany czas ładowania strony.

Problem polega na tym, że serwery PHP obciążają zasoby. Wykonują dużą liczbę złożonych zadań, które mogą ugrzęznąć w Twoim serwerze. Możesz zmniejszyć obciążenie serwera, wdrażając odwrotny serwer proxy.

Załóżmy na przykład, że odwiedzasz stronę główną swojej witryny. To pierwsza wizyta tego dnia. W tym momencie nie ma jeszcze wersji strony głównej w pamięci podręcznej.

  1. Użytkownik wprowadza adres URL w pasku adresu, żądając strony z serwera.
  2. Żądanie przechodzi przez serwer proxy, który nie ma jeszcze wersji strony w pamięci podręcznej, do WordPressa.
  3. WordPress generuje stronę główną i przesyła odpowiedź z powrotem do zwrotnego serwera proxy.
  4. Następnie serwer proxy wysyła odpowiedź do przeglądarki i zapisuje zbuforowaną kopię tej strony.
  5. Dopóki istnieje pamięć podręczna, każdy użytkownik żądający tej strony otrzyma wersję strony z pamięci podręcznej.

Buforowanie obiektów

Koncepcja buforowania obiektów jest podobna do buforowania stron, z wyjątkiem tego, że działa na poszczególnych obiektach. Wiele problemów ze współbieżnością może pojawić się, gdy w Twojej witrynie jest zalogowanych wielu użytkowników. Buforowanie obiektów zapisuje obiekt aplikacji (na przykład wideo, obraz, dokument) w magazynie danych. Buforując obiekty aplikacji, jesteś mniej zależny od bazy danych, zwalniając dużo pamięci.

Istnieje wiele opcji buforowania. Sieci dostarczania treści, takie jak Cloudflare, Akamai, EdgeCast i KeyCDN, mogą działać jako masowe zwrotne serwery proxy. Varnish i WP Super Cache to dwie popularne opcje implementacji buforowania za pomocą WordPress.

Wydajność zapytań

Czy Twoja witryna WordPress jest skalowalna?

Zdjęcie: Oleg Erin / shutterstock.com

Baza danych często może być przyczyną najgorszych wąskich gardeł. Powolne zapytania mogą związać aplikację PHP na serwerze i zatrzymać całą aktywność — nawet jeśli masz elastyczną architekturę. Jak wspomniałem wcześniej, serwery PHP mogą znacznie spowolnić serwer. Jeśli buforowanie nie działa, możesz znaleźć sposoby na poprawę wydajności zapytań, identyfikując powolne zapytania.

Powolne zapytania są spowodowane problemami z bazą danych SQL, siecią obsługującą Twoją witrynę lub serwerem. Istnieje wiele powodów, dla których może się to zdarzyć. Zdecydowanie nie ma jednego rozwiązania. Pierwszym krokiem do poprawy wydajności zapytań jest identyfikacja powolnych zapytań.

Po zidentyfikowaniu problemu możesz podjąć działania. Czasami odpowiedź może być tak prosta, jak zakup większej przepustowości, innym razem może być konieczne dostosowanie kodu, co może być trudne.

Sprawdź wtyczkę WordPress Query Monitor, jeśli szukasz narzędzia do monitorowania zapytań.

Poprawa wyszukiwania

Jeśli masz dużą liczbę postów, powiedzmy 1 milion, będziesz musiał pamiętać o tym, jak skonfigurowane są Twoje bazy danych. Większość większych witryn ma zoptymalizowany indeks wyszukiwania. Która jest niestandardową wyszukiwarką dodaną do WordPressa.

Zapytanie treści w WordPress nie działa dobrze, jeśli masz dużą liczbę postów w swojej witrynie. Pozostawia również wiele do życzenia pod względem szybkości. Typowym rozwiązaniem tego problemu jest utworzenie dedykowanego indeksu wyszukiwania. Dzięki temu te zapytania nie będą znajdować się w bazie danych, zapewniając użytkownikom lepsze wrażenia podczas przeglądania, a także zwiększając wydajność bazy danych.

Popularne wyszukiwarki dla witryn WordPress na dużą skalę to ElasticSearch i ApacheSolr.

Zawijanie

Ważne jest również rozpoczęcie od właściwej skali. Zacznij prosto, a następnie zoptymalizuj później. Cytując Donalda Knutha, „przedwczesna optymalizacja jest źródłem wszelkiego zła”. Przystosuj się do wzrostu, ale nie próbuj ściskać ogromnej witryny e-commerce na maleńkim fundamencie lub odwrotnie. Być może nie będziesz musiał budować skalowalnej witryny, jeśli jest to coś prostego, takiego jak strona wydarzenia.

Zazwyczaj elastyczna architektura jest standardem dla witryn eCommerce. Chociaż niektóre z tych rzeczy mogą wydawać się niezwykle złożone, tak naprawdę nie musisz ich wszystkiego rozumieć. Dopóki znasz podstawy, możesz zbudować solidne środowisko dla witryny na dużą skalę. Wszystko, co musisz zrobić, to znaleźć odpowiednie usługi w chmurze i podłączyć się do odpowiedniej sieci CDN.

Zapraszam do dzielenia się swoimi doświadczeniami w sekcji komentarzy. Jakie kroki podjąłeś, aby Twoja witryna WordPress była skalowalna?

Obraz miniatury artykułu autorstwa turbodesign / shutterstock.com