CodeBuild ve buildspec.yml ile derlemeleri otomatikleştirme

AWS üzerinde Dağıtımları Otomatikleştirme

Dunieski Otano

Amazon Web Services Solutions Architect

CodeBuild ne yapar

  • CodeBuild, tamamen yönetilen bir derleme hizmetidir
  • Sunucu kurma veya yönetme yok
  • Derlemeni geçici bir container içinde çalıştırır
  • Otomatik ölçeklenir; sadece derleme dakikaları için ödersin
  • CodePipeline ile Build aşaması olarak bütünleşir

 

1-codebuild-managed-service-temporary-container-lifecycle.png

AWS üzerinde Dağıtımları Otomatikleştirme

buildspec.yml dosyası

  • buildspec.yml: Kaynak kodunun kökünde duran YAML dosyası
  • Derleme sırasında CodeBuild'in ne yapacağını tanımlar
  • Sırayla çalışan dört aşama:
    • install: Bağımlılık ve araçları kur
    • pre_build: Derleme öncesi kurulum adımları
    • build: Kodu derle, testleri çalıştır
    • post_build: Artifaktları paketle, temizle

buildspec

AWS üzerinde Dağıtımları Otomatikleştirme

Gerçek bir buildspec.yml örneği

  • install: pip install -r requirements.txt
  • pre_build: [ -z \"$DB_URL\" ] && exit 1
  • build: pytest tests/
  • post_build: zip -r app.zip . sonra echo \"Build completed\"

Dört aşamalı bir buildspec.yml gösteren açık tema kod düzenleyici; build pytest testlerini çalıştırır ve post_build kodu app.zip içine paketler, çıktı pipeline artifaktıdır

AWS üzerinde Dağıtımları Otomatikleştirme

Derleme ortamı yapılandırması

 

4-codebuild-environment-config-compute-envvars-caching.png

  • Compute türleri: small, medium, large, 2xlarge
    • Derleme karmaşıklığı ve hız ihtiyacına göre seç
  • Ortam değişkenleri: Yapılandırmayı derlemelere aktar
    • Sırları Parameter Store veya Secrets Manager'da tut
  • Bağımlılık önbelleği: İndirilen paketleri derlemeler arasında sakla
    • Büyük projelerde derleme süresini ciddi biçimde azaltır
AWS üzerinde Dağıtımları Otomatikleştirme

Artifakt çıktıları ve pipeline entegrasyonu

 

5-codebuild-artifact-output-s3-codepipeline-handoff.png

  • artifacts bölümü CodeBuild'in ne çıktığını tanımlar
  • files: Dosya veya desen listesi; base-directory: kök yol
  • Çıktı artifakt S3'e kaydedilir, sonraki aşamaya otomatik aktarılır
  • Yanlış artifakt yolları, derleme başarılı olsa da dağıtımı bozabilir
AWS üzerinde Dağıtımları Otomatikleştirme

Tam derleme-test-dağıtım zinciri

  • Geliştirici kodu CodeCommit'e iter
  • CodePipeline otomatik tetiklenir
  • CodeBuild: install -> pre_build -> build -> post_build
  • Derleme artifaktı CodeDeploy'a akar
  • Uygulama hedef ortama dağıtılır

6-full-cicd-chain-codecommit-codebuild-phases-codedeploy.png

AWS üzerinde Dağıtımları Otomatikleştirme

Hadi pratik yapalım!

AWS üzerinde Dağıtımları Otomatikleştirme

Preparing Video For Download...