O servidor caiu - o aplicativo da web corporativa está inativo - considerando migrar para um host on-line - alguma sugestão?

2

Estou em uma confusão aqui. Por alguns anos, temos executado nosso próprio aplicativo personalizado em um servidor local em nosso escritório. Os servidores tiveram seus dias bem ruins e bons dias agora - mas o servidor literalmente morreu há alguns dias - durante a manutenção de rotina nós contratamos um freelancer para instalar uma impressora - o idiota acabou destruindo o servidor [Eu ainda estou especulando que ele tentou estragar um pouco para que ele pudesse cobrar por consertar um erro auto-infligido, só que desta vez foi além de sua própria habilidade].

Nosso sistema está inativo e estamos ansiosos para hospedar nosso aplicativo da web em um host on-line. Estou bastante aberto a sugestões aqui. Deixe-me explicar qual é a natureza do sistema que estamos executando aqui.

Nosso sistema é baseado em Php MySQL - é um sistema de colaboração centrada em dados críticos. Basicamente, temos um endereço de e-mail corporativo no qual recebemos solicitações de clientes. Nosso aplicativo é usado para colaborar com essas solicitações. Temos um cron job sendo executado periodicamente em segundo plano ou realmente executando a tarefa que realmente baixa fisicamente os emails da conta de email e os converte em um formato que pode ser inserido em um banco de dados para consulta e, em seguida, exclui o email da conta real está em nosso banco de dados e, assim, nosso sistema pode colaborar usando-o em vez de ter que fazer uma conexão IMAP toda vez que precisarmos de um email. Esta tarefa do cron está configurada para ser executada a cada 3 minutos, considerando o grande volume de solicitações que recebemos - portanto, seu tempo é muito centrado em nosso aplicativo. De vez em quando a tarefa agendada é interrompida - por isso, às vezes, precisamos reiniciar manualmente a tarefa agendada.

A tarefa agendada também faz o download de anexos do servidor de e-mail e os armazena como arquivos simples em nosso aplicativo da web. Em média, as solicitações de email não têm anexos, mas na rotina, o anexo médio varia entre 200K e 10MB, embora anexos acima de 5MB sejam uma raridade. A maior parte do download está entre o servidor de email para o aplicativo da Web.

Eu preciso de um host que seja confiável, tenha quase zero tempo de inatividade, porque não teremos um site em execução. Vamos executar um aplicativo muito importante - quero dizer, nosso negócio depende disso e meu chefe está literalmente polegadas de distância de quebrar e perder sua sanidade neste momento:.

Alguém sugeriu servidores em nuvem da rackspace - estou olhando para eles, mas basicamente desde que sou programador - minha exposição à rede e à hospedagem de coisas não se estende além da solução de problemas e depuração de um aplicativo da web. Então, eu preciso de alguma sugestão para a situação em que estamos - um host on-line seria uma boa ideia ou precisávamos investir em um melhor hardware de rede [por enquanto arranhamos um freelancer] - considerando a opção de um host on-line opções devemos olhar para fora para qual oferta valor pelo dinheiro. Barato é bom, mas não se vai ser um enorme compromisso de qualidade ... ajuda por favor :( é urgente

EDITAR ====

O conselho é ótimo, mas agora eu estava considerando essa situação. Vamos supor que eu vá para um serviço online como hospedagem na nuvem ou um servidor dedicado - eu ainda precisaria de um sistema de failover para ser configurado neste caso e, em caso afirmativo - como esse sistema de failover seria configurado ou qual seria a melhor maneira de lidar com isso. Somos uma empresa pequena e o outro cara de TI teve uma experiência bem não muito boa com o Managed Services de outro host - é como se você precisasse de alguém para coordenar constantemente com o host no serviço de gerenciamento e se tivéssemos que fazer metade do trabalho então poderíamos investir algum tempo para gerenciar nosso próprio servidor, seja local ou na nuvem.

Na situação definida acima - se considerarmos um host dedicado on-line ... como poderíamos configurar um sistema de failover?

    
por Ali 22.02.2010 / 09:04

5 respostas

5

Eu odeio dizer isso, mas se você realmente acredita que o seu freelancer tentou atrapalhar você, então sua primeira ligação deve ser para a polícia, e provavelmente um especialista em direito da computação.

Em segundo lugar, se você já tem conectividade de rede e hospeda espaço em um datacenter, sugiro que o mantenha e mantenha sua própria rede. Eu pessoalmente não gosto do modelo de negócios de hospedagem compartilhada. Eu gosto de manter internamente meu próprio hardware, rede e gerenciamento de servidor.

Dito isto, você precisa contratar alguém em quem possa confiar para gerenciá-lo. É melhor ter um administrador interno em tempo integral, em vez de contratar um freelancer de vez em quando surge alguma coisa. Primeiramente, porque ter um cara no escritório é um enorme poupador de tempo, e em segundo lugar, porque, esperançosamente, ele vai criar alguma lealdade à empresa.

Se o aplicativo que você executa é crítico para os negócios, e tão importante quanto você é, então por que isso aconteceu em um único servidor? Você acabou de se dar o maior motivo de ter falhado, não por causa das ações de um descuidado, mas porque seu arquiteto de sistemas nunca disse "ei, quanto a redundância e resiliência, vamos ter um par de servidores em cluster". / p>

Enquanto eu estou nessa nota, o estado do seu servidor e configuração foram salvos em algum lugar? Se você tivesse um backup básico de antes do dia em que contratou seu fornecedor, a restauração deverá fornecer uma máquina funcional. (a menos que ele esteja fisicamente quebrado o hardware, nesse caso, de volta ao primeiro ponto, desta vez com uma acusação de dano criminal)

Você não precisa se preocupar muito com o lado da rede se escolher um bom Datacenter. Eles estão realmente lá para ajudar, não para enganá-lo e podem fornecer diversas rotas para a internet, mesmo se você não tiver seu próprio hardware de roteamento.

Minha recomendação:

  1. Contrate um administrador de sistema.
  2. Organize 2U de espaço de colocation em um datacenter neutro e sem carga.
  3. Compre dois servidores 1U Dell (ou HP ou qualquer outra marca boa), configure-os como um par de failover em cluster.
  4. Instale seu webapp em ambos, configure algum monitoramento, talvez você queira configurar o Puppet para ajudar nas implantações em vários servidores.
  5. Configure um regime de backup e faça uma restauração de teste

Espero que você aprenda muito sobre como configurar arquiteturas de servidores reais e torne sua aplicação muito mais robusta do que antes. Infelizmente, todo mundo tem que cometer esses erros em algum momento, o que faz de você um bom administrador de sistema é mostrar como você lida com isso.

    
por 22.02.2010 / 09:24
2

Sinto a necessidade de falar aqui sobre soluções baseadas em nuvem e terceirizar seu trabalho de TI também. Para divulgação completa, eu dirijo uma empresa de consultoria de TI. Concordo que, em determinado momento, uma empresa atingirá o tamanho em que ter uma pessoa de TI interna é mais rentável. No entanto, eu também vi que, geralmente, quando uma empresa está nesse ponto, eles só podem pagar por um engenheiro de nível de entrada. Nesses casos, eles podem contratar uma empresa de TI para lidar com os projetos / tarefas de nível superior e também atuar como suporte de segundo nível para a tecnologia interna, quando necessário. Quando as empresas atingem tamanhos maiores, ter funcionários internos geralmente faz muito sentido, mas também depende da cultura do negócio e de quão tecnologicamente experientes eles são e querem ser.

Com isso dito, posso dizer que sou bastante paranóico com relação à segurança e coloco dados de missão crítica na nuvem; no entanto, há muitos benefícios em fazer isso em muitos casos. A primeira coisa é escolher uma empresa confiável com um histórico comprovado (ou seja, Amazon Web Services ou Rack Space). Você quer uma empresa que suporte seu suporte e tenha um SLA. De qualquer forma, você deve sempre manter bons backups, seja no host ou na nuvem.

Se você pretende gastar milhares de dólares em servidores e espaço de co-localização em um data center e quer aprender como instalar um servidor, você pode fazer isso na nuvem com uma queda drástica no custo geral e inicial Desembolso de caixa. Por exemplo, a configuração de um servidor de tamanho médio na Amazon leva cerca de 15 minutos para ser concluída e você obtém acesso root completo no Linux e acesso total ao administrador no Windows. Você pode dimensionar sua memória, cpu e espaço em disco para cima e para baixo sem ter que esperar que os técnicos de data center façam isso por você. Você tem controle total sobre sua instância do servidor. Se você precisar criar outro servidor como esse, é tão fácil, você pode até mesmo tirar um instantâneo do seu servidor e, em seguida, armazená-lo e usá-lo para criar outro servidor como ele sempre que quiser em minutos. Você paga apenas pelo que usa.

Com o Amazon e o Rack Space (e outros, eu presumo) você pode hospedar servidores na costa leste, oeste e até mesmo na Europa e fazer com que todos conversem uns com os outros ou usem um para redundância e paguem apenas quando você precisar .

Você paga menos que alguns centavos por hora para usar um único servidor de instância, o que resulta na mesma, se não muito menos que uma solução de data center, e você pode desligar seus servidores quando não precisar mais deles. Não há contratos a termo, então você não está preso. Você tem flexibilidade que você não tem com soluções de ativos fixos.

Se você tiver problemas para gerenciar ou não quiser aprender, poderá contratar alguém internamente ou terceirizá-lo. De qualquer forma, quem gerencia isso deve ser examinado adequadamente e deve saber o que está fazendo e ser capaz de provar, antes de pagar um salário ou honorários.

Isso não é de forma alguma uma abordagem de tamanho único, mas um bom consultor de TI deve se esforçar para fazer várias perguntas sobre suas necessidades, seus planos futuros, seu orçamento e para onde sua empresa está indo, para que eles possam oferecer opções razoáveis com as quais você pode conviver.

Espero que isso ajude.

    
por 22.02.2010 / 21:41
1

A maioria dos hosts on-line tende a lidar com sites, então o que você provavelmente procuraria é um serviço gerenciado, especialmente se você não é bom com a administração do servidor. Normalmente, você assinaria um contrato para o serviço gerenciado, que inclui um contrato de nível de serviço, e a empresa também pode estar disposta a assinar um contrato de confidencialidade, dependendo da natureza do sistema.

Se você seguir o caminho da manutenção interna, eu sugiro ter um sistema de failover (custa mais, mas se é crítico para o seu negócio, deve ser um acéfalo.) Então, qualquer manutenção que você precisar no servidor live, você executa seu sistema em seu sistema de failover porque, como você viu, até mesmo as tarefas mais triviais podem dar errado.

Trabalhei com algumas empresas que fornecem servidores gerenciados - Todas as cidades são provavelmente as melhores até hoje, já que Instale e gerencie toda a pilha de software (eles executam sistemas Solaris, mas podem fornecer sistemas Windows ou Linux se você solicitá-los.) No entanto, os preços são um pouco altos em comparação com outros. A NTT também fornece soluções de hospedagem personalizadas.

A maioria dos outros provedores de hospedagem fornece o servidor e cabe a você instalá-lo e gerenciá-lo. Os melhores desses animais que eu sinto são Redstation , Memset e Fasthosts (mas o suporte é um pouco terrível.)

    
por 22.02.2010 / 09:25
1

Um aspecto importante da sua solução de failover deve ser a replicação de dados. O MySQL vem com replicação embutida e é fácil de aprender. Depois de ter a replicação em execução entre as duas máquinas, o resto é fácil.

Você obteria mais valor ao executar seu host de failover em um local diferente. Isso funcionará como Recuperação de Desastres no caso de um incêndio em seu escritório, ou quando seus servidores forem roubados ou uma sobrecarga de energia explodindo seus servidores.

No seu caso, é provável que uma solução simples de dois sites continue a executar seu serviço em seu escritório e a replicar dados de uma VPN para um servidor em um ambiente hospedado ou gerenciado. Você nem precisa necessariamente executar seu serviço no site remoto, basta manter uma réplica de banco de dados em execução até que algo dê errado com o seu escritório. Nesse ponto, você tem uma solução de recuperação atualizada, na qual pode copiar os dados de volta para o escritório ou migrar o serviço para o ambiente de hospedagem. Ter um plano ajudaria.

É bastante provável que o ambiente remoto seja melhor fornecido do que o seu escritório: bom ar condicionado, energia limpa, boas comunicações. Nesse caso, migre seu serviço para o ambiente remoto e replique os dados de volta ao seu escritório e faça com que o seu escritório funcione como o site de recuperação de falhas.

Ter seus dois únicos servidores no mesmo rack / prédio coloca você em risco de falha no ambiente.

    
por 22.02.2010 / 21:18
0

Eu recomendaria um VPS gerenciado. Em geral, elas são mais econômicas do que a co-localização, fornecem suporte e ainda oferecem controle total. A maioria dos hosts VPS com os quais lidamos faz backups automatizados no caso de uma emergência. Você pode conectar quantos websites forem necessários para fazer o failover.

    
por 25.10.2010 / 16:23