

# OPS06-BP03 Menggunakan strategi deployment yang aman
<a name="ops_mit_deploy_risks_deploy_mgmt_sys"></a>

 Peluncuran produksi yang aman mengontrol aliran perubahan yang bermanfaat dengan tujuan untuk meminimalkan dampak yang dirasakan oleh pelanggan dari perubahan tersebut. Kontrol keselamatan menyediakan mekanisme inspeksi untuk memvalidasi hasil yang diinginkan dan membatasi ruang lingkup dampak dari cacat apa pun yang disebabkan oleh perubahan atau dari kegagalan deployment. Peluncuran yang aman dapat mencakup strategi seperti feature-flag, one-box, bergulir (rilis canary), immutable, pemisahan lalu lintas, dan deployment blue/green. 

 **Hasil yang diinginkan:** Organisasi Anda menggunakan sistem integrasi berkelanjutan pengiriman berkelanjutan (CI/CD) yang menyediakan kemampuan untuk mengotomatiskan peluncuran yang aman. Tim diharuskan menggunakan strategi peluncuran aman yang tepat. 

 **Antipola umum:** 
+  Anda melakukan deployment perubahan yang tidak berhasil ke seluruh produksi sekaligus. Akibatnya, semua pelanggan merasakan dampaknya secara bersamaan. 
+  Cacat akibat deployment serentak ke semua sistem memerlukan rilis darurat. Diperlukan waktu beberapa hari untuk memperbaikinya untuk semua pelanggan. 
+  Untuk mengelola rilis produksi diperlukan perencanaan dan partisipasi beberapa tim. Hal ini menghambat kemampuan Anda untuk sering memperbarui fitur bagi pelanggan Anda. 
+  Anda melakukan deployment yang dapat diubah dengan memodifikasi sistem yang sudah ada. Setelah mengetahui bahwa perubahan tidak berhasil, Anda terpaksa memodifikasi sistem lagi untuk memulihkan versi yang lama sehingga memperpanjang waktu pemulihan Anda. 

 **Manfaat menjalankan praktik terbaik ini:** Deployment otomatis menyeimbangkan kecepatan peluncuran dengan menghadirkan perubahan yang bermanfaat secara konsisten kepada pelanggan. Pembatasan dampak dapat mencegah kegagalan deployment yang mahal dan memaksimalkan kemampuan tim untuk merespons kegagalan secara efisien. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak dijalankan:** Sedang 

## Panduan implementasi
<a name="implementation-guidance"></a>

 Kegagalan pengiriman berkelanjutan dapat menyebabkan berkurangnya ketersediaan layanan dan buruknya pengalaman pelanggan. Untuk memaksimalkan tingkat keberhasilan deployment, terapkan kontrol keamanan dalam proses rilis menyeluruh (end-to-end) untuk meminimalkan kesalahan deployment, dengan tujuan mencapai nol kegagalan deployment. 

 **Contoh pelanggan** 

 AnyCompany Retail memiliki misi untuk mencapai deployment dengan waktu henti yang minim hingga nol, yang berarti tidak ada dampak yang dirasakan oleh penggunanya selama deployment. Untuk mencapainya, perusahaan telah membuat pola deployment (lihat diagram alur kerja berikut), seperti deployment blue/green dan bergulir (rolling). Semua tim mengadopsi satu atau beberapa pola tersebut di dalam pipeline CI/CD mereka. 


| Alur kerja CodeDeploy untuk Amazon EC2 | Alur kerja CodeDeploy untuk Amazon ECS | Alur kerja CodeDeploy untuk Lambda | 
| --- | --- | --- | 
|  ![\[Alur proses deployment untuk Amazon EC2\]](http://docs.aws.amazon.com/id_id/wellarchitected/2023-10-03/framework/images/deployment-process-ec2.png)  |  ![\[Alur proses deployment untuk Amazon ECS\]](http://docs.aws.amazon.com/id_id/wellarchitected/2023-10-03/framework/images/deployment-process-ecs.png)  |  ![\[Alur proses deployment untuk Lambda\]](http://docs.aws.amazon.com/id_id/wellarchitected/2023-10-03/framework/images/deployment-process-lambda.png)  | 

### Langkah implementasi
<a name="implementation-steps"></a>

1.  Gunakan alur kerja persetujuan untuk memulai urutan langkah peluncuran produksi setelah promosi ke produksi. 

1.  Gunakan sistem deployment otomatis seperti [AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html). Opsi deployment AWS CodeDeploy [meliputi](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-steps.html) deployment pengganti untuk EC2/On-Premise dan deployment blue/green untuk EC2/On-Premise, AWS Lambda, dan Amazon ECS (lihat diagram alur kerja sebelumnya). 

   1.  Jika perlu, [integrasikan AWS CodeDeploy dengan layanan AWS lain](https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-aws.html) atau [integrasikan AWS CodeDeploy dengan produk dan layanan partner](https://docs.aws.amazon.com/codedeploy/latest/userguide/integrations-partners.html). 

1.  Gunakan deployment blue/green untuk basis data seperti [Amazon Aurora](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html) dan [Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments.html). 

1.  [Pantau deployment](https://docs.aws.amazon.com/codedeploy/latest/userguide/monitoring.html) menggunakan Amazon CloudWatch, AWS CloudTrail, dan notifikasi peristiwa Amazon SNS. 

1.  Lakukan pengujian otomatis pasca-deployment termasuk pengujian fungsional, keamanan, regresi, integrasi, dan beban apa pun. 

1.  [Pecahkan](https://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting.html) masalah deployment. 

 **Tingkat upaya untuk rencana implementasi:** Sedang 

## Sumber daya
<a name="resources"></a>

 **Praktik terbaik terkait:** 
+  [OPS05-BP02 Menguji dan memvalidasi perubahan](ops_dev_integ_test_val_chg.md) 
+  [OPS05-BP09 Membuat perubahan yang sering, kecil, dan dapat dikembalikan](ops_dev_integ_freq_sm_rev_chg.md) 
+  [OPS05-BP10 Mengotomatiskan integrasi dan deployment sepenuhnya](ops_dev_integ_auto_integ_deploy.md) 

 **Dokumen terkait:** 
+ [AWS Builders Library \$1 Mengotomatiskan deployment hands-off yang aman \$1 Deployment produksi ](https://aws.amazon.com/builders-library/automating-safe-hands-off-deployments/?did=ba_card&trk=ba_card#Production_deployments)
+ [AWS Builders Library \$1 Pipeline CI/CD saya adalah kapten rilis saya \$1 Rilis produksi otomatis yang aman](https://aws.amazon.com//builders-library/cicd-pipeline/#Safe.2C_automatic_production_releases)
+ [Laporan Resmi AWS \$1 Mempraktikkan Integrasi Berkelanjutan dan Pengiriman Berkelanjutan di AWS \$1 Metode deployment](https://docs.aws.amazon.com/whitepapers/latest/practicing-continuous-integration-continuous-delivery/deployment-methods.html)
+ [AWS CodeDeploy Panduan Pengguna](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)
+ [Mulai konfigurasi deployment di AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html)
+ [Konfigurasikan canary API Gateway untuk meluncurkan deployment ](https://docs.aws.amazon.com/apigateway/latest/developerguide/canary-release.html)
+ [Jenis Deployment Amazon ECS](https://docs.aws.amazon.com/)
+ [Deployment Blue/Green Terkelola Penuh di Amazon Aurora dan Amazon RDS](https://aws.amazon.com/blogs/aws/new-fully-managed-blue-green-deployments-in-amazon-aurora-and-amazon-rds/)
+ [Deployment Blue/Green dengan AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.CNAMESwap.html)

 **Video terkait:** 
+ [re:Invent 2020 \$1 Hands-off: Mengotomatiskan pipeline pengiriman berkelanjutan di Amazon](https://www.youtube.com/watch?v=ngnMj1zbMPY)
+ [re:Invent 2019 \$1 Pendekatan deployment ketersediaan tinggi Amazon](https://www.youtube.com/watch?v=bCgD2bX1LI4)

 **Contoh terkait:** 
+ [Coba Sampel Deployment Blue/Green di AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/applications-create-blue-green.html)
+ [Lokakarya \$1 Membangun pipeline CI/CD untuk deployment canary Lambda menggunakan AWS CDK](https://catalog.us-east-1.prod.workshops.aws/workshops/5195ab7c-5ded-4ee2-a1c5-775300717f42/en-US)
+ [Lokakarya \$1 Deployment Blue/Green dan Canary untuk EKS dan ECS](https://catalog.us-east-1.prod.workshops.aws/workshops/2175d94a-cd79-4ed2-8e7e-1f0dd1956a3a/en-US)
+ [Lokakarya \$1 Membangun Pipeline CI/CD Lintas Akun](https://catalog.us-east-1.prod.workshops.aws/workshops/00bc829e-fd7c-4204-9da1-faea3cf8bd88/en-US)