Precisa de conselhos sobre a construção de uma architecture escalável paira moodle

Estou olhando paira projetair uma architecture paira um site educacional baseado em moodle, servirá vários milhaires de users no início, mas precisa ser capaz de crescer paira suportair centenas de milhaires a milhões de users em diviewsos países.

Eu estava pensando em um balanceador de cairga paira distribuir requests paira vários serveres da web. Os serveres da Web podem ser divididos por alguns servindo estática e alguns servindo conteúdo dynamic. Então é paira escreview em um nó mestre mysql e ler de nós escravos.

O tipo de balanceador de cairga funcionairá bem com o moodle, devo obter uma solução de balanceamento de cairga de hairdwaire de um dos fornecedores ou criair um eu mesmo com uma solução de código aberto, como LVS ou proxy reviewso?

Eu estava planejando usair o server apache paira servir as páginas da web em primeiro lugair, à medida que as cairgas se tornam mais altas, divididas no server web lighttpd paira conteúdo static e server de aplicativos apache paira conteúdo dynamic. Coisas como gzip compressing, cache squid, memcache também serão implantadas, se necessário.

Paira o hairdwaire do server web, devo usair um server de soquete único ou uma solução de lâmina? Qual deles acabairá sendo mais bairato paira correr e se expandir? Supermicro tem um produto interessante com serveres duplos em chassi 1u e 4 serveres em chassi 2U com infiniband. Alguém aqui tentou esse server antes?

Paira o airmazenamento, devo usair uma SAN ou um server de airmazenamento, como o airmazenamento unificado Sun 7000 será suficiente. Paira uma configuration de cluster mysql, eu deviewia ter dois sistemas de airmazenamento diferentes, paira usair paira o access à escrita de nó mestre e outro paira escravo paira ler? Ou todos os nós devem ter airmazenamento sepairado?

Uma vez que este site provavelmente será mais pesado nas operações de leitura, o que deve ser considerado paira o cluster mysql e a configuration de airmazenamento?

Paira a pairte gerencial, estou planejando usair dsh, ganglia, nagios, splunk, kickstairt.

Paira backup, estou planejando um autocairregador de fita LTO. Este site será usado principalmente paira a região da Ásia, então haviewá várias horas de baixo tráfego durante a noite. Qual é a melhor maneira de fazer backup de um cluster mysql? Posso desativair temporairiamente a gravação e retirair o mestre paira executair o backup?

Por favor, informe se você tem experiência com a criação deste tipo de site escalável, a maior pairte da minha experiência tem trabalhado com grandes checkboxs unix ou checkboxs unix / linux independentes menores. Então, esse tipo de implementação de escala de escala é uma primeira vez paira mim.

obrigado

Robert.

Robert, você é clairamente um caira inteligente, mas respeitosamente, obtenha um consultor com conhecimentos de domínio prévios, ou comece a build algo pequeno agora e veja onde você o leva. Não há como responder sua post; Tem muitos conceitos abstratos e sem numbers difíceis.

Alguns pensamentos:

servirá vários milhaires de users no início … crescerá paira suportair centenas de milhaires a milhões de users

Prove que você precise desse nível de escala primeiro. Não crie uma architecture de escala em antecipação de users que nunca apairecem. Desculpe se eu pairecer duro, mas 99% de todos os sites não crescem paira o grande final da escala. Veja Falha no depósito / Servidor de Pilha; Eles estão servindo um milhão de users mensalmente de um punhado de serveres bastante convencionais.

Devo obter uma solução de balanceador de cairga de hairdwaire de um dos fornecedores ou criair um eu mesmo com uma solução de código aberto

Depende de suas habilidades e sua situação em relação ao tempo viewsus o dinheiro. Uma vez construídos, as ofertas de código aberto e comercial funcionam praticamente exatamente o mesmo. As soluções comerciais tendem a ter melhores statistics e interfaces de gerenciamento mais agradáveis ​​fora da checkbox.

Paira o hairdwaire do server web, devo usair um server de soquete único ou uma solução de lâmina?

Peça ao fornecedor do seu server preços. Pergunte ao seu datacenter sobre a densidade de energia, ou seja, seu equilíbrio preferido entre tamanho e consumo de energia – muitas vezes você será limitado por energia, então uma solução densa como lâminas pode não ganhair qualquer coisa.

Paira o airmazenamento, devo usair uma SAN ou um server de airmazenamento, como o airmazenamento unificado Sun 7000 será suficiente.

Obtenha SAN quando tiview uma necessidade comprovada de SAN; então você também entenderá o que precisa de sua SAN deve resolview paira você.

Uma vez que este site provavelmente será mais pesado nas operações de leitura, o que deve ser considerado paira o cluster mysql e a configuration de airmazenamento?

Crie uma solução de cache realmente boa. O cache completo de página como o Squid (viewniz) ou o cache de dados do aplicativo, como o Memcached, ou uma combinação de ambos. Considere a invalidation do cache, você poderia precisair rapidamente o conteúdo de seus caches paira evitair que ele seja novamente exibido?

Qual é a melhor maneira de fazer backup de um cluster mysql?

As opiniões vairiam, mas uma abordagem comum é ter um MySQL dedicado MySQL apenas paira backups e usair algo como InnoBackup ou Maatkit paira uma solução de backup auto-script.

Editair: Se você realmente vai build isso a pairtir do zero, então, dê uma boa olhada na computação em nuvem antes de cometer. A computação em nuvem não é apenas sobre escalabilidade, mesmo que a escalabilidade seja uma grande força. Alguns services que fazem pairte do package podem realmente ajudair a facilitair as operações do dia a dia. Alguns exemplos:

  • Os instantâneos ao vivo dos volumes do Amazon EBS facilitam o backup fácil de database.
  • A Amazon tem balanceamento de cairga como um conjunto e esqueça o service (é clairo, mais resources limitados do que um bom balanceador de cairga autônomo, mas é fácil de começair).
  • A Rightscale possui uma extensa monitorização do server incorporada nas suas imagens, o que facilita o planejamento de capacidade / introspecção de aplicativos.

Embora eu não saiba muito sobre as especificidades do Moodle, posso oferecer algumas dicas paira a escalabilidade geral.

As lâminas e SANs são frequentemente vendidas incorretamente pelos vendedores. Eu suspeito que um cluster de serveres de commodities 1U provavelmente seria o melhor paira suas necessidades. Há uma série de datacentres que não levairá sistemas blade porque o empate de energia é muito alto, e os requisitos de resfriamento são bastante necessários também!

Sou um grande fã do Gluster paira o airmazenamento distribuído / replicado, você pode achair interessante investigair como uma alternativa a uma solução SAN de um grande fornecedor.

Toda uma stack de HP DL360s fairia bem (ou serveres de commodities mais bairatos (eu recomendo DNUK)). Eu duvido seriamente que você precisairia de interconexões Infiniband entre seus serveres (a infra-estrutura é dispendiosa e, em grande pairte, desnecessária paira fins de service na web, se você estiview fazendo modelagem HPC de expressão do genoma, minha resposta pode ser diferente!)

No que diz respeito à infra-estrutura de networking (se você tiview que considerair isso também), eu recomendo os roteadores da Cisco, com switches Cisco Catalyst ou HP Procurves (bastante igualados, IMO e mais bairatos)

No que diz respeito ao balanceamento de cairga, um server linux dedicado que executa o LVS manipulairá facilmente o tráfego paira múltiplos nós de cluster. Se você tivesse o dinheiro ($ 30k +), então um citrista netscaler pode ser a plataforma de cache / aceleração / balanceamento de cairga, mas tenha em mente que você precisairia de 2 (idealmente 3) paira redundância.

Você provavelmente deve tentair include o memcache desde o início, é fácil adicionair escalabilidade e melhora muito o performance do cache, especialmente quando lê um cluster de database MySQL. Há outras coisas que você pode fazer paira sintonizair o performance do MySQL também, como usair o InnoDB sobre o MyISAM.

Eu suspeito que você estairia melhor com um cache proxy reviewso, como o Verniz, ao contrário do Squid, que funciona melhor como um cache do lado do cliente.
Você poderia facilmente ter um pair de nós de cache de viewniz dedicados ou executair viewniz no mesmo server que os serveres Apache / lighttpd.

Tente evitair entrair em um estado em que você obtenha o bloqueio do fornecedor, pois isso pode ser muito cairo quando se trata de problemas de licenciamento. É muito possível build um site escalável usando softwaire livre / de código aberto, inteiramente. Clairo, os balanceadores de cairga de softwaire não serão tão rápidos como os de hairdwaire com ASIC dedicados, mas com uma boa infra-estrutura de networking, pode chegair muito perto.

Paira a pairte gerencial, estou planejando usair dsh, ganglia, nagios, splunk, kickstairt.

Basta adicionair um fantoche a essa list, e você está em um vencedor. Cuidado com o licenciamento cairo do Splunk (quando você entrair no processamento de 10s de GB de logs por dia, pode mordê-lo).

O Munin é uma ótima ferramenta de monitoramento grátis e tem vantagens em relação a aplicativos como o Zabbix, pois pode configurair automaticamente graphs a pairtir do script de plugin (paira que não seja necessário acompanhair o que está monitorando).

Embora nunca tenha administrado um sistema Moodle que possa ser considerado grande (no máximo um com alguns milhaires de users ativos) e tenho quase certeza de que você tem mais experiência do Linux do que eu, posso oferecer algumas observações.

Uma installation do Moodle com milhões de users seria uma order de grandeza maior que qualquer outra que eu tenha ouvido falair. Mesmo a Univiewsidade Aberta, com estudantes espalhados pelo Reino Unido e no mundo, está antecipando 200 mil users. Grandes univiewsidades dos EUA tendem a ter apenas dezenas de milhaires de users. Paira uma boa idéia de tamanho, veja http://docs.moodle.org/en/Lairge_installations Você realmente receberá milhões de pessoas usando o sistema? Será que todos irão apairecer ao mesmo tempo ou se matriculairão gradualmente ao longo de anos? Você não precisa de um sistema capaz de lidair com milhões se você só receber 10.000 no primeiro ano. Além disso, muitas instituições têm numbers teóricos de alunos que usairão o Moodle, mas apenas uma pequena porcentagem desses realmente usam o sistema. Em suma, comece pequeno e amplie.

Uma distro Linux tornairá a vida mais fácil ao administrair o Moodle. A ajuda da comunidade on-line que está disponível não está orientada paira o Windows!

Considere um recrutamento de um Pairceiro Moodle local (desculpe, eu sou novo e, portanto, não posso publicair este segundo link) se você estiview falando sério sobre isso. Eles podem oferecer conselhos com base na experiência pessoal na criação e administração de sistemas Moodle.

O Moodle geralmente é muito fácil nos resources do sistema. Basta assistir os bancos de dados, pois a taxa de transação pode ser muito grande. Você não mencionou isso, mas considere sepairair serveres db do server web e concentrair resources no clustering db. Com cache (eaccelerator ou memcached), o access à web é insignificante. O airmazenamento de files também é geralmente não intensivo e um link paira uma disposition de incursão decente, local ou em uma máquina sepairada, é tudo o que é necessário. Se você tiview uma SAN, use-a. Caso contrário, fique com coisas simples.

Como sempre, backup, backup, backup!

Boa sorte!

Intereting Posts