Secara otomatis membangun dan menyebarkan aplikasi Java ke Amazon EKS menggunakan pipeline CI/CD - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Secara otomatis membangun dan menyebarkan aplikasi Java ke Amazon EKS menggunakan pipeline CI/CD

MAHESH RAGHUNANDANAN, Jomcy Pappachen, dan James Radtke, Amazon Web Services

Ringkasan

Pola ini menjelaskan cara membuat pipeline continuous integration and continuous delivery (CI/CD) yang secara otomatis membangun dan menyebarkan aplikasi Java dengan DevSecOps praktik yang direkomendasikan ke cluster Amazon Elastic Kubernetes Service (Amazon EKS) di. AWS Cloud Pola ini menggunakan aplikasi salam yang dikembangkan dengan kerangka Spring Boot Java dan yang menggunakan Apache Maven.

Anda dapat menggunakan pendekatan pola ini untuk membangun kode untuk aplikasi Java, mengemas artefak aplikasi sebagai gambar Docker, memindai keamanan gambar, dan mengunggah gambar sebagai wadah beban kerja di Amazon EKS. Pendekatan pola ini berguna jika Anda ingin bermigrasi dari arsitektur monolitik yang digabungkan erat ke arsitektur layanan mikro. Pendekatan ini juga membantu Anda memantau dan mengelola seluruh siklus hidup aplikasi Java, yang memastikan tingkat otomatisasi yang lebih tinggi dan membantu menghindari kesalahan atau bug.

Prasyarat dan batasan

Prasyarat

  • Aktif Akun AWS.

  • AWS Command Line Interface (AWS CLI) versi 2, diinstal dan dikonfigurasi. Untuk informasi selengkapnya tentang ini, lihat Menginstal atau memperbarui ke versi terbaru dari AWS CLI dokumentasi. AWS CLI

    AWS CLI versi 2 harus dikonfigurasi dengan peran AWS Identity and Access Management (IAM) yang sama yang membuat kluster Amazon EKS, karena hanya peran itu yang diizinkan untuk menambahkan peran IAM lainnya ke. aws-auth ConfigMap Untuk informasi dan langkah-langkah untuk mengkonfigurasi AWS CLI, lihat Mengkonfigurasi pengaturan dalam AWS CLI dokumentasi.

  • Peran dan izin IAM dengan akses penuh ke. AWS CloudFormation Untuk informasi selengkapnya tentang ini, lihat Mengontrol akses dengan IAM dalam AWS CloudFormation dokumentasi.

  • Cluster Amazon EKS yang ada, dengan detail nama peran IAM dan Nama Sumber Daya Amazon (ARN) peran IAM untuk node pekerja di cluster EKS.

  • Kubernetes Cluster Autoscaler, diinstal dan dikonfigurasi di klaster Amazon EKS Anda. Untuk informasi selengkapnya, lihat Komputasi klaster skala dengan Karpenter dan Cluster Autoscaler di dokumentasi Amazon EKS. 

  • Akses ke kode di GitHub repositori.

penting

AWS Security Hub diaktifkan sebagai bagian dari AWS CloudFormation template yang disertakan dalam kode untuk pola ini. Secara default, setelah Security Hub diaktifkan, ia dilengkapi dengan uji coba gratis 30 hari. Setelah persidangan, ada biaya yang terkait dengan ini Layanan AWS. Untuk informasi selengkapnya tentang harga, silakan lihat harga AWS Security Hub.

Versi produk

  • Helm versi 3.4.2 atau yang lebih baru

  • Apache Maven versi 3.6.3 atau yang lebih baru

  • BridgeCrew Checkov versi 2.2 atau yang lebih baru

  • Aqua Security Trivy versi 0.37 atau yang lebih baru

Arsitektur

Tumpukan teknologi

  • AWS CodeBuild

  • AWS CodeCommit

    Pemberitahuan: AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya. Namun, solusi ini akan bekerja dengan penyedia Git sistem kontrol versi (VCS) apa pun seperti GitHub atau GitLab dengan perubahan minimal.

  • Amazon CodeGuru

  • AWS CodePipeline

  • Amazon Elastic Container Registry (Amazon ECR)

  • Amazon EKS

  • Amazon EventBridge

  • AWS Security Hub

  • Amazon Simple Notification Service (Amazon SNS)

Arsitektur target

Alur kerja untuk menyebarkan aplikasi Java ke Amazon EKS.

Diagram menunjukkan alur kerja berikut:

  1. Pengembang memperbarui kode aplikasi Java di cabang dasar CodeCommit repositori, yang membuat permintaan tarik (PR).

  2. Segera setelah PR dikirimkan, Amazon CodeGuru Reviewer secara otomatis meninjau kode, menganalisisnya berdasarkan praktik terbaik untuk Java, dan memberikan rekomendasi kepada pengembang.

  3. Setelah PR digabungkan ke cabang dasar, EventBridge acara Amazon dibuat.

  4. EventBridge Acara memulai CodePipeline pipa, yang dimulai.

  5. CodePipeline menjalankan tahap CodeSecurity Scan (keamanan berkelanjutan).

  6. AWS CodeBuild memulai proses pemindaian keamanan di mana file Helm penerapan Dockerfile dan Kubernetes dipindai dengan menggunakan Checkov, dan kode sumber aplikasi dipindai berdasarkan perubahan kode tambahan. Pemindaian kode sumber aplikasi dilakukan oleh pembungkus CodeGuru Reviewer Command Line Interface (CLI).

  7. Jika tahap pemindaian keamanan berhasil, tahap Build (integrasi berkelanjutan) dimulai.

  8. Pada tahap CodeBuild Build, membangun artefak, mengemas artefak ke image Docker, memindai gambar untuk kerentanan keamanan dengan menggunakan Aqua Security Trivy, dan menyimpan gambar di Amazon ECR.

  9. Kerentanan yang terdeteksi dari langkah 8 diunggah ke Security Hub untuk analisis lebih lanjut oleh pengembang atau insinyur. Security Hub memberikan gambaran umum dan rekomendasi untuk memulihkan kerentanan.

  10. Pemberitahuan email tentang fase berurutan dalam CodePipeline pipeline dikirim melalui Amazon SNS.

  11. Setelah fase integrasi berkelanjutan selesai, CodePipeline memasuki tahap Deploy (pengiriman berkelanjutan).

  12. Image Docker di-deploy ke Amazon EKS sebagai beban kerja kontainer (pod) dengan menggunakan bagan Helm.

  13. Pod aplikasi dikonfigurasi dengan agen Amazon CodeGuru Profiler, yang mengirimkan data profil aplikasi (CPU, penggunaan heap, dan latensi) ke CodeGuru Profiler, yang membantu pengembang memahami perilaku aplikasi.

Alat

Layanan AWS

  • AWS CloudFormationmembantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan Wilayah.

  • AWS CodeBuildadalah layanan build yang dikelola sepenuhnya yang membantu Anda mengkompilasi kode sumber, menjalankan pengujian unit, dan menghasilkan artefak yang siap digunakan.

  • AWS CodeCommitadalah layanan kontrol versi yang membantu Anda menyimpan dan mengelola repositori Git secara pribadi, tanpa perlu mengelola sistem kontrol sumber Anda sendiri.

    Pemberitahuan: AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya

  • Amazon CodeGuru Profiler mengumpulkan data kinerja runtime dari aplikasi live Anda, dan memberikan rekomendasi yang dapat membantu Anda menyempurnakan kinerja aplikasi.

  • Amazon CodeGuru Reviewer menggunakan analisis program dan pembelajaran mesin untuk mendeteksi potensi cacat yang sulit ditemukan oleh pengembang dan menawarkan saran untuk meningkatkan kode Java dan Python Anda.

  • AWS CodePipelinemembantu Anda dengan cepat memodelkan dan mengkonfigurasi berbagai tahapan rilis perangkat lunak dan mengotomatiskan langkah-langkah yang diperlukan untuk merilis perubahan perangkat lunak secara terus menerus.

  • Amazon Elastic Container Registry (Amazon ECR) adalah layanan registri gambar kontainer terkelola yang aman, terukur, dan andal.

  • Amazon Elastic Kubernetes Service (Amazon EKS) membantu Anda menjalankan AWS Kubernetes tanpa perlu menginstal atau memelihara control plane atau node Kubernetes Anda sendiri.

  • Amazon EventBridge adalah layanan bus acara tanpa server yang membantu Anda menghubungkan aplikasi Anda dengan data real-time dari berbagai sumber, termasuk AWS Lambda fungsi, titik akhir pemanggilan HTTP menggunakan tujuan API, atau bus acara di tempat lain. Akun AWS

  • AWS Identity and Access Management (IAM) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.

  • AWS Security Hubmemberikan pandangan komprehensif tentang keadaan keamanan Anda AWS. Ini juga membantu Anda memeriksa AWS lingkungan Anda terhadap standar industri keamanan dan praktik terbaik.

  • Amazon Simple Notification Service (Amazon SNS) membantu Anda mengoordinasikan dan mengelola pertukaran pesan antara penayang dan klien, termasuk server web dan alamat email.

  • Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

Layanan lainnya

  • Helm adalah manajer paket open-source untuk Kubernetes.

  • Apache Maven adalah perangkat lunak manajemen proyek dan alat pemahaman.

  • BridgeCrew Checkov adalah alat analisis kode statis untuk memindai infrastruktur sebagai file kode (IAc) untuk kesalahan konfigurasi yang dapat menyebabkan masalah keamanan atau kepatuhan.

  • Aqua Security Trivy adalah pemindai komprehensif untuk kerentanan dalam gambar kontainer, sistem file, dan repositori Git, selain masalah konfigurasi.

Kode

Kode untuk pola ini tersedia di GitHub aws-codepipeline-devsecops-amazoneksrepositori.

Praktik terbaik

  • Pola ini mengikuti praktik terbaik keamanan IAM untuk menerapkan prinsip hak istimewa terkecil untuk entitas IAM di semua fase solusi. Jika Anda ingin memperluas solusi dengan alat tambahan Layanan AWS atau pihak ketiga, kami sarankan Anda meninjau bagian tentang penerapan izin hak istimewa paling sedikit dalam dokumentasi IAM.

  • Jika Anda memiliki beberapa aplikasi Java, kami sarankan Anda membuat CI/CD pipeline terpisah untuk setiap aplikasi.

  • Jika Anda memiliki aplikasi monolit, kami sarankan Anda memecah aplikasi menjadi layanan mikro jika memungkinkan. Layanan mikro lebih fleksibel, memudahkan penerapan aplikasi sebagai wadah, dan memberikan visibilitas yang lebih baik ke dalam keseluruhan pembuatan dan penyebaran aplikasi.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Kloning GitHub repositori.

Untuk mengkloning repositori, jalankan perintah berikut.

git clone https://github.com/aws-samples/aws-codepipeline-devsecops-amazoneks
Pengembang aplikasi, DevOps insinyur

Buat bucket S3 dan unggah kodenya.

  1. Masuk ke AWS Management Console, buka konsol Amazon S3, lalu buat bucket S3 di Wilayah AWS tempat Anda berencana untuk menerapkan solusi ini. Untuk informasi selengkapnya, lihat Membuat bucket di dokumentasi Amazon S3.

  2. Di bucket S3, buat folder bernamacode.

  3. Arahkan ke tempat Anda mengkloning repositori. Untuk membuat versi terkompresi dari seluruh kode dengan ekstensi.zip (cicdstack.zip) dan memvalidasi file.zip, jalankan perintah berikut secara berurutan.

    cd aws-codepipeline-devsecops-amazoneks python -m zipfile -c cicdstack.zip * python -m zipfile -t cicdstack.zip
    catatan

    Jika python perintah gagal dan menyatakan bahwa Python tidak ditemukan, gunakan python3 sebagai gantinya.

  4. Unggah cicdstack.zip file ke folder kode yang sebelumnya Anda buat di bucket S3.

AWS DevOps, administrator Cloud, DevOps insinyur

Buat AWS CloudFormation tumpukan.

  1. Buka konsol AWS CloudFormation dan pilih Buat tumpukan.

  2. Di Tentukan templat, pilih Unggah file templat, unggah cf_templates/codecommit_ecr.yaml file, lalu pilih Berikutnya.

  3. Di Tentukan detail tumpukan, masukkan nama tumpukan, lalu berikan nilai parameter input berikut:

    • CodeCommitRepositoryBranchName: Nama cabang tempat kode Anda akan berada (defaultnya adalahmain)

    • CodeCommitRepositoryName: Nama yang CodeCommitrepository akan dibuat

    • CodeCommitRepositoryS3Bucket: Nama bucket S3 tempat Anda membuat folder kode

    • CodeCommitRepositoryS3BucketObjKey: code/cicdstack.zip

    • ECRRepositoryName: Nama repositori Amazon ECR untuk dibuat

  4. Pilih Berikutnya, gunakan pengaturan default untuk opsi Konfigurasi tumpukan, lalu pilih Berikutnya.

  5. Di bagian Review, verifikasi detail template dan stack, lalu pilih Create stack. Tumpukan kemudian dibuat, termasuk repositori ECR CodeCommit dan Amazon.

  6. Perhatikan nama repositori ECR CodeCommit dan Amazon, yang akan diperlukan untuk mengatur pipeline Java. CI/CD

AWS DevOps, DevOps insinyur

Validasi penyebaran CloudFormation tumpukan.

  1. Di bawah Tumpukan di CloudFormation konsol, verifikasi status CloudFormation tumpukan yang Anda gunakan. Status tumpukan harus CREATE COMPLETE.

  2. Dari konsol, validasi bahwa repositori ECR CloudFormation dan Amazon telah disediakan dan siap.

AWS DevOps, DevOps insinyur

Hapus bucket S3.

Kosongkan dan hapus bucket S3 yang Anda buat sebelumnya. Untuk informasi selengkapnya, lihat Menghapus bucket di dokumentasi Amazon S3.

AWS DevOps, DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Konfigurasikan bagan Helm aplikasi Java Anda.

  1. Di lokasi tempat Anda mengkloning GitHub repositori, arahkan ke folder. helm_charts/aws-proserve-java-greeting Di folder ini, values.dev.yaml file berisi informasi tentang konfigurasi sumber daya Kubernetes yang dapat Anda modifikasi untuk penerapan container Anda ke Amazon EKS. Perbarui parameter repositori Docker dengan memberikan Akun AWS ID Anda,, Wilayah AWS dan nama repositori Amazon ECR.

    image: repository: <account-id>.dkr.ecr.<region>.amazonaws.com/<app-ecr-repo-name>
  2. Jenis layanan pod Java diatur keLoadBalancer.

    service: type: LoadBalancer port: 80 targetPort: 8080 path: /hello initialDelaySeconds: 60 periodSeconds: 30

    Untuk menggunakan layanan yang berbeda (misalnya,NodePort), Anda dapat mengubah parameter ini. Untuk informasi selengkapnya, lihat dokumentasi Kubernetes.

  3. Anda dapat mengaktifkan Kubernetes Horizontal Pod Autoscaler dengan mengubah parameter menjadi. autoscaling enabled: true

    autoscaling: enabled: true minReplicas: 1 maxReplicas: 100 targetCPUUtilizationPercentage: 80 # targetMemoryUtilizationPercentage: 80
  4. Anda dapat mengaktifkan berbagai fitur untuk beban kerja Kubernetes dengan mengubah nilai dalam values.<ENV>.yaml file, di mana <ENV> lingkungan pengembangan, produksi, UAT, atau QA Anda.

DevOps insinyur

Validasi bagan Helm untuk kesalahan sintaks.

  1. Dari terminal, verifikasi bahwa Helm v3 diinstal di workstation lokal Anda dengan menjalankan perintah berikut.

    helm --version

    Jika Helm v3 tidak diinstal, instal.

  2. Di terminal, arahkan ke direktori bagan Helm (helm_charts/aws-proserve-java-greeting), dan jalankan perintah berikut.

    helm lint . -f values.dev.yaml

    Ini akan memeriksa bagan Helm untuk kesalahan sintaks apa pun.

DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Buat CI/CD pipa.

  1. Buka konsol AWS CloudFormation, lalu pilih Buat tumpukan.

  2. Di Tentukan templat, pilih Unggah file templat, unggah cf_templates/build_deployment.yaml templat, lalu pilih Berikutnya.

  3. Di Tentukan detail tumpukan, tentukan nama Stack, lalu berikan nilai berikut untuk parameter input:

    • CodeBranchName: Nama cabang CodeCommit repositori tempat kode Anda berada

    • EKSClusterName: Nama cluster EKS Anda (bukan EKSCluster ID)

    • EKSCodeBuildAppName: Nama aplikasi Helm chart () aws-proserve-java-greeting

    • EKSWorkerNodeRoleARN: ARN dari peran IAM yang ditetapkan ke node pekerja Amazon EKS

    • EKSWorkerNodeRoleName: Nama peran IAM yang ditetapkan ke node pekerja Amazon EKS

    • EcrDockerRepository: Nama repositori Amazon ECR tempat gambar Docker kode Anda akan disimpan

    • EmailRecipient: Alamat email tempat pemberitahuan build harus dikirim

    • EnvType: Lingkungan (misalnya, dev, test, atau prod)

    • SourceRepoName: Nama CodeCommit repositori tempat kode Anda berada

  4. Pilih Berikutnya. Gunakan pengaturan default di Configure stack options, lalu pilih Next.

  5. Di bagian Review, verifikasi CloudFormation template dan detail stack, lalu pilih Next.

  6. Pilih Buat tumpukan

  7. Selama penyebaran CloudFormation tumpukan, pemilik alamat email yang Anda berikan dalam parameter akan menerima pesan untuk berlangganan topik SNS. Untuk berlangganan Amazon SNS, pemilik harus memilih tautan dalam pesan.

  8. Setelah tumpukan dibuat, buka tab Output dari tumpukan, lalu rekam nilai ARN untuk EksCodeBuildkubeRoleARN kunci keluaran. Nilai IAM ARN ini akan diperlukan nanti saat Anda memberikan izin untuk peran IAM untuk menerapkan beban kerja CodeBuild di klaster Amazon EKS.

AWS DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Aktifkan integrasi Aqua Security.

Langkah ini diperlukan untuk mengunggah temuan kerentanan gambar Docker yang dilaporkan oleh Trivy ke Security Hub. Karena AWS CloudFormation tidak mendukung integrasi Security Hub, proses ini harus dilakukan secara manual.

  1. Buka AWS Security Hub konsol, dan arahkan ke Integrasi.

  2. Cari Aqua Security, dan pilih Aqua Security: Aqua Security.

  3. Pilih Terima temuan.

Administrator AWS, DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Izinkan CodeBuild untuk menjalankan perintah Helm atau kubectl di cluster Amazon EKS.

CodeBuild Agar dapat diautentikasi untuk menggunakan Helm atau kubectl perintah dengan kluster Amazon EKS, Anda harus menambahkan peran IAM ke. aws-auth ConfigMap Dalam hal ini, tambahkan ARN dari peran IAMEksCodeBuildkubeRoleARN, yang merupakan peran IAM yang dibuat untuk CodeBuild layanan untuk mengakses kluster Amazon EKS dan menyebarkan beban kerja di dalamnya. Ini adalah kegiatan satu kali.

penting

Prosedur berikut harus diselesaikan sebelum tahap persetujuan penyebaran di CodePipeline.

  1. Buka skrip cf_templates/kube_aws_auth_configmap_patch.sh shell di lingkungan Amazon Linux atau macOS Anda.

  2. Otentikasi ke cluster Amazon EKS dengan menjalankan perintah berikut.

    aws eks --region <aws-region> update-kubeconfig --name <eks-cluster-name>
  3. Jalankan skrip shell dengan menggunakan perintah berikut, ganti <rolearn-eks-codebuild-kubectl> dengan nilai ARN EksCodeBuildkubeRoleARN yang Anda rekam sebelumnya.

    bash cf_templates/kube_aws_auth_configmap_patch.sh <rolearn-eks-codebuild-kubectl> 

aws_authConfigMapIni dikonfigurasi, dan akses diberikan.

DevOps
TugasDeskripsiKeterampilan yang dibutuhkan

Verifikasi bahwa CI/CD pipeline dimulai secara otomatis.

  1. Tahap CodeSecurity Pemindaian dalam pipeline biasanya akan gagal jika Checkov mendeteksi kerentanan di bagan Dockerfile atau Helm. Namun, tujuan dari contoh ini adalah untuk menetapkan proses mengidentifikasi potensi kerentanan keamanan daripada memperbaikinya melalui CI/CD pipeline, biasanya sebuah DevSecOps proses. Dalam filebuildspec/buildspec_secscan.yaml, checkov perintah menggunakan --soft-fail bendera untuk menghindari kegagalan pipeline.

    - echo -e "\n Running Dockerfile Scan" - checkov -f code/app/Dockerfile --framework dockerfile --soft-fail --summary-position bottom - echo -e "\n Running Scan of Helm Chart files" - cp -pv helm_charts/$EKS_CODEBUILD_APP_NAME/values.dev.yaml helm_charts/$EKS_CODEBUILD_APP_NAME/values.yaml - checkov -d helm_charts/$EKS_CODEBUILD_APP_NAME --framework helm --soft-fail --summary-position bottom - rm -rfv helm_charts/$EKS_CODEBUILD_APP_NAME/values.yaml

    Agar pipeline gagal saat kerentanan dilaporkan untuk bagan Dockerfile dan Helm, --soft-fail opsi harus dihapus dari perintah. checkov Pengembang atau insinyur kemudian dapat memperbaiki kerentanan dan melakukan perubahan ke repositori kode CodeCommit sumber.

  2. Mirip dengan CodeSecurity Scan, tahap Build menggunakan Aqua Security Trivy untuk mengidentifikasi HIGH dan kerentanan gambar CRITICAL Docker sebelum mendorong aplikasi ke Amazon ECR.

    - AWS_REGION=$AWS_DEFAULT_REGION AWS_ACCOUNT_ID=$AWS_ACCOUNT_ID trivy -d image --no-progress --ignore-unfixed --exit-code 0 --severity HIGH,CRITICAL --format template --template "@securityhub/asff.tpl" -o securityhub/report.asff $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$CODEBUILD_RESOLVED_SOURCE_VERSION

    Dalam contoh ini, pipeline tidak gagal saat kerentanan image Docker dilaporkan, karena trivy perintah dalam buildspec/buildspec.yml file menyertakan flag --exit-codedengan nilai. 0 Agar pipeline gagal saat HIGH dan CRTICAL kerentanan dilaporkan, ubah nilai --exit-code to1. Pengembang atau insinyur kemudian dapat memperbaiki kerentanan dan melakukan perubahan ke repositori kode CodeCommit sumber.

  3. Kerentanan gambar Docker yang dilaporkan oleh Aqua Security Trivy diunggah ke Security Hub. Di konsol Security Hub, navigasikan ke Temuan. Filter temuan dengan Record State = Active dan Product = Aqua Security. Ini mencantumkan kerentanan gambar Docker di Security Hub. Diperlukan waktu 15 menit hingga satu jam agar kerentanan muncul di Security Hub.

Untuk informasi selengkapnya tentang memulai pipeline dengan menggunakan CodePipeline, lihat Memulai pipelineCodePipeline, Memulai pipeline secara manual, dan Memulai pipeline sesuai jadwal dalam CodePipeline dokumentasi.

DevOps

Menyetujui penyebaran.

  1. Setelah fase build selesai, ada gerbang persetujuan penerapan. Peninjau atau manajer rilis harus memeriksa build, dan, jika semua persyaratan terpenuhi, setujui. Ini adalah pendekatan yang direkomendasikan untuk tim yang menggunakan pengiriman berkelanjutan untuk penerapan aplikasi.

  2. Setelah disetujui, pipeline memulai tahap Deploy.

  3. Setelah tahap Deploy berhasil, CodeBuild log untuk tahap ini menyediakan URL aplikasi. Gunakan URL untuk memvalidasi kesiapan aplikasi.

DevOps

Validasi pembuatan profil aplikasi.

Setelah penerapan selesai dan pod aplikasi dikerahkan di Amazon EKS, agen Amazon CodeGuru Profiler yang dikonfigurasi dalam aplikasi akan mencoba mengirim data profil aplikasi (CPU, ringkasan heap, latensi, dan bottleneck) ke Profiler. CodeGuru

Untuk penerapan awal aplikasi, CodeGuru Profiler membutuhkan waktu sekitar 15 menit untuk memvisualisasikan data profil.

AWS DevOps

Sumber daya terkait

Informasi tambahan

  • AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya. Solusi ini juga akan bekerja dengan penyedia Git sistem kontrol versi (VCS) apa pun seperti GitHub atau GitLab dengan perubahan minimal.

  • CodeGuru Profiler tidak harus bingung dengan AWS X-Ray layanan dalam hal fungsionalitas. Kami menyarankan Anda menggunakan CodeGuru Profiler untuk mengidentifikasi baris kode paling mahal yang dapat menyebabkan kemacetan atau masalah keamanan, dan memperbaikinya sebelum menjadi risiko potensial. Layanan X-Ray adalah untuk pemantauan kinerja aplikasi.

  • Dalam pola ini, aturan acara dikaitkan dengan bus acara default. Jika diperlukan, Anda dapat memperluas pola untuk menggunakan bus acara khusus.

  • Pola ini menggunakan CodeGuru Reviewer sebagai alat pengujian keamanan aplikasi statis (SAST) untuk kode aplikasi. Anda juga dapat menggunakan pipeline ini untuk alat lain, seperti SonarQube atau Checkmarx. Anda dapat menambahkan petunjuk pengaturan pemindaian untuk salah satu alat ini buildspec/buildspec_secscan.yaml untuk mengganti instruksi CodeGuru pemindaian.