Anteriormente, o Amazon Managed Service for Apache Flink (Amazon MSF) 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 de 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 for 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, causa falha no código ou na configuração.
nota
Para usar o recurso de reversão do sistema, você precisa aderir à atualização do aplicativo. Os aplicativos existentes não usarão automaticamente a reversão do sistema por padrão.
Como funciona
Quando você inicia a operação de um aplicativo, como uma atualização ou escalamento, o Amazon Managed Service for Apache Flink primeiro tenta executá-la. Se ele detectar problemas que impeçam a operação de ser bem-sucedida, como falhas 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 estava sendo executada com êxito, junto com o estado do aplicativo associado. Se a reversão for feita com êxito, o 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 for Apache Flink fará a transição do aplicativo para o status READY, para que você possa corrigir o erro e repetir a operação.
Você deve aderir ao uso de reversões automáticas do sistema. Você pode habilitar isso usando o console ou a API para todas as operações em seu aplicativo a partir de agora.
O exemplo de solicitação a seguir para a ação UpdateApplication habilita reversões de 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 falhas ao inicializar a tarefa do Flink por meio do método principal, a reversão automática permite que a versão anterior funcional 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 na VPC, isso resultará em uma falha durante o startup 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 snapshots, 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 a seguir solicita que a ação ListApplicationOperations liste as primeiras 10 operações do aplicativo:
{ "ApplicationName": "MyApplication", "Limit": 10 }
O seguinte exemplo de solicitação de 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 por ListApplicationOperations, incluindo o motivo da falha, se aplicável. O exemplo de solicitação a seguir para a ação DescribeApplicationOperation lista detalhes de uma operação específica do aplicativo:
{ "ApplicationName": "MyApplication", "OperationId": "xyzoperation" }
Para obter informações sobre a solução de problemas, consulte Práticas recomendadas de reversão do sistema.