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:
-
Se seu aplicativo for atualizado para ser executado com um paralelismo maior que MaxParallelism.
-
Se seu aplicativo for atualizado para ser executado com sub-redes incorretas para um aplicativo VPC, isso resultará em uma falha durante a inicialização da tarefa do Flink.
-
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
, Maintenance
RollbackApplication
, 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.