Como configurar ambientes de desenvolvimento, preparo, produção e controle de qualidade

8

Estou no processo de configurar novos servidores para uma organização. Quais são os padrões ou práticas recomendadas para configurar um novo ambiente com Desenvolvimento, Teste, Preparação e Produção (ou estou aberto a outros níveis com os quais não estou familiarizado)? Além disso, ouvi falar de organizações que dividem servidores em SQL, aplicativo, servidor Web etc. Onde posso encontrar bons exemplos de possíveis soluções para a configuração do servidor?

A virtualização desses ambientes entre algumas caixas físicas é uma boa prática?

Pesquisei on-line algumas idéias de como outra organização tem seu ambiente configurado, mas não estou encontrando nada especificamente útil. Congratulo-me com todos os links que você pode apontar para discutir a construção de uma solução corporativa inteira para uma empresa de pequeno a médio porte.

Acabei de encontrar este link: http://dltj.org/article/software-development-practice/ Gostaria de encontrar mais artigos como este, se alguém souber de algum bom que possa me indicar.

Antes de votar negativamente minha pergunta, poste comentários para que eu tente explicar mais. Talvez eu não saiba o suficiente para fazer as perguntas certas.

TreK
fonte
2
Acho que a primeira coisa que você deve fazer é explicar a tarefa real que você precisa cumprir. Para que serve o pedido? Quanta carga terá? Que mudanças você acha que receberá? (Como: Do que você precisa 4 níveis, dev, teste, Palco, Prod)
MichelZ
1
O requisito é hospedar muitos aplicativos de intranet personalizados (com menos de 50). Estes estão todos na pilha da Microsoft. Atualmente, estamos usando um servidor SQL de desenvolvimento e servidores Web locais para desenvolvimento e um servidor SQL e servidor Web separados que hospedam nossos ambientes de teste e produção. Eu sei que as coisas poderiam ser feitas muito melhor do que o que estamos fazendo atualmente, e é por isso que eu publiquei originalmente essa pergunta. Eu simplesmente não sei o que é "melhor" com a minha experiência.
TreK
2
Não é uma resposta em si, então vou colocar como um comentário. Uma coisa que você quer ter certeza é que você tem um mecanismo (por exemplo, chave API, validação de IP) para garantir que seus ambientes de teste não possam acessar seu ambiente de produção.
HTTP500

Respostas:

8

Esta é uma pergunta bastante carregada. Meu conselho geral é focar sua atenção no gerenciamento da complexidade e permitir que o sistema cresça organicamente.

Virtualização:

Você realmente deseja evitar a expansão do servidor e, atualmente, tudo é virtualizado. Escolha uma plataforma que permita adicionar servidores virtuais rapidamente, além de gerenciá-los com eficiência. Uma tendência que eu vi é ter dois (por exemplo) clusters AIX ou VMWare, um para prod e outro para não prod. O non-prod one é usado para todos os ambientes de desenvolvimento, teste e preparo. Esses ambientes são perfeitos para servidores Web ou servidores de aplicativos, mas eu tentaria evitar colocar grandes bancos de dados de produção em crescimento como uma VM (pelo menos no Windows).

Bases de dados

Eles podem facilmente sair do controle sempre que eles precisam compartilhar recursos com outros servidores. Sempre tenha bancos de dados em execução em um sistema operacional dedicado, nunca compartilhados com um aplicativo ou servidor da web, a menos que haja uma boa razão para isso. Se você usa uma VM ou hardware é a única pergunta.

Você deseja uma infraestrutura escalável que não o limite se precisar, por exemplo, mudar para uma solução em cluster. Muitos bancos de dados ficarão bem em uma VM, mas para os poucos que precisarão de mais potência do que o conveniente para fornecer em um ambiente de VM, você se encontrará desejando colocá-los em hardware bruto .

Se você não está falando sobre janelas, algumas dessas diretrizes não serão relevantes. É prática comum aceita colocar grandes bancos de dados em crescimento como LPARs em um hypervisor AIX, por exemplo.

Armazenamento

Você não pode ter virtualização real (com mobilidade de VM e cluster de host) sem armazenamento compartilhado. Os servidores Prod, dev, testing e QA têm a mesma aparência do seu armazenamento. No entanto, convém investir algum tempo para encontrar uma maneira de priorizar o seu prod. É uma péssima idéia, por exemplo, ter um banco de dados de produtos pesadamente sobrecarregado, compartilhando discos (conjuntos de incursões, pools, o que for) com um servidor de desenvolvimento. Às vezes, os desenvolvedores podem atingir os discos com tanta força quanto a produção, e a última coisa que você precisa é descobrir se algum tipo de teste é o que está desacelerando sua produção.

Peça a alguém que conheça seu armazenamento que se sente e analise todos os gargalos em potencial (portas, cache, controladores, disco etc.) e faça o possível para evitar disputas pelo maior número possível entre prod e non-prod.

Dito isto, às vezes as pessoas do aplicativo precisam executar benchmarks de desenvolvimento para ajudar a quantificar os efeitos de um novo patch ou algo assim. Nessa situação, talvez seja necessário oferecer a eles quantidades semelhantes (ou pelo menos quantificáveis ​​diferentes) de potência de armazenamento.

Manjericão
fonte
1

Para que você está precisando desse ambiente? O fornecedor de software ou sua organização está desenvolvendo seu próprio desenvolvimento?

Não sei se isso ajudará, mas tanto a HP quanto a Dell se empenharão em entrar e avaliar seu datacenter atual e dar uma recomendação para renovar ou criar do zero. Os leitores do fórum podem dar boas respostas, mas sem ver "o que você tem e onde está, o que deseja e onde precisa estar", será difícil fornecer uma resposta sólida. Faça um favor a si mesmo e fique com um fornecedor de hardware por motivos de administração.

Temos nosso datacenter voltado para isso (temos o hardware instalado para isso)

Gabinete blade C7000 Hp do ambiente VMWare com back-end EMC SAN, conexão de fibra de 8 gig.

Isso nos permite limitar os custos de reprodução, uso de eletricidade e ar condicionado. Seria usado para máquinas de teste, servidores de prova de conceito, servidores de produção que não precisam de hardware exclusivo para o aplicativo (dongles USB, placas de fax, ect)

Ambiente físico do servidor blade C7000 Hp Gabinete blade com 16 blades HBA conectado ao back-end EMC SAN via fibra de 8 gig.

Seriam para máquinas que exigem uma grande quantidade de RAM e CPU, mas não possuem adições de hardware exclusivas. Máquinas virtuais funcionam bem, exceto quando exigem uma quantidade enorme de CPU ou RAM. O VMWare permite que o vmotion mova o servidor vms para uma máquina host para equilibrar o uso do hardware. O imóvel da VM é rentável apenas quando usado ao máximo. Ou seja, máquinas mais pequenas, em vez de algumas grandes. Isso também depende do sistema que você está tentando suportar.

Servidor físico (1U a 5U)

Servidores HP DL360 - DL 5xx. Hardware especial, como CPUS 4x 8 núcleos e ram 256 Gigs, placas seriais para interfaces de telecomunicações ou placas de fax de ponta conectadas a várias linhas telefônicas. Incluídos nesse grupo estariam os servidores que o fornecedor exigiu grande armazenamento local.

Este é um exemplo, mas não uma resposta completa. Sério, fale com um fornecedor de hardware e deixe-o dar uma idéia de onde você está e como torná-lo melhor / mais eficiente.

Paul Hickox
fonte
0

Quais são as práticas recomendadas ou padrão para configurar um novo ambiente com Desenvolvimento, Teste, Preparação e Produção.

Isso depende do orçamento, entre outras considerações. Não tenho certeza se há padrão, mas você gostaria de manter o SO e outro software iguais em todas as caixas. Use ferramentas de automação como o Puppet para automatizar e padronizar suas construções.

Visualizar este ambiente em algumas caixas físicas é uma boa prática?

Virtualização? Sim. Boa prática. Mas é necessário validar suas configurações, se elas forem executadas como máquinas virtuais.

Ouvi falar de organizações que dividem servidores em SQL, Aplicativo, Servidor Web, etc. Onde posso encontrar bons exemplos de possíveis soluções para a configuração do servidor?

Provavelmente outros podem entrar em contato, mas, imho, você desejaria instalar componentes diferentes em servidores diferentes por várias razões entre atualizações e disponibilidade de SO e aplicativos.

Raj J
fonte
1
Tudo depende do tamanho do seu projeto. Eu não acho que você precisa de nada disso para o seu banco de dados de home-cinema privada ... :) Eu acho que precisamos de mais informações OP
MichelZ