Skip to content

Instantly share code, notes, and snippets.

@joaovictorino
Created October 6, 2023 04:56
Show Gist options
  • Save joaovictorino/41c7b3380b854d86de0d470c14ca4308 to your computer and use it in GitHub Desktop.
Save joaovictorino/41c7b3380b854d86de0d470c14ca4308 to your computer and use it in GitHub Desktop.
Criando experimento de banco

Criando experimento de banco

Agora vamos testar o banco de dados, quanto tempo ele demora para se recuperar de uma queda?
Dentro da pasta "chaos" crie o arquivo "experiment-db.json" com o código abaixo

{
    "title": "O banco de dados voltará ao ar com os dados corretos?",
    "description": "Esperamos que o banco de dados volte ao ar com dados atualizados",
    "tags": ["kubernetes", "bank"],
    "steady-state-hypothesis": {
        "title": "Verificando se a aplicação retorna a consulta",
        "probes": [
            {
                "name": "application-returning-query",
                "type": "probe",
                "tolerance": 200,
                "provider": {
                    "type": "http",
                    "url": "http://[host e porta]/api/contas/123456",
                    "timeout": [ 10, 10 ]
                }
            }
        ]
    },
    "method": [
        {
            "type": "action",
            "name": "deleting-pod-database",
            "provider": {
                "type": "python",
                "module": "chaosk8s.pod.actions",
                "func": "terminate_pods",
                "arguments": {
                    "label_selector": "app=mysqldb-stfs",
                    "qty": 1,
                    "grace_period": 0
                }
            },
            "pauses": {
                "after": 20
            }
        },
        {
            "ref": "application-returning-query"
        }
    ]
}

Altere o host e porta da linha 14, conforme seu ambiente local e execute o comando abaixo

kubectl get pods --watch

Mantenha a janela do terminal aberta com o comando acima, abra outro terminal, vá até a pasta "chaos" do projeto e execute

chaos run experiment-db.json

Repare na outra janela do terminal que enquanto o Chaos roda, o contêiner de banco de dados é finalizados e na sequência o Chaos testa o endereço da aplicação.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment