Habilite reversões do sistema para seu aplicativo Managed Service for Apache Flink - Managed Service for Apache Flink

O Amazon Managed Service para Apache Flink (Amazon MSF) era conhecido anteriormente como Amazon Kinesis Data Analytics for Apache Flink.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Habilite reversões do sistema para seu aplicativo Managed Service for Apache Flink

Com a capacidade de reversão do sistema, você pode obter maior disponibilidade do seu aplicativo Apache Flink em execução no Amazon Managed Service para Apache Flink. A opção por essa configuração permite que o serviço reverta automaticamente o aplicativo para a versão em execução anterior quando uma ação, como UpdateApplication ou autoscaling ocorre, falha no código ou na configuração.

nota

Para usar o recurso de reversão do sistema, você deve se inscrever atualizando seu aplicativo. Os aplicativos existentes não usarão automaticamente a reversão do sistema por padrão.

Como funciona

Quando você inicia uma operação de aplicativo, como uma ação de atualização ou escalabilidade, o Amazon Managed Service para Apache Flink primeiro tenta executar essa operação. Se detectar problemas que impedem o sucesso da operação, como erros de código ou permissões insuficientes, o serviço iniciará automaticamente uma operação. RollbackApplication

A reversão tenta restaurar o aplicativo para a versão anterior que foi executada com êxito, junto com o estado do aplicativo associado. Se a reversão for bem-sucedida, seu aplicativo continuará processando dados com o mínimo de tempo de inatividade usando a versão anterior. Se a reversão automática também falhar, o Amazon Managed Service para Apache Flink fará a transição do aplicativo para o READY status, para que você possa realizar outras ações, incluindo corrigir o erro e repetir a operação.

Você deve optar por usar as reversões automáticas do sistema. Você pode habilitá-lo usando o console ou a API para todas as operações em seu aplicativo a partir de agora.

O exemplo a seguir de solicitação para a UpdateApplication ação permite reversões do sistema para um aplicativo:

{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "ApplicationSystemRollbackConfigurationUpdate": { "RollbackEnabledUpdate": "true" } } }

Analise cenários comuns para reversão automática do sistema

Os cenários a seguir ilustram onde as reversões automáticas do sistema são benéficas:

  • Atualizações do aplicativo: se você atualizar seu aplicativo com um novo código que contém bugs ao inicializar a tarefa do Flink por meio do método principal, a reversão automática permite que a versão de trabalho anterior seja restaurada. Outros cenários de atualização em que as reversões do sistema são úteis incluem:

  • Atualizações da versão do Flink: quando você atualiza para uma nova versão do Apache Flink e o aplicativo atualizado encontra um problema de compatibilidade de instantâneos, a reversão do sistema permite que você reverta automaticamente para a versão anterior do Flink.

  • AutoScaling: quando o aplicativo se expande, mas apresenta problemas de restauração a partir de um ponto de salvamento, devido à incompatibilidade do operador entre o instantâneo e o gráfico de tarefas do Flink.

Use a operação APIs para reversões do sistema

Para fornecer melhor visibilidade, o Amazon Managed Service para Apache Flink tem duas operações APIs relacionadas a aplicativos que podem ajudá-lo a rastrear falhas e reversões de sistema relacionadas.

ListApplicationOperations

Essa API lista todas as operações realizadas no aplicativo, incluindo,UpdateApplication, MaintenanceRollbackApplication, e outras em ordem cronológica inversa. O exemplo de solicitação da ListApplicationOperations ação a seguir lista as 10 primeiras operações do aplicativo:

{ "ApplicationName": "MyApplication", "Limit": 10 }

Este exemplo de solicitação a seguir ListApplicationOperations ajuda a filtrar a lista para atualizações anteriores no aplicativo:

{ "ApplicationName": "MyApplication", "operation": "UpdateApplication" }

DescribeApplicationOperation

Essa API fornece informações detalhadas sobre uma operação específica listada porListApplicationOperations, incluindo o motivo da falha, se aplicável. O exemplo a seguir de solicitação para a DescribeApplicationOperation ação lista os detalhes de uma operação específica do aplicativo:

{ "ApplicationName": "MyApplication", "OperationId": "xyzoperation" }

Para obter informações sobre a solução de problemas, consulte Melhores práticas de reversão do sistema.