Bez obaw, dzięki automatycznym aktualizacjom Plugin dla WordPress . Czy to możliwe?

Florian Simeth Ostatnia aktualizacja 26.02.2021
8 Min.
aktualizacje auto plugin
Ostatnia aktualizacja 26.02.2021

Automatyczne aktualizacje dla mniejszych wersji WordPress sprawdzają się od lat. Ale czy działa to również z Plugins? To pytanie zostało zbadane przez WordPress dewelopera Florian Simeth i ma pomocne wskazówki od eksperta ds. bezpieczeństwa i konserwacji Marc Nilius w jego analizie.

Każdy, kto używa WordPress od jakiegoś czasu, wie, że automatyczne aktualizacje oprogramowania głównego działają całkiem dobrze i zazwyczaj bezproblemowo. Gdyby nie było Plugins. Zazwyczaj myśl o automatycznych aktualizacjach Plugin sprawia, że włosy na karku większości opiekunów stron stają dęba. Każdy, kto kiedykolwiek zgrzytał zębami przed kliknięciem przycisku aktualizacji wie, o czym mówię.

Nigdy tak naprawdę nie wiadomo, czy aktualizacje przebiegają prawidłowo. Nawet jeśli sama aktualizacja nie zawiedzie, ale błędy czają się gdzieś - niewidoczne - pod ziemią. Większość kolegów, z którymi rozmawiałem, nie przeprowadziłaby automatycznych aktualizacji Plugin, przynajmniej nie dla wszystkich Plugins. Ale dlaczego tak się dzieje?

Kiedy automatyczne aktualizacje Plugin niosą ze sobą zagrożenia

658 ochotników przyczyniło się do powstania wersji 5.3 WordPress . Nie każdy projekt Plugin ma w sobie taką siłę mężczyzny (i kobiety). Większość darmowych stron Plugins w katalogu WordPress -Plugin jest tworzona przez jedną osobę (lub mały zespół). Nie znaczy to, że te Plugins są złe same w sobie. Jednak z przeszłości wiemy, że to zwykle Plugins otwierają luki w zabezpieczeniach, czyniąc własną instancję WordPress celem dla hakerów.

Można więc założyć, że jakość kodu cierpi lub jest testowany zbyt rzadko. Dlaczego tak się dzieje, nie chcę w tym miejscu dłużej wyjaśniać. Ale to wyjaśnia, dlaczego szybko klikamy przycisk aktualizacji dla znanych Plugins jak YoastSEO, a dla innych raczej nie.

"Zasadniczo można rozpoznać problematyczne przypadki po tym, że coś już wcześniej poszło nie tak" - napisał do mnie Marc Nilius w rozmowie e-mailowej. Według jego własnych informacji, utrzymuje on obecnie około 200 instancji WordPress i zna swojego "Pappenheimera" aż za dobrze. Teraz Yoast z pewnością ma duży zespół za swoim własnym darmowym YoastSEO-Plugin, który jest aktywny na ponad pięciu milionach stron WordPress . W przypadku flagowego okrętu firmy, robi ona wszystko, co w jej mocy, aby nic nie poszło źle. To przychodzi z wysiłkiem. Jest to wysiłek, z którym sam deweloper może nie być w stanie lub nie chce sobie poradzić. Co zatem można zrobić?

Sposoby minimalizowania ryzyka poprzez stronę Plugins

1. nie używaj starej strony Plugins

"Demokratyzacja publikacji" jest wskazaną zasadą przewodnią dla WordPress . Fakt, że każdy może po prostu szybko założyć stronę WordPress jest genialną rzeczą, ale automatycznie prowadzi do tego, że ci ludzie chcą rozbudować stronę w pewnym momencie. I robią to z Plugins. Ponieważ zazwyczaj nie potrafią się sami zaprogramować, szukają remedium w wiecznym WorldWideWeb. A jest ich mnóstwo. 

Obecnie w samym katalogu Plugin znajduje się prawie 55 000 rozszerzeń. Wykorzystuje się to, co działa. Nie zwracając uwagi na to, czy Plugin jest dalej rozwijany, czy jest kompatybilny z aktualną wersją WordPress . Nie zawsze jest to prawdą i w końcu często prowadzi do zdrowej nieufności wobec aktualizacji. Bo często taki Plugins ma tendencję do tego, że w pewnym momencie przestaje działać. Nawet jeśli może to potrwać kilka lat.

Oczywiście są też pozytywne przykłady. Na przykład, istnieje ogromna firma za WooSidebars. Mimo to Plugin od roku nie doczekał się żadnych aktualizacji. Nie był on testowany z najnowszymi wersjami WordPress , ale nadal działa dobrze w wielu przypadkach. Jak długo jeszcze? Pierwsze komentarze w obszarze wsparcia już wskazują na koniec. Ale użytkownik niczego nie zauważa. Podczas instalacji tylko mała, niepozorna wskazówka pokazuje tę wadę. Niebezpieczna rzecz.

woosidebars

Oczywiście, kiedy zaczynasz swoją karierę blogerską, często nie masz pieniędzy na rozwój niestandardowych. Dla tych ludzi nie ma innej alternatywy. Należy jednak pamiętać, że ze względu na wspomniane wyżej zagrożenia bezpieczeństwa, należy korzystać z jak najmniejszej liczby (starych) stron Plugins .

2. Plugins nie dostosowywać się

Aby zaoszczędzić czas rozwoju, zarówno oficjalne jak i nieoficjalne Plugins są często po prostu adaptowane przez własnych programistów. Jeśli numer wersji lub nazwa Plugins nie ulegnie zmianie, WordPress oferuje aktualizację, choć może ona nie zostać wykonana, ponieważ w przeciwnym razie nadpisałaby własne zmiany.

"Dostosowana do potrzeb Plugins często za bardzo zależy od funkcjonalności Theme", wie również Marc. Jeżeli coś się zmieni w Theme, to Plugin nie będzie już działać prawidłowo. Jest więc wiele problemów. Ale robienie wszystkiego samemu od podstaw, tzn. korzystanie tylko z własnych opracowań, również nie jest tutaj prawdziwą alternatywą.

3. Nie używaj złej strony Plugins

Co to jest "zły" Plugin? Odpowiedź na to pytanie nie jest łatwa. Szczególnie nie dla laików. Oczywiście, można zapytać operatorów, czy przeprowadzane są automatyczne testy nowych wersji. Ale kto to robi? Wielu użytkowników WordPress nie wie nawet, że coś takiego jest możliwe. Ponadto, takie testy (jeśli są przeprowadzane) często nie mają nic wspólnego z sytuacjami na żywo. Co jest zrozumiałe z punktu widzenia dewelopera. Kto testuje każdą stronę Plugin z każdą stroną Theme? Albo każdy Plugin z każdym innym Plugin? Nie możesz. Nie można też ufać deweloperom, że to zrobią.

To samo dotyczy tutaj: nieużywanie "złej" strony Plugins również nie jest prawdziwą alternatywą. Chociaż ocena jakości jest już pierwszą przeszkodą dla wielu użytkowników, powinieneś przynajmniej aktywnie przetestować nową stronę Plugins przed osadzeniem jej na żywej stronie. Ale o tym za chwilę. 

Dlaczego autoaktualizacje zawodzą

Faktem jest, że nie można po prostu nie używać WordPress -Plugins . Wyżej wymienione problemy będą istniały zawsze. Trzeba więc znaleźć inne rozwiązanie. Należy więc zadać sobie pytanie: "Jak można - mimo wszystkich problemów - nadal przeprowadzać automatyczne aktualizacje dla WordPress -Plugins ?". A to pytanie nieuchronnie prowadzi do następnego: "Co mogłoby pójść nie tak?".

Oto kilka możliwości:

  1. PHP-Fatal-Error: Strona nie działa w ogóle z powodu poważnego błędu.
  2. Strona Plugin nie współpracuje (już) z innymi stronami Plugins i/lub Theme. Objawia się to na kilka sposobów:
    a) funkcje nie są już dostępne lub
    b) zmienia się wygląd frontendu.
  3. Nieistniejąca kompatybilność wsteczna utrudnia przywrócenie systemu.
  4. Baza danych jest tak duża, że wykonanie kopii zapasowej zajęłoby bardzo dużo czasu.

Podejścia do skutecznej aktualizacji strony Plugin

Rozpoznaj złe Plugins

Zacznijmy od użytkownika. Jak użytkownik mógłby rozpoznać "złą" stronę Plugin ? Ponieważ laik nie jest w stanie sprawdzić, czy jakość kodu jest dobra, trzeba by stworzyć system, który by to potrafił. Pytanie brzmi: czy coś takiego by zadziałało? I odpowiedź jest jasna: Tak!

Fajne jest to, że mały zespół WordPress już pracuje nad takim systemem. Nazywa się Tide. Wizją Tide jest wykonywanie automatycznych testów jakości dla wszystkich stron WordPress -Plugins i -Themes oraz udostępnianie wyników tych testów zarówno autorom, jak i użytkownikom końcowym tych stron Plugins i Themes .

Nie jest to jeszcze gotowe, ale w przyszłości Tide pomoże laikom lepiej zidentyfikować, jaki rodzaj Plugins instalują. Do tego czasu należy postępować zgodnie z metadanymi Plugin, które są wyświetlane na stronie wordpress.org w katalogu Plugin dla każdego pojedynczego Plugin :

plugin meta
  1. Data ostatniej aktualizacji. Częste aktualizacje mogą wskazywać na aktywny proces rozwoju. W większości przypadków programiści zajmują się również naprawą błędów.
  2. Liczba instalacji. Bardzo wysoka liczba nie tylko wskazuje na popularność, ale może również świadczyć o tym, że autorzy zarabiają na Plugin (np. poprzez wersję Pro). Wywołuje to pewną presję ze strony producenta. Z pewnością ma on interes w tym, aby darmowy serwis Plugin również działał bezbłędnie.
  3. Testowane do. Ponownie, jest to tylko numer wersji, który może być dostosowany przez dewelopera w dowolnym momencie bez żadnych dowodów ze strony osób trzecich. Jednak aktualny numer wersji świadczy o tym, że autorzy regularnie aktualizują stronę Plugin .
  4. Wersja PHP. Chociaż miło jest, że deweloperzy nadal wspierają niskie wersje PHP, wyższa wersja byłaby bezpieczniejsza. PHP w wersji 5.6.x nie otrzymało aktualizacji bezpieczeństwa od końca 2018 roku. Obecnie obowiązującą wersją jest 7.4. Będzie on otrzymywał aktualizacje zabezpieczeń do grudnia 2022 roku.
Rozpoznaj dobre i bezpieczne Plugins

Więcej informacji na temat oceny jakości WordPress -Plugins można znaleźć w naszym artykule"13 Tips for Making the Right Plugin Choice" z Torsten Landsiedel .

Zautomatyzowane testy przeglądarki

Teraz sprawa robi się nieco trudniejsza. Szczególnie dla użytkownika WordPress , który nie posiada wiedzy programistycznej. Jeśli zależy Ci na ważnych funkcjach, powinieneś je regularnie testować - najlepiej oczywiście automatycznie.

Puppeteer to biblioteka NodeJS udostępniająca wysokopoziomowe API do kontrolowania przeglądarki Chrome za pomocą protokołu DevTools. Puppeteer domyślnie działa bezgłowo, ale można go skonfigurować tak, aby otwierał przeglądarkę, dzięki czemu można obserwować, co się dzieje.

Testy funkcjonalne

Istnieje wiele przypadków użycia takich testów. Operatorzy sklepu mogą sprawdzić, czy produkty mogą być nadal dodawane do koszyka. Albo czy nadal można składać formularze.

Oczywiście, nie wszystkie przypadki mogą zostać uwzględnione. Jednakże, mały automatyczny test jest w większości przypadków bardziej skuteczny niż zwykła kontrola wzrokowa. W końcu nie zawsze da się przetestować wszystkie funkcje strony po każdej małej aktualizacji. Szczególnie jeśli jest bardzo obszerny.

Wizualne testy regresji

Nawet "inspekcja wizualna" może być zautomatyzowana przy użyciu dzisiejszych środków. Działa to stosunkowo łatwo, na przykład w przypadku BackstopJS. Konfiguracja odbywa się w szybki sposób poprzez plik JSON. Do rozpoczęcia porównania wystarczy test backstopu w konsoli. Na koniec narzędzie otwiera okno przeglądarki i wyświetla różnice:

wizualne testy regresji

Wizualny test regresji z BackstopJS: Przycisk kupna zniknął po aktualizacji Plugin na mojej stronie.

Ponieważ BackstopJS daje również szczegółowy, czytelny dla maszyn raport z wartością wyróżnienia w procentach, możesz na przykład zostać powiadomiony przez e-mail, gdy nastąpiła znacząca zmiana w układzie.

Rollback

Załóżmy, że wszystkie aktualizacje zostały wykonane, a testy automatyczne nie powiodły się. Co robić? Oczywiście, kopie zapasowe mogą być importowane automatycznie. Ale to działa tylko w trzech przypadkach: 

  1. Jeśli hoster posiada interfejs, przez który rollback może być wywołany automatycznie.
  2. Lub jeśli masz dostęp do SSH.
  3. I jeśli kopia zapasowa jest wystarczająco mała. W przeciwnym razie przywrócenie systemu zajmie w najgorszym wypadku kilka godzin.

Wielu programistów wie aż za dobrze, że większość z tych rzeczy jest często niemożliwa. Albo dostęp do SSH nie jest w ogóle dostępny, albo występują timeouty z powodu braku zasobów na serwerze.

Zalety autoaktualizacji

Auto-aktualizacje przynoszą również warte uwagi korzyści. Szczególnie jeśli zarządzasz kilkoma stronami WordPress , zaoszczędzisz mnóstwo czasu. Kolejna zaleta: W przypadku wystąpienia luk w zabezpieczeniach, Twoja strona Plugin zostanie automatycznie zaktualizowana, gdy tylko pojawi się bezpieczna aktualizacja. Więcej o zaletach autoaktualizacji można przeczytaćw naszym nowym e-booku.

Inne rozwiązania?

Oczywiście, mój pogląd jest tylko jednym z wielu. Istnieją inne, najczęściej droższe rozwiązania. Na przykład zamiast późniejszego importowania kopii zapasowej, można wcześniej wykonać kopię strony(koncepcjaStaging) i za jej pomocą przeprowadzać wszystkie możliwe aktualizacje i testy. Jeśli test wypadnie pozytywnie, aktualizacje mogą zostać zainstalowane również w witrynie na żywo. Wtedy oczywiście (w większości) zupełnie automatycznie i bez podnoszenia poprzeczki.

Innym pomysłem byłoby po prostu posiadanie statycznych stron tworzonych przez WordPress . Wtedy strona byłaby nieco bardziej niezależna od rzeczywistego rdzenia. Plugins w tym celu istnieje od ośmiu lat: WPStatic, na przykład. Ale znowu, to nie działa dla wszystkich. Szczególnie nie w przypadku bardzo dynamicznych stron, takich jak sklepy internetowe.

Wnioski

Jak to zrobisz, zrobisz to źle, prawda? Nie. Ostatecznie zależy to od Twojej własnej strony internetowej, Twoich własnych życzeń i oczywiście Twojego portfela. Kto nie uruchamia krytycznych stron i czasem jest ok, że strona wyrzuca błędy, kto instaluje auto-updatePlugin

Również na stronie RAIDBOXES masz z Fully Managed dodatek aktywujący automatyczne aktualizacje Plugin i Theme. W ustawieniach swojej strony BOX możesz również wykluczyć z autoaktualizacji poszczególne Plugins i Themes, z którymi już miałeś problemy. 

Prawdopodobnie automatyczne aktualizacje Plugin dla większości, małych serwisów, ale i tak w miarę sprawnie. Ci, którzy mają większe witryny, mogą również mieć większy portfel, aby podjąć odpowiednie środki. Każdy pomiędzy nimi będzie musiał znaleźć swoje własne rozwiązanie.

Florian Simeth jest dyplomowanym inżynierem (FH) technologii medialnej i informatycznej, a od 2012 roku pasjonatem WordPress deweloper. Poza wsparciem ze strony jego WordPress plugins pisze online i offline dla takich mediów jak PHP i WordPress magazyn.

Powiązane artykuły

Komentarze do tego artykułu

Napisz komentarz

Twój adres e-mail nie zostanie opublikowany. Pola obowiązkowe oznaczone są *.