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

Una pipeline per domarli tutti

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

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!

Avatar for Monica Colangelo

Monica Colangelo

October 19, 2023

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?