Digital Ocean Droplets


WordPress Logo PNG

Sábado. 05 de abril de 2014. Aparentemente, a minha sanidade mental está quase intacta, depois de 3 dias insanos para fazer o que eu queria fazer em muito tempo: migrar novamente de hospedagem. Se arrependimento matasse, eu estava morto faz meses, já que eu me arrependi de acordo ao ter escolhido a Dreamhost como hospedagem. Numa época onde muita gente elogiava o serviço, ela pode ter passado pelo mesmo problema que o UOL Host passa hoje: queda na qualidade dos serviços ofertados, em virtude do crescimento enorme de clientes. Pois não existe hospedagem maneira onde você tem dezenas de sites pendurados no mesmo servidor, onde muitos sites começam a crescer e depois começam a surgir os problemas de performance e ameaças do site sair do ar, como aconteceu com a gente quando estávamos no UOL Host. Na época eles alegaram que o nosso site estava consumindo muitos recursos, e nos deram 5 dias para que a situação regularizasse, e se não fosse arrumado, iriam suspender o site do ar. Fiquei bem chateado na época, onde não sabia o porquê do site estar atrapalhando eles, e optei por “sair do Brasil”, procurando uma hospedagem melhor. Aí eu optei pelo Dreamhost, que ainda é um dos provedores de hospedagem mais famosos do mundo.

A história do site no Dreamhost é cercada de altos e baixos. Depois de ter feito uma migração manual, onde eu baixei e upei mais de 70 mil imagens com uma conexão capenga (e demorando uns 4 dias), eu achava que o Dreamhost seria um dos melhores provedores existentes. Estava bem animado, pois era bem falado por aí, estava fora do Brasil e sempre achava que uma hospedagem nos EUA é sempre melhor que uma brasileira. O que vejo de gente reclamando dos provedores nacionais maiores não está no gibi, o que já deixa um blogueiro/editor de conteúdo acuado: “onde hospedar o site?” “Onde não ter dor de cabeça com isso?” “Não manjo tanto da parte técnica, e agora?” Pergunta que rondam na mente de muitos, e até mesmo dos que tem algum conhecimento técnico. Por mais que eu seja analista de sistemas, web não é a minha praia, e vai demorar pra ser (isso se eu mexer mais com isso no futuro, e nem eu sei como que estarei nos próximos meses).



No Dreamhost eu experimentei uma escalada ascendente de custos, pagando por um serviço que não era prestado direito. Inicialmente estava em uma hospedagem compartilhada, e vi que o site não estava legal. Na busca por algo mais decente, vi que eles tem a VPS, e falei: bom, vamos assinar pra ver se é bom. Com escalabilidade de memória e o preço inicial de US$ 15 achava que estava contratando algo foda, e no começo estava maneiro, estava satisfeito com a minha VPS e tendo em torno de 400 MB de memória. Mas chegou uma hora que o site voltou a ter problemas de performance, e fazia alguns ajustes aumentando a memória e tendo mais custos. Então fazendo mais pesquisas é citado que poderia ser interessante ter uma VPS do banco de dados, tendo um combo de serviços e diminuindo um pouco o custo global (mas ainda sim um valor mais alto). Lá vou eu novamente assinar outro recurso que poderia deixar o site em tempo de bala. Estava satisfeito no começo, mas estamos no WordPress, um dos sistemas mais usados do mercado, MAS que consome muita memória dos servidores. As atualizações de plugins também, e aí um ou outro plugin começa a consumir mais recursos. Com o pouco conhecimento técnico que eu tenho, ficava mais difícil detectar, e mesmo removendo um ou outro plugin, o blog estava consumindo muitos recursos e dando dor de cabeça pra manter no ar tinindo.

Nesse meio tempo, com o conhecimento de que o Google está priorizando resultados de sites mais rápidos, eu decidi me mexer, e em testes com o Page Speed (https://developers.google.com/speed/pagespeed/) vi que o site estava lento pra carregar. Um recurso que muitos usam é o Cloudflare, que gera cache de páginas em diversos servidores do mundo, além de aumentar a segurança das páginas. Lá vou eu assinar a versão gratuita do serviço e depois de algum tempo o blog estava decente novamente. Mas durou pouco tempo.

Select Game - Erro Cloudflare

Erros e mais erros na manutenção do Select Game. Com a migração do meu blog pessoal para cá para unificar toda a minha atividade online (mais da metade dos posts de lá são de games, e o Select Game é Page Rank 3) o blog está com mais de 8 mil posts, e muitas páginas e arquivos. Usamos por muito tempo o W3 Total Cache pra reduzir o consumo do servidor, junto com a assinatura mensal de US$ 10 do Cloudflare, pra ver se a situação melhorava. Mas sem sucesso. Os erros do Cloudflare se multiplicavam, e quando publicávamos um post o blog saia do ar, gerando muita tristeza minha e dos nossos colegas editores e leitores. Nada mais frustrante do que ver uma janela de erro ao acessar aquela notícia ou post que você iria ler, não é mesmo! Mas como eu estava correndo para entregar meus projetos, eu sempre protelava a migração do site, mas os custos estavam ficando proibitivos, chegando a 55 dólares por mês (como comentei anteriormente no post sobre o Adsense e o Itaú). E entrar em contato com a Dreamhost era complicado, pois eles sempre mandavam wikis de otimização de conteúdo, que determinados plugins podem deixar um site lento, etc. Algo como “lê aí e se vira”, também me deixando desanimado (mas o problema maior era o custo elevado mesmo).

Como eu estou em uma nova pindaíba financeira, tive de agir. Em uma das diversas reclamações que eu sempre faço no Twitter, o Carlos (do Raccons Creed) recomendou eu dar uma olhada na Digital Ocean, um serviço de hospedagem que está em crescimento, e com preços bastante agressivos. Só que tem um detalhe: você teria de configurar tudo na mão, já que eles dão uma máquina virtual zerada, com um dos sistemas operacionais Linux que estão disponíveis: Ubuntu, CentOS, Fedora, Debian ou Arch Linux (o Debian é mais voltado pros hardcores, já que eu já andei mexendo um pouco no sistema alguns anos atrás num trampo anterior). Com o preço de 5 dólares para uma droplet de 512 MB de Ram, decidi iniciar os testes de hospedagem, e o Vinícius comentou sobre o VestaCP, um framework de hospedagem de dados, que poderia facilitar na tarefa de hospedar o Select Game.

Na última quinta-feira iniciei todo o processo de testes e usos em uma droplet da Digital Ocean, e então veio o baque mental: seria possível migrar os arquivos entre hospedagens? Fiquei na hora imaginando se eu trabalhasse em uma hospedagem e fazendo o download automático de arquivos, poupando tempo entre o upload e o download. Nesse meio tempo o Flávio comentou que eu poderia fazer um SCP, copiando os dados entre as hospedagens e deixando o trabalho pesado para os PCs. Após alguns zips, consegui copiar os arquivos rapidamente, demorando em torno de 1 hora pra compactar os arquivos e 1 hora e meia para transferir tudo. Então decidi migrar o banco de dados, e aí, meu amigo, o cão chupando manga foi passear no parque pra ficar brincando. O primeiro chefe de Iron Keep em Dark Souls II foi chupar pirulito e brincar na rua, pois eu ralei bastante Dark Souls II é mais fácil do que migrar um MySQL, ainda mais quando não tinha acesso de terminal/root no banco, tendo apenas o PHPMyAdmin para acessar os dados e fazer a importação. Nem com o MySQL Workbench eu conseguia conectar no banco de dados do Select, pra facilitar na tarefa. Achava que estava fazendo tudo legalzinho, eu peguei, baixei o “suposto” banco do Select (um arquivo de 20 MB zipado, coisa fácil, moleza) e importei pelo terminal, usando o comando ZCAT:

zcat DB_File_Name.sql.gz | mysql -u username -p Target_DB_Name

Então com o banco importado e os arquivos já na hospedagem eu decidi trocar os DNSs, e aí veio outra dor de cabeça. O UOL Host não estava deixando eu alterar os DNS, e pensei: será que eles não tinham cadastrado a Digital Ocean? Tentei várias vezes e dava falha. Fui no Registro.br, reativei meu cadastro e por lá também não dava pra trocar os DNSs, sendo que para isso eu teria de fazer dentro do UOL Host. Era quase meia-noite e liguei no suporte espumando de raiva. A atendente disse que na Digital Ocean tinha de estar configurado o Select para hospedagem, e não tinha feito isso, pois queria fazer uma migração “transparente”, sem que o site ficasse muito tempo fora do ar. Com essa informação, eu desativei a VPS do Dreamhost e fiz as alterações necessárias na Digital Ocean, e depois de uns 30 minutos eu consegui cadastrar os novos DNSs.

Digital Ocean Droplets

Sexta-feira, 04 de abril. Parte da manhã. Ao ligar o PC percebi que a propagação de DNS estava concluída e o site estava, tecnicamente, dentro da nova hospedagem, e aí decidi concluir a operação, com uma nova instalação zerada do WordPress. Aí que veio os problemas: quando tentei logar aqui no Select Game não dava certo o login, e depois eu chequei e vi que a maior parte do banco de dados não tinha sido importada (por pura falta de checagem a atenção). Decidi então fazer o download manual do Select, dividindo as tabelas, e ia importando elas aos poucos. Mas quando chegou na tabela de posts, meu amigo…o bicho pegou. São 25 mil registros, tendo desde aquelas revisões de backup de posts, arquivos de imagens que geram páginas estáticas e os posts propriamente ditos. 85 MB de puro texto, e quando importava só vinha 16 mil registros. Achava que era o MySQL na Digital Ocean que não estava importando direito, e tentei inclusive fracionar os arquivos em diversas partes, importando 1 por uma. Não adiantava. Quebrei a cabeça, tentava aumentar a memória do MySQL para importações e nada. 16 mil registros importados… Pensei: deixa eu contar as linhas do arquivo .sql aqui… 17 mil linhas. Era problema no banco do Dreamhost, não vinha todos os posts no download da tabela. Mas eu precisava deles. São mais de 4 anos de textos, e por mais que muitos deles não tenham mais visitas, quero deixar tudo arquivado e online!

Tentei otimizar as tabelas, e na importação e download da tabela não vinha todos os posts. Depois de várias tentativas (consumindo a minha tarde nessa doidera) decidi fazer uma consulta simples de select pra pegar parte dos posts, e aí vi no PHPMyAdmin que dava pra “dumpar” parte dos registros, importando partes deles (por exemplo, importar 12 mil registros e mais 12 mil a partir do registro 12001). Com isso em mente decidi fazer importações fracionadas. Inicialmente peguei grupos de 12 mil registros, mas aí não vinha todos eles. Refiz o processo com frações de 10 mil, até ver que a quantidade de registros estava igual a do outro banco. Com isso “terminei” a migração do banco (importando as outras tabelas que faltavam) e decidi reativar o Select Game.

Mais problemas, e bem mais graves que os anteriores. Por conta de permissões de pastas (e algumas configurações padrões do VestaCP), o WordPress não funcionava direito. Pra instalar um plugin precisava de senha de FTP e pra upar uma imagem a imagem não era gravada dentro da hospedagem. Até cheguei a fazer permissões de escrita dentro das pastas de imagens, mas ainda assim não adiantava muito. Já o plugin Next-Gen Gallery gerava diversas galerias, mas não importava as imagens. Na parte de menus gerava um “loop” infinito ao tentar cadastrar um, fora que nem deixava alterar os menus existentes, e a pior parte foi ter perdido as 3 mil tags de posts, com alguns tendo muitas visitações hoje, me deixando muito desapontado. Com o fim do dia se aproximando, e cansadíssimo, decidi fazer uma outra experimentação, criando outra droplet/máquina virtual com scripts prontos de WordPress, usando o domínio rodrigoflausino.com. No final da operação eu fiz testes iniciais com o WordPress, e tudo funcionava lindamente. Pensei: deve ser algo que eu fiz misturado com as zueiras do Vesta, pois não faz sentido ter tantos problemas no Select e ter um outro blog sem nenhum problema. Decidi dormir, apontando temporariamente o site pro selectgame.net, outro domínio que temos e que usei na época da migração pro Dreamhost.

Na parte da manhã de hoje decidi fazer diferente: apesar de ser maneiro ter o WordPress já instalado com uma droplet padrão, precisava de algum sistema de hospedagem, que facilitasse na criação de bancos de dados e hospedagem. O sistema mais famoso é o CPanel, mas como ele é pago e meio caro, o VestaCP estava complicando as coisas e não podia perder tanto tempo, decidi testar o ZPanel, um sistema gratuito e, aparentemente, robusto. Apaguei a droplet do WordPress e fiz uma nova, já setando as configurações necessárias e baixando o sistema pelo terminal. Depois de ter apanhado um pouco, nos testes iniciais do WordPress eu vi que o sistema estava normal e funcionando, testando instalação de plugins, upload de imagens, instalação de temas e menus. Sem nem precisar de senha de FTP! Falei: vai ser aqui mesmo que irei usar!

Iniciei novamente a migração do Select Game, e desta vez o banco de dados do Select no Dreamhost colaborou, onde pude importar a tabela de posts em 1 só vez, com um arquivo maior de dados! Fiz a importação cuidadosamente (mesmo sabendo que pode não ter vindo os posts direito, mas acredito que tenha dado certo), enquanto que a máquina virtual baixava (via wget) os arquivos da hospedagem. Em 40 minutos os 10 GB do Select Game foram transferidos, e se eu fizesse de maneira normal (baixando e fazendo o upload) demoraria 10 a 12 horas pra baixar, e mais de 30 horas pra fazer o upload na minha internet de 2 MB. De perder a sanidade esse tempo enorme. Após o download, e a descompactação dos arquivos (já tomando cuidado com as permissões de pastas) eu consegui reativar de novo o Select Game!

A maior vantagem da Digital Ocean, além do preço, é que eu tenho mais controle das coisas por aqui, e durante a reativação do blog eu decidi abolir temporariamente diversos plugins que estavam derrubando o MySQL (como os plugins de “Posts Relacionados”) e o plugin de botões de Twitter e Facebook. Já o plugin de cache volta a ser o WP-Super Cache, pois o W3 Total Cache não estava se comportando muito bem por aqui, derrubando também o MySQL. Como a Digital Ocean tem escalabilidade de memória (só não tem de espaço armazenado, e pra isso teria de espelhar a droplet e fazer uma nova com mais espaço, copiando os dados da anterior) então nós podemos ter até 8 GB de memória com o gasto que estamos tendo. Mas como inicialmente quero reduzir um pouco os custos pra manter o Select no ar (ainda mais com o Adsense não rendendo muita coisa, fora a questão do Dreamhost e de desativar as VPSs posteriormente, após migrar os outros domínios que tenho por lá) então vou observar o comportamento do site nos próximos dias. Se vocês verem o Select fora do ar em algum momento do dia, envie um e-mail ou mande uma reply pra mim no Twitter. Se for o MySQL consigo reiniciar rapidamente a hospedagem, e posso também, dependendo, reiniciar a droplet, além de continuar sempre procurando melhorar e otimizar a performance, tentando sempre não detonar com a hospedagem, claro! O único problema que detectei nas últimas horas é do MySQL ficar caindo em determinados momentos do dia, e já estou procurando uma solução para o problema.

Com esta nova fase do Select podemos nos preocupar mais com o mais importante: trazer opiniões e conteúdo interessante pra vocês! Sei que esse post também destoa do objetivo do site, mas queria publicar um relato do que passei, para que outros editores não sofram também quando forem migrar. As opiniões sobre a Digital Ocean são muito boas e muitos estão recomendando o serviço, que tem bastante custo-benefício e flexibilidade. Como não somos tão grandes pra pagar um servidor dedicado, temos de continuar com o que temos aqui disponível, e estou bem mais animado do que antes! Voltemos à programação normal!







Apoie o Select Game pela tag da Epic Store


Se você curte o Fortnite, gostou deste artigo e/ou usa a Epic Store, apoie a gente, para continuarmos com o nosso trabalho! Use a tag RODRIGOFGLIMA dentro do Fortnite ou na loja da Epic Store.

Apoie um criador Select Game