Walcząc, aby poradzić sobie z nagłymi wzrostami ruchu

Opublikowany: 2022-03-10
Szybkie podsumowanie ↬ „Jeśli to zbudujesz, przyjdą”. To z pewnością prawda, gdy poświęcasz dużo czasu i wysiłku na budowanie stron internetowych i PWA dla klientów. Ale co się stanie, gdy „oni przyjdą” zmieni się w „zbyt wielu z nich przyszło na raz, a teraz strona zepsuła się”? Skoki ruchu się zdarzają. Ale zamiast pozwolić, aby Twoja witryna stała się ich ofiarą, ten przewodnik pokaże Ci, jak możesz ustawić ją jako zwycięzcę.

(To jest artykuł sponsorowany.) Kiedy dochodzi do gwałtownego wzrostu ruchu, chcesz, aby Twoja witryna mogła pływać na fali, zamiast tonąć pod nią.

Ale jak to zrobić bez ciągłego nadmiernego wydawania zasobów serwera w oczekiwaniu na wzrost ruchu, który może się zdarzyć lub nie?

Częściowo sprowadza się to do umiejętności naprawdę dobrego odczytywania danych, aby móc przewidzieć nadchodzące wzrosty (lub spadki) w ruchu. Nawet wtedy przypływy i odpływy danych nie zawsze pozwalają dokładnie przewidzieć, kiedy nastąpi wzrost ruchu, jak duży będzie lub jak długo potrwa.

Musisz więc upewnić się, że witryny Twoich klientów są przygotowane na przyjęcie trafienia, a następnie utrzymanie ruchu. To, co zamierzamy dzisiaj zrobić, to pomóc Ci stworzyć system narzędzi, monitorowania i testowania, który umożliwi to Twoim witrynom.

Jak przygotować swoją stronę internetową na wzrost ruchu?

Aby właściwie przygotować witrynę na skoki ruchu, musisz skonfigurować system, który będzie zarówno proaktywny, jak i reaktywny. Oto, co powinno zawierać:

1. Przenieś swoją witrynę do skalowalnego rozwiązania w chmurze

Powodem, dla którego skoki ruchu mogą siać spustoszenie na stronach internetowych, jest to, że serwery hostingowe i zasoby są nieprzygotowane do ich obsługi. Czysty i prosty.

To powiedziawszy, jeśli nie możesz przewidzieć, kiedy nastąpi gwałtowny wzrost, w jaki sposób upewnisz się, że Twój hosting jest w stanie obsłużyć zwiększone obciążenie ruchem? Czy na wszelki wypadek przeznaczasz więcej pieniędzy na zbyt duży plan hostingowy?

Oczywiście nie jest to opłacalny sposób radzenia sobie z potencjalnym wzrostem ruchu. Zamiast tego powinieneś poszukać rozwiązania hostingowego, które dostosuje się do Twoich potrzeb.

Wykorzystaj technologię hostingową DigitalOcean

Jednym z takich dostawców, który może w tym pomóc, jest DigitalOcean, twórca skalowalnych rozwiązań chmurowych.

Zaletą tej opcji jest to, że DigitalOcean daje zoptymalizowane „kropelki” do wyboru. Nie musisz zgadywać, który plan jest dla Ciebie odpowiedni — wszystko jest jasno określone w bardzo przydatnych zaleceniach dotyczących przypadków użycia DigitalOcean:

Krople wirtualnego procesora Oceanu cyfrowego
DigitalOcean sprzedaje wirtualne procesory zoptymalizowane pod kątem konkretnych przypadków użycia. (Źródło: DigitalOcean) (duży podgląd)

Jak widać, Droplety to łatwe w konfiguracji maszyny wirtualne zbudowane dla różnych rodzajów witryn i aplikacji. Co więcej, są one od razu skonfigurowane pod kątem szybkości i bezpieczeństwa dzięki hipernadzorcom KVM, pamięci masowej SSD i łączności 40GbE.

Co więcej, wraz ze wzrostem ruchu w Twojej witrynie, łatwo jest zwiększyć ilość miejsca na dane i przepustowość w Droplet. A jeśli później zorientujesz się, jaka jest rym lub powód wzrostu natężenia ruchu, możesz szybko skalować zasoby w górę iw dół, aby dostosować się do zmian w ruchu.

To powiedziawszy, skalowalne rozwiązanie hostingu w chmurze nie wystarczy, aby poradzić sobie ze skokami ruchu. Potrzebujesz jeszcze kilku rzeczy.

Używaj systemów równoważenia obciążenia w przypadku przepięć

Jeśli nie znasz technologii równoważenia obciążenia, przyjrzyjmy się różnicy między witryną z nią a bez niej.

Oto, co się dzieje, gdy ktoś odwiedza Twoją witrynę bez load balancera:

DigitalOcean — grafika bez równoważenia obciążenia
Grafika z DigitalOcean pokazująca, w jaki sposób odwiedzający uzyskują dostęp do strony internetowej bez równoważenia obciążenia. (Źródło: DigitalOcean) (duży podgląd)

Logują się do Internetu, wpisują Twój adres URL w przeglądarce internetowej lub klikają w link do niego, a następnie serwer ma dostarczyć Twoją witrynę na ich ekran.

Ale jeśli ilość ruchu żądającego dostępu do Twojej witryny nagle wzrośnie, ten samotny serwer może nie być w stanie efektywnie obsłużyć obciążenia. Z tego powodu nadmiernie duże skoki ruchu mogą prowadzić do boleśnie powolnych stron internetowych lub całkowitego braku dostępu do stron internetowych.

Jednak z systemem równoważenia obciążenia tak dzieje się z ruchem w sieci:

DigitalOcean — grafika równoważenia obciążenia
Grafika z DigitalOcean pokazująca, w jaki sposób odwiedzający uzyskują dostęp do strony internetowej po wdrożeniu równoważenia obciążenia. (Źródło: DigitalOcean) (duży podgląd)

Load balancer służy jako rodzaj proxy dla twojego serwera. W ten sposób, gdy ruch osiąga szczyt, Twój serwer nie musi walczyć z zapotrzebowaniem. Zamiast tego system równoważenia obciążenia wykorzystuje wiele serwerów, aby zrównoważyć rosnącą liczbę żądań HTTP.

To trochę jak rozłożenie obciążenia pracą w zespole. Zamiast kontynuować zasypywanie próśb dla członków zespołu, którzy są już przeciążeni, dzielisz się pracą z tymi, którzy są do tego przygotowani.

Jednak w przeciwieństwie do dystrybucji pracy w świecie rzeczywistym, systemy równoważenia obciążenia robią to wszystko za kulisami i nie wymagają koordynowania czegokolwiek, ponieważ są w pełni zarządzane.

Skorzystaj z monitorowania wydajności i tworzenia kopii zapasowych

Dopóki masz odpowiednią przepustowość i pamięć masową skonfigurowaną w swojej droplecie oraz aktywowane równoważenie obciążenia, Twoja witryna będzie w dobrej kondycji. Nie będzie odporny na skoki natężenia ruchu, ale będzie tak blisko, jak tylko możesz.

Pamiętaj tylko, że dla wszystkich fortyfikacji, które wykonujesz na poziomie serwera, nadal ważne jest, aby mieć plan awaryjny.

Twój plan ciągłości biznesowej (witryny) powinien zawierać wszystkie rzeczy, które musisz zrobić, aby Twoja witryna wróciła do normy, w tym:

  • Przywróć stronę internetową,
  • Zbadaj wydarzenie, które do niego doprowadziło,
  • I docieraj do odwiedzających i klientów, których to dotyczyło.

To powiedziawszy, istnieją pewne części twojego planu ciągłości, w których DigitalOcean może pomóc.

Automatyczne kopie zapasowe są niezbędne dla każdej witryny, ale są absolutnie krytyczne, jeśli wiesz, że Twoja witryna będzie podatna na skoki ruchu. Wsparcie 24/7 jest kolejną koniecznością i jest również czymś, co oferuje DigitalOcean.

Kolejną rzeczą, na którą należy zwrócić uwagę, jest wbudowane monitorowanie wydajności — coś, o czym poruszę w dalszej części tego postu.

2. Zoptymalizuj swoje aktywa

Dzięki solidnemu rozwiązaniu hostingowemu w chmurze z pewnością możesz zapewnić swojej witrynie pomoc, której potrzebuje, aby przetrwać ogromny wzrost ruchu. Jednak nie wszystko może spaść na twojego hosta. Musisz zrobić swoją część, aby Twoja witryna była wystarczająco „lekka”, aby służyć w kółko naporowi odwiedzających.

Oto kilka rzeczy, które możesz zrobić, aby zoptymalizować swoją witrynę i jej zasoby w celu zwiększenia wydajności:

Włącz buforowanie i inne optymalizacje plików

Chcesz, aby Twoje zasoby cyfrowe były łatwiejsze w obsłudze? Następnie będziesz potrzebować skonfigurowanych następujących optymalizacji:

Buforowanie

Istnieje wiele sposobów na zaimplementowanie pamięci podręcznej i przyspieszenie dostarczania witryny do przeglądarek odwiedzających. Możesz to zrobić na poziomie serwera, strony, bazy danych przeglądarki.

Twój usługodawca hostingowy może pomóc w skonfigurowaniu pamięci podręcznej serwera.

Jeśli zbudowałeś swoją witrynę z systemem zarządzania treścią, takim jak WordPress, możesz zainstalować wtyczkę buforującą, aby zająć się buforowaniem witryny i bazy danych. (Będzie również robił takie rzeczy, jak minifikacja plików, kompresja Gzip, łącząca pliki CSS i JavaScript.)

Zawsze możesz włączyć buforowanie ręcznie. Użyjesz nagłówków pamięci podręcznej, a w szczególności dwóch mechanizmów — kontroli pamięci podręcznej i wygaśnięcia — do skonfigurowania sposobu przechowywania zawartości w pamięci podręcznej.

Optymalizacja obrazu

Nie zapomnij o swoich mediach. Pliki graficzne i wideo mogą zajmować dużo miejsca na serwerze, a także utrudniać działanie serwera podczas wzrostu natężenia ruchu. Aby zoptymalizować te zasoby, należy użyć kompresji plików i zmiany rozmiaru.

Aby skompresować obrazy zbiorczo, użyję do tego narzędzia online, takiego jak TinyPNG lub TinyJPG.

Kompresja obrazu TinyPNG
TinyPNG oferuje szybki i łatwy sposób zbiorczej kompresji zasobów graficznych. (Źródło: TinyPNG) (duży podgląd)

Średnio za pomocą tego jednego narzędzia mogę zwykle zmniejszyć rozmiary plików o około 75%.

Aby jeszcze bardziej zmniejszyć wagę swoich obrazów, powinieneś zmienić ich rozmiar. Nie ma powodu, aby przesyłać pełnowymiarowe zasoby do witryny internetowej, jeśli maksymalna szerokość, której zamierzasz użyć, wynosi 1280 pikseli lub mniej więcej.

W tym celu albo użyję mojego oprogramowania do plików, aby zrobić to wszystko za jednym razem, albo skorzystam z usługi online, takiej jak Bulk Resize Photos.

Narzędzie do zmiany rozmiaru zdjęć zbiorczych
Bulk Resize Photos oferuje łatwy sposób na zbiorczą zmianę rozmiaru zasobów obrazu przy użyciu różnych metod zmiany rozmiaru. (Źródło: Bulk Resize Photos) (duży podgląd)

Istnieje duża elastyczność w sposobie zmiany rozmiaru obrazów, ale uważam, że ustawienie maksymalnej szerokości zwykle działa najlepiej.

Korzystaj z zarządzanych baz danych

Oprócz optymalizacji zasobów, które umieszczasz na stronie internetowej, powinieneś zadbać o optymalizację swoich baz danych. To powiedziawszy, często łatwiej powiedzieć niż zrobić.

Chociaż jestem zaznajomiony z wtyczkami do czyszczenia i optymalizacji baz danych, których można używać z WordPress, aby zapewnić płynniejsze działanie, nie pomoże to zbytnio w przypadku gwałtownego wzrostu ruchu. Potrzebujesz czegoś, co pomoże Twojej bazie danych kontynuować przetwarzanie przychodzących żądań danych, nawet z większą szybkością.

W tym celu najlepiej byłoby skorzystać z rozwiązania zarządzanej bazy danych — czegoś, co możesz udostępnić w DigitalOcean.

Po wykryciu gwałtownego wzrostu natężenia ruchu usługi zarządzanej bazy danych upraszczają czynności, które należy wykonać, aby odpowiednio skalować zasoby. Nie są potrzebne żadne obliczenia; po prostu zaloguj się na swoje konto i dodaj więcej zasobów w razie potrzeby.

Innym powodem, dla którego usługi zarządzane są idealne w tego rodzaju sytuacjach, jest ich wbudowana wysoka dostępność. I to nie jest tylko ogólna obietnica 99,9% czasu bezawaryjnej pracy. Jeśli przyjrzysz się umowie SLA swojego hosta, przekonasz się, że będzie ona bardzo starać się zapobiec rażącym przestojom.

Dodaj CDN

Istnieje jeszcze jedna warstwa optymalizacji, którą możesz dodać do swojej witryny, gdy skoki ruchu są częstym zjawiskiem: CDN.

Sieci dostarczania treści są przydatne z wielu powodów. Świetnie nadają się do udostępniania witryn internetowych użytkownikom z całego świata. Są one zdecydowanie przydatne w witrynach e-commerce, które chcą zapewnić szybszą realizację transakcji. Zapewniają też dodatkową szybkość, bezpieczeństwo i możliwość przełączania awaryjnego witrynom, które od czasu do czasu napotykają duży wzrost ruchu.

Jeśli planujesz używać DigitalOcean do hostowania swojej witryny, spójrz na jego produkt Spaces (z wbudowaną integracją CDN), aby uzyskać bardziej wydajne przechowywanie i dostarczanie swoich zasobów.

3. Analizuj swoje raporty o ruchu

Ogólnie rzecz biorąc, bardzo ważne jest, aby starannie zbierać dane ze swojej witryny. Dzieje się tak zwłaszcza podczas walki ze skokami ruchu. Dlatego:

Jeśli istnieją przewidywalne wzloty i upadki ruchu w Twojej witrynie, będziesz wiedział, kiedy i jak dokładnie je zaplanować. Oznacza to nie tylko optymalizację witryny i serwera pod kątem obsługi ruchu, ale także posiadanie odpowiedniej liczby pracowników do monitorowania i zarządzania nim.

Aby to zrobić, użyj Google Analytics, aby mieć wszystko na oku.

Google Analytics - wykresy odsłon
Przykładowy wykres ruchu i odsłon z Google Analytics. (Źródło: Google Analytics) (duży podgląd)

Ten przykład to zestawienie danych z 12 miesięcy, które pokazuje, ile wyświetleń strony miało miejsce każdego dnia (mniej więcej). Możesz to zrobić również z innymi danymi, takimi jak liczba użytkowników lub sesji. Głównym celem jest jednak identyfikacja wszelkich źródeł stresu w ciągu roku, a nadmierna liczba odsłon (lub, w stosownych przypadkach, konwersja e-commerce) może być skuteczniejszym sposobem pomiaru tego.

Widać tutaj, że miało miejsce wiele wzlotów i dołków, które miały miejsce:

Google Analytics - wyszukiwanie skoków ruchu
Przykład tego, jak użytkownicy Google Analytics będą szukać skoków ruchu w swoich danych. (Źródło: Google Analytics) (duży podgląd)

Zamiast brać je za dobrą monetę, porównaj je z innymi punktami danych, aby upewnić się, że to, na co patrzysz, było gwałtownym wzrostem ruchu, z którego możesz się uczyć.

Wyklucz tworzenie stron internetowych

Na przykład, czy w tamtych czasach trwał jakiś rozwój na miejscu? Jeśli ktoś naprawia błąd lub projektuje nową stronę, może to spowodować znaczny wzrost liczby odsłon.

Jeśli zdarza się to często, dobrze byłoby automatycznie usunąć te dane z raportów na poziomie Google Analytics. Możesz to zrobić z menu administratora.

Przejdź do Widok > Filtry > Dodaj filtr:

Filtry Google Analytics
Użytkownicy Google Analytics mogą usuwać z wyników swoje osobiste dane o wizytach i odsłonach. (Źródło: Google Analytics) (duży podgląd)

Odfiltrowując dane dotyczące adresu IP oraz innych osób, które mogą często wyświetlać podgląd witryny w celach testowych lub tworzenia treści, uzyskasz dokładniejszy obraz poziomu ruchu.

Załóżmy, że wzrosty ruchu nie pochodziły z Twojego wewnętrznego zespołu. Następnie sprawdź, czy te wzrosty (lub spadki) ruchu występują w przewidywalnych odstępach czasu.

Szukaj przewidywalnych przepięć

Jeśli Twoja witryna działa od ponad roku, możesz użyć Google Analytics, aby sprawdzić, czy istnieje korelacja. Po prostu ustaw daty, aby porównać je z tym samym przedziałem czasowym z poprzedniego roku:

Porównanie zakresów dat Google Analytics
Google Analytics umożliwia użytkownikom porównywanie dwóch zakresów dat obok siebie. (Źródło: Google Analytics) (duży podgląd)

Następnie poszukaj nakładania się skoków ruchu:

Dane porównawcze zakresów dat Google Analytics
Użytkownicy Google Analytics mogą jednocześnie przeglądać dwa zakresy dat pod kątem przewidywalności wzrostu natężenia ruchu. (Źródło: Google Analytics) (duży podgląd)

W tym przypadku może być tylko jeden lub dwa znaczące skoki, które wystąpiły w obu latach. Pierwsza miała miejsce na początku kwietnia, a druga około połowy listopada.

Gdyby były to zbyt duże wzrosty w obu latach — na przykład co najmniej pięć razy większe niż zwykle natężenie ruchu — powiedziałbym, że warto by je zbadać. Jednak w tym przykładzie to chyba tylko zbieg okoliczności i można je wykluczyć.

Sprawdź kalendarz

Jeśli zauważysz znaczny wzrost ruchu w swoich danych, ostatnią rzeczą do zrobienia jest sprawdzenie go w kalendarzu.

To, czego szukasz, to zdarzenia, które mogły spowodować gwałtowny wzrost. Rzeczy jak:

  • Świąteczne wyprzedaże, które wywołały mnóstwo szumu.
  • Informacje prasowe, które pojawiły się na głównych kanałach informacyjnych.
  • Wirusowe posty na blogu lub oferty e-mail, które wysłałeś.

Proponuję również przyjrzeć się ruchowi w dniach lub tygodniach po wzroście ruchu.

Jak to się zmniejszyło? Czy to było nagłe czy powolne oparzenie? Czy dzięki temu wzrostowi udało się nawet nieznacznie poprawić dzienny ruch na stronie?

Zobacz także, jak wpłynęło to na organizację. Jest to szczególnie ważne w przypadku witryn e-commerce, które zapewniają obsługę klienta i zwroty produktów. Czy po wzroście nastąpił wzrost aktywności posprzedażowej? Kiedy to uderzyło? Jak długo to trwało?

Jeśli potrafisz dowiedzieć się, dlaczego nastąpił wzrost ruchu (tj. jakie zdarzenie go wywołało) i jakie były skutki uboczne, możesz faktycznie wykorzystać to na swoją korzyść w przyszłości. Na przykład, jeśli wiesz, że sprzedaż lub post wirusowy spowodował gwałtowny wzrost, możesz zaplanować swój serwer i zasoby kadrowe z wyprzedzeniem.

Niezależnie od tego, co znajdziesz w starych raportach, musi to stać się częścią Twojego ciągłego procesu. Skonfiguruj Google Analytics, aby regularnie generować raporty o ruchu i wysyłać je e-mailem. W ten sposób, gdy zmienia się poziom ruchu — na dobre lub na złe — zawsze będziesz wiedział, co się dzieje i możesz odpowiednio dostosować swoją strategię.

4. Monitorowanie wydajności w czasie rzeczywistym

Google Analytics pomoże Ci dowiedzieć się, co wydarzyło się w przeszłości i skuteczniej przygotować się na przyszłe wzrosty ruchu. Z drugiej strony monitorowanie wydajności w czasie rzeczywistym pozwoli Ci reagować na wzrosty ruchu i inne zmiany wydajności w upale chwili.

Istnieje wiele narzędzi, których można używać do monitorowania w czasie rzeczywistym. Oto tylko ich próbka:

Monitorowanie wydajności frontendu

Kiedy prędkość strony nagle zaczyna się pogarszać lub Twoja witryna spada, nie ma czasu do stracenia. To powiedziawszy, nie powinieneś regularnie logować się do swojej witryny, aby upewnić się, że wszystko działa poprawnie.

Zamiast tego możesz skorzystać z usługi monitorowania dostępności i prędkości, takiej jak Pingdom:

Usługi monitorowania i alarmowania Pingdom
Użytkownicy mogą zautomatyzować monitorowanie czasu pracy, użytkowników i prędkości za pomocą Pingdom. (Źródło: Pingdom) (duży podgląd)

Obsługuje żmudną pracę polegającą na monitorowaniu Twojej witryny pod kątem wzrostu natężenia ruchu, problemów z szybkością lub czasem pracy, a także problemów wykrytych przy kasie. Będzie również wyświetlać powiadomienia w czasie rzeczywistym, dzięki czemu możesz zająć się problemami spowodowanymi przez wzrosty ruchu, zanim staną się zbyt poważne.

W ten sposób wystarczy poświęcić swojej witrynie uwagę i uwagę, jakiej potrzebuje, gdy wzrost ruchu ma negatywny wpływ na wydajność, zamiast stale się o to martwić.

Monitorowanie wydajności zaplecza

Chociaż wspaniale jest mieć usługę monitorowania frontendu, która informuje Cię, kiedy ruch jest niesprawny, to jednak nie wystarczy. Musisz również wiedzieć, co się dzieje na zapleczu.

Oczywiście dzięki rozwiązaniu hostingu zarządzanego uzyskasz pomoc od swojego dostawcy. Jednak dobrym pomysłem jest zapoznanie się ze wskaźnikami serwera, aby aktywnie walczyć z niszczycielskimi skutkami przepięć.

Oto niektóre wskaźniki, na które warto zwrócić uwagę:

  • Hosting zasobów (takich jak pamięć i miejsce na dysku),
  • Wydajność Twojej aplikacji (np. wskaźniki błędów i wykorzystanie zasobów),
  • Łączność (np. opóźnienie i wykorzystanie przepustowości).

Zapoznaj się z tymi kluczowymi wskaźnikami, aby nigdy nie zastanawiać się, co dzieje się z Twoją witryną ani jak to naprawić.

Teraz, dzięki DigitalOcean, nie tylko uzyskasz dostęp do tych przydatnych danych. Skonfiguruje również monitorowanie w czasie rzeczywistym i alerty. I to nie wszystko.

Problem z wieloma systemami monitorowania polega na tym, że po prostu szukają przestojów, błędów i niestabilności, ale nadal od Ciebie zależy, czy podejmiesz działania. Dzięki DigitalOcean możesz jednak zautomatyzować określone działania, które będą miały miejsce po wykryciu określonych scenariuszy.

Załóżmy na przykład, że Twoja witryna generuje znacznie większy ruch niż przewidywałeś w przypadku wyprzedaży świątecznej. Twoje zasoby wyczerpują się zbyt szybko, co normalnie naraziłoby witrynę na ryzyko spowolnienia indeksowania lub całkowitej awarii. Ale w tym przypadku mechanizm monitorowania wykrył problem i uruchomiono działanie automatycznego skalowania.

Wyobraź sobie, jak przydatne byłoby zautomatyzowanie reakcji serwera na określone zdarzenia. Możesz poświęcić mniej czasu na zamartwianie się, jak przywrócić swoją witrynę, a zamiast tego skupić się na tym, jak nadal optymalizować zasoby serwera, aby utrzymać wysoki poziom ruchu.

Zawijanie

Jeśli strony internetowe lub aplikacje PWA Twoich klientów nie są gotowe na wzrost ruchu, może to oznaczać poważne kłopoty dla ich firm, gdy opadnie kurz. I to nie tylko przestoje lub wolno ładujące się strony będą ich (lub Ciebie) kosztować.

To, że wszyscy ci dodatkowi użytkownicy zobaczą witrynę, która jest w złym stanie — od uszkodzonych kas lub formularzy po infekcje złośliwym oprogramowaniem — zaszkodzi również Twojej firmie.

Zamiast trzymać kciuki lub wmawiać sobie, że Twoja witryna nie jest wystarczająco duża lub zbyt popularna, aby doświadczyć jednego z tych skoków ruchu, przygotuj się. Rozpoczynając od praktycznego rozwiązania hostingowego w chmurze firmy DigitalOcean, a następnie optymalizując serwer, zasoby i otaczające je procesy, zwiększysz szanse swojej witryny nie tylko na przetrwanie w nienaruszonym stanie, ale także na znaczne korzyści z tego płynące.