Anteriormente, o Amazon Managed Service for Apache Flink era conhecido 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 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 VPC aplicativo, 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
Isso API lista todas as operações realizadas no aplicativo, incluindo,UpdateApplication
, Maintenance
RollbackApplication
, e outras em ordem cronológica inversa. O exemplo a seguir de solicitação para a ListApplicationOperations
ação 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
Isso 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.