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

Una pipeline per domarli tutti

Una pipeline per domarli tutti

Ci sono software che, al primo sguardo, sembrano nati per un'epoca diversa, progettati per essere utilizzati in modi che oggi potrebbero sembrare obsoleti... o che per qualche motivo non possiamo reingegnerizzare! Ma in un mondo dove l'automatizzazione e la metodologia DevOps regnano sovrane, dobbiamo davvero lasciarli indietro?

La risposta è no. Combinando alcune potenti soluzioni offerte da AWS come CodePipeline, Step Functions e Systems Manager, possiamo integrare anche quei software che sembrano fare di tutto per resistere al cambiamento. Con gli strumenti e l'approccio giusto, non c'è limite a ciò che si può automatizzare e integrare!

Monica Colangelo

October 19, 2023
Tweet

More Decks by Monica Colangelo

Other Decks in Programming

Transcript

  1. Una pipeline per doma rli tutti Anche i monoliti nel

    lo ro piccolo si ada ttano g Monica Colangelo
  2. Pipelines, pipelines everywhere • Automazione Completa • Feedback Rapido •

    Rilasci Più Frequenti • Ambienti Isolati • Scalabilità e Riproducibilità • Integrazione con Strumenti Moderni • Documentazione Implicita
  3. Il mio tessssoro • Applicazioni Legacy • Software Proprietari •

    Strumenti Centralizzati • Software di Sicurezza • Database Legacy • Configurazioni Hardware Specifiche
  4. • Devo gestire le credenziali: password, chiavi... • Devo esporre

    SSH/RDP • Devo richiedere le aperture firewall (con sourceIP ampio/variabile) • Devo tenere in piedi la connessione per tutto il tempo di esecuzione del task • Devo loggarmi sulla macchina per consultare i log • Devo richiedere un intervento/aprire un ticket ogni volta che ho bisogno di modificare lo script e/o fixare bug Come mi attacco al cloud
  5. Cos’è un SSM Document? • Definisce quali azioni intraprendere •

    Riduce errori umani • Automatizza task ripetitivi • Scritto in JSON o YAML • Supporta versioning e tagging
  6. • Orchestrazione di servizi AWS • Integrazione semplice con Lambda,

    ECS, SNS e molti altri • Gestione visuale dei workflow con il Designer • Scalabilità automatica senza necessità di provisioning • Possibilità di creare workflow di durata lunga • Gestione degli errori e ritentativi automatici • Monitoraggio e tracciamento con CloudWatch • Paghi solo per le transizioni di stato AWS Step Functions
  7. AWS CDK • Friendly/familiar programming language • TypeScript, Javascript, Python,

    Java, .NET, Go • Possibilità di scrivere test • Niente state files da gestire • Gestione automatica delle policy IAM • developer experience migliorata • sicurezza più robusta • ROLLBACK!
  8. AWS CDK – SSM Document schemaVersion: "2.2" description: "Run my

    custom commands" parameters: Message: type: "String" description: "Message to write" OutputBucket: type: "String" description: "Bucket to save output" CodeRepository: type: "String" description: "Git repository to clone" mainSteps: - action: "aws:runPowerShellScript" name: "MySampleStep" precondition: StringEquals: - platformType - Windows inputs: timeoutSeconds: "60" runCommand: - Write-Host "Create temp dir" - $tempdir=$(-join ((48..57) + (97..122) | Get-Random - Count 32 | % {[char]$_})) - New-item "$env:temp\$tempdir" -ItemType Directory - "git clone {{CodeRepository}} $tempdir" - ... - "Write-S3Object -BucketName {{OutputBucket}} -Key ($fname + '.txt') -Content {{Message}}" - Write-Host "Removing temp dir" - Remove-Item -path $tempdir -Recurse -Force -EA SilentlyContinue - Write-Host "All done!"
  9. AWS CDK – Code stats ~150 righe di codice Python

    ...che vengono automaticamente trasformati in ~750 righe di Cloudformation (YAML) La stessa infrastruttura equivale a ~500 righe di codice Terraform ...qualcuno ha detto vendor lock-in?