Mengintegrasikan IaC ke dalam pipeline CI/CD

Mengotomatisasi Deployment di AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Kode dulu, infrastruktur belakangan

code-first

  • Kode di-deploy via CodePipeline; pembaruan infrastruktur manual
  • Dev skala Lambda; ops ubah ukuran antrean SQS
  • Drift antara kode dan infra menyebabkan outage
  • Sambungkan CloudFormation ke pipeline yang sama
Mengotomatisasi Deployment di AWS

CloudFormation sebagai aksi pipeline

pipeline-action

  • CodePipeline mendukung aksi deploy CloudFormation
  • Pipeline mengoper artefak templat ke aksi tersebut
  • Mode: CREATE_UPDATE, DELETE_ONLY, REPLACE_ON_FAILURE, CHANGE_SET_REPLACE / EXECUTE
  • Jalan berdampingan dengan aksi source, build, dan deploy app
Mengotomatisasi Deployment di AWS

Pipeline ujung-ke-ujung yang umum

typical

  • Sumber: Git push memicu pipeline
  • Build: hasilkan templat + artefak app
  • Deploy infra: CloudFormation membuat atau memperbarui stack
  • Deploy app: CodeDeploy mengirim versi baru
Mengotomatisasi Deployment di AWS

Rollback otomatis saat stack gagal

  • Pembaruan gagal otomatis rollback ke keadaan terakhir yang baik
  • Tahap pipeline gagal, menghentikan tahap berikutnya
  • Kabel peringatan kegagalan dari Bab 1 aktif otomatis

automatic

Mengotomatisasi Deployment di AWS

Nested stack untuk templat modular

  • Nested stack dideklarasikan sebagai tipe AWS::CloudFormation::Stack
  • Pecah templat 2.000 baris menjadi modul yang dapat digunakan ulang
  • Parent stack mengoper parameter dan membaca output
  • Tiap modul dideploy mandiri di dalam parent

nested

Mengotomatisasi Deployment di AWS

StackSet untuk multi-akun, multi-region

  • StackSet mendeploy satu templat ke banyak akun dan region
  • Berguna untuk baseline keamanan, guardrail, infra bersama
  • Tambah atau hapus instance stack tanpa menulis ulang templat
  • Dikelola terpusat, dideploy lokal

stackset

Mengotomatisasi Deployment di AWS

Memilih bentuk yang tepat

right-shape

  • Single stack: app kecil, satu lingkungan
  • Nested stack: templat besar, komponen modular
  • StackSet: templat sama, banyak akun dan region
  • Ketiganya cocok dengan CodePipeline
Mengotomatisasi Deployment di AWS

Ayo berlatih!

Mengotomatisasi Deployment di AWS

Preparing Video For Download...