Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS Summit Milano - StepFunction & EventBridge

AWS Summit Milano - StepFunction & EventBridge

Gestione dell’automazione dell’infrastruttura Cloud

Fabio Gollinucci

June 27, 2022
Tweet

More Decks by Fabio Gollinucci

Other Decks in Technology

Transcript

  1. Eventi infrastrutturali Un’infrastruttura Cloud, che sia composta da server, container

    o semplicemente servizi gestiti, è soggetta a cambiamenti di stato. Questi cambiamenti posso essere dovuti ad azioni esterne al sistema (chiamate in entrata) oppure schedulazioni di processi su base temporale (cron job). Ad ogni cambiamento di stato, auspicabilmente, corrisponde l’emissione di un evento. • CloudWatch Alarm State Change • CodeBuild Build State Change • CodeDeploy Instance State-change Notification • DevOps Guru New Insight Open • Savings Plans State Change • EC2 Instance Launch Successful/Unsuccessful • EC2 Auto Scaling Instance Refresh Started/ Succeeded/Failed/Cancelled • ECR Image Action (PUSH) • RDS DB Instance Event (failover/configuration change/deletion)
  2. EventBridge Più di 80 servizi AWS emettono eventi al cambio

    di stato delle risorse. Eventi Gli eventi vengono inviati al bus eventi “default” ed in base alle regole (EventBridge Rules) configurate vengono inoltrati al servizio di destinazione. Target Step Functions Lambda SNS SQS EventBridge
  3. API Destinations Custom Event Bus Viene inviato un evento all’interno

    del bus eventi EventBridge Rule L’evento viene catturato e manipolato tramite le ‘Rule’ (headers, path, querystring) ApiDestination utilizza il payload per inviare una richiesta HTTP (method, endpoint) Default Event Bus Il tipo di autenticazione e relative credenziali sono descritte nelle ‘Connection’ (API Key, Basic Auth, OAuth)
  4. Orchestrazione Eventi in entrata Eventi in uscita Servizi Esterni API

    Gateway AWS Step Functions HTTP API / Webhook Partner Event Bus Orchestratore
  5. Automa a stati finiti Rappresentazione grafica del cambiamento di stato

    di un sistema. Descrive con precisione l’insieme degli stati possibili che il sistema può assumere in base al flusso di transizioni. Non è sempre necessario un background tecnico per comprendere il comportamento del sistema. start end
  6. Step Functions È un servizio in grado di eseguire flussi

    di lavoro predefiniti (State Machine), garantendone le modalità e l’ordine di esecuzione passo-passo. Eventuali errori posso essere catturati e gestiti tramite le funzionalità integrate di try/catch, retry e rollback. L’esecuzione inoltre può essere messa in pausa, ripresa previa conferma oppure fermata. task token retry catch rolback wait
  7. ASL Workflow Studio Amazon States Language JSON YAML • Versionamento

    tramite git • Distribuzione tramite SAM CLI + template.yaml
  8. Integrazioni AWS SDK Identity and Access Management (IAM) State Machine

    Funzione Lambda Più di 250 servizi arn:aws:states:::aws-sdk:<service>:<api> • configurazione • codice • runtime • infrastruttura • configurazione • codice • runtime • infrastruttura Integrazione via AWS SDK Integrazione gestita
  9. CloudWatch Metriche Gruppi di log filtri sul contenuto Istanza EC2

    CloudWatch Agent Allarmi Default Event Bus EventBridge Rule State Machine
  10. Comandi SSM Istanza EC2 Servizio ECS SSM Agent SSM Agent

    ssm:sendCommand ssm:listCommandInvocations SSM Document
  11. CodeDeploy Istanza EC2 SSM Agent CodeDeploy Agent CodeDeploy Deployment State-change

    Notification Default Event Bus EventBridge Rule Invio comando SSM codedeploy:getDeployment State Machine
  12. Servizi e Task ECS EC2 Spot Instance Interruption Warning ecs:listContainerInstances

    ecs:deregisterContainerInstance Default Event Bus EventBridge Rule State Machine ECS Task Istanza EC2 Spot Riallocamento Istanza EC2 Spot EC2
  13. Callback task token Custom Event Bus sfn:sendTaskSuccess EventBridge Rule ecs:runTask

    (.waitForTaskToken) ssm:sendCommand “HeartbeatSeconds” per gestire il timeout aws stepfunctions send-task-success
  14. Pattern comuni catch wait wait catch fail error • Attenzione

    ai cicli infiniti • Calibrare bene il tempo di polling • Racchiudere parti di flusso con ‘Parallel’ per un try/catch globale • Usare un ramo parallelo all’esecuzione per la gestione del timeout • Riutilizzare parti di flusso descrivendo State Machine differenti
  15. Costi AWS Step Functions AWS Systems Manager Amazon EventBridge AWS

    SDK + 0$ (dipende dal servizio) 0$ 0$ (1$ / 1.000.000 eventi personalizzati) 0,025$ / 1.000 transizioni di stato (prime 4.000 gratuite) • Acquisizione confidenza con ASL + manipolazione input/output. • Descrizione dei processi • Test (o Debug) ?? $