como determinar os requisitos de hospedagem

23

Estamos nos preparando para lançar 2 sites de comércio eletrônico usando o CE ver 1.9. Cada site começará com cerca de 10000 sku's.

Quais são as principais coisas que precisamos procurar em um host da Web ... são importantes o tamanho do banco de dados, o número de imagens etc.?

Obviamente, a velocidade de carregamento da página também é muito importante.

Como selecionamos melhor um host adequado?

Obrigado

Walter Kaatz
fonte
Água de boas-vindas no MageOverflow. Infelizmente, a hospedagem Magento é uma coisa complexa e há muitas empresas por aí que convidam você a discutir com eles suas necessidades. Não há como recomendar algo com muito mais informações. E com todas as informações, a pergunta é específica demais para ser útil.
Fabian Blechschmidt
@FabianBlechschmidt - Eu não acho que seja uma pergunta duplicada da mencionada. E é uma pergunta bastante razoável nisso. Eu escrevi uma resposta bastante completa sobre os requisitos de dimensionamento (também mostrarei mais detalhes em detalhes) e é genérica o suficiente para que isso sirva como uma pergunta de referência realmente boa para o dimensionamento da arquitetura.
Ben Lessani - Sonassi
Você é o especialista, então votei na reabertura :-) #
Fabian Blechschmidt

Respostas:

31

Disclaimer: Sonassi é um anfitrião Magento


TL; DR - Um bom host irá lhe dizer exatamente o que você precisa (e justificar). Você não deveria estar fazendo isso sozinho.

Quando um cliente se aproxima de nós, fazemos algumas perguntas para entender quais são os requisitos atuais, os requisitos de pico e os requisitos futuros para sua loja. Em seguida, forneceremos uma recomendação nessa base.

Dado que hospedamos milhares de lojas Magento, temos um entendimento bastante sólido de exatamente qual infraestrutura é necessária para um determinado conjunto de requisitos do cliente, por isso é muito fácil dar uma recomendação (e prever exatamente quais recursos serão usados) quando eles realmente vão viver.

O detalhe a ser observado aqui é que, embora certamente possamos lhe dizer os requisitos para nossa própria infraestrutura executando o MageStack - que quase certamente não será exatamente o mesmo que uma instalação em outro lugar -, tenha isso em mente.

Deixe alguém dimensionar suas necessidades

Loja e Catálogo

  1. Versão Magento?
  2. Número de produtos simples no catálogo?
  3. Número de categorias no catálogo?
  4. Número de atributos no catálogo?
  5. Número de conjuntos de atributos no catálogo?
  6. Número de visualizações da loja Magento (Admin> Sistema> Gerenciar lojas)?
  7. Transações por dia?
  8. Transações de pico em uma única hora?

Tráfego e largura de banda

  1. Qual é o nível de visitantes únicos diários?
  2. Qual é o pico mais alto em uma única hora de visitantes únicos?
  3. Número de visualizações de página por visitante?
  4. De que país são predominantemente os visitantes?
  5. Você prevê que o tráfego do site cresça nos próximos 12 meses? Em caso afirmativo, em quanto?
  6. Você opera regularmente campanhas / boletins de alto tráfego (que têm uma aceitação significativa)?
  7. O seu site oferece downloads digitais?
  8. Uso atual de largura de banda?
  9. Você precisa de um serviço de filtragem de dDOS?

Requisitos de hardware

  1. Uso atual de espaço em disco?
  2. Você precisa de armazenamento de log de longo prazo (conformidade com PCI-DSS)?
  3. Você precisa de armazenamento de backup externo?
  4. Você precisa executar algum software alternativo / especialista no servidor?
  5. Seus regulamentos de conformidade com o PCI determinam o uso de um firewall de hardware?
  6. Você precisa de uma solução tolerante a falhas, altamente disponível ou com balanceamento de carga?

Estágio / Prática de Desenvolvimento

  1. Você precisa de um ambiente dedicado separado para preparação / desenvolvimento?
  2. Você precisa de um ambiente "Test Live" para corresponder ao ambiente "Live" (para testes pré-live finais)?

Despesas

  1. Você tem um orçamento mensal?

Em seguida, usando essas informações, envie-as ao seu provedor de hospedagem preferido e veja o que eles recomendam.


Dimensionando seus próprios requisitos

Como regra geral, é possível

  1. Correlacione diretamente seus níveis de tráfego com os requisitos de CPU
  2. Correlacione diretamente seus requisitos de CPU com os requisitos de RAM
  3. Correlacione diretamente seu armazenamento MySQL com os requisitos de RAM

Seleção de CPU

Primeiro comece avaliando seu tráfego.

  • Uma loja de demonstração padrão do Magento é capaz de fornecer cerca de 230 únicos por GHz, por hora.
  • Uma loja virtual típica, com atividade de usuário administrador, atividade de desenvolvimento, adição / exclusão de produtos, pode ver esse declínio em cerca de 100%, para 115 únicos por GHz, por hora.
  • Uma loja com um modelo pesado / mal construído pode reduzir ainda mais o número em outros 100-200%, para 50 únicos por GHz, por hora.

Usando esses números, você pode descobrir exatamente o que precisa em termos de recursos da CPU.

Por exemplo. Se você possui 4.025 visitantes únicos / dia, você precisa de um recurso total de CPU de 28 GHz (ou seja, 8 núcleos a 3,5 GHz ou 12 núcleos a 2,3 GHz)

O outro detalhe importante é a velocidade da CPU, é possível ter:

  • Tempo de carregamento de página lento e suporte a baixa concorrência (CPU de baixa velocidade de clock (GHz), poucos núcleos)
  • Um tempo de carregamento de página rápido, mas suporte para baixa simultaneidade (CPU de alta velocidade de clock (GHz), poucos núcleos)
  • Um tempo de carregamento de página lento, mas suporte para alta simultaneidade (CPU de baixa velocidade de clock (GHz), muitos núcleos)
  • Tempo de carregamento de página rápido e suporte a alta simultaneidade (CPU de alta velocidade de clock (GHz), muitos núcleos)

Seleção de RAM

Para um servidor independente (a melhor configuração para o Magento), a regra aqui é 2 GB de RAM / CPU Core. Portanto, se você tiver 8 núcleos, 16 GB de RAM devem ser o mínimo.

Para descobrir o que você precisa, além disso, é necessário levar em consideração o tamanho do seu catálogo. Isso é fácil, multiplique o número de visualizações da loja pelo tamanho total do catálogo.

Por exemplo. No seu caso, 1 visualização da loja * 10.000 produtos = 10.000

Nossa recomendação é,

<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   

Você deseja obter o maior dos dois números (ou seja, a partir da CPU Core: taxa de RAM e requisitos de catálogo) ou uma combinação sensata dos dois.

Seleção de HDD

Vamos deixar algo claro, para a loja média do Magento (ou seja, <50k visitantes únicos / dia), o Magento não é vinculado por E / S - SSDs não tornarão sua loja Magento mais rápida; não melhorará a simultaneidade nem o TTFB. Da mesma forma, o uso de níveis de RAID distribuídos (por exemplo, RAID10) também não oferece vantagens (já que quase todos os arquivos em disco serão menores que o tamanho da faixa, de modo que apenas um único disco será usado).

O único momento em que o armazenamento é um gargalo é nos serviços disputados (por exemplo, nuvem / VPS).

No entanto, certamente existem vantagens em acelerar a E / S além da operação da loja. Com SSDs, as operações de arquivo (por exemplo, status Git / SVN, backup / restauração, cópia de diretórios etc.) são substancialmente mais rápidas. A vida do seu desenvolvedor será substancialmente mais fácil (com tarefas de rotina muito mais rápidas).

Observe também que nem todas as unidades de disco são criadas da mesma forma.

  • SSDs baratos / para desktops terão desempenho mais lento que os HDDs convencionais
  • HDDs baratos / para desktops terão desempenho mais lento que os HDDs empresariais
  • Os HDDs baratos / de desktop terão taxas baixas de NRE (geralmente 10 ^ 14) em comparação com os discos da empresa (geralmente 10 ^ 16)

Portanto, certifique-se de escolher as unidades de disco que merecem estar em um servidor, ou seja. o Intel DC S3700.

A capacidade de escolha é fácil, você só precisa de dois comandos,

Para a raiz do documento 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/"    

Para o banco de dados MySQL

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;

.

Quem escolher

Bem, isso é com você. Não posso fazer uma recomendação [embora seja óbvio :)] - mas você certamente pode formar sua própria opinião,

  1. Se eles tiverem o hardware para atender aos seus requisitos mínimos
  2. Se eles têm uma sólida herança / reputação no Magento (por exemplo, participando de sites como este e demonstrando experiência no mundo real)
  3. Se eles puderem fornecer uma demonstração da sua loja, na hospedagem deles (por exemplo, para que você possa ver exatamente como ela funciona)
  4. Se eles puderem responder a todas e quaisquer perguntas relacionadas ao Magento (por exemplo, tente testá-las com perguntas que você já teve no passado e veja como elas respondem)
  5. Se os preços deles corresponderem ao seu orçamento
  6. Garanta que o suporte deles corresponda às suas expectativas (ou seja, você está disposto a fazer toda a diligência antes de entrar em contato com o suporte ou tem uma expectativa de que eles possam depurar os problemas do Magento em seu nome)
  7. Verifique se o escopo dos trabalhos incluídos corresponde às suas necessidades (por exemplo, totalmente gerenciado, bare metal etc.)
  8. Se a solução for escalável (ou seja, é a plataforma de servidor único - ela pode ser dimensionada para ser uma solução para vários servidores).
  9. Se a solução apresentar todo o software necessário para sua loja Magento (por exemplo: ElasticSearch / Sphinx / SOLR, Redis / Memcache, Verniz, etc.)

Há algo a acrescentar aqui, você terá dois tipos de hosts

  • Gerenciado (por exemplo, onde o servidor está completamente configurado e cuidado)
  • Não gerenciado (por exemplo, onde você mesmo configura o servidor inteiro)

O que é mais apropriado para você realmente depende do seu conjunto de habilidades. Na minha opinião sincera, os desenvolvedores não são administradores de sistema - apenas porque você pode executar apt-get install nginx- isso não faz de você um administrador de sistemas experiente. Caso contrário, qualquer dono de loja que possa usar o Magento Connect poderá se classificar como desenvolvedor!

Compreender sua função (e limitações) como desenvolvedor e permitir que alguém com experiência adequada no gerenciamento do servidor tenha um valor extremo. Qualquer pessoa pode instalar uma série de pacotes, mas ajustar a configuração do software, garantindo que seja estável, sem erros, seguro e com alto desempenho, é uma coisa completamente diferente.

Eu recomendaria apenas toda a rota DIY para pessoas que têm uma enorme experiência em configuração de servidores Magento, que já implantaram milhares de servidores antes, com configurações testadas e estáveis ​​conhecidas. Caso contrário, vá com um host Magento gerenciado que saiba o que está fazendo e permita que você faça seu trabalho sem interrupções.


Fontes:

Ben Lessani - Sonassi
fonte