Przenieś swoją witrynę WordPress do platformy Cloud
Opublikowany: 2020-06-05Oparty na PHP i MySQL, światowej sławy CMS WordPress od ponad dwóch dekad obsługuje wszystko, od osobistych blogów po witryny internetowe o dużym natężeniu ruchu. Jednak od momentu powstania i pierwszego wydania w 2003 roku jego twórcy nie tworzyli go z myślą o nowoczesnych, elastycznych i skalowalnych infrastrukturach opartych na chmurze. Kto mógł przewidzieć dotychczasowy rozwój technologii?
Na szczęście wraz z poszerzeniem społeczności WordPressa i późniejszym wydaniem bardziej dojrzałych wersji WordPressa jego możliwości znacznie się rozszerzyły. Ostatecznie mamy teraz scenariusze, w których można zbudować infrastrukturę WordPress, która odpowiednio wykorzystuje serwery i infrastrukturę w chmurze.
W tym blogu będziemy badać relacje między WordPress i serwerami Cloud oraz kiedy powinny być używane w połączeniu. Na potrzeby kontekstu zapewnimy bardzo szczegółowy zakres pojęć, które odnoszą się do tego tematu. Więc bez zbędnych ceregieli, zagłębimy się!
Czym jest chmura?
Krótko mówiąc, w kategoriach laika chmura jest wszechobecnym sposobem dostarczania usług i zasobów IT przez Internet, więc można uzyskać do niej dostęp na żądanie lub w ramach płatności zgodnie z rzeczywistym użyciem. Zasadniczo serwery w chmurze działają jako wygodne „jednostki pamięci” w Internecie, stąd określenie „chmura”. To może być najbardziej uproszczona odpowiedź, jaką kiedykolwiek udzieliłem w odniesieniu do chmury, tak czy inaczej, idę dalej!
Biorąc to pod uwagę, istnieje wielu dostawców usług w chmurze, chociaż najbardziej godnymi uwagi są Amazon Web Services (z największym udziałem w rynku), a następnie Microsoft Azure i Google Cloud. Te trzy są czasami określane jako „hiperskalownicy”, chociaż istnieją inni dostawcy chmury publicznej, tacy jak AlibabaCloud, DigitalOcean, IBM Cloud i Linode. Szczerze mówiąc, warto wspomnieć, że niektórzy dostawcy chmury publicznej oferują również standardowe usługi hostingowe (np. hosting współdzielony WordPress), podczas gdy inni nie. Ale zagłębimy się w to później.
Piękno chmury polega na tym, że znacznie wyrównuje szanse małych firm. Dzieje się tak poprzez umożliwienie im dostępu do najnowocześniejszych zasobów online, które wcześniej były dostępne tylko dla większych graczy. Wszystko to bez konieczności ogromnych inwestycji kapitałowych, które obejmują zakup sprzętu, tworzenie kosztownych centrów danych i zatrudnianie działu IT na pełny etat.
W większości przypadków większość dostawców usług w chmurze oferuje również model płatności zgodnie z rzeczywistym użyciem z usługami zarządzanymi, takimi jak automatyczne skalowanie i usługi zarządzania bazami danych itp. Jest to więc bardzo atrakcyjne dla wielu firm, które nie zamierzają lub nie mogą pozwolić sobie na inwestycję w pełną infrastrukturę IT. Zasadniczo, pozwalając im skupić się na swojej podstawowej działalności i pozwolić dostawcy chmury zajmować się kwestiami technicznymi.
Chmura zapewnia dostęp do niezliczonych korzyści; jednak znaczące korzyści to:
- Oferuje wszechobecną i zorientowaną na usługi architekturę, dostępną na całym świecie.
- Zapewnia wygodne i elastyczne przetwarzanie
- Korzysta z różnych poziomów usług na żądanie
- Zapewnia obniżony całkowity koszt posiadania
- Zapewnia zredukowane koszty związane z technologią informacyjną

Rodzaje usług w chmurze
Generalnie dostawcy chmury publicznej oferują swoje usługi w trzech pionach, a mianowicie: Infrastructure as a Service (IaaS), Platform as a Service (PaaS) oraz Software as a Service (SaaS). Ze względu na kontekst podsumujmy różnice między wszystkimi tymi rodzajami usług i co każdy z nich pociąga za sobą, dobrze?
- IaaS: Infrastructure as a Service oferuje użytkownikom różne infrastruktury chmurowe, takie jak m.in. obliczenia wirtualne, systemy operacyjne, kolejki, pamięć masowa, sieci VLAN, systemy równoważenia obciążenia. Ten rodzaj chmury wymaga dogłębnej wiedzy technicznej w celu wdrożenia i obsługi aplikacji. Na przykład każdy składnik wymaga zarządzania technicznego, aby zainicjować skalowanie w górę lub w dół lub wykonać równoważenie obciążenia.
- PaaS: Z drugiej strony model Platform as a Service zapewnia więcej usług zarządzanych. Zasadniczo oznacza to, że odpowiedzialność za aktualizacje i łatanie oprogramowania należy przede wszystkim do dostawcy chmury. Co więcej, dzięki PaaS operacje związane z infrastrukturą zaaranżowane przez samą chmurę, takie jak skalowanie, tworzenie kopii zapasowych, replikacja danych, odbywają się w sposób przejrzysty.
- SaaS: Prawdopodobnie najbardziej znanym z tych wszystkich pionów jest model Software as a Service, który dostarcza w pełni funkcjonalne oprogramowanie zarządzane w chmurze. Model SaaS może obejmować zarówno komponenty IaaS, jak i aplikacje PaaS lub używać osobno jednej z dwóch branż.

Ostatecznie, pomimo wszystkich wymienionych powyżej modeli, granice między platformami Cloud szybko stają się cieńsze, ponieważ coraz więcej dostawców korzysta z bardziej mieszanych usług, które mogą należeć do IaaS lub PaaS. Na przykład Amazon Web Services zaczął od ofert IaaS (EC2, SQS i S3), a następnie dodał po drodze komponenty PaaS (relacyjne bazy danych i nierelacyjne bazy danych). Dla porównania, Microsoft Azure rozszerza zarówno komponenty PaaS (witryny internetowe Azure i baza danych SQL), jak i IaaS (maszyny wirtualne i pamięć masowa).

Kiedy jest odpowiedni czas na migrację do chmury?
Niezależnie od tego i bez wątpienia większość aplikacji może być hostowana na „hiperskalerach” w taki czy inny sposób. Jednak zawsze było pytanie – czy jest to uzasadnione, czy będzie zbędne, może przesadne lub w niektórych przypadkach doprowadzi do niedostatecznego wykorzystania zasobów.
Biorąc to pod uwagę, warto zauważyć, że określone aplikacje doskonale pasują do chmury ze względu na ich pilną potrzebę pewnych funkcji chmury. Na przykład mogą potrzebować kombinacji koderów, sieci CDN, relacyjnych baz danych lub możliwości automatycznego skalowania zasobów. Tak czy inaczej, istnieją przypadki, w których inne aplikacje są po prostu przenoszone do chmury ze względu na nie i nie wykorzystują w pełni wszystkich jej zasobów. Co zresztą nie jest przestępstwem.
Które typy aplikacji WordPress są idealne do migracji do chmury?
Ponieważ ustaliliśmy, że chmura może obsłużyć każdą aplikację obliczeniową poza siedzibą firmy, niezależnie od jej pojemności. Nasze zastrzeżenie jest nadal aktualne, ponieważ podkreśliliśmy, że jednak nie każda aplikacja jest odpowiednia dla chmury. Więc jakie typy aplikacji WordPress są wystarczające dla chmury?

1. Aplikacje wymagające okresowych i wymagających przetwarzania
Ogólnie rzecz biorąc, takie aplikacje zazwyczaj przeprowadzają operacje wymagające dużej mocy obliczeniowej, takie jak funkcje analizy wsadowej na różnych formach danych. Takie funkcje analizy wsadowej mogą przybierać różne formy, w tym: konwersję plików z jednego formatu na inny, semantyczną analizę tekstu, klasyfikację danych, raportowanie, indeksowanie tekstu, grupowanie danych, a nawet uczenie sieci neuronowych dla uczenia maszynowego itp.
Tak więc, ponieważ te operacje są zwykle przewidywalne w czasie, wymagają dużej mocy obliczeniowej oferowanej przez dostawców chmury hiperskalowej. Dzieje się tak, ponieważ dostawcy chmury publicznej zawsze dysponują najnowocześniejszym sprzętem, aby zaspokoić tak wielkie potrzeby. Zasadniczo więc, w przypadku małych firm z takimi aplikacjami, chmura pomaga im obejść tak ciężkie i niepotrzebne inwestycje w sprzęt (które czasami mogą być inwestycjami reakcyjnymi).
Co więcej, organizacja może zdecydować się na dalsze przyspieszenie swoich możliwości przetwarzania wsadowego za pomocą chmury – aby zakończyć szybciej, na przykład w mniej niż godzinę, w przeciwieństwie do 3 lub 4 godzin. Jest to całkiem łatwe w zarządzaniu w środowisku chmury, ponieważ administratorzy mogą po prostu rozkręcić więcej jednostek obliczeniowych. Natomiast w standardowym hostingu WordPress taka realizacja byłaby dość trudna ze względu na ograniczenia sprzętowe.
2. Aplikacje wymagające wysokiej dostępności (HA) i skalowalności.
Zasadniczo mamy do rozważenia dwie kategorie. Pierwsza kategoria to aplikacje, które chcą dostarczać usługę HA (wysokiej dostępności) swoim użytkownikom końcowym. Następnie mamy aplikacje, które przewidują wzrost ich wykorzystania lub planują rozszerzyć swoje usługi na większą bazę użytkowników.
Konfiguracja wysokiej dostępności oznacza, że aplikacja nie ma pojedynczego punktu awarii (SPOF). Zwykle osiąga się to poprzez dodanie nadmiarowości do każdego punktu końcowego, komponentu lub usługi aplikacji. Ponadto ta konfiguracja naturalnie zakłada, że do osiągnięcia wysokiej dostępności potrzeba więcej sprzętu i mechanizmów, takich jak automatyczne procesy awaryjne, równoważenie obciążenia i monitorowanie.
Druga kategoria dotyczy aplikacji, które zamierzają zwiększyć bazę użytkowników (i charakteryzują się elastyczną skalowalnością). Na przykład mogą planować rozszerzenie swojej oferty produktów/usług; lub spodziewać się późniejszej ekspansji na nowe rynki. Oznacza to więc potrzebę znacznej aktualizacji chmury i odpowiedniej warstwy zarządzania, aby działała.
3. Aplikacje z nieprzewidywalnymi szczytami wykorzystania
Takie aplikacje zwykle często wchodzą w interakcję z użytkownikami za pośrednictwem sklepów internetowych, witryn produktowych, popularnych blogów itp. Takie usługi internetowe zazwyczaj mają przewidywalną i stałą bazę użytkowników, jednak w niektórych przypadkach mogą losowo przyciągnąć bardzo dużą liczbę użytkowników . Na przykład skoki mogą wystąpić, jeśli zostaną odesłane do nich na popularnej stronie internetowej lub jeśli związany z nimi film wideo stanie się wirusowy. A może po tym, jak kampania marketingowa odniesie większy sukces niż początkowo oczekiwano dzięki kuponom i kodom promocyjnym.

Zasadniczo więc migracja do chmury może być idealna, gdy nie można przewidzieć potencjalnego natężenia ruchu przychodzącego lub dokładnego czasu, w którym nastąpi. Tacy właściciele stron internetowych mają tendencję do dokładnego przewidywania wzrostu ruchu, ale nie wiedzą, ile to będzie, ani jak zostanie rozłożone.
Przeczytaj więcej: 11 skutecznych sposobów na skalowanie witryny WordPress pod kątem dużego ruchu
Tak więc w takich sytuacjach zakup sprzętu reakcyjnego lub awaryjnego nie jest opłacalny ze względu na fragmentaryczne użytkowanie, które może prowadzić do tego, że wiele sprzętu pozostaje nieużywanych sezonowo. W takich scenariuszach cokolwiek innego niż implementacja w chmurze byłoby nierozsądne.
4. Aplikacje wymagające różnych środowisk testowych
Nie jest dobrze znany przez wielu, użytkownicy mogą wykorzystywać chmurę do uruchamiania środowiska testowego. Takie środowiska testowe mogą być stałe lub tymczasowe, gdy trzeba wykonać określony zestaw testów, takich jak testy bezpieczeństwa lub testy obciążeniowe
Zasadniczo więc, aby osiągnąć takie środowiska testowe, niezbędny będzie sprzęt wysokiej klasy, a konsekwencje kosztowe zakupu sprzętu w celu przeprowadzenia testów bezpieczeństwa i testów obciążenia mogą być dość duże. Wynika to głównie z tego, że testy te muszą być przeprowadzane kilka razy w roku i wymagają pełnej konfiguracji produkcyjnej, aby osiągnąć swój cel. Dlatego zakup zupełnie nowego sprzętu do takich testów może się skończyć jako działaniem nieefektywnym lub zbędnym z punktu widzenia kosztów. W tym momencie chmura staje się opcją.
Podsumowując nasze punkty, głównymi czynnikami wpływającymi na przyjęcie chmury są: baza użytkowników, wzorzec użytkowania, wymagania dotyczące odporności na awarie i wymagania dotyczące testowania. Oczywiście, więcej czynników uzasadnia kandydaturę aplikacji do chmury, ale te cztery czynniki zwykle się wyróżniają.
Korzystanie z platform chmurowych z WordPress
Większość aplikacji WordPress korzysta ze standardowego hostingu, jednak rośnie liczba użytkowników WordPress, którzy decydują się na uruchamianie swoich witryn na platformach takich jak chmura AWS i Google Cloud.
To pokazuje, że coraz więcej właścicieli witryn jest zaniepokojonych tym, jak zbudować witrynę internetową, która odpowiednio się skaluje. Na przykład powinien być w stanie obsłużyć zmienną liczbę odwiedzających i być wystarczająco elastyczny, aby umożliwić szybką i łatwą aktualizację treści, zachowując jednocześnie odporność na błędy. Ta ostatnia kwestia jest ważna, ponieważ daje właścicielom pewność, że gdy coś się zepsuje, serwis nadal będzie mógł właściwie wykonywać swoje funkcje.
Tak więc, dla dodatkowego kontekstu, typowy hosting WordPress to usługa zarządzana, zasadniczo oprogramowanie jako usługa (SaaS). Natomiast migracja do chmury publicznej oznacza wykonanie instalacji platformy jako usługi (PaaS). Zasadniczo instalacja WordPress z wykorzystaniem PaaS odciąża dostawcę chmury z utrzymania infrastruktury, tworzenia kopii zapasowych, replikacji i dostępności.
Zarządzanie serwerem Cloud może być trudne
Skonfigurowania lub udostępnienia środowiska serwerowego nie da się łatwo wydedukować, chyba że jesteś znawcą lub ekspertem. Wiąże się to z wiedzą, jak zarządzać instancjami w chmurze, jednocześnie ustanawiając warstwę protokołów bezpieczeństwa, która zapewnia ochronę instancji w chmurze.
Z jednej perspektywy takie instalacje mogą wymagać posiadania kompetencji w zakresie poleceń systemu Linux, ponieważ domyślne serwery AWS nie są wyposażone w żaden graficzny interfejs użytkownika. Tak więc umiejętność korzystania z CLI jest niezbędna, co może być wyzwaniem dla osób z ograniczoną wiedzą po stronie serwera.
Jednak niektórzy dostawcy usług w chmurze udostępniają zasoby, które pomagają złagodzić problemy związane z zarządzaniem serwerem, aby umożliwić Ci skupienie się na witrynach WordPress. Te same narzędzia bacznie kontrolują bezpieczeństwo Twojego serwera, aby chronić Twoją witrynę przed cyberatakami. Takie rozwiązania mogą oferować użytkownikom możliwość integracji SSL, tworzenia witryn pomostowych, klonowania witryn i zarządzania zadaniami cron za pomocą zaledwie kilku kliknięć.
Planowanie migracji do chmury WordPress
Po wybraniu opcji migracji aplikacji WordPress do chmury ważne jest, aby określić odpowiedni projekt architektoniczny, wybrać wiarygodnego dostawcę chmury, udoskonalić architekturę aplikacji, przetestować konfigurację, a następnie wydać.
Określenie planu architektury pozwala przede wszystkim zidentyfikować niezależne i skalowalne części aplikacji WordPress. Po drugie, wybierając dostawcę chmury, należy wybrać najlepsze dopasowanie, biorąc pod uwagę takie czynniki, jak możliwości bazy danych. Na przykład baza danych SQL Server może być dobrze dopasowana do Azure SQL Database lub AWS RDS, podczas gdy baza danych MySQL może być również odpowiednia dla AWS RDS.
Ponadto dostawca chmury może wpłynąć na ostateczną architekturę Twojej aplikacji. Ponadto podczas testowania konfiguracji zawsze bierz pod uwagę dane o rzeczywistym rozmiarze, więc staraj się wprowadzić kompletny klon danych produkcyjnych, który obejmuje głównie dane z bazy danych i treści generowane przez użytkowników.
Koszt
Należy również dokładnie obliczyć początkowy całkowity koszt każdego dostawcy chmury. Ponieważ większość dostawców usług w chmurze ma kalkulatory cen online, możesz z nich korzystać. Zwróć także uwagę na takie aspekty, jak godziny obliczeniowe, przepustowość i pamięć masowa, a także metryki, takie jak liczba żądań GET dotyczących dostępu do niektórych pamięci obiektów i godzin równoważenia obciążenia itp.
Najlepsze praktyki dotyczące instalacji WordPress na serwerach w chmurze
1. Upewnij się, że korzystasz z sieci dostarczania treści (CDN)
Pamiętaj, że większość aplikacji WordPress dostarcza mieszankę treści statycznej i dynamicznej. Zawartość statyczna to obrazy, pliki JavaScript lub arkusze stylów. Podczas gdy zawartość dynamiczna to wszystko, co jest generowane po stronie serwera, co wykorzystuje kod WordPress PHP. Na przykład elementy wygenerowane z bazy danych lub spersonalizowane dla każdego widza.
Ponieważ opóźnienie sieci jest ważne dla wygody użytkownika końcowego, konieczne jest korzystanie z sieci CDN, ponieważ pomagają one wyeliminować opóźnienia w sieci, umożliwiając spójne dostarczanie treści użytkownikom na całym świecie.
Tak więc, ponieważ użytkownicy są zazwyczaj rozproszeni geograficznie na całym świecie, sieci CDN zasadniczo pomagają przyspieszyć dystrybucję treści z niskimi opóźnieniami i wysokimi prędkościami przesyłania danych na całym świecie.
Czytaj więcej: Wskazówki, jak poprawić szybkość witryny WordPress
2. Buforowanie bazy danych
Buforowanie bazy danych może znacznie zmniejszyć opóźnienia i zwiększyć przepustowość aplikacji, takich jak WordPress. Osiąga to poprzez przechowywanie często używanych fragmentów danych w pamięci w celu uzyskania dostępu z małymi opóźnieniami, takich jak wyniki zapytań do bazy danych o dużym natężeniu operacji we/wy. Oznacza to więc, że gdy duży procent zapytań jest obsługiwany z pamięci podręcznej, zmniejsza się liczba zapytań, które muszą trafić do bazy danych. Co za tym idzie, skutkuje niższymi kosztami związanymi z uruchomieniem bazy danych.
3. Bezstanowa warstwa internetowa
Zasadniczo aplikacja bezstanowa jest nieświadoma poprzednich interakcji i nie przechowuje żadnych informacji o sesji. A w przypadku WordPressa oznacza to, że wszyscy użytkownicy końcowi otrzymują tę samą odpowiedź, niezależnie od tego, który serwer sieciowy przetworzył ich żądanie.
Tak więc, aby wykorzystać wiele serwerów internetowych w konfiguracji automatycznego skalowania, Twoja warstwa internetowa musi być bezstanowa. Ponadto aplikacje bezstanowe mogą być skalowane w poziomie, ponieważ każde żądanie może być obsługiwane przez dowolne dostępne zasoby obliczeniowe (co nazywamy „instancjami serwera WWW”).
Jednak domyślnie WordPress przechowuje przesłane przez użytkownika pliki w lokalnym systemie plików, a zatem nie jest bezstanowy. Dlatego ważne jest, aby przenieść instalację WordPressa i całą konfigurację użytkowników, wtyczki, motywy i przesyłane przez użytkowników pliki do udostępnionej platformy chmury danych, aby zmniejszyć obciążenie serwerów internetowych i uczynić warstwę internetową bezstanową.
Czytaj więcej: Czy wtyczki WordPress są bezpieczne w użyciu?
Aby to osiągnąć, możesz użyć pamięci zewnętrznej do przechowywania sesji PHP. Może to być prosty magazyn klucz-wartość lub sama baza danych. Wszyscy główni dostawcy chmury oferują magazyny klucz-wartość, takie jak Azure Tables lub AWS DynamoDB, które powinny być wysoce dostępne i osiągalne dla wszystkich komponentów aplikacji, które wchodzą w interakcję z danymi sesji.
Końcowe przemyślenia.
Podsumowując, przetwarzanie w chmurze stało się bardziej powszechną formą zarządzania danymi dzięki swojej niezrównanej zdolności do zapewniania zwiększonych korzyści skali, bezpieczeństwa danych, interoperacyjności, łatwej dostępności i efektywności energetycznej. Zasadniczo zmienia sposób, w jaki zarządzamy, przydzielamy i zużywamy zasoby obliczeniowe, pamięciowe i sieciowe na całym świecie.
Tak więc serwery WordPress i Cloud można przede wszystkim łączyć wydajnie, jeśli przewidujesz duże wzrosty ruchu, jeśli potrzebujesz wysokiej dostępności, jeśli masz nieoczekiwane wymagania dotyczące skalowalności, masz dynamiczne potrzeby w zakresie przetwarzania i jeśli potrzebujesz unikalnego środowiska testowego.