Ah, mudanças! Aquele cheirinho de servidor novo, hardware potente, nenhuma bagunça nem gambiarra... Mas espera, e meus bons e velhos projetos do servidor antigo, como lidar? Simples! A gente deleta tudo migra!

A princípio tudo parece simples e belo, apenas copiar arquivos, copiar bancos de dados, trocar DNS e pronto! Tudo funciona como num passe de mágica. Para quem usa o setup mais comum de Apache/NGINX + MySQL + PHP (os famosos AMP e EMP), é relativamente fácil, pois na maioria das vezes é realmente copiar os arquivos e os bancos, porém não é bem o caso que vou cobrir aqui.

// Aqui começa a bagunça.

Pois bem, nosso primeiro problema é a bagunça, e é aqui onde a gente olha pra si mesmo e começa a questionar "por quê?"

Aquele meme tão velho quanto as gambiarras que você encontrou no servidor.

É mais que óbvio que teremos que organizar toda a bagunça que existia antes, seja ela por conta de falta de um padrão nos nomes de pastas, por conta de alguma gambiarra nas configurações do Apache, algum projeto que você nem se lembra onde estão os arquivos ou uma combinação de tudo isso. E neste caso não existe regra, cada um faz do seu jeito, da forma que mais lhe servir.

Pessoalmente, eu utilizo o Trello para me organizar e acabei criando uma board apenas para isto, porém vai de pessoa para pessoa.

Para onde vamos migrar? O que é ideal para mim?

Este é um problema bem amplo e depende de uma série de fatores, como quais aplicações e para quais finalidades serão utilizadas, volume de acesso, se há ou não necessidade de baixa latência... A lista vai em diante, então vou basear esta etapa (e o post em si) na minha necessidade.

Num passado bem distante, utilizei um combo de dois servidores cloud, um para meus projetos pessoais (como este belo blog) e outro para manter um servidor de TeamSpeak que usava para jogar com meus amigos. Logo que comecei a Subatomic este número cresceu para 3 servidores, com um deles sendo dedicado exclusivamente para o projeto.

Com a chegada do Discord boa parte da galera que usava o TeamSpeak foi para lá e o consumo do servidor caiu significativamente, enquanto com minha migração para a plataforma serverless da Zeit, o Now, o uso dos outros servidores também foi caindo para perto de zero.

Esse pico de 1% foi quando decidi que devia escrever um post :V

Então chegamos na situação que os servidores estão lá quase parados, beirando os 0% de uso e gastando meu dinheiro. Hora de mudar isso, e é justamente daí que vem o título do post.

No meu caso, a migração vai para o servidor mais organizado, que é o que tem o blog configurado.

Primeiro limpar a bagunça da casa nova (temporária).

Como dá pra ver no screenshot acima, o uso de disco estava absurdamente alto. Isto devido a logs e arquivos antigos de experimentos que fiz uns 4-5 anos atrás, com MongoDB. Sim, pois é.

Como não vamos utilizar este servidor por muito tempo, mas apenas para ganhar algum tempo extra, vamos limpar estes arquivos e seguir com a migração. Mais pra frente iremos criar um servidor novo mais organizado e gerenciável, mas por enquanto vamos cortar os gastos desnecessários.

Agora que temos nossos 10GB livres novamente (yay!), hora de migrar o TeamSpeak, que também vai ser aposentado em breve, mas pelo menos vamos manter no ar por mais um mês, em nome dos velhos tempos...

Hora das mudanças

O primeiro servidor que migrei foi o do TeamSpeak. Era o que eu estava mais preocupado em sobrecarregar o servidor novo, porém após uma rápida inspeção podemos dizer com 100% de certeza que não foi o caso... Ele mal tocou nos gráficos depois de ser colocado no ar.

O consumo maior foi de memória durante a instalação e inicialização, porém foi isto.

A segunda mudança foi mais rápida, migrei o site da Subatomic para o Now. Por ser um one-page bem simples não levou mais de 20 minutos para o processo todo, sendo que a maior parte do tempo foi gasta fazendo café recriando o DNS, já que acabei migrando também o domínio para a Cloudflare.

Um dos lados negativos desta migração em específico foi que ficamos sem formulário de contato, porém como o site em si não possui acessos (a empresa é uma transição dos meus trabalhos como freelancer para algo mais sério e ainda não está sendo divulgada) e é relativamente simples configurar um form novo, deixei isto para a segunda etapa, pois não é crítico ou prioritário no momento.

O mundo explodiu em chamas?

Me perdoem o gif, mas foi o melhor para este momento.

Com todos backups feitos, arquivos migrados, configurações feitas, DNS trocados, foi hora de finalmente desligar os servidores antigos. E apesar de toda a preocupação com algo possivelmente dando errado, já que sempre dá tudo correu perfeitamente bem, o mundo não explodiu em chamas e de quebra ainda economizei alguns dólares nas minhas contas mensais :)

Assim que tiver tempo, pretendo cobrir melhor a migração para serverless, inclusive como lidar com os forms de contato e outros detalhes que são necessários nessas horas, mas por enquanto, fico por aqui!