Robert, você é claramente um cara esperto, mas respeitosamente, consiga um consultor com conhecimentos prévios de domínio, ou comece a construir algo pequeno agora e veja onde ele leva você. Não há como responder sua postagem; tem muitos conceitos abstratos e não números concretos.
Algumas ideias:
will serve several thousand users at first ... grow to support hundreds of thousands to millions of users
Prove que você precisa desse nível de escala primeiro. Não crie uma arquitetura de scale-out antecipando os usuários que nunca aparecem. Desculpe se eu pareço duro, mas 99% de todos os sites não crescem até o fim da escala. Veja o estouro de pilha / falha de servidor; eles estão atendendo a um milhão de usuários por mês a partir de um punhado de servidores razoavelmente convencionais.
should I get a hardware load balancer solution from one of the vendors, or build one myself with open source solution
Depende das suas habilidades e da sua situação em relação ao tempo versus dinheiro. Uma vez construídas, as ofertas de código aberto e comercial funcionam praticamente da mesma maneira. As soluções comerciais tendem a ter estatísticas melhores e interfaces de gerenciamento mais agradáveis, prontas para uso.
For the web server hardware, should I use one-u single socket server or a blade solution?
Pergunte ao seu fornecedor de servidores por preços. Pergunte ao seu datacenter sobre a densidade de energia, ou seja, seu equilíbrio preferencial entre tamanho e consumo de energia - muitas vezes você terá energia limitada, então uma solução densa como blades pode não lhe render nada.
For the storage, should I use a SAN or storage server like Sun unified storage 7000 will be sufficient.
Obtenha SAN quando você tiver uma necessidade comprovada de SAN; então você também entenderá melhor o que sua SAN precisa resolver para você.
Since this website will likely be more heavy on read operations, what consideration should be made for the mysql cluster and storage setup?
Crie uma solução de cache realmente boa. Cache de página inteira, como o Squid (Varnish), ou cache de dados do aplicativo, como o Memcached, ou uma combinação de ambos. Considere a invalidação de cache, você poderia precisar limpar rapidamente o conteúdo de seus caches para evitar que ele seja exibido novamente?
What is the best way to back up up a mysql cluster?
As opiniões variam, mas uma abordagem comum é ter um MySQL escravo dedicado apenas para backups e usar algo como o InnoBackup ou o Maatkit para uma solução de backup com autotransformação.
Editar: Se você realmente vai construir isso do zero agora, por favor, dê uma boa olhada na computação em nuvem antes de confirmar. A computação em nuvem não é apenas sobre escalabilidade, mesmo que a escalabilidade seja uma grande força. Certos serviços que vêm como parte do pacote podem realmente ajudar a tornar as operações do dia a dia mais fáceis. Alguns exemplos:
- Imagens instantâneas ao vivo de volumes do Amazon EBS facilitam backups de banco de dados.
- A Amazon tem o balanceamento de carga como um conjunto e esquece o serviço (obviamente, mais recursos limitados do que um bom balanceador de carga auto-hospedado, mas fácil de começar).
- O Rightscale possui um amplo monitoramento de servidor incorporado em suas imagens, o que facilita a introspecção de planejamento / aplicação de capacidade.