No entanto, se algo der errado, pode levar algum tempo para corrigir o problema e depurar o site. Como você pode trazer seu aplicativo de volta à vida e por onde começar?
Dentro do fogo
Você recebe um telefonema no meio da noite: seu site está quebrado. Você se despede de uma boa noite de sono com sua motivação e abre o aplicativo em seu navegador. Tudo parece estar funcionando bem: não há falhas visuais, os recursos estão carregados - e, mesmo assim, as reclamações dos usuários continuam chegando.
Em primeiro lugar, você precisa verificar se todos os serviços estão funcionando. Você começa sua investigação como um diligente detetive de TI.
O MySQL parece estar funcionando, assim como o RabbitMQ. Então você verá: o Redis parece estar inativo para um dos nós do servidor. Você reinicia o Redis e espera que tudo volte ao normal.
Infelizmente, o problema ainda persiste.
Depurando o problema. . . Novamente.
Você verifica meticulosamente se todos os serviços estão disponíveis. Ocorre uma compreensão repentina - pode haver um problema com o código!
Depois de vasculhar os logs, parece que a última implantação quebrou o código que se conecta ao RabbitMQ.
Então você decide fazer o que qualquer pessoa sã faria: reverter para uma versão anterior. No entanto, sem que você saiba, há um pequeno problema com a versão anterior.
Surpresa! A versão anterior está completamente danificada
Você acabou de implantar um aplicativo completamente quebrado para produção. Seus clientes estão insatisfeitos, seus gerentes estão furiosos e você está frustrado e exausto.
Você reverte o aplicativo em mais uma versão e, finalmente, “corrige” o problema. Em algum universo alternativo, as coisas poderiam ter acontecido de forma diferente.
Enquanto isso, em um universo alternativo
Você é acordado por um telefonema. Você visita a página / status do seu site -"status":"OK". Isso significa que a principal funcionalidade do aplicativo está disponível. Você obterá mais detalhes na página / status / details:
"database.default": "OK",
"redis.local": "FAIL",
"rabbitmq.server": "FAIL"
Primeiro, você recarrega o servidor Redis e verifica a página de status novamente:
"database.default": "OK",
"redis.local": "OK",
"rabbitmq.server": "FAIL"
Então, você dá uma olhada no servidor RabbitMQ - ele está definitivamente online. Parece que aqueles desenvolvedores irritantes quebraram o código! Bem, não se preocupe, coisas assim acontecem às vezes.
Você reverte o código usando um método de implantação contínua. Durante a primeira fase, sua implantação falha, porque a verificação de integridade do balanceador de carga detecta que seu aplicativo está inativo. Uma versão quebrada? Pois bem, basta reverter para uma versão ainda anterior.
A reversão é um sucesso, tudo está funcionando conforme o esperado. Você recebe elogios da gerência e volta para a cama para dormir um pouco.
Excelente! Qual é o próximo?
Aqui no Avance Network, usamos código aberto para construir produtos excepcionais e agora queremos retribuir à comunidade.
Espere mais bibliotecas de código aberto e dicas úteis de nós no futuro.
O Avance Network é uma comunidade fácil de usar que fornece segurança de primeira e não requer muito conhecimento técnico. Com uma conta, você pode proteger sua comunicação e seus dispositivos. O Avance Network não mantém registros de seus dados; portanto, você pode ter certeza de que tudo o que sai do seu dispositivo chega ao outro lado sem inspeção.