jak określić wymagania dotyczące hostingu

23

Przygotowujemy się do uruchomienia 2 witryn e-commerce przy użyciu CE wer. 1.9. Każda strona zacznie się od około 10000 SKU.

Jakie są kluczowe rzeczy, których musimy szukać od hosta ... czy takie rzeczy, jak rozmiar bazy danych, liczba obrazów itp. Są ważne?

Oczywiście szybkość ładowania strony jest również bardzo ważna.

Jak najlepiej wybrać odpowiedniego hosta?

Dziękuję Ci

Walter Kaatz
źródło
Powitanie wody w MageOverflow. Niestety hosting Magento jest złożoną sprawą i istnieje wiele firm, które zapraszają do omówienia swoich wymagań. Nie ma sposobu, aby polecić Ci coś bez większej ilości informacji. Przy wszystkich tych informacjach pytanie jest zbyt szczegółowe, aby było pomocne.
Fabian Blechschmidt
@FabianBlechschmidt - Nie sądzę, że jest to duplikat tego, o którym mowa. I to dość rozsądne pytanie. Napisałem dość dokładną odpowiedź na temat wymagań dotyczących wielkości (zbiorę ją również bardziej szczegółowo) i jej wystarczająco ogólną charakterystykę, aby posłużyła jako naprawdę dobre pytanie referencyjne przy doborze architektury.
Ben Lessani - Sonassi
Jesteś ekspertem, więc głosowałem za ponownym otwarciem :-)
Fabian Blechschmidt

Odpowiedzi:

31

Uwaga: Sonassi jest gospodarzem Magento


TL; DR - Dobry gospodarz powie ci, co dokładnie to, co ty potrzebujesz (i uzasadnić go). Nie powinieneś robić tego sam.

Gdy klient się do nas zbliża, zadajemy kilka pytań, aby zrozumieć, jakie są obecne wymagania, najwyższe wymagania i przyszłe wymagania dotyczące sklepu. Następnie podamy na tej podstawie zalecenie.

Biorąc pod uwagę, że prowadzimy tysiące sklepów Magento, mamy dość solidne zrozumienie dokładnie, jaka infrastruktura jest wymagana dla danego zestawu wymagań klientów, więc bardzo łatwo jest nam wydać zalecenie (i przewidzieć, jakie zasoby zostaną wykorzystane), gdy faktycznie zaczynają działać.

Należy tutaj zwrócić uwagę na to, że chociaż z pewnością możemy powiedzieć, jakie są wymagania dotyczące naszej własnej infrastruktury działającej w MageStack - to prawie na pewno nie będzie takie samo, jak konfiguracja w innym miejscu - więc pamiętajcie o tym.

Pozwól komuś innemu dopasować twoje wymagania

Sklep i katalog

  1. Wersja Magento?
  2. Liczba prostych produktów w katalogu?
  3. Liczba kategorii w katalogu?
  4. Liczba atrybutów w katalogu?
  5. Liczba zestawów atrybutów w katalogu?
  6. Liczba wyświetleń sklepu Magento (Administrator> System> Zarządzaj sklepami)?
  7. Transakcje dziennie?
  8. Szczytowe transakcje w ciągu godziny?

Ruch i przepustowość

  1. Jaki jest poziom unikalnych użytkowników dziennie?
  2. Jaki jest najwyższy szczyt w ciągu godziny wyjątkowych odwiedzających?
  3. Liczba wyświetleń strony na użytkownika?
  4. Z jakiego kraju są głównie odwiedzający?
  5. Czy przewidujesz wzrost ruchu w witrynie w ciągu najbliższych 12 miesięcy, jeśli tak, to o ile?
  6. Czy regularnie prowadzisz kampanie / biuletyny o dużym natężeniu ruchu (które są bardzo popularne)?
  7. Czy Twoja witryna oferuje cyfrowe pliki do pobrania?
  8. Aktualne wykorzystanie przepustowości?
  9. Czy potrzebujesz usługi filtrowania dDOS?

Wymagania sprzętowe

  1. Bieżące wykorzystanie miejsca na dysku?
  2. Czy potrzebujesz długoterminowego przechowywania dziennika (zgodność z PCI-DSS)?
  3. Czy potrzebujesz zewnętrznego miejsca do przechowywania kopii zapasowych?
  4. Czy potrzebujesz uruchomić jakieś specjalistyczne / alternatywne oprogramowanie na serwerze?
  5. Czy twoje przepisy dotyczące zgodności PCI nakazują stosowanie zapory sprzętowej?
  6. Czy potrzebujesz odpornego na awarie, wysoce dostępnego lub równoważącego obciążenie rozwiązania?

Praktyka inscenizacji / rozwoju

  1. Czy potrzebujesz osobnego dedykowanego środowiska do przygotowywania / tworzenia aplikacji?
  2. Czy potrzebujesz środowiska „Testuj na żywo”, aby pasowało do środowiska „Testowanie na żywo” (do ostatecznego testowania przed uruchomieniem)?

Budżet

  1. Czy masz miesięczny budżet?

Następnie korzystając z tych informacji, wyślij je do wybranego dostawcy hostingu i zobacz, co polecają.


Dostosowywanie własnych wymagań

Z reguły jest to możliwe

  1. Bezpośrednio skoreluj poziomy ruchu z wymaganiami procesora
  2. Bezpośrednio skoreluj wymagania dotyczące procesora z wymaganiami pamięci RAM
  3. Bezpośrednio skoreluj pamięć MySQL z wymaganiami RAM

Wybór procesora

Najpierw zwiększ wielkość ruchu.

  • Standardowy sklep demonstracyjny Magento jest w stanie dostarczyć około 230 unikatów na GHz, na godzinę.
  • W typowym sklepie internetowym, z aktywnością administratora, aktywnością programistyczną, dodawaniem / usuwaniem produktu, może to pogorszyć się o około 100%, do 115 unikatów na GHz, na godzinę.
  • Sklep ze źle zbudowanym / ciężkim szablonem może jeszcze bardziej zmniejszyć liczbę o kolejne 100-200%, do 50 unikatów na GHz, na godzinę.

Korzystając z tych liczb, możesz dokładnie określić, czego potrzebujesz pod względem zasobów procesora.

Na przykład. Jeśli masz 4025 unikalnych odwiedzających dziennie - potrzebujesz całkowitego zasobu procesora 28 GHz (tj. 8 rdzeni przy 3,5 GHz lub 12 rdzeni przy 2,3 GHz)

Innym ważnym szczegółem jest szybkość procesora, możliwe jest:

  • Długi czas ładowania strony i obsługa niskiej współbieżności (procesor o niskiej częstotliwości zegara (GHz), kilka rdzeni)
  • Szybki czas ładowania strony, ale obsługa niskiej współbieżności (szybki procesor (GHz), kilka rdzeni)
  • Długi czas ładowania strony, ale obsługa wysokiej współbieżności (procesor o niskiej częstotliwości zegara (GHz), wiele rdzeni)
  • Szybki czas ładowania strony i obsługa wysokiej współbieżności (szybki procesor (GHz), dużo rdzeni)

Wybór pamięci RAM

W przypadku serwera autonomicznego (najlepsza konfiguracja dla Magento) obowiązuje tutaj zasada 2 GB RAM / CPU Core. Więc jeśli masz 8 rdzeni, 16 GB pamięci RAM powinno być minimum.

Aby dowiedzieć się, czego potrzebujesz oprócz tego, musisz uwzględnić rozmiar swojego katalogu. Jest to łatwe, pomnóż liczbę wyświetleń sklepu w stosunku do całkowitego rozmiaru katalogu.

Na przykład. W twoim przypadku 1 widok sklepu * 10 000 produktów = 10 000

Nasza rekomendacja to:

<1,000    = 8GB   RAM
<50,000   = 16GB  RAM
<100,000  = 32GB  RAM
<100,000  = 32GB  RAM
<250,000  = 48GB  RAM
<500,000  = 64GB  RAM
<750,000  = 96GB  RAM
>999,999  = 128GB RAM   

Chcesz wziąć wyższą z dwóch liczb (tj. Ze stosunku rdzenia procesora: pamięci RAM i wymagań katalogowych) lub rozsądną mieszankę tych dwóch.

Wybór dysku twardego

Wyjaśnijmy coś, dla przeciętnego sklepu Magento (tj. <50 000 unikalnych odwiedzających / dzień) Magento nie jest związany przez operacje we / wy - dyski SSD nie przyspieszą twojego sklepu Magento; nie poprawi współbieżności i nie poprawi TTFB. Podobnie użycie pasiastych poziomów RAID (np. RAID10) również nie zapewni żadnej korzyści (ponieważ prawie każdy plik na dysku i tak będzie mniejszy niż rozmiar paska, więc użyty zostanie tylko jeden dysk).

Jedynym czasem przechowywania jest wąskie gardło w rywalizowanych usługach (tj. W chmurze / VPS).

Istnieją jednak z pewnością zalety szybkiego we / wy poza samą obsługą sklepu. W przypadku dysków SSD operacje na plikach (np. Status Git / SVN, tworzenie kopii zapasowych / przywracanie, kopiowanie katalogów itp.) Są znacznie szybsze. Życie programisty będzie znacznie łatwiejsze (rutynowe zadania będą znacznie szybsze).

Należy również pamiętać, że nie wszystkie napędy dyskowe są sobie równe.

  • Tanie dyski SSD klasy biurkowej będą działać wolniej niż konwencjonalne dyski twarde
  • Tanie dyski twarde / stacjonarne będą działać wolniej niż dyski twarde dla przedsiębiorstw
  • Tanie dyski twarde / stacjonarne będą miały słabe wskaźniki NRE (zwykle 10 ^ 14) w porównaniu do dysków korporacyjnych (zwykle 10 ^ 16)

Więc pamiętaj, aby faktycznie wybrać dyski, które zasługują na to, aby być na serwerze, to znaczy. Intel DC S3700.

Kompletacja jest łatwa, potrzebujesz tylko dwóch poleceń,

Dla katalogu głównego dokumentu Magento

cd /path/to/magento/installation 
du -hsL . \
--exclude="/var/log" \
--exclude="/var/session" \
--exclude="/var/cache" \
--exclude="/var/full_page_cache" \
--exclude="/var/report" \
--exclude="/var/tmp" \
--exclude="/includes/src/"    

Dla MySQL DB

SELECT 
IFNULL(B.engine,'Total') "Storage Engine", CONCAT(LPAD(REPLACE(FORMAT(B.DSize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Data Size", CONCAT(LPAD(REPLACE(FORMAT(B.ISize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Index Size", CONCAT(LPAD(REPLACE(FORMAT(B.TSize/POWER(1024,pw),3),',',''),17,' '),' ',SUBSTR(' KMGTP',pw+1,1),'B') "Table Size" FROM (SELECT engine,SUM(data_length) DSize,SUM(index_length) ISize,SUM(data_length+index_length) TSize 
FROM information_schema.tables 
  WHERE table_schema NOT IN ('mysql','information_schema','performance_schema') 
  AND engine IS NOT NULL 
GROUP BY engine 
WITH ROLLUP) B,(SELECT 3 pw) A 
ORDER BY TSize;

.

Kogo wybrać

Cóż, to zależy od ciebie. Nie mogę dać rekomendacji [choć byłoby to oczywiste :)] - ale na pewno możesz sformułować własną opinię,

  1. Jeśli mają sprzęt spełniający Twoje minimalne wymagania
  2. Jeśli mają solidne dziedzictwo / reputację w Magento (tj. Uczestniczą w takich witrynach i demonstrują rzeczywiste doświadczenia)
  3. Jeśli mogą przedstawić prezentację Twojego sklepu, na swoim hostingu (tj. Abyś mógł dokładnie zobaczyć, jak to działa)
  4. Jeśli potrafią odpowiedzieć na wszystkie pytania związane z Magento (np. Spróbuj je przetestować za pomocą pytań, które miałeś w przeszłości i zobacz, jak na nie odpowiadają)
  5. Jeśli ich ceny odpowiadają Twojemu budżetowi
  6. Upewnij się, że ich wsparcie odpowiada Twoim oczekiwaniom (tj. Czy jesteś gotowy dołożyć wszelkich starań, zanim skontaktujesz się z pomocą techniczną, czy też oczekujesz, że mogą one debugować Twoje problemy z Magento w Twoim imieniu)
  7. Upewnij się, że zakres zawartych prac odpowiada Twoim potrzebom (tj. W pełni zarządzany, goły metal itp.)
  8. Jeśli rozwiązanie jest skalowalne (tj. Czy jest to platforma z jednym serwerem - czy można je skalować do rozwiązania z wieloma serwerami).
  9. Jeśli rozwiązanie zawiera całe oprogramowanie potrzebne do sklepu Magento (np. ElasticSearch / Sphinx / SOLR, Redis / Memcache, Varnish itp.)

Jest tu coś do dodania, otrzymasz dwa typy hostów

  • Zarządzane (np. Gdzie serwer jest całkowicie skonfigurowany i obsługiwany)
  • Niezarządzany (np. Gdzie sam konfigurujesz cały serwer)

To, co jest najbardziej odpowiednie dla ciebie, naprawdę zależy od twojego zestawu umiejętności. Moim szczerym zdaniem, programiści nie są administratorami systemu - tylko dlatego, że możesz uruchomić apt-get install nginx- nie czyni cię doświadczonym administratorem. W przeciwnym razie każdy właściciel sklepu, który mógłby korzystać z Magento Connect, mógłby zaklasyfikować się jako programista!

Zrozumienie swojej roli (i ograniczeń) jako programisty oraz umożliwienie komuś z odpowiednim doświadczeniem w zarządzaniu serwerem ma ogromną wartość. Każdy może zainstalować serię pakietów, ale dostrajanie konfiguracji oprogramowania, zapewniające jego stabilność, brak błędów, bezpieczeństwo i wysoką wydajność to zupełnie inna sprawa.

Zawsze polecałbym całą drogę DIY osobom, które mają ogromne doświadczenie w konfiguracji serwerów Magento, które wcześniej wdrożyły tysiące serwerów ze znanymi przetestowanymi i stabilnymi konfiguracjami. W przeciwnym razie idź z zarządzanym hostem Magento, który wie, co robią i pozwala ci wykonywać swoją pracę nieprzerwanie.


Źródła:

Ben Lessani - Sonassi
źródło