

# Persiapkan
<a name="a-prepare"></a>

**Topics**
+ [

# OPS 4. Bagaimana Anda mengimplementasikan observabilitas dalam beban kerja Anda?
](ops-04.md)
+ [

# OPS 5. Bagaimana cara mengurangi kecacatan, mempermudah perbaikan, dan meningkatkan aliran ke dalam produksi?
](ops-05.md)
+ [

# OPS 6. Bagaimana cara memitigasi risiko deployment?
](ops-06.md)
+ [

# OPS 7. Bagaimana cara mengetahui bahwa Anda siap untuk mendukung beban kerja?
](ops-07.md)

# OPS 4. Bagaimana Anda mengimplementasikan observabilitas dalam beban kerja Anda?
<a name="ops-04"></a>

Terapkan observabilitas dalam beban kerja Anda sehingga Anda dapat memahami statusnya dan membuat keputusan berbasis data berdasarkan persyaratan bisnis.

**Topics**
+ [

# OPS04-BP01 Identifikasi indikator kinerja utama
](ops_observability_identify_kpis.md)
+ [

# OPS04-BP02 Melaksanakan telemetri aplikasi
](ops_observability_application_telemetry.md)
+ [

# OPS04-BP03 Menerapkan telemetri pengalaman pengguna
](ops_observability_customer_telemetry.md)
+ [

# OPS04-BP04 Mengimplementasikan telemetri dependensi
](ops_observability_dependency_telemetry.md)
+ [

# OPS04-BP05 Melaksanakan penelusuran terdistribusi
](ops_observability_dist_trace.md)

# OPS04-BP01 Identifikasi indikator kinerja utama
<a name="ops_observability_identify_kpis"></a>

 Untuk mengimplementasikan observabilitas dalam beban kerja, Anda memulainya dengan memahami statusnya dan mengambil keputusan berbasis data berdasarkan persyaratan bisnis. Salah satu cara paling efektif untuk memastikan keselarasan antara kegiatan pemantauan dan tujuan bisnis adalah dengan mendefinisikan dan memantau indikator kinerja utama ()KPIs. 

 **Hasil yang diinginkan:** Praktik-praktik observabilitas yang efisien yang sangat selaras dengan tujuan bisnis, sehingga memastikan upaya pemantauan selalu memenuhi hasil bisnis yang nyata. 

 **Anti-pola umum:** 
+  Tidak terdefinisiKPIs: Bekerja tanpa jelas KPIs dapat menyebabkan pemantauan terlalu banyak atau terlalu sedikit, kehilangan sinyal vital. 
+  StatisKPIs: Tidak meninjau kembali atau menyempurnakan KPIs karena beban kerja atau tujuan bisnis berkembang. 
+  Ketidakselarasan: Berfokus pada metrik-metrik teknis yang tidak berkorelasi langsung dengan hasil bisnis atau yang lebih sulit untuk berkorelasi dengan masalah-masalah dunia nyata. 

 **Manfaat menjalankan praktik terbaik ini:** 
+  Kemudahan identifikasi masalah: Bisnis KPIs sering memunculkan masalah lebih jelas daripada metrik teknis. Penurunan dalam bisnis KPI dapat menunjukkan masalah dengan lebih efektif daripada memilah-milah berbagai metrik teknis. 
+  Keselarasan bisnis: Memastikan bahwa kegiatan pemantauan secara langsung adalah aktivitas yang mendukung tujuan bisnis. 
+  Efisiensi: Prioritaskan untuk melakukan pemantauan sumber daya dan memberikan perhatian pada metrik-metrik yang penting. 
+  Proaktif: Kenali dan atasi masalah sebelum masalah itu memunculkan dampak bisnis yang lebih luas. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan:** Tinggi 

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

 Untuk secara efektif mendefinisikan beban kerjaKPIs: 

1.  **Mulai dengan hasil bisnis:** Sebelum menyelami metrik, pahami dahulu hasil bisnis yang diinginkan. Apakah peningkatan penjualan, keterlibatan pengguna yang lebih tinggi, atau waktu respons yang lebih cepat? 

1.  **Korelasikan metrik teknis dengan tujuan bisnis:** Tidak semua metrik teknis memiliki dampak langsung pada hasil bisnis Anda. Identifikasi mereka yang melakukannya, tetapi seringkali lebih mudah untuk mengidentifikasi masalah menggunakan bisnis. KPI 

1.  **Gunakan [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html):** Gunakan CloudWatch untuk menentukan dan memantau metrik yang mewakili Anda. KPIs 

1.  **Tinjau dan perbarui secara teraturKPIs:** Saat beban kerja dan bisnis Anda berkembang, jaga agar tetap relevan. KPIs 

1.  **Libatkan pemangku kepentingan:** Libatkan tim teknis dan bisnis dalam mendefinisikan dan meninjau. KPIs 

 **Tingkat upaya untuk rencana implementasi:** Sedang 

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

 **Praktik-praktik terbaik terkait:** 
+ [OPS04-BP02 Melaksanakan telemetri aplikasi](ops_observability_application_telemetry.md)
+ [OPS04-BP03 Menerapkan telemetri pengalaman pengguna](ops_observability_customer_telemetry.md)
+ [OPS04-BP04 Mengimplementasikan telemetri dependensi](ops_observability_dependency_telemetry.md)
+ [OPS04-BP05 Melaksanakan penelusuran terdistribusi](ops_observability_dist_trace.md)

 **Dokumen terkait:** 
+ [AWS Praktik Terbaik Observabilitas](https://aws-observability.github.io/observability-best-practices/)
+ [ CloudWatch Panduan Pengguna](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html)
+ [AWS Kursus Pembuat Keterampilan Observabilitas](https://explore.skillbuilder.aws/learn/course/external/view/elearning/14688/aws-observability)

 **Video terkait:** 
+ [ Mengembangkan strategi observabilitas ](https://www.youtube.com/watch?v=Ub3ATriFapQ)

 **Contoh terkait:** 
+  [Lokakarya Satu Observabilitas](https://catalog.workshops.aws/observability/en-US) 

# OPS04-BP02 Melaksanakan telemetri aplikasi
<a name="ops_observability_application_telemetry"></a>

 Telemetri aplikasi berfungsi sebagai fondasi observabilitas beban kerja Anda. Sangat penting bagi Anda untuk menghadirkan telemetri yang menawarkan wawasan yang dapat ditindaklanjuti tentang keadaan aplikasi Anda serta pencapaian hasil teknis dan bisnis. Dari pemecahan masalah hingga mengukur dampak fitur baru atau memastikan keselarasan dengan indikator kinerja kunci bisnis (KPIs), telemetri aplikasi menginformasikan cara Anda membangun, mengoperasikan, dan mengembangkan beban kerja Anda. 

 Metrik, log, dan jejak merupakan tiga pilar observabilitas utama. Ketiganya berfungsi sebagai alat diagnostik yang mampu menggambarkan keadaan aplikasi Anda. Seiring waktu, tiga hal ini akan membantu menciptakan garis acuan dan mengidentifikasi setiap anomali. Namun, untuk memastikan keselarasan antara kegiatan pemantauan dan tujuan bisnis, penting untuk menentukan dan memantau. KPIs Bisnis KPIs sering membuatnya lebih mudah untuk mengidentifikasi masalah dibandingkan dengan metrik teknis saja. 

 Jenis telemetri lainnya, seperti pemantauan pengguna nyata (RUM) dan transaksi sintetis, melengkapi sumber data primer ini. RUMmenawarkan wawasan tentang interaksi pengguna waktu nyata, sedangkan transaksi sintetis mensimulasikan perilaku pengguna potensial, membantu mendeteksi kemacetan sebelum pengguna nyata menghadapinya. 

 **Hasil yang diinginkan:** Dapatkan wawasan yang dapat ditindaklanjuti mengenai performa beban kerja Anda. Wawasan ini akan memungkinkan Anda untuk mengambil keputusan yang proaktif tentang optimalisasi performa, mencapai peningkatan stabilitas beban kerja, merampingkan proses CI/CD, dan memanfaatkan sumber daya secara efektif. 

 **Anti-pola umum:** 
+  **Observabilitas yang tidak lengkap:** Mengabaikan penggunaan observabilitas di setiap lapisan beban kerja, sehingga mengakibatkan titik buta yang dapat membuat performa sistem vital dan wawasan perilaku menjadi tidak jelas. 
+  **Tampilan data terfragmentasi:** Ketika data tersebar di beberapa alat dan sistem, mempertahankan pandangan yang menyeluruh tentang kondisi dan performa beban kerja Anda akan menjadi sesuatu yang sulit dilakukan. 
+  **Masalah yang dilaporkan pengguna:** Tanda bahwa deteksi masalah proaktif melalui telemetri dan pemantauan bisnis kurang. KPI 

 **Manfaat menjalankan praktik terbaik ini:** 
+  **Pengambilan keputusan berdasarkan informasi:** Dengan wawasan dari telemetri dan bisnisKPIs, Anda dapat membuat keputusan berbasis data. 
+  **Peningkatan efisiensi operasional:** Pemanfaatan sumber daya berbasis data akan menghasilkan efektivitas biaya. 
+  **Penyempurnaan stabilitas beban kerja:** Deteksi dan penyelesaian masalah yang lebih cepat akan menghasilkan peningkatan waktu aktif. 
+  **Perampingan proses CI/CD:** Wawasan dari data telemetri dapat memfasilitasi penyempurnaan proses dan pengiriman kode yang andal. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan:** Tinggi 

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

 [Untuk menerapkan telemetri aplikasi untuk beban kerja Anda, gunakan layanan AWS seperti Amazon dan. CloudWatch [AWS X-Ray](https://aws.amazon.com/xray/)](https://aws.amazon.com/cloudwatch/) Amazon CloudWatch menyediakan rangkaian alat pemantauan yang komprehensif, memungkinkan Anda mengamati sumber daya dan aplikasi di dalam AWS dan lingkungan lokal. Layanan ini mengumpulkan, melacak, dan menganalisis metrik, menggabungkan dan memantau data log, dan memberikan respons terhadap perubahan yang terjadi dalam sumber daya Anda, menyempurnakan pemahaman Anda tentang bagaimana beban kerja Anda beroperasi. Secara bersamaan, AWS X-Ray memungkinkan Anda melacak, menganalisis, dan men-debug aplikasi Anda, memberi Anda pemahaman mendalam tentang perilaku beban kerja Anda. Dengan fitur seperti peta layanan, distribusi latensi, dan jadwal penelusuran, AWS X-Ray memberikan wawasan tentang kinerja beban kerja Anda dan hambatan yang mempengaruhinya. 

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

1.  **Identifikasi data apa yang akan dikumpulkan:** Pastikan metrik, log, dan jejak penting yang akan menawarkan wawasan substansial tentang kondisi, performa, dan perilaku beban kerja Anda. 

1.  **Menyebarkan [CloudWatchagen: Agen](https://aws.amazon.com/cloudwatch/)** berperan penting dalam pengadaan metrik dan log sistem dan aplikasi dari beban kerja Anda dan infrastruktur dasarnya. CloudWatch CloudWatch Agen juga dapat digunakan untuk mengumpulkan OpenTelemetry atau jejak X-Ray dan mengirimkannya ke X-Ray. 

1.  **Menerapkan deteksi anomali untuk log dan metrik:** Gunakan deteksi [anomali CloudWatch Log dan deteksi anomali CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/LogsAnomalyDetection.html) [Metrik untuk secara otomatis mengidentifikasi aktivitas yang tidak biasa](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Anomaly_Detection.html) dalam operasi aplikasi Anda. Alat-alat ini menggunakan algoritma machine learning untuk mendeteksi dan memberikan peringatan tentang anomali yang ditemukan, yang dapat meningkatkan kemampuan pemantauan Anda dan mempercepat waktu respons terhadap adanya potensi gangguan atau ancaman keamanan. Siapkan fitur-fitur ini untuk mengelola kesehatan dan keamanan aplikasi secara proaktif. 

1.  **Mengamankan data log sensitif:** Gunakan [perlindungan data Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html) untuk menutupi informasi sensitif di dalam log Anda. Fitur ini akan membantu Anda menjaga privasi dan kepatuhan dengan melakukan deteksi otomatis dan pengaburan data sensitif sebelum diakses. Menerapkan penyembunyian data untuk menangani dan melindungi detail sensitif dengan aman seperti informasi yang dapat diidentifikasi secara pribadi (). PII 

1.  **Tentukan dan pantau bisnisKPIs:** Tetapkan [metrik khusus](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) yang selaras dengan hasil [bisnis](https://aws-observability.github.io/observability-best-practices/guides/operational/business/monitoring-for-business-outcomes/) Anda. 

1.  **Instrumentasikan aplikasi Anda dengan AWS X-Ray:** Selain menggunakan CloudWatch agen, penting untuk [menginstruksikan aplikasi Anda](https://docs.aws.amazon.com/xray/latest/devguide/xray-instrumenting-your-app.html) untuk memancarkan data jejak. Proses ini dapat memberikan wawasan lebih lanjut tentang perilaku dan performa beban kerja Anda. 

1.  **Standardisasi pengumpulan data di seluruh aplikasi Anda:** Lakukan standardisasi terhadap praktik-praktik pengumpulan data di seluruh aplikasi Anda. Keseragaman bermanfaat dalam mengorelasikan dan menganalisis data, sehingga itu akan memberikan pandangan yang komprehensif tentang perilaku aplikasi Anda. 

1.  **Menerapkan observabilitas lintas akun:** Tingkatkan efisiensi pemantauan di beberapa akun dengan observabilitas [ CloudWatch lintas akun Akun AWS Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Unified-Cross-Account.html). Dengan fitur ini, Anda dapat menggabungkan metrik, log, dan alarm dari akun yang berbeda ke dalam satu tampilan, yang menyederhanakan manajemen dan meningkatkan waktu respons untuk masalah yang diidentifikasi di seluruh lingkungan organisasi Anda. AWS 

1.  **Menganalisis dan bertindak berdasarkan data:** Setelah pengumpulan dan normalisasi data dilakukan, gunakan [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/features/) untuk analisis metrik dan log, dan [AWS X-Ray](https://aws.amazon.com/xray/features/)untuk analisis jejak. Analisis tersebut dapat menghasilkan wawasan penting tentang kondisi, performa, dan perilaku beban kerja Anda, sehingga dapat memandu Anda dalam proses pengambilan keputusan. 

 **Tingkat upaya untuk rencana implementasi:** Tinggi 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS04-BP01 Tentukan beban kerja KPIs](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_observability_identify_kpis.html) 
+  [OPS04-BP03 Melaksanakan telemetri aktivitas pengguna](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_observability_customer_telemetry.html) 
+  [OPS04-BP04 Menerapkan telemetri ketergantungan](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_observability_dependency_telemetry.html) 
+  [OPS04-BP05 Menerapkan ketertelusuran transaksi](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_observability_dist_trace.html) 

 **Dokumen terkait:** 
+  [Praktik Terbaik Observabilitas AWS](https://aws-observability.github.io/observability-best-practices/) 
+  [Panduan Pengguna CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) 
+  [AWS X-Ray Panduan Pengembang](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
+  [Menginstrumentasikan sistem terdistribusi untuk visibilitas operasional](https://aws.amazon.com/builders-library/instrumenting-distributed-systems-for-operational-visibility) 
+  [Kursus Skill Builder Observabilitas AWS](https://explore.skillbuilder.aws/learn/course/external/view/elearning/14688/aws-observability) 
+  [Apa yang Baru dengan Amazon CloudWatch](https://aws.amazon.com/about-aws/whats-new/management-and-governance/?whats-new-content.sort-by=item.additionalFields.postDateTime&whats-new-content.sort-order=desc&awsf.whats-new-products=general-products%23amazon-cloudwatch) 
+  [Apa yang baru dengan AWS X-Ray](https://aws.amazon.com/about-aws/whats-new/developer-tools/?whats-new-content.sort-by=item.additionalFields.postDateTime&whats-new-content.sort-order=desc&awsf.whats-new-products=general-products%23aws-x-ray) 

 **Video terkait:** 
+  [AWS re:invent 2022 - Praktik terbaik observabilitas di Amazon](https://youtu.be/zZPzXEBW4P8) 
+  [AWS re:invent 2022 - Mengembangkan strategi observabilitas](https://youtu.be/Ub3ATriFapQ) 

 **Contoh terkait:** 
+  [Lokakarya Satu Observabilitas](https://catalog.workshops.aws/observability) 
+  [AWS Perpustakaan Solusi: Pemantauan Aplikasi dengan Amazon CloudWatch](https://aws.amazon.com/solutions/implementations/application-monitoring-with-cloudwatch) 

# OPS04-BP03 Menerapkan telemetri pengalaman pengguna
<a name="ops_observability_customer_telemetry"></a>

 Memperoleh wawasan yang mendalam tentang pengalaman dan interaksi pelanggan dengan aplikasi Anda adalah hal yang krusial. Pemantauan pengguna nyata (RUM) dan transaksi sintetis berfungsi sebagai alat yang ampuh untuk tujuan ini. RUMmenyediakan data tentang interaksi pengguna nyata yang memberikan perspektif kepuasan pengguna tanpa filter, sementara transaksi sintetis mensimulasikan interaksi pengguna, membantu mendeteksi potensi masalah bahkan sebelum berdampak pada pengguna nyata. 

 **Hasil yang diinginkan:** Pandangan yang menyeluruh tentang pengalaman pelanggan, deteksi masalah yang proaktif, dan optimalisasi interaksi pengguna untuk memberikan pengalaman digital yang mulus (seamless). 

 **Anti-pola umum:** 
+  Aplikasi tanpa pemantauan pengguna nyata (RUM): 
  +  Deteksi masalah yang tertunda: TanpaRUM, Anda mungkin tidak menyadari kemacetan atau masalah kinerja hingga pengguna mengeluh. Pendekatan reaktif ini dapat menyebabkan pelanggan menjadi tidak puas. 
  +  Kurangnya wawasan pengalaman pengguna: Tidak menggunakan RUM berarti Anda kehilangan data penting yang menunjukkan bagaimana pengguna nyata berinteraksi dengan aplikasi Anda, sehingga membatasi kemampuan Anda untuk mengoptimalkan pengalaman pengguna. 
+  Aplikasi tanpa transaksi sintetis: 
  +  Kasus edge yang terlewatkan: Transaksi-transaksi sintetis akan membantu Anda untuk menguji jalur dan fungsi yang mungkin jarang digunakan oleh pengguna biasa, tetapi sangat penting untuk fungsi bisnis tertentu. Tanpanya, jalur-jalur tersebut bisa mengalami kesalahan fungsi dan luput dari perhatian. 
  +  Memeriksa masalah saat aplikasi tidak digunakan: Pengujian sintetis yang dilakukan secara rutin dapat memberikan simulasi saat-saat ketika pengguna nyata tidak berinteraksi secara aktif dengan aplikasi Anda, sehingga hal itu akan memastikan sistem selalu berfungsi dengan benar. 

 **Manfaat menjalankan praktik terbaik ini:** 
+  Deteksi masalah proaktif: Identifikasi dan atasi potensi masalah sebelum berdampak pada pengguna nyata. 
+  Pengalaman pengguna yang dioptimalkan: Umpan balik berkelanjutan dari RUM bantuan dalam menyempurnakan dan meningkatkan pengalaman pengguna secara keseluruhan. 
+  Wawasan tentang performa perangkat dan browser: Memahami performa aplikasi Anda di berbagai perangkat dan browser, sehingga memungkinkan optimalisasi lebih lanjut. 
+  Alur kerja bisnis yang divalidasi: Transaksi-transaksi sintetis rutin akan memastikan fungsionalitas inti dan jalur-jalur penting tetap berjalan dan efisien. 
+  Performa aplikasi yang ditingkatkan: Manfaatkan wawasan yang dikumpulkan dari data pengguna nyata untuk meningkatkan responsivitas dan keandalan aplikasi. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan:** Tinggi 

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

 Untuk memanfaatkan RUM dan transaksi sintetis untuk telemetri aktivitas pengguna, AWS menawarkan layanan seperti Amazon dan [ CloudWatch RUMAmazon CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) [Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html). Metrik, log, dan jejak, ditambah dengan data aktivitas pengguna, memberikan sebuah pandangan yang komprehensif tentang status operasional aplikasi dan pengalaman pengguna. 

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

1.  **Menerapkan Amazon CloudWatch RUM:** Integrasikan aplikasi Anda CloudWatch RUM untuk mengumpulkan, menganalisis, dan menyajikan data pengguna nyata. 

   1.  Gunakan [CloudWatch RUM JavaScript perpustakaan](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) untuk berintegrasi RUM dengan aplikasi Anda. 

   1.  Siapkan dasbor untuk memvisualisasikan dan memantau data pengguna nyata. 

1.  **Configure CloudWatch Synthetics:** Buat kenari, atau rutinitas skrip, yang mensimulasikan interaksi pengguna dengan aplikasi Anda. 

   1.  Tentukan alur kerja dan jalur aplikasi kritis. 

   1.  Desain kenari menggunakan skrip [CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html) untuk mensimulasikan interaksi pengguna untuk jalur ini. 

   1.  Jadwalkan dan pantau canary agar berjalan pada interval-interval tertentu, sehingga memastikan pemeriksaan performa yang konsisten. 

1.  **Menganalisis dan bertindak berdasarkan data:** Memanfaatkan data dari RUM dan transaksi sintetis untuk mendapatkan wawasan dan mengambil tindakan korektif ketika anomali terdeteksi. Gunakan CloudWatch dasbor dan alarm untuk tetap mendapat informasi. 

 **Tingkat upaya untuk rencana implementasi:** Sedang 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS04-BP01 Identifikasi indikator kinerja utama](ops_observability_identify_kpis.md) 
+  [OPS04-BP02 Melaksanakan telemetri aplikasi](ops_observability_application_telemetry.md) 
+  [OPS04-BP04 Mengimplementasikan telemetri dependensi](ops_observability_dependency_telemetry.md) 
+  [OPS04-BP05 Melaksanakan penelusuran terdistribusi](ops_observability_dist_trace.md) 

 **Dokumen terkait:** 
+ [ CloudWatch RUMPanduan Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html)
+ [Panduan Amazon CloudWatch Synthetics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html)

 **Video terkait:** 
+ [Optimalkan aplikasi melalui wawasan pengguna akhir dengan Amazon CloudWatch RUM](https://www.youtube.com/watch?v=NMaeujY9A9Y)
+ [AWS di Air ft. Pemantauan Pengguna Nyata untuk Amazon CloudWatch](https://www.youtube.com/watch?v=r6wFtozsiVE)

 **Contoh terkait:** 
+ [ Lokakarya Satu Observabilitas ](https://catalog.workshops.aws/observability/en-US/intro)
+ [Git Repository untuk Amazon CloudWatch RUM Web Client](https://github.com/aws-observability/aws-rum-web)
+ [Menggunakan Amazon CloudWatch Synthetics untuk mengukur waktu buka halaman](https://github.com/aws-samples/amazon-cloudwatch-synthetics-page-performance)

# OPS04-BP04 Mengimplementasikan telemetri dependensi
<a name="ops_observability_dependency_telemetry"></a>

 Telemetri dependensi sangat penting untuk memantau kondisi dan performa layanan dan komponen eksternal yang diandalkan oleh beban kerja Anda. Hal ini memberikan wawasan berharga tentang keterjangkauan, batas waktu, dan peristiwa penting lainnya yang terkait dengan dependensi seperti DNS, basis data, atau API pihak ketiga. Ketika Anda menginstrumentasi aplikasi Anda agar menghasilkan metrik, log, dan jejak tentang dependensi ini, Anda mendapatkan pemahaman yang lebih jelas tentang potensi kemacetan, masalah performa, atau kegagalan yang dapat memengaruhi beban kerja Anda. 

 **Hasil yang diinginkan:** Pastikan bahwa dependensi yang diandalkan beban kerja Anda menunjukkan performa yang sesuai harapan, sehingga Anda dapat secara proaktif mengatasi masalah-masalah dan memastikan performa beban kerja yang optimal. 

 **Anti-pola umum:** 
+  **Mengabaikan dependensi eksternal:** Hanya berfokus pada metrik aplikasi internal sambil mengabaikan metrik yang berkaitan dengan dependensi eksternal. 
+  **Kurangnya pemantauan proaktif:** Menunggu masalah muncul alih-alih terus memantau kondisi dan performa dependensi. 
+  **Pemantauan model silo:** Menggunakan beberapa alat pemantauan yang berbeda-beda sehingga wawasan tentang kondisi dependensi menjadi terfragmentasi dan tidak konsisten. 

 **Manfaat menjalankan praktik terbaik ini:** 
+  **Peningkatan keandalan beban kerja:** Dengan memastikan bahwa dependensi eksternal terus-menerus tersedia dan berkinerja optimal. 
+  **Deteksi dan penyelesaian masalah yang lebih cepat:** Secara proaktif mengidentifikasi dan menangani masalah pada dependensi sebelum berdampak pada beban kerja. 
+  **Pandangan menyeluruh:** Mendapatkan pandangan yang menyeluruh tentang komponen internal dan eksternal yang memengaruhi kondisi beban kerja. 
+  **Peningkatan skalabilitas beban kerja:** Dengan memahami batas skalabilitas dan karakteristik performa dependensi eksternal. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan:** Tinggi 

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

 Implementasikan telemetri dependensi dengan memulai melakukan identifikasi layanan, infrastruktur, dan proses yang digunakan oleh beban kerja Anda. Ukur seperti apa kondisi yang baik ketika dependensi berfungsi sesuai harapan, kemudian tentukan data apa yang akan diperlukan untuk mengukur kondisi-kondisi itu. Dengan informasi tersebut, Anda dapat membuat dasbor dan peringatan yang memberikan wawasan kepada tim operasi Anda tentang status dependensi tersebut. Gunakan alat-alat AWS untuk menemukan dan mengukur dampak yang ditimbulkan ketika dependensi tidak dapat menunjukkan hasil yang sesuai kebutuhan. Selalu tinjau ulang strategi Anda agar memperhitungkan perubahan-perubahan dalam prioritas, sasaran, dan wawasan yang diperoleh. 

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

 Cara mengimplementasikan telemetri dependensi secara efektif: 

1.  **Identifikasi dependensi eksternal:** Lakukan kolaborasi dengan pemangku kepentingan untuk menentukan dependensi eksternal yang diandalkan oleh beban kerja Anda. Dependensi eksternal dapat mencakup layanan-layanan seperti basis data eksternal, API pihak ketiga, rute konektivitas jaringan ke lingkungan lain, dan layanan DNS. Langkah pertama menuju telemetri dependensi yang efektif adalah memiliki pemahaman yang menyeluruh tentang apa saja dependensi tersebut. 

1.  **Kembangkan strategi pemantauan:** Setelah Anda memiliki gambaran yang jelas tentang dependensi eksternal Anda, rancanglah strategi pemantauan yang disesuaikan dengan dependensi tersebut. Hal ini melibatkan pemahaman terhadap tingkat kekritisan setiap dependensi, perilaku yang diharapkan, dan perjanjian atau target tingkat layanan (SLA atau SLT) terkait. Siapkan peringatan proaktif untuk memberi tahu Anda tentang perubahan status atau penyimpangan-penyimpangan performa. 

1.  **Gunakan [pemantauan jaringan](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Network-Monitoring-Sections.html):** Gunakan [Monitor Internet](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-InternetMonitor.html) dan [Monitor Jaringan](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/what-is-network-monitor.html), yang memberikan wawasan komprehensif mengenai kondisi internet dan jaringan global. Alat-alat ini akan membantu Anda untuk memahami dan merespons pemadaman, gangguan, atau penurunan kinerja yang memengaruhi dependensi eksternal Anda. 

1.  **Terus dapatkan informasi dengan [AWS Health](https://aws.amazon.com/premiumsupport/technology/aws-health/).** AWS Health adalah sumber informasi otoritatif tentang kondisi sumber daya AWS Cloud Anda. Gunakan AWS Health untuk memvisualisasikan dan menerima notifikasi tentang peristiwa layanan terkini dan perubahan yang akan datang, seperti peristiwa siklus hidup yang direncanakan, sehingga Anda dapat mengambil langkah-langkah untuk mengurangi dampaknya. 

   1.  [Buat notifikasi peristiwa AWS Health sesuai keperluan](https://docs.aws.amazon.com/health/latest/ug/user-notifications.html) yang dikirim ke saluran email dan obrolan melalui [Notifikasi Pengguna AWS](https://docs.aws.amazon.com/notifications/latest/userguide/what-is-service.html) serta integrasikan secara programatis dengan [alat pemantauan dan peringatan Anda melalui Amazon EventBridge](https://docs.aws.amazon.com/health/latest/ug/cloudwatch-events-health.html) atau [API AWS Health](https://docs.aws.amazon.com/health/latest/APIReference/Welcome.html). 

   1.  Rencanakan dan lacak progres pada peristiwa kesehatan yang memerlukan tindakan dengan mengintegrasikan dengan manajemen perubahan atau alat ITSM (seperti [Jira atau](https://docs.aws.amazon.com/smc/latest/ag/cloud-sys-health.html) [ServiceNow](https://docs.aws.amazon.com/smc/latest/ag/sn-aws-health.html)) yang mungkin sudah Anda gunakan melalui Amazon EventBridge atau API AWS Health. 

   1.  Jika Anda menggunakan AWS Organizations, aktifkan [tampilan organisasi untuk AWS Health](https://docs.aws.amazon.com/health/latest/ug/aggregate-events.html) guna menggabungkan peristiwa AWS Health di seluruh akun. 

1.  **Lakukan instrumentasi pada aplikasi Anda dengan [AWS X-Ray](https://aws.amazon.com/xray/):** AWS X-Ray memberikan wawasan tentang bagaimana performa aplikasi dan dependensi yang mendasarinya. Dengan melacak permintaan dari awal hingga akhir, Anda dapat mengidentifikasi kemacetan atau kegagalan yang terjadi dalam layanan eksternal atau komponen yang diandalkan oleh aplikasi Anda. 

1.  **Gunakan [Amazon DevOps Guru](https://aws.amazon.com/devops-guru/):** Layanan berbasis machine learning ini mengidentifikasi masalah operasional, memprediksi kapan masalah kritis mungkin terjadi, dan merekomendasikan tindakan spesifik yang harus diambil. Layanan ini sangat bermanfaat untuk mendapatkan wawasan tentang dependensi dan memastikan bahwa dependensi bukan merupakan sumber masalah operasional. 

1.  **Pantau secara rutin:** Terus pantau metrik dan log yang berkaitan dengan dependensi eksternal. Siapkan peringatan untuk perilaku tak terduga atau performa yang menurun. 

1.  **Lakukan validasi setelah perubahan:** Setiap kali ada pembaruan atau perubahan yang dilakukan pada salah satu dependensi eksternal, Anda harus melakukan validasi terhadap performa dan memeriksa keselarasannya dengan persyaratan-persyaratan aplikasi Anda. 

 **Tingkat upaya untuk rencana implementasi:** Sedang 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS04-BP01 Menentukan KPI beban kerja](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_observability_identify_kpis.html) 
+  [OPS04-BP02 Mengimplementasikan telemetri aplikasi](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_observability_application_telemetry.html) 
+  [OPS04-BP03 Mengimplementasikan telemetri aktivitas pengguna](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_observability_customer_telemetry.html) 
+  [OPS04-BP05 Mengimplementasikan keterlacakan transaksi](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_observability_dist_trace.html) 
+  [OPS08-BP04 Membuat peringatan yang dapat ditindaklanjuti](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_workload_observability_create_alerts.html) 

 **Dokumen terkait:** 
+  [Panduan Pengguna Dasbor Health Pribadi Amazon](https://docs.aws.amazon.com/health/latest/ug/what-is-aws-health.html) 
+  [Panduan Pengguna Monitor Internet AWS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-InternetMonitor.html) 
+  [Panduan Developer AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) 
+  [Panduan Pengguna DevOps Guru AWS](https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html) 

 **Video terkait:** 
+  [Visibilitas tentang bagaimana masalah internet memengaruhi performa aplikasi](https://www.youtube.com/watch?v=Kuc_SG_aBgQ) 
+  [Pengantar tentang Amazon DevOps Guru](https://www.youtube.com/watch?v=2uA8q-8mTZY) 
+  [Mengelola peristiwa siklus hidup sumber daya dalam skala besar dengan AWS Health](https://www.youtube.com/watch?v=VoLLNL5j9NA) 

 **Contoh terkait:** 
+  [AWS Health Aware](https://github.com/aws-samples/aws-health-aware/) 
+  [Menggunakan Penyaringan Berbasis Tag untuk Mengelola Pemantauan dan Peringatan AWS Health dengan Skala Besar](https://aws.amazon.com/blogs/mt/using-tag-based-filtering-to-manage-health-monitoring-and-alerting-at-scale/) 

# OPS04-BP05 Melaksanakan penelusuran terdistribusi
<a name="ops_observability_dist_trace"></a>

 Penelusuran terdistribusi menawarkan cara untuk memantau dan memvisualisasikan permintaan yang melintasi berbagai komponen sistem terdistribusi. Dengan menangkap data jejak dari berbagai sumber dan menganalisisnya dalam tampilan terpadu, tim dapat lebih memahami bagaimana permintaan mengalir, di mana kemacetan terjadi, dan di mana upaya pengoptimalan harus difokuskan. 

 **Hasil yang diinginkan:** Dapatkan tampilan menyeluruh permintaan-permintaan yang mengalir melewati sistem terdistribusi Anda, sehingga akan memungkinkan Anda untuk melakukan debugging yang presisi, performa yang dioptimalkan, dan pengalaman pengguna yang lebih baik. 

 **Anti-pola umum:** 
+  Instrumentasi yang tidak konsisten: Tidak semua layanan yang ada dalam sebuah sistem terdistribusi diinstrumentasi untuk penelusuran. 
+  Mengabaikan latensi: Hanya berfokus pada kesalahan dan tidak mempertimbangkan latensi atau penurunan performa yang terjadi secara bertahap. 

 **Manfaat menjalankan praktik terbaik ini:** 
+ Gambaran umum sistem yang komprehensif: Memberikan visualisasi dari seluruh jalur permintaan, dari masuk hingga keluar.
+  Debugging yang disempurnakan: Mengidentifikasi dengan cepat di mana kegagalan atau masalah performa terjadi. 
+  Pengalaman pengguna yang ditingkatkan: Melakukan pemantauan dan optimalisasi berdasarkan data pengguna aktual, yang akan memastikan bahwa sistem memenuhi tuntutan dunia nyata. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan:** Tinggi 

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

 Mulailah dengan mengidentifikasi semua elemen beban kerja Anda yang memerlukan instrumentasi. Setelah semua komponen diperhitungkan, manfaatkan alat seperti AWS X-Ray dan OpenTelemetry untuk mengumpulkan data jejak untuk analisis dengan alat seperti X-Ray dan Amazon CloudWatch ServiceLens Map. Terlibat dalam ulasan reguler dengan pengembang, dan lengkapi diskusi ini dengan alat seperti Amazon DevOps Guru, X-Ray Analytics, dan X-Ray Insights untuk membantu mengungkap temuan yang lebih dalam. Buatlah peringatan dari data jejak untuk memberikan notifikasi kapan hasil, sebagaimana didefinisikan dalam rencana pemantauan beban kerja, mengandung risiko. 

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

 Cara mengimplementasikan penelusuran terdistribusi secara efektif: 

1.  **Adopsi [AWS X-Ray](https://aws.amazon.com/xray/):** Integrasikan X-Ray ke dalam aplikasi Anda untuk mendapatkan wawasan tentang perilakunya, memahami performanya, dan mengenali kemacetan. Manfaatkan Wawasan X-Ray untuk analisis jejak otomatis. 

1.  **Instrumen layanan Anda:** Verifikasi bahwa setiap layanan, dari [AWS Lambda](https://aws.amazon.com/lambda/)fungsi hingga [EC2instance](https://aws.amazon.com/ec2/), mengirimkan data jejak. Semakin banyak layanan yang Anda instrumen, semakin jelas end-to-end tampilan. 

1.  **Menggabungkan [Pemantauan Pengguna CloudWatch Nyata](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-RUM.html) dan [pemantauan sintetis](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries.html):** Integrasikan Pemantauan Pengguna Nyata (RUM) dan pemantauan sintetis dengan X-Ray. Hal ini akan memungkinkan perekaman pengalaman pengguna dunia nyata dan simulasi interaksi pengguna untuk mengidentifikasi masalah-masalah potensial yang mungkin terjadi. 

1.  **Gunakan [CloudWatch agen: Agen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)** dapat mengirim jejak dari X-Ray atau OpenTelemetry, meningkatkan kedalaman wawasan yang diperoleh. 

1.  **Gunakan [Amazon DevOps Guru: DevOps Guru](https://aws.amazon.com/devops-guru/)** menggunakan data dari X-Ray,, CloudWatch AWS Config, dan AWS CloudTrail untuk memberikan rekomendasi yang dapat ditindaklanjuti. 

1.  **Lakukan analisis jejak:** Tinjau data jejak secara rutin untuk membedakan pola, anomali, atau kemacetan yang dapat memengaruhi performa aplikasi Anda. 

1.  **Siapkan peringatan:** Konfigurasikan alarm [CloudWatch](https://aws.amazon.com/cloudwatch/)untuk pola yang tidak biasa atau latensi yang diperpanjang, memungkinkan pengalamatan masalah proaktif. 

1.  **Peningkatan terus-menerus:** Tinjau ulang strategi penelusuran Anda saat layanan ditambahkan atau dimodifikasi untuk menangkap semua titik data yang relevan. 

 **Tingkat upaya untuk rencana implementasi:** Sedang 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS04-BP01 Identifikasi indikator kinerja utama](ops_observability_identify_kpis.md) 
+  [OPS04-BP02 Melaksanakan telemetri aplikasi](ops_observability_application_telemetry.md) 
+  [OPS04-BP03 Menerapkan telemetri pengalaman pengguna](ops_observability_customer_telemetry.md) 
+  [OPS04-BP04 Mengimplementasikan telemetri dependensi](ops_observability_dependency_telemetry.md) 

 **Dokumen terkait:** 
+ [AWS X-Ray Panduan Pengembang](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html)
+ [Panduan Pengguna CloudWatch agen Amazon](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html)
+ [Panduan Pengguna Amazon DevOps Guru](https://docs.aws.amazon.com/devops-guru/latest/userguide/welcome.html)

 **Video terkait:** 
+ [Gunakan AWS X-Ray Wawasan](https://www.youtube.com/watch?v=tl8OWHl6jxw)
+ [AWS di Air ft. Observabilitas: Amazon CloudWatch ](https://www.youtube.com/watch?v=qBDBnPkZ-KI) dan AWS X-Ray

 **Contoh terkait:** 
+ [Instrumentasi aplikasi Anda untuk AWS X-Ray](https://aws.amazon.com/xray/latest/devguide/xray-instrumenting-your-app.html)

# OPS 5. Bagaimana cara mengurangi kecacatan, mempermudah perbaikan, dan meningkatkan aliran ke dalam produksi?
<a name="ops-05"></a>

 Adopsi pendekatan yang meningkatkan aliran perubahan ke dalam produksi, sehingga memungkinkan pemfaktoran ulang, umpan balik cepat atas kualitas, dan perbaikan bug. Ini mempercepat perubahan yang bermanfaat memasuki produksi, membatasi masalah yang di-deploy, dan mencapai identifikasi cepat serta perbaikan masalah akibat aktivitas deployment. 

**Topics**
+ [

# OPS05-BP01 Menggunakan kontrol versi
](ops_dev_integ_version_control.md)
+ [

# OPS05-BP02 Menguji dan memvalidasi perubahan
](ops_dev_integ_test_val_chg.md)
+ [

# OPS05-BP03 Menggunakan sistem manajemen konfigurasi
](ops_dev_integ_conf_mgmt_sys.md)
+ [

# OPS05-BP04 Menggunakan sistem manajemen build dan deployment
](ops_dev_integ_build_mgmt_sys.md)
+ [

# OPS05-BP05 Melakukan manajemen patch
](ops_dev_integ_patch_mgmt.md)
+ [

# OPS05-BP06 Bagikan standar desain
](ops_dev_integ_share_design_stds.md)
+ [

# OPS05-BP07 Mengimplementasikan praktik untuk meningkatkan kualitas kode
](ops_dev_integ_code_quality.md)
+ [

# OPS05-BP08 Menggunakan beberapa lingkungan
](ops_dev_integ_multi_env.md)
+ [

# OPS05-BP09 Lakukan perubahan yang sering, kecil, dan reversibel
](ops_dev_integ_freq_sm_rev_chg.md)
+ [

# OPS05-BP10 Mengotomatiskan integrasi dan deployment sepenuhnya
](ops_dev_integ_auto_integ_deploy.md)

# OPS05-BP01 Menggunakan kontrol versi
<a name="ops_dev_integ_version_control"></a>

 Gunakan kontrol versi untuk memungkinkan pelacakan perubahan dan rilis. 

 Banyak layanan AWS yang menawarkan kemampuan kontrol versi. Gunakan revisi atau sistem [kontrol sumber](https://aws.amazon.com/devops/source-control/) seperti [Git](https://aws.amazon.com/devops/source-control/git/) untuk mengelola kode dan artefak lainnya, seperti templat [AWS CloudFormation](https://aws.amazon.com/cloudformation/) yang dikendalikan versi untuk infrastruktur Anda. 

 **Hasil yang diinginkan:** Tim Anda berkolaborasi dalam kode. Saat digabungkan, kode tersebut konsisten dan tidak ada perubahan yang hilang. Kesalahan mudah dibatalkan melalui penentuan versi yang benar. 

 **Anti-pola umum:** 
+  Anda telah mengembangkan dan menyimpan kode di stasiun kerja Anda. Anda mengalami kegagalan penyimpanan yang tidak dapat dipulihkan di stasiun kerja dan kemudian kode Anda hilang. 
+  Setelah menimpa kode yang ada dengan perubahan Anda, Anda dapat memulai ulang aplikasi namun aplikasi sudah tidak dapat beroperasi lagi. Anda tidak bisa membatalkan perubahan. 
+  Anda memiliki write lock pada file laporan yang perlu diedit orang lain. Mereka meminta Anda untuk berhenti mengerjakannya agar mereka bisa menyelesaikan tugas-tugas mereka. 
+  Tim penelitian Anda telah mengerjakan sebuah analisis mendetail yang membentuk pekerjaan mendatang Anda. Seseorang secara tidak sengaja menyimpan daftar belanjanya dan menimpa laporan akhir. Anda tidak bisa membatalkan perubahan dan harus membuat ulang laporan tersebut. 

 **Manfaat menerapkan praktik terbaik ini:** Dengan menggunakan kemampuan kontrol versi, Anda dapat dengan mudah kembali ke versi sebelumnya dengan status yang baik, dan membatasi risiko kehilangan aset. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan:** Tinggi 

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

 Pelihara aset di repositori dengan kontrol versi. Tindakan ini mendukung pelacakan perubahan, deployment versi baru, deteksi perubahan pada versi yang ada, dan pengembalian ke versi sebelumnya (misalnya, kembali ke versi dengan status yang baik apabila terjadi kegagalan). Integrasikan kemampuan kontrol versi dari sistem manajemen konfigurasi Anda ke dalam prosedur Anda. 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS05-BP04 Menggunakan sistem manajemen build dan deployment](ops_dev_integ_build_mgmt_sys.md) 

 **Video terkait:** 
+ [AWS re:Invent 2023 - Bagaimana Lockheed Martin membangun perangkat lunak lebih cepat, didukung oleh DevSecOps ](https://www.youtube.com/watch?v=Q1OSyxYkl5w)
+ [AWS re:Invent 2023 - Bagaimana GitHub mengoperasionalkan AI untuk kolaborasi dan produktivitas tim ](https://www.youtube.com/watch?v=cOVvGaiusOI)

# OPS05-BP02 Menguji dan memvalidasi perubahan
<a name="ops_dev_integ_test_val_chg"></a>

 Setiap perubahan yang di-deploy harus diuji untuk menghindari kesalahan dalam lingkungan produksi. Praktik terbaik ini difokuskan untuk menguji perubahan-perubahan dari kontrol versi hingga build artefak. Di samping perubahan kode aplikasi, pengujian juga harus menyertakan infrastruktur, konfigurasi, kontrol keamanan, dan prosedur-prosedur operasi. Ada banyak bentuk pengujian, dari uji unit hingga analisis komponen perangkat lunak (SCA). Makin ke kiri pengujian dalam proses integrasi dan pengiriman perangkat lunak akan menghasilkan tingkat kepastian kualitas artefak yang lebih tinggi. 

 Organisasi Anda harus mengembangkan standar-standar pengujian untuk semua artefak perangkat lunak. Pengujian otomatis dapat mengurangi kerja yang melelahkan dan mencegah terjadinya kesalahan dalam pengujian manual. Uji manual mungkin diperlukan dalam beberapa kasus. Pengembang harus memiliki akses ke hasil uji otomatis untuk menciptakan loop umpan balik yang meningkatkan kualitas perangkat lunak. 

 **Hasil yang diinginkan:** Perubahan perangkat lunak Anda diuji sebelum dikirim. Pengembang memiliki akses ke hasil pengujian dan validasi. Organisasi Anda memiliki standar pengujian yang berlaku untuk semua perubahan perangkat lunak. 

 **Anti-pola umum:** 
+  Anda men-deploy perubahan perangkat lunak baru tanpa melakukan pengujian apa pun. Perangkat lunak gagal berjalan dalam lingkungan produksi, dan mengakibatkan matinya sistem. 
+  Grup keamanan baru di-deploy dengan AWS CloudFormation tanpa diuji di dalam sebuah lingkungan pra-produksi. Grup keamanan tersebut menjadikan aplikasi Anda tidak terjangkau oleh para pelanggan Anda. 
+  Sebuah metode diubah tanpa pengujian unit. Perangkat lunak gagal saat di-deploy ke lingkungan produksi. 

 **Manfaat menerapkan praktik terbaik ini:** Perubahan tingkat kegagalan deployment perangkat lunak berkurang. Kualitas perangkat lunak meningkat. Pengembang memiliki kesadaran yang lebih tinggi tentang kelayakan kode mereka. Kebijakan keamanan dapat diluncurkan dengan penuh keyakinan untuk mendukung kepatuhan organisasi. Perubahan infrastruktur, misalnya pembaruan kebijakan penskalaan otomatis, diuji di awal untuk memenuhi kebutuhan lalu lintas. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan:** Tinggi 

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

 Pengujian dilakukan pada semua perubahan, dari kode aplikasi hingga infrastruktur, sebagai bagian dari praktik integrasi berkelanjutan yang Anda lakukan. Hasil-hasil pengujian dipublikasikan sehingga pengembang memiliki umpan balik dengan cepat. Organisasi memiliki standar pengujian bahwa semua perubahan harus lulus. 

 Gunakan kekuatan AI generatif dengan Amazon Q Developer untuk meningkatkan produktivitas pengembang dan kualitas kode Anda. Amazon Q Developer menyertakan pembuatan saran kode (berdasarkan model bahasa besar), produksi pengujian unit (termasuk kondisi batas), dan peningkatan keamanan kode melalui deteksi dan perbaikan kerentanan keamanan. 

 **Contoh pelanggan** 

 Sebagai bagian dari pipeline integrasi berkelanjutan mereka, AnyCompany Retail melakukan beberapa jenis pengujian pada semua artefak perangkat lunak. Mereka mempraktikkan pengembangan yang didorong pengujian sehingga semua perangkat lunak memiliki pengujian-pengujian unit. Begitu artefak dibangun, mereka kemudian menjalankan pengujian secara menyeluruh. Setelah pengujian putaran pertama selesai, mereka menjalankan pemindaian keamanan aplikasi statis, yang mencari kerentanan yang dikenali. Pengembang menerima pesan setelah setiap gerbang pengujian dilalui. Setelah semua pengujian selesai, artefak perangkat lunak kemudian disimpan di dalam sebuah repositori artefak. 

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

1.  Bekerjalah dengan para pemangku kepentingan yang ada di organisasi Anda untuk mengembangkan sebuah standar pengujian untuk artefak perangkat lunak. Pengujian standar apa yang harus dilalui oleh semua artefak? Apakah ada persyaratan kepatuhan atau tata kelola yang harus disertakan di dalam cakupan pengujian? Apakah Anda perlu melakukan pengujian kualitas kode? Setelah pengujian selesai dilakukan, siapa yang perlu mengetahuinya? 

   1.  [Arsitektur Referensi Pipeline Deployment AWS](https://pipelines.devops.aws.dev/) berisi daftar tepercaya untuk jenis-jenis pengujian yang dapat dilakukan pada artefak perangkat lunak sebagai bagian dari pipeline integrasi. 

1.  Instrumentasikan aplikasi Anda dengan pengujian-pengujian yang diperlukan berdasarkan standar pengujian perangkat lunak Anda. Setiap set pengujian harus diselesaikan dalam waktu kurang dari sepuluh menit. Pengujian harus berjalan sebagai bagian dari pipeline integrasi. 

   1.  Gunakan [Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/what-is.html), sebuah alat AI generatif yang dapat membantu Anda membuat kasus pengujian unit (termasuk ketentuan batas), yang dapat menghasilkan fungsi dengan menggunakan kode dan komentar, dan menerapkan algoritme terkenal. 

   1.  Gunakan [Amazon CodeGuru](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) Reviewer untuk melakukan pengujian kode aplikasi Anda apakah ada cacat. 

   1.  Anda dapat menggunakan [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) untuk melakukan pengujian pada artefak perangkat lunak. 

   1.  [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) dapat mengorkestrasi pengujian perangkat lunak Anda ke dalam pipeline. 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS05-BP01 Menggunakan kontrol versi](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_version_control.html) 
+  [OPS05-BP06 Membagikan standar desain](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_share_design_stds.html) 
+  [OPS05-BP07 Mengimplementasikan praktik untuk meningkatkan kualitas kode](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_code_quality.html) 
+  [OPS05-BP10 Mengotomatiskan integrasi dan deployment sepenuhnya](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_auto_integ_deploy.html) 

 **Dokumen terkait:** 
+  [Adopsi pendekatan pengembangan berbasis pengujian](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html) 
+  [Mengakselerasi Siklus Hidup Pengembangan Perangkat Lunak Anda dengan Amazon Q](https://aws.amazon.com/blogs/devops/accelerate-your-software-development-lifecycle-with-amazon-q/) 
+  [Amazon Q Developer, sekarang tersedia secara umum, menyertakan pratinjau kemampuan-kemampuan baru untuk menata kembali pengalaman pengembang](https://aws.amazon.com/blogs/aws/amazon-q-developer-now-generally-available-includes-new-capabilities-to-reimagine-developer-experience/) 
+  [Lembar Cheat Utama untuk Menggunakan Amazon Q Developer di IDE Anda](https://community.aws/content/2eYoqeFRqaVnk900emsknDfzhfW/the-ultimate-cheat-sheet-for-using-amazon-q-developer-in-your-ide) 
+  [Beban kerja Shift-Left, memanfaatkan AI untuk Pembuatan Uji](https://community.aws/content/2gBZtC94gPzaCQRnt4P0rIYWuBx/shift-left-workload-leveraging-ai-for-test-creation) 
+  [Pusat Amazon Q Developer](https://aws.amazon.com/developer/generative-ai/amazon-q/) 
+  [10 cara untuk membangun aplikasi lebih cepat dengan menggunakan Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/10-ways-to-build-applications-faster-with-amazon-codewhisperer/) 
+  [Melihat melampaui cakupan kode dengan Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/looking-beyond-code-coverage-with-amazon-codewhisperer/) 
+  [Praktik Terbaik untuk Rekayasa Perintah dengan Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/best-practices-for-prompt-engineering-with-amazon-codewhisperer/) 
+  [Pipeline Pengujian AWS CloudFormation Otomatis dengan TaskCat dan CodePipeline](https://aws.amazon.com/blogs/devops/automated-cloudformation-testing-pipeline-with-taskcat-and-codepipeline/) 
+  [Membangun pipeline CI/CD DevSecOps AWS yang menyeluruh dengan alat-alat SCA, SAST, dan DAST sumber terbuka](https://aws.amazon.com/blogs/devops/building-end-to-end-aws-devsecops-ci-cd-pipeline-with-open-source-sca-sast-and-dast-tools/) 
+  [Memulai pengujian aplikasi nirserver](https://aws.amazon.com/blogs/compute/getting-started-with-testing-serverless-applications/) 
+  [Pipeline CI/CD adalah pemandu utama rilisan saya](https://aws.amazon.com/builders-library/cicd-pipeline/) 
+  [Laporan Resmi tentang Mempraktikkan Integrasi Berkelanjutan dan Pengiriman Berkelanjutan di AWS](https://docs.aws.amazon.com/whitepapers/latest/practicing-continuous-integration-continuous-delivery/welcome.html) 

 **Video terkait:** 
+  [Menerapkan API dengan Amazon Q Developer Agent untuk Pengembangan Perangkat Lunak](https://www.youtube.com/watch?v=U4XEvJUvff4) 
+  [Menginstal, Mengonfigurasi, & Menggunakan Amazon Q Developer dengan JetBrains IDE (Cara)](https://www.youtube.com/watch?v=-iQfIhTA4J0) 
+  [Menguasai seni Amazon CodeWhisperer - Daftar putar YouTube](https://www.youtube.com/playlist?list=PLDqi6CuDzubxzL-yIqgQb9UbbceYdKhpK) 
+  [AWS re:Invent 2020: Infrastruktur yang dapat diuji: Pengujian integrasi di AWS](https://www.youtube.com/watch?v=KJC380Juo2w) 
+  [AWS Summit ANZ 2021 - Mendorong strategi yang mengutamakan pengujian dengan CDK dan pengembangan yang didorong pengujian](https://www.youtube.com/watch?v=1R7G_wcyd3s) 
+  [Menguji Infrastruktur Anda sebagai Kode dengan AWS CDK](https://www.youtube.com/watch?v=fWtuwGSoSOU) 

 **Sumber daya terkait:** 
+  [Arsitektur Referensi Pipeline Deployment AWS - Aplikasi](https://pipelines.devops.aws.dev/application-pipeline/index.html) 
+  [Pipeline DevSecOps Kubernetes AWS](https://github.com/aws-samples/devsecops-cicd-containers) 
+  [Menjalankan pengujian unit untuk aplikasi Node.js dari GitHub dengan menggunakan AWS CodeBuild](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/run-unit-tests-for-a-node-js-application-from-github-by-using-aws-codebuild.html) 
+  [Menggunakan Serverspec untuk pengembangan kode infrastruktur yang didorong pengujian](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/use-serverspec-for-test-driven-development-of-infrastructure-code.html) 

 **Layanan terkait:** 
+  [Amazon Q Developer](https://aws.amazon.com/q/developer/) 
+  [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) 
+  [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+  [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 

# OPS05-BP03 Menggunakan sistem manajemen konfigurasi
<a name="ops_dev_integ_conf_mgmt_sys"></a>

 Gunakan sistem manajemen konfigurasi untuk membuat dan melacak perubahan konfigurasi. Sistem ini mengurangi kesalahan yang disebabkan oleh proses manual dan meminimalkan tingkat upaya untuk melakukan deployment perubahan. 

Manajemen konfigurasi statis menetapkan nilai saat melakukan inisialisasi atas sebuah sumber daya yang diharapkan tetap konsisten selama masa pakai sumber daya tersebut. Manajemen konfigurasi dinamis menetapkan nilai saat inisialisasi. Nilai ini dapat atau diharapkan berubah selama masa pakai sumber daya. Misalnya, Anda dapat mengatur sebuah pengalih fitur untuk mengaktifkan fungsionalitas dalam kode Anda melalui sebuah perubahan konfigurasi, atau mengubah tingkat kerincian log selama insiden.

Konfigurasi harus di-deploy dalam status yang diketahui dan konsisten. Anda harus menggunakan inspeksi otomatis untuk selalu memantau konfigurasi sumber daya di seluruh lingkungan dan wilayah. Kontrol ini harus didefinisikan sebagai kode dan manajemen otomatis untuk memastikan aturan diterapkan secara konsisten di seluruh lingkungan. Perubahan konfigurasi harus diperbarui melalui prosedur kontrol perubahan yang disepakati dan diterapkan secara konsisten, dengan tetap memperhatikan kontrol versi. Konfigurasi aplikasi harus dikelola secara independen dan tidak bergantung pada kode aplikasi dan infrastruktur. Hal ini memungkinkan deployment yang konsisten di banyak lingkungan. Perubahan konfigurasi tidak akan mengakibatkan pembangunan kembali atau pemindahan aplikasi. 

 **Hasil yang diinginkan:** Anda mengonfigurasi, memvalidasi, dan melakukan deployment sebagai bagian dari pipeline integrasi berkelanjutan, pengiriman berkelanjutan (CI/CD) Anda. Anda memantau untuk memvalidasi bahwa konfigurasi sudah benar. Hal ini akan meminimalkan dampak apa pun yang terjadi terhadap pelanggan dan pengguna akhir. 

 **Anti-pola umum:** 
+  Anda memperbarui konfigurasi server web secara manual di seluruh armada dan beberapa server menjadi tidak responsif karena terjadinya kesalahan pembaruan. 
+  Anda secara manual memperbarui armada server aplikasi Anda selama berjam-jam. Ketidaksesuaian dalam konfigurasi selama terjadi perubahan dapat menyebabkan perilaku yang tak terduga. 
+  Seseorang telah memperbarui grup keamanan Anda dan server web Anda tidak dapat diakses lagi. Tanpa mengetahui apa yang telah diubah, Anda menghabiskan banyak waktu untuk menyelidiki masalah tersebut sehingga waktu pemulihan akan semakin panjang. 
+  Anda mendorong konfigurasi pra-produksi ke dalam lingkungan produksi melalui CI/CD tanpa melakukan validasi. Anda mengekspos pengguna dan pelanggan ke data dan layanan yang salah. 

 **Manfaat menerapkan praktik terbaik ini:** Mengadopsi sistem manajemen konfigurasi akan meminimalkan tingkat upaya untuk membuat dan melacak perubahan, serta akan mengurangi frekuensi kesalahan yang disebabkan oleh penggunaan prosedur manual. Sistem manajemen konfigurasi dapat memberikan jaminan sehubungan dengan persyaratan tata kelola, kepatuhan, dan peraturan. 

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

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

 Sistem manajemen konfigurasi digunakan untuk melacak dan mengimplementasikan perubahan-perubahan yang dibuat pada konfigurasi aplikasi dan lingkungan. Sistem manajemen konfigurasi juga digunakan untuk mengurangi terjadinya kesalahan yang disebabkan oleh proses-proses yang diselesaikan secara manual, membuat perubahan konfigurasi menjadi dapat diulang dan dapat diaudit, serta mengurangi tingkat upaya. 

 Pada AWS, Anda dapat menggunakan [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) untuk terus memantau konfigurasi sumber daya AWS Anda [di seluruh akun dan Wilayah](https://docs.aws.amazon.com/config/latest/developerguide/aggregate-data.html). Dengan demikian, Anda dapat melacak riwayat konfigurasi mereka, memahami bagaimana perubahan konfigurasi akan memengaruhi sumber daya lainnya, dan mengauditnya terhadap konfigurasi yang diharapkan atau diinginkan dengan menggunakan [Aturan AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) dan [AWS Config Conformance Packs](https://docs.aws.amazon.com/config/latest/developerguide/conformance-packs.html). 

 Untuk konfigurasi dinamis dalam aplikasi yang berjalan di instans Amazon EC2, AWS Lambda, kontainer, aplikasi seluler, atau perangkat IoT, Anda dapat menggunakan [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) untuk mengonfigurasi, memvalidasi, men-deploy, dan memantaunya di seluruh lingkungan. 

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

1.  Lakukan identifikasi pemilik konfigurasi. 

   1.  Buat agar para pemilik konfigurasi menyadari tentang kepatuhan, tata kelola, atau peraturan apa pun. 

1.  Lakukan identifikasi terhadap item-item konfigurasi dan hasil kerja. 

   1.  Item-item konfigurasi adalah semua konfigurasi aplikasi dan lingkungan yang dipengaruhi oleh sebuah deployment yang dilakukan di dalam pipeline CI/CD Anda. 

   1.  Hasil kerja antara lain kriteria keberhasilan, validasi, dan hal-hal yang harus dipantau. 

1.  Pilihlah alat-alat yang bisa digunakan untuk melakukan manajemen konfigurasi berdasarkan kebutuhan bisnis dan pipeline pengiriman Anda. 

1.  Pertimbangkan deployment tertimbang seperti deployment canary untuk perubahan-perubahan konfigurasi yang signifikan guna meminimalkan dampak konfigurasi yang salah. 

1.  Integrasikan manajemen konfigurasi Anda ke dalam pipeline CI/CD Anda. 

1.  Validasikan semua perubahan yang didorong. 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS06-BP01 Rencana untuk perubahan yang gagal](ops_mit_deploy_risks_plan_for_unsucessful_changes.md) 
+  [OPS06-BP02 Uji penerapan](ops_mit_deploy_risks_test_val_chg.md) 
+  [OPS06-BP03 Menggunakan strategi deployment yang aman](ops_mit_deploy_risks_deploy_mgmt_sys.md) 
+  [OPS06-BP04 Mengotomatiskan pengujian dan rollback](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **Dokumen terkait:** 
+ [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html)
+ [Akselerator Zona Landasan AWS](https://aws.amazon.com/solutions/implementations/landing-zone-accelerator-on-aws/)
+ [AWS Config](https://aws.amazon.com/config/)
+ [ Apa itu AWS Config? ](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)
+  [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) 
+ [ Apa itu AWS CloudFormation? ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)
+  [Alat Pengembang AWS](https://aws.amazon.com/products/developer-tools/) 
+ [AWS CodeBuild](https://aws.amazon.com/codebuild/)
+ [AWS CodePipeline](https://aws.amazon.com/codepipeline/)
+ [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)

 **Video terkait:** 
+ [AWS re:Invent 2022 - Tata kelola dan kepatuhan proaktif untuk beban kerja AWS](https://youtu.be/PpUnH9Y52X0?si=82wff87KHXcc6nbT)
+ [AWS re:Invent 2020: Capai kepatuhan sebagai kode dengan menggunakan AWS Config](https://youtu.be/m8vTwvbzOfw?si=my4DP0FLq1zwKjho)
+ [ Kelola dan Deploy Konfigurasi Aplikasi dengan AWS AppConfig](https://youtu.be/ztIxMY3IIu0?si=ovYGsxWOBysyQrg0)

# OPS05-BP04 Menggunakan sistem manajemen build dan deployment
<a name="ops_dev_integ_build_mgmt_sys"></a>

 Gunakan sistem manajemen build dan deployment. Sistem ini mengurangi kesalahan yang disebabkan oleh proses manual dan meminimalkan tingkat upaya untuk melakukan deployment perubahan. 

 Di AWS, Anda dapat membangun pipeline integrasi berkelanjutan dan deployment berkelanjutan (CI/CD) dengan menggunakan layanan-layanan seperti [Alat Developer AWS](https://aws.amazon.com/products/developer-tools/) (misalnya [AWS CodeBuild](https://aws.amazon.com/codebuild/), [AWS CodePipeline](https://aws.amazon.com/codepipeline/), dan [AWS CodeDeploy](https://aws.amazon.com/codedeploy/)). 

 **Hasil yang diinginkan:** Sistem manajemen build dan deployment Anda mendukung sistem integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) yang ada di organisasi Anda yang menyediakan kemampuan-kemampuan untuk mengotomatisasi peluncuran yang aman dengan konfigurasi yang benar. 

 **Anti-pola umum:** 
+  Setelah menyusun kode Anda pada sistem pengembangan, Anda menyalin file yang dapat dieksekusi ke sistem produksi namun file tersebut gagal memulai. File log lokal mengindikasikan bahwa kegagalan tersebut dikarenakan terjadinya kehilangan dependensi. 
+  Anda berhasil membangun aplikasi Anda dengan fitur-fitur baru pada lingkungan pengembangan Anda dan memberikan kodenya ke tim jaminan kualitas (QA). Kode tersebut gagal dalam pengujian QA karena ada aset statis yang hilang. 
+  Pada hari Jumat, setelah melakukan upaya keras, Anda berhasil membangun aplikasi Anda secara manual di lingkungan pengembangan Anda termasuk fitur-fitur yang baru Anda kodekan. Pada hari Senin, Anda tidak dapat mengulangi langkah-langkah yang membuat Anda berhasil membangun aplikasi tersebut. 
+  Anda melakukan pengujian yang telah Anda siapkan untuk rilisan baru Anda. Kemudian Anda menghabiskan minggu selanjutnya untuk mempersiapkan lingkungan pengujian dan melakukan seluruh pengujian integrasi yang ada sekarang disusul dengan pengujian kinerja. Kode baru tersebut ternyata memiliki dampak kinerja yang tidak dapat diterima dan harus dikembangkan ulang dan kemudian diuji ulang. 

 **Manfaat menerapkan praktik terbaik ini:** Dengan menyediakan mekanisme untuk mengatasi aktivitas build dan deployment, Anda mengurangi upaya yang diperlukan untuk melakukan tugas-tugas berulang, membebaskan anggota tim Anda untuk fokus pada tugas-tugas kreatif mereka yang berharga, serta mengurangi terjadinya kesalahan akibat pelaksanaan prosedur yang dilakukan secara manual. 

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

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

 Sistem manajemen build dan deployment digunakan untuk melacak dan mengimplementasikan perubahan, mengurangi kesalahan yang disebabkan oleh proses yang dilakukan secara manual, dan mengurangi upaya yang diperlukan untuk melakukan deployment dengan aman. Lakukan otomatisasi sepenuhnya terhadap pipeline integrasi dan deployment dari check-in kode hingga build, pengujian, deployment, dan validasi. Hal ini akan mempersingkat waktu tunggu (lead time), mengurangi biaya, mendorong peningkatan frekuensi perubahan, mengurangi tingkat upaya, dan meningkatkan kolaborasi. 

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

![\[Diagram yang menunjukkan pipeline CI/CD menggunakan AWS CodePipeline dan layanan terkait\]](http://docs.aws.amazon.com/id_id/wellarchitected/latest/framework/images/deployment-pipeline-tooling.png)


 

1.  Gunakan sistem kontrol versi untuk menyimpan dan mengelola aset (seperti dokumen, kode sumber, dan file biner). 

1.  Gunakan CodeBuild untuk mengompilasikan kode sumber Anda, menjalankan pengujian unit, dan menghasilkan artefak yang siap untuk di-deploy. 

1.  Gunakan CodeDeploy sebagai sebuah layanan deployment yang mengotomatiskan deployment aplikasi ke instans [Amazon EC2](https://aws.amazon.com/ec2/), instans on-premise, [fungsi AWS Lambda nirserver](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html), atau [Amazon ECS](https://aws.amazon.com/ecs/). 

1.  Pantau deployment Anda. 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS06-BP04 Mengotomatiskan pengujian dan rollback](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **Dokumen terkait:** 
+  [Alat Pengembang AWS](https://aws.amazon.com/products/developer-tools/) 
+  [Apa itu AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+ [AWS CodeBuild](https://aws.amazon.com/codebuild/)
+  [Apa itu AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **Video terkait:** 
+ [AWS re:Invent 2022 - Praktik terbaik AWS Well-Architected untuk DevOps di AWS](https://youtu.be/hfXokRAyorA)

# OPS05-BP05 Melakukan manajemen patch
<a name="ops_dev_integ_patch_mgmt"></a>

 Lakukan manajemen patch untuk mendapatkan fitur, menangani permasalahan, dan menjaga kepatuhan terhadap tata kelola. Otomatiskan manajemen patch untuk mengurangi kesalahan yang disebabkan oleh proses manual, menskalakan, dan mengurangi upaya untuk melakukan patch. 

 Manajemen patch dan kerentanan adalah bagian dari aktivitas manajemen manfaat dan risiko Anda. Lebih baik Anda memiliki infrastruktur tetap dan melakukan deployment beban kerja pada status yang diketahui baik dan terverifikasi. Jika tidak memungkinkan, opsi yang tersisa ialah menerapkan patching. 

 [AWS Health](https://aws.amazon.com/premiumsupport/technology/aws-health/) adalah sumber informasi otoritatif tentang peristiwa siklus hidup yang direncanakan dan peristiwa lain yang memerlukan tindakan yang memengaruhi kesehatan sumber daya AWS Cloud Anda. Anda harus mengetahui perubahan dan pembaruan yang akan datang yang harus dilakukan. Peristiwa siklus hidup utama yang direncanakan dikirim setidaknya enam bulan sebelumnya. 

 [Amazon EC2 Image Builder](https://aws.amazon.com/image-builder/) menyediakan pipeline untuk memperbarui image mesin. Sebagai bagian dari manajemen patch, pertimbangkan [Amazon Machine Image (AMI)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html       ) menggunakan [pipeline image AMI](https://docs.aws.amazon.com/imagebuilder/latest/userguide/start-build-image-pipeline.html) atau image kontainer dengan [pipeline citra Docker](https://docs.aws.amazon.com/imagebuilder/latest/userguide/start-build-container-pipeline.html), sedangkan AWS Lambda menyediakan pola untuk [runtime kustom dan pustaka patch](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-custom.html) untuk menghilangkan kerentanan. 

 Anda harus mengelola pembaruan untuk [Amazon Machine Images](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) untuk citra Linux atau Windows Server menggunakan [Amazon EC2 Image Builder](https://aws.amazon.com/image-builder/). Anda dapat menggunakan [Amazon Elastic Container Registry (Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)) dengan pipeline yang ada sekarang untuk mengelola citra Amazon ECS dan mengelola citra Amazon EKS. Lambda menyertakan [fitur manajemen versi](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html). 

 Patching tidak boleh dilakukan pada sistem produksi tanpa mengujinya terlebih dahulu di sebuah lingkungan yang aman. Patch hanya bisa diterapkan jika mendukung hasil operasi atau bisnis. Pada AWS, Anda dapat menggunakan [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) untuk mengotomatiskan proses patching sistem terkelola dan menjadwalkan aktivitas menggunakan [Systems Manager Maintenance Windows](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html). 

 **Hasil yang diinginkan:** Citra AMI dan kontainer Anda diberikan patch, diperbarui, dan siap diluncurkan. Anda dapat melacak status dari semua citra yang di-deploy dan mengetahui kepatuhan patch. Anda dapat melaporkan status saat ini dan memiliki proses untuk memenuhi kebutuhan-kebutuhan kepatuhan Anda. 

 **Anti-pola umum:** 
+  Anda diberi tugas untuk menerapkan semua patch keamanan baru dalam waktu dua jam yang menyebabkan terjadinya beberapa kali pemadaman akibat ketidaksesuaian aplikasi dengan patch. 
+  Pustaka yang tidak di-patch dapat menimbulkan konsekuensi yang tidak dinginkan karena pihak yang tidak diketahui memanfaatkan kerentanan di dalamnya untuk mengakses beban kerja Anda. 
+  Anda melakukan patching pada lingkungan pengembangan secara otomatis tanpa memberikan notifikasi kepada developer. Anda menerima beberapa keluhan dari pengembang bahwa lingkungan mereka tidak lagi beroperasi sesuai dengan yang diharapkan. 
+  Anda belum menerapkan patch pada perangkat lunak komersial siap pakai di sebuah instans tetap. Ketika Anda mengalami masalah pada perangkat lunak dan menghubungi vendornya, Anda diberi tahu bahwa versi tersebut tidak didukung dan Anda harus melakukan patching pada tingkat tertentu untuk menerima bantuan. 
+  Patch yang baru-baru ini dirilis untuk perangkat lunak enkripsi yang Anda gunakan memiliki peningkatan performa yang signifikan. Sistem Anda yang tidak di-patching tetap memiliki masalah performa akibat tidak dilakukannya patching. 
+  Anda mendapatkan notifikasi tentang kerentanan zero-day yang memerlukan perbaikan darurat dan Anda harus menerapkan patching pada semua lingkungan Anda secara manual. 
+  Anda tidak mengetahui tindakan krusial yang diperlukan untuk memelihara sumber daya Anda, seperti pembaruan versi wajib, karena Anda tidak meninjau peristiwa siklus hidup terencana mendatang dan informasi lainnya. Anda kehilangan waktu krusial untuk perencanaan dan pelaksanaan, sehingga mengakibatkan perubahan darurat untuk tim Anda dan potensi dampak atau waktu henti yang tidak terduga. 

 **Manfaat menerapkan praktik terbaik ini:** Dengan menjalankan proses manajemen patching, termasuk kriteria Anda untuk patching dan metodologi untuk distribusi ke seluruh lingkungan Anda, Anda dapat menskalakan dan melaporkan tingkat patching Anda. Ini memberikan jaminan seputar patching keamanan dan memastikan visibilitas yang jelas tentang status perbaikan yang diketahui yang sekarang sedang dilakukan. Hal ini mendorong adopsi fitur dan kemampuan yang diinginkan, penyingkiran masalah secara cepat, dan kepatuhan yang berkelanjutan terhadap tata kelola. Implementasikan sistem manajemen dan otomatisasi patching untuk mengurangi tingkat upaya untuk men-deploy patch dan mengurangi kesalahan yang disebabkan oleh proses yang dilakukan secara manual. 

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

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

 Lakukan patching pada sistem untuk menyelesaikan masalah, untuk mendapatkan fitur atau kemampuan yang diinginkan, dan untuk tetap patuh terhadap kebijakan tata kelola serta persyaratan dukungan vendor. Pada sistem tetap, lakukan deployment dengan rangkaian patching yang sesuai untuk mencapai hasil yang diinginkan. Lakukan otomatisasi mekanisme manajemen patching untuk mengurangi waktu yang telah berlalu untuk melakukan patching, untuk mencegah kesalahan yang disebabkan oleh proses manual, dan mengurangi upaya dalam melakukan patching. 

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

 Untuk Amazon EC2 Image Builder: 

1.  Dengan menggunakan Amazon EC2 Image Builder, tentukan detail pipeline: 

   1.  Buatlah sebuah pipeline citra dan beri nama 

   1.  Tentukan jadwal pipeline dan zona waktu 

   1.  Konfigurasikan dependensi apa pun 

1.  Pilih resep: 

   1.  Pilih resep yang sudah ada atau buat resep baru 

   1.  Pilih jenis citra 

   1.  Beri nama dan versi resep Anda 

   1.  Pilih citra dasar Anda 

   1.  Tambahkan komponen build dan tambahkan ke registri target 

1.  Opsional - tentukan konfigurasi infrastruktur Anda. 

1.  Opsional - tentukan pengaturan konfigurasi. 

1.  Tinjau pengaturan. 

1.  Pertahankan kebersihan resep secara teratur. 

 Untuk Systems Manager Patch Manager: 

1.  Buat acuan dasar patch. 

1.  Pilih metode operasi patching. 

1.  Aktifkan pelaporan dan pemindaian kepatuhan. 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS06-BP04 Mengotomatiskan pengujian dan rollback](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **Dokumen terkait:** 
+ [ Apa itu Amazon EC2 Image Builder ](https://docs.aws.amazon.com/imagebuilder/latest/userguide/what-is-image-builder.html)
+ [ Buat pipeline citra dengan menggunakan Amazon EC2 Image Builder ](https://docs.aws.amazon.com/imagebuilder/latest/userguide/start-build-image-pipeline.html)
+ [ Buat pipeline citra kontainer ](https://docs.aws.amazon.com/imagebuilder/latest/userguide/start-build-container-pipeline.html)
+  [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 
+ [ Menggunakan Patch Manager ](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-console.html)
+ [ Menggunakan laporan kepatuhan patch ](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-compliance-reports.html)
+ [Alat Developer AWS](https://aws.amazon.com/products/developer-tools)

 **Video terkait:** 
+  [CI/CD untuk Aplikasi Nirserver di AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
+  [Mendesain dengan Mempertimbangkan Operasional](https://youtu.be/uh19jfW7hw4) 

   **Contoh terkait:** 
+ [Tutorial AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager-tutorials.html)

# OPS05-BP06 Bagikan standar desain
<a name="ops_dev_integ_share_design_stds"></a>

 Bagikan praktik terbaik kepada seluruh tim untuk meningkatkan kesadaran dan memaksimalkan manfaat dari upaya-upaya pengembangan. Dokumentasikan dan jaga agar hal ini selalu mutakhir seiring perkembangan yang terjadi pada arsitektur Anda. Jika standar bersama telah diterapkan di dalam organisasi Anda, tersedianya mekanisme merupakan hal yang sangat penting untuk meminta penambahan, perubahan, dan pengecualian terhadap standar. Tanpa opsi ini, standar akan menjadi penghambat inovasi. 

 **Hasil yang diinginkan:** Standar desain dibagikan ke semua tim yang ada dalam organisasi Anda. Mereka didokumentasikan dan disimpan up-to-date sebagai praktik terbaik berkembang. 

 **Anti-pola umum:** 
+ Dua tim pengembangan masing-masing telah membuat sebuah layanan autentikasi pengguna. Pengguna Anda harus mempertahankan rangkaian kredensial terpisah untuk masing-masing bagian sistem yang ingin diakses. 
+ Setiap tim mengelola infrastruktur mereka sendiri. Persyaratan kepatuhan baru memaksakan penerapan sebuah perubahan pada infrastruktur Anda dan setiap tim mengimplementasikannya dengan cara yang berbeda.

 **Manfaat menerapkan praktik terbaik ini:** Penggunaan standar bersama akan mendukung adopsi praktik terbaik dan memaksimalkan manfaat dari upaya-upaya pengembangan yang dilakukan. Mendokumentasikan dan memperbarui standar desain membuat organisasi Anda tetap up-to-date dengan praktik terbaik serta persyaratan keamanan dan kepatuhan. 

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

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

 Berbagi praktik terbaik, standar desain, daftar periksa, prosedur operasi, panduan, dan persyaratan tata kelola yang ada sekarang dengan semua tim. Buatlah prosedur-prosedur untuk meminta perubahan, penambahan, dan pengecualian standar desain untuk mendukung peningkatan dan inovasi. Buat tim mengetahui tentang konten yang dipublikasikan. Memiliki mekanisme untuk menjaga standar desain up-to-date saat praktik terbaik baru muncul. 

 **Contoh pelanggan** 

 AnyCompany Retail memiliki tim arsitektur lintas fungsi yang menciptakan pola arsitektur perangkat lunak. Tim ini membangun arsitektur dengan kepatuhan dan tata kelola bawaan. Tim yang mengadopsi standar bersama ini mendapatkan manfaat dari memiliki kepatuhan dan tata kelola bawaan. Mereka dapat membangun di atas standar desain dengan cepat. Tim arsitektur mengadakan pertemuan setiap tiga bulan untuk mengevaluasi pola-pola arsitektur dan melakukan pembaruan, jika perlu. 

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

1.  Identifikasikan sebuah tim lintas fungsi yang memegang kepemilikan atas pengembangan dan pembaruan standar desain. Tim ini harus bekerja sama dengan para pemangku kepentingan yang ada di seluruh organisasi Anda untuk mengembangkan standar desain, standar operasi, daftar periksa, panduan, dan persyaratan tata kelola. Dokumentasikan standar desain dan bagikan dalam organisasi Anda. 

   1.  [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html) dapat digunakan untuk membuat portofolio yang mewakili standar desain dengan menggunakan infrastruktur sebagai kode. Anda dapat berbagi portofolio dengan semua akun. 

1.  Miliki mekanisme untuk menjaga standar desain up-to-date karena praktik terbaik baru diidentifikasi. 

1.  Jika standar desain diterapkan secara terpusat, Anda harus memiliki proses untuk meminta perubahan, pembaruan, dan pengecualian. 

 **Tingkat upaya untuk rencana implementasi:** Sedang. Untuk mengembangkan sebuah proses untuk membuat dan berbagi standar desain mungkin diperlukan kerja sama dan koordinasi dengan para pemangku kepentingan yang ada di seluruh organisasi Anda. 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS01-BP03 Mengevaluasi persyaratan tata kelola](ops_priorities_governance_reqs.md) - Persyaratan tata kelola memengaruhi standar desain. 
+  [OPS01-BP04 Evaluasi persyaratan kepatuhan](ops_priorities_compliance_reqs.md) - Kepatuhan adalah input penting dalam membuat standar desain. 
+  [OPS07-BP02 Memastikan peninjauan yang konsisten terkait kesiapan operasional](ops_ready_to_support_const_orr.md) - Daftar periksa kesiapan operasional merupakan sebuah mekanisme untuk mengimplementasikan standar desain ketika Anda merancang desain beban kerja Anda. 
+  [OPS11-BP01 Buatlah suatu proses untuk peningkatan berkelanjutan](ops_evolve_ops_process_cont_imp.md) - Memperbarui standar desain merupakan bagian dari peningkatan berkelanjutan. 
+  [OPS11-BP04 Melakukan manajemen pengetahuan](ops_evolve_ops_knowledge_management.md) - Sebagai bagian dari praktik manajemen pengetahuan Anda, dokumentasikan dan bagikan standar desain. 

 **Dokumen terkait:** 
+ [Otomatiskan AWS Backup s dengan AWS Service Catalog](https://aws.amazon.com/blogs/mt/automate-aws-backups-with-aws-service-catalog/)
+ [AWS Service Catalog Akun Factory-Enhanced](https://aws.amazon.com/blogs/mt/aws-service-catalog-account-factory-enhanced/)
+ [Bagaimana Expedia Group membangun Database as a Service (DBaaS) menawarkan menggunakan AWS Service Catalog](https://aws.amazon.com/blogs/mt/how-expedia-group-built-database-as-a-service-dbaas-offering-using-aws-service-catalog/)
+ [ Mempertahankan visibilitas tentang penggunaan pola-pola arsitektur cloud ](https://aws.amazon.com/blogs/architecture/maintain-visibility-over-the-use-of-cloud-architecture-patterns/)
+ [Sederhanakan berbagi AWS Service Catalog portofolio Anda dalam pengaturan AWS Organizations](https://aws.amazon.com/blogs/mt/simplify-sharing-your-aws-service-catalog-portfolios-in-an-aws-organizations-setup/)

 **Video terkait:** 
+ [AWS Service Catalog — Memulai](https://www.youtube.com/watch?v=A9kKy6WhqVA)
+ [AWS re:invent 2020: Kelola AWS Service Catalog portofolio Anda seperti seorang ahli](https://www.youtube.com/watch?v=lVfXkWHAtR8)

 **Contoh terkait:** 
+ [AWS Service Catalog Arsitektur Referensi](https://github.com/aws-samples/aws-service-catalog-reference-architectures)
+ [AWS Service Catalog Lokakarya](https://catalog.us-east-1.prod.workshops.aws/workshops/d40750d7-a330-49be-9945-cde864610de9/en-US)

 **Layanan terkait:** 
+  [AWS Service Catalog](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/introduction.html) 

# OPS05-BP07 Mengimplementasikan praktik untuk meningkatkan kualitas kode
<a name="ops_dev_integ_code_quality"></a>

 Implementasikan praktik untuk meningkatkan kualitas kode dan meminimalkan kecacatan. Beberapa contohnya termasuk, pengembangan yang didorong pengujian, peninjauan kode, pengadopsian standar, dan pemrograman berpasangan. Sertakan praktik-praktik ini ke dalam integrasi berkelanjutan dan proses penyampaian hasil Anda. 

 **Hasil yang diinginkan:** Organisasi Anda menggunakan praktik-praktik terbaik seperti peninjauan kode atau pemrograman berpasangan untuk meningkatkan kualitas kode. Pengembang dan operator mengadopsi praktik-praktik terbaik dalam kualitas kode sebagai bagian dari siklus hidup pengembangan perangkat lunak. 

 **Anti-pola umum:** 
+  Anda mempercayakan kode ke cabang utama aplikasi tanpa peninjauan kode. Perubahan otomatis melakukan deployment ke lingkungan produksi dan menyebabkan penghentian produksi. 
+  Aplikasi baru dikembangkan tanpa melakukan pengujian integrasi, unit, atau pengujian menyeluruh. Tidak ada cara untuk menguji aplikasi sebelum deployment. 
+  Tim Anda membuat perubahan-perubahan manual pada lingkungan produksi untuk mengatasi kecacatan. Perubahan tidak melalui proses pengujian atau peninjauan kode dan tidak direkam atau dicatat log-nya melalui proses penyampaian hasil dan integrasi berkelanjutan. 

 **Manfaat menerapkan praktik terbaik ini:** Dengan mengadopsi praktik-praktik untuk meningkatkan kualitas kode, Anda dapat membantu meminimalkan masalah-masalah yang terjadi di lingkungan produksi. Praktik-praktik terbaik kualitas kode mencakup pemrograman berpasangan, tinjauan kode, dan implementasi alat-alat produktivitas AI. 

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

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

 Implementasikan praktik-praktik untuk meningkatkan kualitas kode guna meminimalkan terjadinya kecacatan sebelum dilakukan deployment terhadapnya. Gunakan praktik-praktik, misalnya pengembangan berbasis pengujian, peninjauan kode, dan pemrograman berpasangan, untuk meningkatkan kualitas pengembangan Anda. 

 Gunakan kekuatan AI generatif dengan Amazon Q Developer untuk meningkatkan produktivitas pengembang dan kualitas kode Anda. Amazon Q Developer menyertakan pembuatan saran kode (berdasarkan model bahasa besar), produksi pengujian unit (termasuk kondisi batas), dan peningkatan keamanan kode melalui deteksi dan perbaikan kerentanan keamanan. 

 **Contoh pelanggan** 

 AnyCompany Retail mengadopsi beberapa praktik untuk meningkatkan kualitas kode. Mereka telah mengadopsi pengembangan berbasis pengujian sebagai standar untuk menulis aplikasi. Untuk beberapa fitur baru, pengembang mereka akan memasangkan program menjadi satu saat proses sprint. Setiap permintaan penarikan (pull request) akan melewati peninjauan kode oleh pengembang senior sebelum diintegrasikan dan dilakukan deployment. 

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

1.  Adopsi praktik-praktik kualitas kode, misalnya praktik pengembangan berbasis pengujian, peninjauan kode, dan pemrograman berpasangan, ke dalam proses penyampaian hasil dan integrasi berkelanjutan Anda. Gunakan teknik-teknik ini untuk meningkatkan kualitas perangkat lunak. 

   1.  Gunakan [Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/what-is.html), sebuah alat AI generatif yang dapat membantu Anda membuat kasus pengujian unit (termasuk ketentuan batas), yang dapat menghasilkan fungsi menggunakan kode dan komentar, menerapkan algoritme terkenal, mendeteksi pelanggaran kebijakan keamanan dan kerentanan dalam kode Anda, mendeteksi rahasia, memindai infrastruktur sebagai kode (IaC), kode dokumen, dan mempelajari pustaka kode pihak ketiga dengan lebih cepat. 

   1.  [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) dapat memberikan rekomendasi pemrograman untuk kode Python dan Java menggunakan machine learning. 

 **Tingkat upaya untuk rencana implementasi:** Sedang. Ada banyak cara untuk mengimplementasikan praktik-praktik terbaik ini, tetapi membuat organisasi mau mengadopsinya mungkin akan menjadi hal yang sulit. 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS05-BP02 Menguji dan memvalidasi perubahan](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_test_val_chg.html) 
+  [OPS05-BP06 Membagikan standar desain](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_share_design_stds.html) 

 **Dokumen terkait:** 
+  [Adopsi pendekatan pengembangan berbasis pengujian](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html) 
+  [Mengakselerasi Siklus Hidup Pengembangan Perangkat Lunak Anda dengan Amazon Q](https://aws.amazon.com/blogs/devops/accelerate-your-software-development-lifecycle-with-amazon-q/) 
+  [Amazon Q Developer, sekarang tersedia secara umum, menyertakan pratinjau kemampuan-kemampuan baru untuk menata kembali pengalaman pengembang](https://aws.amazon.com/blogs/aws/amazon-q-developer-now-generally-available-includes-new-capabilities-to-reimagine-developer-experience/) 
+  [Lembar Cheat Utama untuk Menggunakan Amazon Q Developer di IDE Anda](https://community.aws/content/2eYoqeFRqaVnk900emsknDfzhfW/the-ultimate-cheat-sheet-for-using-amazon-q-developer-in-your-ide) 
+  [Beban kerja Shift-Left, memanfaatkan AI untuk Pembuatan Uji](https://community.aws/content/2gBZtC94gPzaCQRnt4P0rIYWuBx/shift-left-workload-leveraging-ai-for-test-creation) 
+  [Pusat Amazon Q Developer](https://aws.amazon.com/developer/generative-ai/amazon-q/) 
+  [10 cara untuk membangun aplikasi lebih cepat dengan menggunakan Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/10-ways-to-build-applications-faster-with-amazon-codewhisperer/) 
+  [Melihat melampaui cakupan kode dengan Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/looking-beyond-code-coverage-with-amazon-codewhisperer/) 
+  [Praktik Terbaik untuk Rekayasa Perintah dengan Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/best-practices-for-prompt-engineering-with-amazon-codewhisperer/) 
+  [Panduan Perangkat Lunak Tangkas](https://martinfowler.com/agile.html) 
+  [Pipeline CI/CD adalah pemandu utama rilisan saya](https://aws.amazon.com/builders-library/cicd-pipeline/) 
+  [Lakukan otomatisasi peninjauan kode dengan Amazon CodeGuru Reviewer](https://aws.amazon.com/blogs/devops/automate-code-reviews-with-amazon-codeguru-reviewer/) 
+  [Adopsi pendekatan pengembangan berbasis pengujian](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html) 
+  [Bagaimana DevFactory membangun aplikasi yang lebih baik dengan Amazon CodeGuru](https://aws.amazon.com/blogs/machine-learning/how-devfactory-builds-better-applications-with-amazon-codeguru/) 
+  [Tentang Pemrograman Berpasangan](https://martinfowler.com/articles/on-pair-programming.html) 
+  [RENGA Inc. mengotomatiskan peninjauan kode dengan Amazon CodeGuru](https://aws.amazon.com/blogs/machine-learning/renga-inc-automates-code-reviews-with-amazon-codeguru/) 
+  [Seni Pengembangan Tangkas: Pengembangan yang Didorong Pengujian](http://www.jamesshore.com/v2/books/aoad1/test_driven_development) 
+  [Mengapa peninjauan kode itu penting (dan sesungguhnya menghemat waktu\$1)](https://www.atlassian.com/agile/software-development/code-reviews) 

 **Video terkait:** 
+  [Menerapkan API dengan Amazon Q Developer Agent untuk Pengembangan Perangkat Lunak](https://www.youtube.com/watch?v=U4XEvJUvff4) 
+  [Menginstal, Mengonfigurasi, & Menggunakan Amazon Q Developer dengan JetBrains IDE (Cara)](https://www.youtube.com/watch?v=-iQfIhTA4J0) 
+  [Menguasai seni Amazon CodeWhisperer - Daftar putar YouTube](https://www.youtube.com/playlist?list=PLDqi6CuDzubxzL-yIqgQb9UbbceYdKhpK) 
+  [AWS re:Invent 2020: Peningkatan berkelanjutan kualitas kode dengan Amazon CodeGuru](https://www.youtube.com/watch?v=iX1i35H1OVw) 
+  [AWS Summit ANZ 2021 - Mendorong strategi yang mengutamakan pengujian dengan CDK dan pengembangan yang didorong pengujian](https://www.youtube.com/watch?v=1R7G_wcyd3s) 

 **Layanan terkait:** 
+  [Amazon Q Developer](https://aws.amazon.com/q/developer/) 
+  [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) 
+  [Amazon CodeGuru Profiler](https://docs.aws.amazon.com/codeguru/latest/profiler-ug/what-is-codeguru-profiler.html) 

# OPS05-BP08 Menggunakan beberapa lingkungan
<a name="ops_dev_integ_multi_env"></a>

 Gunakan beberapa lingkungan untuk bereksperimen, mengembangkan, dan menguji beban kerja Anda. Gunakan tingkat kontrol berjenjang seiring lingkungan mendekati tahap produksi untuk mendapatkan keyakinan bahwa beban kerja Anda beroperasi sesuai keinginan ketika di-deploy. 

 **Hasil yang diinginkan:** Anda memiliki beberapa lingkungan yang mencerminkan kebutuhan-kebutuhan kepatuhan dan tata kelola Anda. Anda menguji dan mempromosikan kode melalui lingkungan-lingkungan yang ada di jalur Anda menuju produksi. 

1.  Organisasi Anda melakukan hal ini melalui pembentukan zona landasan, yang menyediakan tata kelola, kontrol, otomatisasi akun, jaringan, keamanan, dan observabilitas operasional. Kelola kemampuan zona landasan ini menggunakan beberapa lingkungan. Contoh umumnya adalah organisasi sandbox untuk mengembangkan dan menguji perubahan pada zona landasan berbasis [AWS Control Tower](https://aws.amazon.com/controltower/), yang mencakup [AWS IAM Identity Center](https://aws.amazon.com/iam/identity-center/) dan kebijakan seperti [kebijakan kontrol layanan (SCP](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)). Semua elemen ini dapat secara signifikan memengaruhi akses dan pengoperasian Akun AWS di dalam zona landasan. 

1.  Selain layanan ini, tim Anda memperluas kemampuan zona landasan dengan solusi yang diterbitkan oleh AWS dan partner AWS atau sebagai solusi kustom yang dikembangkan dalam organisasi Anda. Contoh solusi yang diterbitkan oleh AWS termasuk [Customizations for AWS Control Tower (CfCT)](https://aws.amazon.com/solutions/implementations/customizations-for-aws-control-tower/) dan [AWS Control Tower Account Factory for Terraform](https://docs.aws.amazon.com/controltower/latest/userguide/aft-overview.html) (AFT). 

1.  Organisasi Anda menerapkan prinsip pengujian, promosi kode, dan perubahan kebijakan yang sama untuk zona landasan di semua lingkungan dalam jalur Anda menuju produksi. Strategi ini menyediakan lingkungan zona landasan yang stabil dan aman untuk tim aplikasi dan beban kerja Anda. 

 **Anti-pola umum:** 
+  Anda sedang melakukan pengembangan di sebuah lingkungan pengembangan bersama dan pengembang lain menimpa perubahan kode Anda. 
+  Kontrol keamanan terbatas di lingkungan pengembangan bersama Anda melarang Anda untuk melakukan eksperimen dengan layanan dan fitur baru. 
+  Anda melakukan pengujian beban pada sistem produksi Anda dan menyebabkan terjadinya pemadaman (outage) terhadap pengguna Anda. 
+  Kesalahan fatal yang menyebabkan hilangnya data terjadi di lingkungan produksi. Di lingkungan produksi, Anda mencoba membuat ulang kondisi yang menyebabkan data hilang tersebut sehingga Anda dapat mengidentifikasi bagaimana hal tersebut bisa terjadi dan mencegahnya agar tidak terjadi kembali. Untuk mencegah kejadian hilang data lainnya selama proses pengujian, Anda terpaksa menjadikan aplikasi tidak tersedia untuk pengguna. 
+  Anda mengoperasikan layanan multi-tenant dan tidak dapat mendukung permintaan lingkungan khusus yang diajukan oleh pelanggan. 
+  Anda mungkin tidak selalu melakukan pengujian, tetapi ketika Anda melakukannya, Anda melakukan pengujian tersebut di lingkungan produksi. 
+  Anda percaya bahwa dengan satu lingkungan tunggal, cakupan dampak perubahannya hanya terjadi di dalam lingkungan tersebut. 
+  Anda meningkatkan kemampuan zona landasan penting, tetapi perubahan tersebut mengganggu kemampuan tim Anda untuk menyediakan akun bagi proyek baru atau beban kerja yang sudah ada. 
+  Anda menerapkan kontrol baru pada Akun AWS Anda, tetapi perubahan tersebut memengaruhi kemampuan tim beban kerja Anda untuk menerapkan perubahan di dalam Akun AWS mereka. 

 **Manfaat menjalankan praktik terbaik ini:** Saat Anda melakukan deployment beberapa lingkungan, Anda dapat mendukung beberapa lingkungan pengembangan, pengujian, dan produksi secara serentak tanpa menimbulkan konflik di antara developer atau komunitas pengguna. Untuk kemampuan kompleks seperti zona landasan, hal ini secara signifikan mengurangi risiko perubahan, menyederhanakan proses perbaikan, dan mengurangi risiko pembaruan penting terhadap lingkungan. Organisasi yang menggunakan zona landasan secara otomatis mendapatkan manfaat dari penggunaan strategi multi-akun di lingkungan AWS mereka, dengan struktur akun, tata kelola, jaringan, dan konfigurasi keamanan. Seiring organisasi Anda berkembang dari waktu ke waktu, zona landasan dapat berevolusi untuk mengamankan serta mengatur beban kerja dan sumber daya Anda. 

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

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

 Gunakan beberapa lingkungan dan sediakan lingkungan sandbox pengembang yang memiliki kontrol minimum untuk membantu eksperimen. Sediakan lingkungan pengembangan individu untuk membantu melakukan pekerjaan secara paralel, sehingga ketangkasan pengembangan akan meningkat. Implementasikan kontrol yang lebih kuat di lingkungan tersebut ketika mendekati produksi agar pengembang dapat membuat inovasi. Gunakan infrastruktur sebagai kode dan sistem manajemen konfigurasi untuk men-deploy lingkungan yang dikonfigurasi sesuai dengan kontrol yang ada di dalam lingkungan produksi guna memastikan sistem beroperasi sesuai keinginan saat di-deploy. Saat lingkungan tidak digunakan, nonaktifkan lingkungan tersebut untuk menghindari timbulnya biaya-biaya terkait sumber daya tidak terpakai (misalnya sistem pengembangan di malam hari dan di akhir pekan). Deploy lingkungan setara produksi saat melakukan pengujian beban untuk meningkatkan hasil yang valid. 

 Tim seperti rekayasa platform, jaringan, dan operasi keamanan sering mengelola kemampuan di tingkat organisasi dengan persyaratan yang berbeda. Pemisahan akun saja tidak cukup untuk menyediakan dan memelihara lingkungan terpisah untuk eksperimen, pengembangan, dan pengujian. Dalam kasus seperti itu, buat instans AWS Organizations terpisah. 

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

 **Dokumen terkait:** 
+ [ Penjadwal Instans di AWS](https://aws.amazon.com/solutions/implementations/instance-scheduler-on-aws/)
+  [Apa itu AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+ [ Mengatur Lingkungan AWS Anda Menggunakan Beberapa Akun - Beberapa organisasi - Uji perubahan pada lingkungan AWS Anda secara keseluruhan ](https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/multiple-organizations.html#test-changes-to-your-overall-aws-environment)
+ [Panduan AWS Control Tower](https://catalog.workshops.aws/control-tower)

# OPS05-BP09 Lakukan perubahan yang sering, kecil, dan reversibel
<a name="ops_dev_integ_freq_sm_rev_chg"></a>

 Gunakan perubahan yang sering, kecil, dan dapat dikembalikan untuk mengurangi cakupan perubahan. Ketika digunakan bersamaan dengan sistem manajemen perubahan, sistem manajemen konfigurasi, dan sistem build serta pengiriman, perubahan yang sering, kecil, dan dapat dikembalikan dapat mengurangi cakupan dan dampak perubahan. Hal ini menghasilkan pemecahan masalah yang lebih efektif dan remediasi yang lebih cepat dengan opsi untuk membatalkan perubahan. 

 **Anti-pola umum:** 
+  Anda melakukan deployment versi baru aplikasi Anda setiap tiga bulan sekali dengan periode perubahan yang mengharuskan layanan inti dinonaktifkan. 
+  Anda sering kali membuat perubahan pada skema basis data Anda tanpa melacak perubahan dalam sistem manajemen Anda terlebih dahulu. 
+  Anda melakukan pembaruan secara manual di tempat, menimpa instalasi dan konfigurasi yang ada, dan tidak memiliki rencana roll-back yang jelas. 

 **Manfaat menerapkan praktik terbaik ini:** Upaya pengembangan akan menjadi lebih cepat dengan menerapkan perubahan kecil dalam frekuensi yang rapat. Ketika perubahan itu berukuran kecil, perubahan tersebut akan jauh lebih mudah diidentifikasi jika terdapat konsekuensi yang tidak diinginkan, serta lebih mudah untuk dikembalikan. Ketika perubahan dapat dikembalikan, risiko implementasi perubahan menjadi lebih kecil karena pemulihannya lebih mudah diterapkan. Proses perubahan memiliki risiko yang lebih kecil dan dampak kegagalan perubahan menjadi berkurang. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan:** Rendah 

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

 Gunakan perubahan yang sering, kecil, dan dapat dikembalikan untuk mengurangi cakupan dan dampak yang ditimbulkan perubahan tersebut. Hal ini akan memudahkan Anda dalam melakukan pemecahan masalah, membantu proses remediasi yang lebih cepat, dan menyediakan opsi untuk membatalkan perubahan. Hal ini juga akan meningkatkan rasio nilai yang dapat Anda berikan ke bisnis. 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS05-BP03 Menggunakan sistem manajemen konfigurasi](ops_dev_integ_conf_mgmt_sys.md) 
+  [OPS05-BP04 Menggunakan sistem manajemen build dan deployment](ops_dev_integ_build_mgmt_sys.md) 
+  [OPS06-BP04 Mengotomatiskan pengujian dan rollback](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **Dokumen terkait:** 
+ [Menerapkan Layanan Mikro pada AWS](https://docs.aws.amazon.com/whitepapers/latest/microservices-on-aws/microservices-on-aws.html)
+ [ Layanan Mikro - Observabilitas ](https://docs.aws.amazon.com/whitepapers/latest/microservices-on-aws/observability.html)

# OPS05-BP10 Mengotomatiskan integrasi dan deployment sepenuhnya
<a name="ops_dev_integ_auto_integ_deploy"></a>

 Otomatiskan build, deployment, dan pengujian beban kerja. Hal ini mengurangi kesalahan yang disebabkan oleh proses manual, dan mengurangi upaya untuk melakukan deployment perubahan. 

 Terapkan metadata menggunakan [Tag Sumber Daya](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html) dan [AWS Resource Groups](https://docs.aws.amazon.com/ARG/latest/APIReference/Welcome.html) sesuai [strategi penandaan](https://aws.amazon.com/answers/account-management/aws-tagging-strategies/) yang konsisten untuk mencapai identifikasi sumber daya Anda. Berikan tag pada sumber daya Anda untuk organisasi, akuntansi biaya, kontrol akses, dan penargetan pelaksanaan aktivitas operasi yang diotomatiskan. 

 **Hasil yang diinginkan:** Pengembang menggunakan alat untuk mengirimkan kode dan mencapai produksi. Pengembang tidak harus masuk log in ke dalam Konsol Manajemen AWS untuk memberikan pembaruan. Terdapat jejak audit penuh untuk perubahan dan konfigurasi, sehingga hal itu cukup untuk memenuhi kebutuhan tata kelola dan kepatuhan. Proses dapat diulang dan distandardisasi di seluruh tim. Pengembang bebas untuk memusatkan perhatian pada pengembangan dan pendorongan kode, sehingga akan meningkatkan produktivitas. 

 **Anti-pola umum:** 
+  Pada hari Jumat, Anda selesai menulis kode baru untuk cabang fitur Anda. Pada hari Senin, setelah menjalankan skrip pengujian kualitas kode dan setiap skrip pengujian unit, Anda mendaftarkan kode tersebut untuk rilisan terjadwal berikutnya. 
+  Anda ditugaskan untuk membuat kode perbaikan untuk sebuah masalah besar yang dapat memengaruhi banyak pelanggan di lingkungan produksi. Setelah menguji perbaikan tersebut, Anda melakukan commit terhadap kode Anda dan mengirimkan manajemen perubahan melalui email untuk meminta persetujuan deployment ke lingkungan produksi. 
+  Sebagai pengembang, Anda masuk log in ke Konsol Manajemen AWS untuk membuat sebuah lingkungan pengembangan baru dengan menggunakan metode dan sistem yang tidak standar. 

 **Manfaat menerapkan praktik terbaik ini:** Dengan mengimplementasikan sistem manajemen build dan deployment otomatis, Anda dapat mengurangi kesalahan yang disebabkan proses yang diselesaikan secara manual dan mengurangi upaya yang diperlukan untuk melakukan deployment perubahan, sehingga akan membantu anggota tim Anda berkonsentrasi untuk menghadirkan nilai bisnis. Anda meningkatkan kecepatan pengiriman selama proses menuju lingkungan produksi. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan:** Rendah 

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

 Anda menggunakan sistem manajemen build dan deployment untuk melacak dan mengimplementasikan perubahan, mengurangi kesalahan yang disebabkan oleh proses yang diselesaikan secara manual, dan mengurangi upaya yang diperlukan. Lakukan otomatisasi sepenuhnya terhadap pipeline integrasi dan deployment dari check-in kode hingga build, pengujian, deployment, dan validasi. Hal ini dapat mengurangi waktu tunggu, mendorong peningkatan frekuensi perubahan, mengurangi tingkat upaya, meningkatkan kecepatan masuk pasar, menghasilkan peningkatan produktivitas, dan meningkatkan keamanan kode Anda selama proses Anda menuju lingkungan produksi. 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS05-BP03 Menggunakan sistem manajemen konfigurasi](ops_dev_integ_conf_mgmt_sys.md) 
+  [OPS05-BP04 Menggunakan sistem manajemen build dan deployment](ops_dev_integ_build_mgmt_sys.md) 

 **Dokumen terkait:** 
+  [Apa itu AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+  [Apa itu AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **Video terkait:** 
+ [AWS re:Invent 2022 - Praktik terbaik AWS Well-Architected untuk DevOps di AWS](https://youtu.be/hfXokRAyorA)

# OPS 6. Bagaimana cara memitigasi risiko deployment?
<a name="ops-06"></a>

 Adopsi pendekatan yang memberikan umpan balik cepat atas kualitas dan mencapai pemulihan cepat dari perubahan yang tidak memiliki hasil yang tidak diinginkan. Menggunakan praktik tersebut akan memitigasi dampak masalah akibat deployment perubahan. 

**Topics**
+ [

# OPS06-BP01 Rencana untuk perubahan yang gagal
](ops_mit_deploy_risks_plan_for_unsucessful_changes.md)
+ [

# OPS06-BP02 Uji penerapan
](ops_mit_deploy_risks_test_val_chg.md)
+ [

# OPS06-BP03 Menggunakan strategi deployment yang aman
](ops_mit_deploy_risks_deploy_mgmt_sys.md)
+ [

# OPS06-BP04 Mengotomatiskan pengujian dan rollback
](ops_mit_deploy_risks_auto_testing_and_rollback.md)

# OPS06-BP01 Rencana untuk perubahan yang gagal
<a name="ops_mit_deploy_risks_plan_for_unsucessful_changes"></a>

Rencanakan untuk kembali ke keadaan yang diketahui pasti baik, atau perbaiki di lingkungan produksi jika deployment menyebabkan hasil yang tidak diinginkan. Adanya kebijakan untuk menetapkan rencana semacam ini bermanfaat bagi semua tim dalam mengembangkan strategi untuk pulih dari perubahan yang gagal. Beberapa contoh strategi adalah langkah deployment dan rollback, kebijakan perubahan, penanda fitur, pemisahan lalu lintas, dan pergeseran lalu lintas. Rilis tunggal dapat mencakup beberapa perubahan komponen yang terkait. Strategi harus memberikan kemampuan untuk bertahan atau pulih dari kegagalan perubahan komponen apa pun.

 **Hasil yang diinginkan:** Anda telah menyiapkan sebuah rencana pemulihan yang mendetail untuk perubahan Anda apabila perubahan tersebut tidak berhasil. Selain itu, Anda juga telah mengurangi ukuran rilis untuk meminimalkan dampak-dampak potensial yang mungkin ditimbulkan terhadap komponen beban kerja lainnya. Hasilnya, Anda telah mengurangi dampak bisnis Anda dengan mempersingkat potensi waktu henti yang mungkin diakibatkan oleh kegagalan perubahan dan meningkatkan fleksibilitas serta efisiensi waktu pemulihan. 

 **Anti-pola umum:** 
+  Anda melakukan deployment dan aplikasi Anda menjadi tidak stabil, namun sepertinya masih ada pengguna yang aktif di sistem. Anda harus memutuskan apakah akan melakukan roll back terhadap perubahan yang akan berdampak pada pengguna aktif atau menunggu untuk melakukan roll back perubahan tersebut karena tahu bagaimana pun juga pengguna dapat terkena dampaknya. 
+  Setelah Anda membuat perubahan rutin, lingkungan baru Anda dapat diakses tetapi salah satu subnet Anda menjadi tidak dapat dijangkau. Anda harus memutuskan apakah akan melakukan roll back terhadap semuanya atau mencoba memperbaiki subnet yang tidak dapat diakses tersebut. Sementara Anda sedang memutuskan hal ini, subnet tersebut tetap tidak dapat dijangkau. 
+  Sistem Anda tidak dirancang dapat diperbarui dengan rilis-rilis yang lebih kecil. Akibatnya, Anda mengalami kesulitan dalam membatalkan perubahan massal tersebut selama deployment yang gagal. 
+  Anda tidak menggunakan infrastruktur sebagai kode (IaC) dan Anda melakukan pembaruan secara manual pada infrastruktur Anda sehingga mengakibatkan terjadinya konfigurasi yang tidak diinginkan. Anda tidak dapat melacak dan membatalkan perubahan manual secara efektif. 
+  Karena Anda belum mengukur peningkatan frekuensi deployment Anda, tim Anda kemudian mengalami kesulitan untuk mengurangi ukuran perubahan mereka dan meningkatkan rencana rollback mereka untuk setiap perubahan, yang berimbas pada risiko yang lebih besar dan tingkat kegagalan yang meningkat. 
+  Anda tidak mengukur total durasi pemadaman (outage) yang disebabkan oleh perubahan yang tidak berhasil. Tim Anda tidak dapat memprioritaskan dan meningkatkan proses deployment serta efektivitas rencana pemulihannya. 

 **Manfaat membangun praktik terbaik ini:** Memiliki rencana untuk pulih dari perubahan yang gagal meminimalkan waktu rata-rata untuk memulihkan (MTTR) dan mengurangi dampak bisnis Anda. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan:** Tinggi 

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

 Kebijakan dan praktik yang konsisten serta terdokumentasi yang diadopsi oleh tim rilis akan memungkinkan organisasi untuk merencanakan apa yang seharusnya terjadi apabila terjadi kegagalan perubahan. Kebijakan tersebut harus memungkinkan perbaikan ke depan (fixing forward) dalam keadaan tertentu. Dalam situasi apa pun, rencana perbaikan ke depan atau rollback harus didokumentasikan dan diuji dengan baik sebelum melakukan deployment ke lingkungan produksi langsung sehingga waktu yang diperlukan untuk mengembalikan perubahan dapat diminimalkan. 

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

1.  Buatlah dokumentasi kebijakan yang mengharuskan tim memiliki rencana efektif untuk mengembalikan perubahan dalam periode tertentu. 

   1.  Kebijakan harus menentukan kapan situasi perbaikan ke depan diperbolehkan. 

   1.  Rencana rollback yang terdokumentasi harus dapat diakses oleh semua pihak yang terlibat. 

   1.  Tentukan persyaratan-persyaratan untuk rollback (misalnya, ketika ternyata ada deployment perubahan tidak sah). 

1.  Lakukan analisis terhadap tingkat dampak yang ditimbulkan oleh semua perubahan yang berkaitan dengan setiap komponen dari sebuah beban kerja. 

   1.  Buatlah perubahan-perubahan berulang memungkinkan untuk distandardisasi, dijadikan templat, dan diotorisasi di awal jika perubahan-perubahan tersebut mengikuti alur kerja yang konsisten yang memberlakukan kebijakan perubahan. 

   1.  Kurangi potensi dampak yang mungkin ditimbulkan oleh setiap perubahan dengan menjadikan ukuran perubahan lebih kecil sehingga waktu pemulihan yang dibutuhkan menjadi lebih singkat dan menyebabkan lebih sedikit dampak bisnis. 

   1.  Pastikan prosedur rollback akan mengembalikan kode ke keadaan yang pasti baik untuk menghindari terjadinya insiden, jika memungkinkan. 

1.  Integrasikan alat-alat dan alur kerja untuk menegakkan kebijakan Anda secara terprogram. 

1.  Buat agar data tentang perubahan dapat dilihat oleh para pemilik beban kerja lain untuk meningkatkan kecepatan diagnosis perubahan yang gagal yang tidak dapat dibatalkan. 

   1.  Ukur keberhasilan praktik ini dengan menggunakan data perubahan yang terlihat dan identifikasi setiap peningkatan iteratif yang mungkin dilakukan. 

1.  Gunakan alat-alat pemantauan untuk memverifikasi keberhasilan atau kegagalan sebuah deployment untuk mempercepat pengambilan keputusan saat melakukan rollback. 

1.  Ukur durasi pemadaman (outage) Anda selama terjadi kegagalan perubahan untuk terus meningkatkan kualitas rencana pemulihan Anda. 

 **Tingkat upaya untuk rencana implementasi:** Sedang 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS06-BP04 Mengotomatiskan pengujian dan rollback](ops_mit_deploy_risks_auto_testing_and_rollback.md) 

 **Dokumen terkait:** 
+ [AWS Builders Library \$1 Memastikan Keamanan Rollback Selama Penerapan](https://aws.amazon.com/builders-library/ensuring-rollback-safety-during-deployments/)
+ [AWS Whitepaper \$1 Ubah Manajemen di Cloud](https://docs.aws.amazon.com/whitepapers/latest/change-management-in-the-cloud/change-management-in-the-cloud.html)

 **Video terkait:** 
+ [ re:Invent 2019 \$1 Pendekatan Amazon untuk deployment ketersediaan tinggi ](https://aws.amazon.com/builders-library/amazon-approach-to-high-availability-deployment/)

# OPS06-BP02 Uji penerapan
<a name="ops_mit_deploy_risks_test_val_chg"></a>

 Uji prosedur rilis dalam tahap praproduksi dengan menggunakan konfigurasi deployment, kontrol keamanan, langkah, dan prosedur yang sama seperti dalam tahap produksi. Lakukan validasi bahwa semua langkah yang di-deploy selesai sesuai harapan, seperti dengan memeriksa file, konfigurasi, dan layanan. Uji lebih lanjut semua perubahan dengan pengujian fungsional, integrasi, dan beban, beserta pemantauan apa pun seperti pemeriksaan kondisi. Dengan melakukan pengujian ini, Anda dapat mengidentifikasi masalah deployment lebih awal dengan peluang untuk merencanakan dan menanggulanginya sebelum produksi. 

 Anda dapat membuat lingkungan paralel sementara untuk menguji setiap perubahan. Lakukan otomatisasi deployment lingkungan pengujian dengan menggunakan infrastruktur sebagai kode (IaC) untuk membantu mengurangi jumlah pekerjaan yang terlibat dan memastikan stabilitas, konsistensi, dan pengiriman fitur yang lebih cepat. 

 **Hasil yang diinginkan:** Organisasi Anda mengadopsi budaya pengembangan berbasis pengujian yang mencakup pengujian deployment. Ini akan memastikan bahwa tim akan berkonsentrasi untuk menghadirkan nilai bisnis, bukan mengelola rilis. Tim terlibat sejak dini setelah identifikasi risiko deployment untuk menentukan arah mitigasi yang sesuai. 

 **Anti-pola umum:** 
+  Selama rilis produksi, deployment yang belum teruji sering kali akan menyebabkan masalah-masalah yang memerlukan penyelesaian dan eskalasi. 
+  Rilis Anda berisi infrastruktur sebagai kode (IaC) yang memperbarui sumber daya yang ada sekarang. Anda tidak yakin apakah IaC berjalan dengan sukses atau akan menyebabkan dampak pada sumber daya. 
+  Anda men-deploy sebuah fitur baru ke aplikasi Anda. Fitur tersebut tidak berfungsi sesuai keinginan dan masalah ini baru dapat diketahui setelah dilaporkan oleh para pengguna yang terdampak. 
+  Anda memperbarui sertifikat Anda. Anda secara tidak sengaja menginstal sertifikat ke komponen-komponen yang salah, yang akhirnya tidak terdeteksi dan berdampak pada pengunjung situs web karena koneksi yang aman ke situs web tidak dapat dibuat. 

 **Manfaat menerapkan praktik terbaik ini:** Pengujian ekstensif selama tahap pra-produksi dalam prosedur deployment serta perubahan-perubahan yang dimunculkannya dapat meminimalkan potensi dampak yang mungkin dapat ditimbulkan terhadap lingkungan produksi yang disebabkan oleh langkah-langkah deployment. Hal ini akan meningkatkan kepercayaan diri selama rilis produksi dan meminimalkan dukungan operasional tanpa memperlambat kecepatan penyampaian perubahan yang hendak dilakukan. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan:** Tinggi 

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

 Menguji proses deployment Anda sama pentingnya dengan menguji perubahan yang dihasilkan dari deployment Anda. Hal ini dapat dicapai dengan menguji langkah-langkah deployment Anda di lingkungan pra-produksi yang semaksimal mungkin mencerminkan produksi. Masalah-masalah umum, seperti langkah-langkah deployment yang tidak lengkap atau salah, atau kesalahan konfigurasi, dapat terdeteksi sebelum masuk ke lingkungan produksi. Selain itu, Anda dapat menguji langkah-langkah pemulihan Anda. 

 **Contoh pelanggan** 

 Sebagai bagian dari pipeline continuous integration and continuous delivery (CI/CD), AnyCompany Retail melakukan langkah-langkah yang ditentukan yang diperlukan untuk merilis pembaruan infrastruktur dan perangkat lunak bagi pelanggannya dalam lingkungan seperti produksi. Pipeline tersebut terdiri dari langkah pra-pemeriksaan untuk mendeteksi penyimpangan (mendeteksi perubahan pada sumber daya yang dilakukan di luar IaC Anda) di dalam sumber daya sebelum deployment, serta melakukan validasi terhadap tindakan-tindakan yang dilakukan IaC setelah inisiasi. Tahap ini memvalidasi langkah-langkah deployment, seperti memverifikasi bahwa file dan konfigurasi tertentu sudah siap dan layanan-layanan sudah berada dalam status berjalan serta merespons dengan benar pemeriksaan kondisi pada host lokal sebelum didaftarkan ulang dengan penyeimbang beban. Selain itu, semua perubahan menandai sejumlah pengujian otomatis, misalnya pengujian fungsional, keamanan, regresi, integrasi, dan beban. 

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

1.  Lakukan pemeriksaan pra-instalasi untuk mencerminkan lingkungan pra-produksi ke lingkungan produksi. 

   1.  Gunakan [deteksi drift](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html) untuk mendeteksi kapan sumber daya telah diubah di luar. CloudFormation

   1.  Gunakan [set perubahan](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html) untuk memvalidasi bahwa maksud pembaruan tumpukan cocok dengan tindakan yang CloudFormation dilakukan saat set perubahan dimulai. 

1.  Ini akan memicu langkah persetujuan manual di [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/approvals.html) untuk mengotorisasi deployment ke lingkungan pra-produksi. 

1.  Gunakan konfigurasi penerapan seperti [AWS CodeDeploy AppSpec](https://docs.aws.amazon.com/codedeploy/latest/userguide/application-specification-files.html)file untuk menentukan langkah penerapan dan validasi. 

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

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

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

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

1.  Validasi yang berhasil terhadap langkah-langkah sebelumnya seharusnya menginisiasi alur kerja persetujuan manual untuk memberikan otorisasi deployment ke produksi. 

 **Tingkat upaya untuk rencana implementasi:** Tinggi 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS05-BP02 Menguji dan memvalidasi perubahan](ops_dev_integ_test_val_chg.md) 

 **Dokumen terkait:** 
+ [AWS Perpustakaan Pembangun \$1 Mengotomatiskan penerapan yang aman dan lepas tangan \$1 Uji Penerapan](https://aws.amazon.com/builders-library/automating-safe-hands-off-deployments/#Test_deployments_in_pre-production_environments)
+ [AWS Whitepaper \$1 Mempraktikkan Integrasi Berkelanjutan dan Pengiriman Berkelanjutan AWS](https://docs.aws.amazon.com/whitepapers/latest/practicing-continuous-integration-continuous-delivery/testing-stages-in-continuous-integration-and-continuous-delivery.html)
+ [ Kisah Apollo - Mesin Deployment Amazon ](https://www.allthingsdistributed.com/2014/11/apollo-amazon-deployment-engine.html)
+  [Cara menguji dan men-debug AWS CodeDeploy secara lokal sebelum Anda mengirimkan kode Anda](https://aws.amazon.com/blogs/devops/how-to-test-and-debug-aws-codedeploy-locally-before-you-ship-your-code/) 
+ [ Mengintegrasikan Pengujian Konektivitas Jaringan dengan Deployment Infrastruktur ](https://aws.amazon.com/blogs/networking-and-content-delivery/integrating-network-connectivity-testing-with-infrastructure-deployment/)

 **Video terkait:** 
+ [ re:Invent 2020 \$1 Menguji perangkat lunak dan sistem di Amazon ](https://www.youtube.com/watch?v=o1sc3cK9bMU)

 **Contoh terkait:** 
+ [Tutorial \$1 Menyebarkan dan ECS layanan Amazon dengan tes validasi](https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorial-ecs-deployment-with-hooks.html)

# 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-mekanisme inspeksi untuk memvalidasi hasil yang diinginkan dan membatasi ruang lingkup dampak yang ditimbulkan oleh cacat apa pun yang disebabkan oleh perubahan atau kegagalan deployment. Peluncuran yang aman dapat mencakup strategi seperti feature-flag, one-box, rolling (rilis canary), immutable, pemisahan lalu lintas, dan deployment blue/green. 

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

 **Anti-pola umum:** 
+  Anda melakukan deployment perubahan yang tidak berhasil ke seluruh lingkungan produksi secara sekaligus. Akibatnya, semua pelanggan merasakan dampaknya secara bersamaan. 
+  Cacat akibat deployment serentak yang dilakukan ke semua sistem memerlukan rilis darurat. Diperlukan waktu beberapa hari untuk memperbaikinya untuk semua pelanggan. 
+  Untuk mengelola rilis produksi diperlukan perencanaan dan partisipasi dari beberapa tim. Hal ini akan menghambat kemampuan Anda untuk melakukan pembaruan fitur bagi pelanggan Anda dalam rentang waktu yang berdekatan (frequent). 
+  Anda melakukan deployment yang dapat diubah dengan melakukan modifikasi terhadap sistem yang sudah ada. Setelah mengetahui bahwa perubahan yang di-deploy tidak berhasil, Anda terpaksa melakukan modifikasi terhadap sistem sekali lagi untuk memulihkan versi yang sebelumnya, dan hal ini memperpanjang waktu pemulihan Anda. 

 **Manfaat menerapkan praktik terbaik ini:** Deployment otomatis menyeimbangkan kecepatan peluncuran (roll-out) dengan menghadirkan perubahan yang bermanfaat secara konsisten kepada para pelanggan. Pembatasan dampak dapat mencegah kegagalan deployment yang mahal dan memaksimalkan kemampuan tim untuk merespons kegagalan tersebut dengan efisien. 

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

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

 Kegagalan pengiriman yang terjadi secara 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-kesalahan deployment, dengan tujuan untuk mencapai nol kegagalan deployment. 

 **Contoh pelanggan** 

 AnyCompany Retail memiliki misi untuk mencapai deployment dengan waktu henti yang minim hingga nol, yang berarti pengguna sama sekali tidak ada merasakan dampak selama deployment. Untuk mencapai tujuan tersebut, perusahaan telah membuat pola-pola deployment (lihat diagram alur kerja berikut), seperti deployment blue/green dan deployment 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/latest/framework/images/deployment-process-ec2.png)  |  ![\[Alur proses deployment untuk Amazon ECS\]](http://docs.aws.amazon.com/id_id/wellarchitected/latest/framework/images/deployment-process-ecs.png)  |  ![\[Alur proses deployment untuk Amazon Lambda\]](http://docs.aws.amazon.com/id_id/wellarchitected/latest/framework/images/deployment-process-lambda.png)  | 

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

1.  Gunakan alur kerja persetujuan untuk memulai urutan langkah-langkah peluncuran (roll-out) produksi setelah promosi ke produksi. 

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

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

1.  Gunakan deployment blue/gree 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) dengan menggunakan Amazon CloudWatch, AWS CloudTrail dan pemberitahuan acara Amazon Simple Notiﬁcation Service (Amazon SNS). 

1.  Lakukan pengujian otomatis pasca-deployment, antara lain pengujian fungsional, keamanan, regresi, integrasi, dan uji beban. 

1.  [Memecahkan](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-praktik terbaik terkait:** 
+  [OPS05-BP02 Menguji dan memvalidasi perubahan](ops_dev_integ_test_val_chg.md) 
+  [OPS05-BP09 Lakukan perubahan yang sering, kecil, dan reversibel](ops_dev_integ_freq_sm_rev_chg.md) 
+  [OPS05-BP10 Mengotomatiskan integrasi dan deployment sepenuhnya](ops_dev_integ_auto_integ_deploy.md) 

 **Dokumen terkait:** 
+ [Pustaka Builder AWS \$1 Melakukan otomatisasi deployment secara aman dan otonom \$1 Deployment produksi ](https://aws.amazon.com/builders-library/automating-safe-hands-off-deployments/?did=ba_card&trk=ba_card#Production_deployments)
+ [AWS Pustaka Builder \$1 Pipeline CI/CD saya adalah pemandu utama 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)
+ [Bekerja dengan konfigurasi deployment di AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html)
+ [Siapkan deployment rilis canary API Gateway ](https://docs.aws.amazon.com/apigateway/latest/developerguide/canary-release.html)
+ [Tipe Deployment Amazon ECS](https://docs.aws.amazon.com/)
+ [Deployment Blue/Green yang Dikelola Sepenuhnya 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.workshops.aws/cdk-cicd-for-lambda-canary-deployment/en-US) 
+ [ Lokakarya \$1 Membangun pipeline Biru/Hijau DevOps pertama Anda dengan Amazon ECS ](https://catalog.us-east-1.prod.workshops.aws/workshops/4b59b9fb-48b6-461c-9377-907b2e33c9df/en-US)
+ [ Lokakarya \$1 Membangun pipeline Biru/Hijau DevOps pertama Anda dengan Amazon EKS ](https://catalog.us-east-1.prod.workshops.aws/workshops/4eab6682-09b2-43e5-93d4-1f58fd6cff6e/en-US)
+ [ Lokakarya \$1 EKS GitOps dengan ArgoCD ](https://catalog.workshops.aws/eksgitops-argocd-githubactions)
+ [ Lokakarya \$1 CI/CD di Lokakarya AWS](https://catalog.workshops.aws/cicdonaws/en-US)
+ [ Mengimplementasikan CI/CD lintas akun dengan AWS SAM untuk fungsi Lambda berbasis kontainer](https://aws.amazon.com/blogs/compute/implementing-cross-account-cicd-with-aws-sam-for-container-based-lambda/)

# OPS06-BP04 Mengotomatiskan pengujian dan rollback
<a name="ops_mit_deploy_risks_auto_testing_and_rollback"></a>

 Untuk meningkatkan kecepatan, keandalan, dan keyakinan pada proses deployment Anda, miliki strategi untuk kemampuan pengujian dan rollback otomatis di lingkungan praproduksi dan produksi. Otomatiskan pengujian saat melakukan deployment ke produksi untuk menyimulasikan interaksi manusia dan sistem yang memverifikasi perubahan yang sedang di-deploy. Otomatiskan rollback untuk kembali ke keadaan pasti baik sebelumnya dengan cepat. Rollback harus dimulai secara otomatis pada kondisi yang telah ditentukan di awal seperti ketika hasil perubahan yang Anda inginkan tidak tercapai atau ketika pengujian otomatis mengalami kegagalan. Mengotomatiskan kedua aktivitas ini dapat memperbaiki tingkat keberhasilan untuk deployment Anda, meminimalkan waktu pemulihan, dan mengurangi potensi dampak terhadap bisnis. 

 **Hasil yang diinginkan:** Strategi-strategi pengujian dan rollback otomatis Anda diintegrasikan ke dalam pipeline integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) Anda. Pemantauan Anda dapat melakukan validasi berdasarkan kriteria keberhasilan Anda dan memulai rollback otomatis setelah terjadi kegagalan. Hal ini akan meminimalkan dampak apa pun yang terjadi terhadap pelanggan dan pengguna akhir. Misalnya, ketika semua hasil pengujian telah terpenuhi, Anda meneruskan kode Anda ke lingkungan produksi tempat pengujian regresi otomatis dimulai, dengan memanfaatkan kasus-kasus pengujian yang sama. Jika hasil pengujian regresi yang didapatkan tidak sesuai dengan harapan, maka rollback otomatis akan dimulai dalam alur kerja pipeline. 

 **Anti-pola umum:** 
+  Sistem Anda tidak dirancang dapat diperbarui dengan rilis-rilis yang lebih kecil. Akibatnya, Anda mengalami kesulitan dalam membatalkan perubahan massal tersebut selama deployment yang gagal. 
+  Proses deployment Anda terdiri dari serangkaian langkah-langkah manual. Setelah melakukan deployment perubahan ke beban kerja, Anda mulai melakukan pengujian pasca-deployment. Setelah pengujian selesai, Anda menyadari bahwa beban kerja Anda tidak dapat dioperasikan dan koneksi pelanggan terputus. Kemudian Anda mulai melakukan rollback ke versi sebelumnya. Semua langkah manual ini dapat menghambat pemulihan sistem secara keseluruhan dan akan menyebabkan dampak yang berkepanjangan terhadap pelanggan Anda. 
+  Anda menghabiskan waktu mengembangkan kasus-kasus pengujian otomatis untuk fungsionalitas yang jarang digunakan dalam aplikasi Anda, sehingga memperkecil laba atas investasi (roi) dalam kemampuan pengujian otomatis Anda. 
+  Rilis Anda terdiri dari aplikasi, infrastruktur, patch, dan pembaruan konfigurasi yang tidak bergantung satu sama lain. Namun demikian, Anda memiliki satu pipeline CI/CD yang mengirimkan semua perubahan dalam satu waktu sekaligus. Kegagalan yang terjadi pada satu komponen memaksa Anda untuk mengembalikan semua perubahan, dan membuat rollback Anda menjadi kompleks dan tidak efisien. 
+  Tim Anda menyelesaikan tugas-tugas coding dalam sprint one dan memulai tugas sprint two, tetapi rencana Anda tidak menyertakan pengujian sampai sprint three. Akibatnya, pengujian-pengujian otomatis mengungkap cacat dari sprint one yang harus diselesaikan sebelum pengujian hasil kerja sprint two dapat dimulai dan seluruh rilis menjadi tertunda, sehingga menurunkan nilai pengujian otomatis Anda. 
+  Kasus pengujian regresi otomatis Anda untuk rilis produksi sudah selesai, tetapi Anda tidak memantau kondisi beban kerja. Karena Anda tidak memiliki visibilitas mengenai apakah layanan telah dimulai ulang atau belum, Anda menjadi tidak yakin apakah rollback diperlukan atau rollback sudah terjadi. 

 **Manfaat menerapkan praktik terbaik ini:** Pengujian otomatis meningkatkan transparansi proses pengujian Anda dan kemampuan Anda untuk mencakup lebih banyak fitur dalam satu periode waktu yang lebih singkat. Dengan melakukan pengujian dan validasi terhadap perubahan-perubahan dalam produksi, Anda dapat mengidentifikasi masalah dengan cepat. Peningkatan konsistensi dengan alat-alat pengujian otomatis memungkinkan deteksi kecacatan yang lebih baik. Dengan melakukan rollback otomatis ke versi sebelumnya, dampak-dampak yang ditimbulkan terhadap para pelanggan diminimalkan. Rollback otomatis pada akhirnya akan memunculkan keyakinan yang lebih tinggi pada kemampuan deployment Anda dengan mengurangi dampak bisnis. Secara keseluruhan, kemampuan ini berkurang time-to-delivery sambil memastikan kualitas. 

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

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

 Lakukan otomatisasi terhadap pengujian lingkungan yang di-deploy untuk mengonfirmasi hasil-hasil yang diinginkan dengan lebih cepat. Lakukan otomatisasi terhadap rollback ke keadaan yang diketahui baik sebelumnya ketika hasil yang ditetapkan di awal tidak tercapai, untuk mempersingkat waktu pemulihan dan mengurangi kesalahan yang disebabkan oleh proses-proses yang dilakukan secara manual. Integrasikan alat-alat pengujian dengan alur kerja pipeline Anda untuk menguji dan meminimalkan input manual secara konsisten. Prioritaskan otomatisasi kasus pengujian, seperti kasus pengujian yang memitigasi risiko terbesar dan kasus pengujian yang harus sering diuji dengan setiap perubahan. Selain itu, otomatiskan rollback berdasarkan kondisi tertentu yang telah ditentukan sebelumnya di awal dalam rencana pengujian Anda. 

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

1.  Bangun sebuah siklus hidup pengujian untuk siklus hidup pengembangan Anda yang menentukan setiap tahap proses pengujian mulai dari perencanaan persyaratan hingga pengembangan kasus pengujian, konfigurasi alat, pengujian otomatis, dan penutupan kasus pengujian. 

   1.  Buatlah sebuah pendekatan pengujian khusus beban kerja dari strategi pengujian Anda secara keseluruhan. 

   1.  Pertimbangkan strategi pengujian berkelanjutan jika diperlukan di seluruh siklus hidup pengembangan. 

1.  Pilih alat-alat otomatis untuk pengujian dan rollback berdasarkan kebutuhan bisnis dan investasi pipeline Anda. 

1.  Tentukan kasus pengujian mana yang ingin Anda otomatisasi dan mana yang harus dilakukan secara manual. Anda dapat menentukannya berdasarkan prioritas nilai bisnis dari fitur yang sedang diuji. Selaraskan semua anggota tim dengan rencana ini dan pastikan pertanggungjawabannya untuk melakukan pengujian manual. 

   1.  Terapkan kemampuan-kemampuan pengujian otomatis ke kasus pengujian tertentu yang cocok untuk otomatisasi, seperti kasus berulang atau yang sering dijalankan, kasus yang memerlukan tugas berulang, atau kasus yang diperlukan di beberapa konfigurasi. 

   1.  Tentukan skrip otomatisasi pengujian serta kriteria keberhasilan di dalam alat otomatisasi sehingga otomatisasi alur kerja yang berkelanjutan dapat dimulai ketika ada kasus tertentu yang mengalami kegagalan. 

   1.  Tentukan kriteria kegagalan khusus untuk melakukan rollback otomatis. 

1.  Prioritaskan otomatisasi pengujian untuk mendorong hasil yang konsisten dengan pengembangan kasus pengujian menyeluruh di mana kompleksitas dan interaksi manusia memiliki risiko kegagalan yang lebih tinggi. 

1.  Integrasikan alat-alat pengujian otomatis dan rollback Anda ke dalam pipeline CI/CD Anda. 

   1.  Kembangkan kriteria keberhasilan yang jelas untuk perubahan Anda. 

   1.  Lakukan pemantauan dan pengamatan untuk mendeteksi kriteria-kriteria ini dan secara otomatis membatalkan perubahan ketika kriteria rollback tertentu terpenuhi. 

1.  Lakukan berbagai jenis pengujian produksi otomatis, seperti: 

   1.  Pengujian A/B untuk menunjukkan hasil yang dibandingkan dengan versi saat ini antara dua kelompok pengujian pengguna. 

   1.  Pengujian canary yang memungkinkan Anda untuk meluncurkan perubahan Anda pada subset pengguna sebelum merilisnya ke semua pengguna. 

   1.  Pengujian penandaan fitur (feature-flag testing) yang memungkinkan satu per satu fitur dari versi baru untuk ditandai atau dihapus tandanya dari luar aplikasi sehingga setiap fitur baru dapat divalidasi satu per satu. 

   1.  Pengujian regresi untuk memverifikasi fungsionalitas baru dengan komponen-komponen yang saling terkait. 

1.  Lakukan pemantauan pada aspek operasional aplikasi, transaksi, dan interaksi dengan aplikasi dan komponen lain. Kembangkan laporan untuk menunjukkan keberhasilan perubahan berdasarkan beban kerja sehingga Anda dapat mengidentifikasi bagian otomatisasi dan alur kerja apa yang dapat dioptimalkan lebih lanjut. 

   1.  Kembangkan laporan hasil pengujian yang membantu Anda mengambil keputusan cepat terkait apakah prosedur rollback perlu diinvokasi. 

   1.  Terapkan sebuah strategi yang dapat memungkinkan rollback otomatis berdasarkan kondisi kegagalan yang telah ditentukan di awal yang dihasilkan dari satu atau beberapa metode pengujian Anda. 

1.  Kembangkan kasus pengujian otomatis untuk memungkinkan penggunaan ulang di seluruh perubahan berulang di masa mendatang. 

 **Tingkat upaya untuk rencana implementasi:** Sedang 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS06-BP01 Rencana untuk perubahan yang gagal](ops_mit_deploy_risks_plan_for_unsucessful_changes.md) 
+  [OPS06-BP02 Uji penerapan](ops_mit_deploy_risks_test_val_chg.md) 

 **Dokumen terkait:** 
+ [AWS Builders Library \$1 Memastikan keamanan rollback selama penerapan](https://aws.amazon.com/builders-library/ensuring-rollback-safety-during-deployments/)
+  [Menerapkan ulang dan mengembalikan penerapan dengan AWS CodeDeploy](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployments-rollback-and-redeploy.html) 
+ [8 praktik terbaik saat mengotomatiskan penerapan Anda dengan AWS CloudFormation](https://aws.amazon.com/blogs/infrastructure-and-automation/best-practices-automating-deployments-with-aws-cloudformation/)

 **Contoh terkait:** 
+ [Pengujian UI tanpa server menggunakan Selenium,, AWS Lambda, dan Alat AWS Fargate Pengembang AWS](https://aws.amazon.com/blogs/devops/using-aws-codepipeline-aws-codebuild-and-aws-lambda-for-serverless-automated-ui-testing/)

 **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)

# OPS 7. Bagaimana cara mengetahui bahwa Anda siap untuk mendukung beban kerja?
<a name="ops-07"></a>

 Evaluasi kesiapan operasional beban kerja, proses, dan prosedur, serta personel Anda untuk memahami risiko operasional terkait beban kerja Anda. 

**Topics**
+ [

# OPS07-BP01 Memastikan kemampuan personel
](ops_ready_to_support_personnel_capability.md)
+ [

# OPS07-BP02 Memastikan peninjauan yang konsisten terkait kesiapan operasional
](ops_ready_to_support_const_orr.md)
+ [

# OPS07-BP03 Menggunakan runbook untuk menjalankan prosedur
](ops_ready_to_support_use_runbooks.md)
+ [

# OPS07-BP04 Menggunakan playbook untuk menyelidiki masalah
](ops_ready_to_support_use_playbooks.md)
+ [

# OPS07-BP05 Membuat keputusan yang tepat untuk melakukan deployment sistem dan perubahan
](ops_ready_to_support_informed_deploy_decisions.md)
+ [

# OPS07-BP06 Membuat rencana dukungan untuk beban kerja produksi
](ops_ready_to_support_enable_support_plans.md)

# OPS07-BP01 Memastikan kemampuan personel
<a name="ops_ready_to_support_personnel_capability"></a>

Miliki mekanisme untuk memvalidasi bahwa Anda memiliki jumlah personel terlatih yang sesuai untuk mendukung beban kerja. Mereka harus diberi pelatihan tentang platform dan layanan yang membentuk beban kerja Anda. Berikan kepada mereka pengetahuan yang diperlukan untuk mengoperasikan beban kerja. Anda harus memiliki cukup banyak personel terlatih untuk mendukung pengoperasian normal beban kerja dan menyelesaikan masalah-masalah terkait insiden yang terjadi. Anda harus memiliki cukup banyak personel sehingga Anda dapat melakukan rotasi untuk personel yang siap tugas mendadak dan personel yang liburan guna menghindari lelah ekstrim pada personel. 

 **Hasil yang diinginkan:** 
+  Ada cukup banyak personel terlatih untuk mendukung beban kerja pada saat beban kerja tersedia. 
+  Anda memberikan pelatihan tentang perangkat lunak dan layanan yang membentuk beban kerja Anda kepada personel. 

 **Anti-pola umum:** 
+ Melakukan deployment beban kerja tanpa anggota tim yang terlatih untuk mengoperasikan platform dan layanan yang digunakan. 
+  Tidak memiliki cukup banyak personel untuk mendukung pelaksanaan rotasi personel yang siap tugas mendadak atau personel yang sedang libur. 

 **Manfaat menjalankan praktik terbaik ini:** 
+  Memiliki anggota tim yang terampil membantu dukungan yang efektif untuk beban kerja. 
+  Dengan cukup banyak anggota tim, Anda dapat mendukung beban kerja dan pelaksanaan rotasi personel yang siap tugas mendadak sekaligus mengurangi risiko personel yang terlalu lelah. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan:** Tinggi 

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

 Pastikan bahwa terdapat personel yang terlatih dengan memadai untuk mendukung beban kerja. Pastikan Anda memiliki jumlah anggota tim yang cukup untuk menangani aktivitas-aktivitas operasional dalam kondisi normal, termasuk pelaksanaan rotasi personel yang siap bertugas mendadak. 

 **Contoh pelanggan** 

 AnyCompany Retail memastikan tim yang mendukung beban kerja memiliki staf yang terlatih dalam jumlah yang sesuai. Mereka memiliki cukup banyak rekayasawan untuk mendukung pelaksanaan rotasi personel yang siap tugas mendadak. Personel mendapatkan pelatihan tentang perangkat lunak dan platform yang merupakan dasar pembangunan beban kerja dan mereka didorong untuk mendapatkan sertifikasi. Ada cukup banyak personel sehingga orang dapat mengambil cuti sambil tetap ada dukungan untuk beban kerja dan rotasi personel yang siap tugas mendadak. 

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

1.  Tetapkan jumlah personel yang memadai untuk mengoperasikan dan mendukung beban kerja Anda, termasuk tugas siap sedia, masalah keamanan, dan peristiwa siklus hidup, seperti tugas akhir dukungan dan rotasi sertifikat. 

1.  Latih personel Anda tentang perangkat lunak dan platform yang membentuk beban kerja Anda. 

   1.  [Pelatihan dan Sertifikasi AWS](https://aws.amazon.com/training/) memiliki pustaka kursus tentang AWS. Kursus-kursus ini disediakan gratis dan berbayar, baik secara online maupun tatap muka. 

   1.  [AWS menyelenggarakan acara dan webinar](https://aws.amazon.com/events/) tempat Anda belajar AWS dari para ahli. 

1. Lakukan tindakan berikut secara rutin. 
   +  Lakukan evaluasi terhadap ukuran dan keterampilan tim seiring perubahan kondisi pengoperasian dan beban kerja. 
   +  Sesuaikan ukuran dan keterampilan tim agar memenuhi persyaratan-persyaratan operasional. 
   +  Periksa kemampuan dan kapasitas untuk [mengatasi peristiwa siklus hidup yang direncanakan](https://docs.aws.amazon.com/health/latest/ug/aws-health-planned-lifecycle-events.html), peristiwa keamanan yang tidak direncanakan, dan notifikasi operasional melalui AWS Health. 

 **Tingkat upaya untuk rencana implementasi:** Tinggi. Mempekerjakan dan melatih tim untuk mendukung beban kerja mengharuskan Anda melakukan upaya yang cukup besar, tetapi hal itu akan memberikan manfaat besar dalam jangka panjang. 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS11-BP04 Melakukan manajemen pengetahuan](ops_evolve_ops_knowledge_management.md) - Anggota tim harus memiliki informasi yang diperlukan untuk mengoperasikan dan mendukung beban kerja. Manajemen pengetahuan merupakan kunci untuk menyediakan informasi tersebut. 

 **Dokumen terkait:** 
+  [Acara dan Webinar AWS](https://aws.amazon.com/events/) 
+  [Pelatihan dan Sertifikasi AWS](https://aws.amazon.com/training/) 

# OPS07-BP02 Memastikan peninjauan yang konsisten terkait kesiapan operasional
<a name="ops_ready_to_support_const_orr"></a>

Gunakan Peninjauan Kesiapan Operasional (ORR) untuk memvalidasi bahwa Anda dapat mengoperasikan beban kerja Anda. ORR adalah sebuah mekanisme yang dikembangkan di Amazon untuk memvalidasi bahwa tim dapat mengoperasikan beban kerja mereka dengan aman. ORR adalah sebuah proses peninjauan dan inspeksi menggunakan daftar periksa persyaratan. ORR adalah sebuah pengalaman layanan mandiri yang digunakan tim untuk memastikan beban kerja mereka. ORR mencakup praktik-praktik terbaik dari pelajaran yang kami dapatkan selama bertahun-tahun membangun perangkat lunak. 

 Daftar periksa ORR terdiri dari rekomendasi berkaitan dengan arsitektur, proses operasional, manajemen peristiwa, dan kualitas rilis. Proses Koreksi Kesalahan (CoE) kami merupakan pendorong utama item-item ini. Analisis pasca-insiden Anda sendiri harus mendorong pengembangan ORR Anda. ORR tidak hanya tentang mengikuti praktik terbaik tapi juga mencegah berulangnya peristiwa yang telah Anda lihat sebelumnya. Terakhir, keamanan, pengelolaan, dan kepatuhan terhadap persyaratan juga dapat disertakan di dalam sebuah ORR. 

 Jalankan ORR sebelum beban kerja meluncur ke ketersediaan umum dan kemudian ke seluruh siklus pengembangan perangkat lunak. Menjalankan ORR sebelum peluncuran dapat meningkatkan kemampuan Anda untuk mengoperasikan beban kerja dengan aman. Jalankan kembali ORR Anda secara berkala pada beban kerja untuk mengetahui penyimpangan dari praktik terbaik. Anda dapat memiliki daftar periksa ORR untuk peluncuran layanan baru dan ORR untuk peninjauan secara berkala. Ini membantu Anda untuk tetap up to date dengan praktik terbaik yang muncul dan menggabungkan pelajaran yang didapatkan dari analisis pasca-insiden. Saat penggunaan cloud Anda sudah matang, Anda dapat membangun persyaratan ORR ke dalam arsitektur Anda secara default. 

 **Hasil yang Diinginkan:** Anda memiliki daftar periksa ORR dengan praktik terbaik untuk organisasi Anda. ORR dilakukan sebelum peluncuran beban kerja. ORR dijalankan secara berkala selama berlangsungnya siklus beban kerja. 

 **Anti-pola umum:** 
+ Anda meluncurkan beban kerja tanpa mengetahui apakah Anda dapat mengoperasikannya atau tidak. 
+ Persyaratan pengelolaan dan keamanan tidak diikutsertakan ketika menjamin peluncuran beban kerja. 
+ Beban kerja tidak dievaluasi kembali secara berkala. 
+ Beban kerja diluncurkan tanpa menerapkan prosedur-prosedur yang diperlukan. 
+ Anda melihat berulangnya kegagalan yang disebabkan akar masalah yang sama di beberapa beban kerja. 

 **Manfaat menjalankan praktik terbaik ini:** 
+  Beban kerja Anda mencakup praktik terbaik dalam hal arsitektur, proses, dan manajemen. 
+  Pelajaran yang didapatkan digabungkan dalam proses ORR. 
+  Prosedur yang diperlukan tersedia ketika beban kerja diluncurkan. 
+  ORR dijalankan di seluruh siklus perangkat lunak beban kerja Anda. 

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

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

 ORR adalah dua hal: proses dan daftar periksa. Proses ORR Anda harus diadopsi oleh organisasi Anda dan didukung oleh seorang sponsor eksekutif. Minimal, ORR harus dilakukan sebelum beban kerja meluncur ke ketersediaan umum. Jalankan ORR di seluruh siklus pengembangan perangkat lunak untuk tetap up to date dengan praktik-praktik terbaik atau persyaratan baru. Daftar periksa ORR harus mencakup item-item konfigurasi, persyaratan keamanan dan pengelolaan, serta praktik terbaik dari organisasi Anda. Seiring waktu, Anda dapat menggunakan layanan-layanan, seperti [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html), [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html), dan [AWS Control TowerGuardrails](https://docs.aws.amazon.com/controltower/latest/userguide/guardrails.html), untuk membangun praktik terbaik dari ORR ke pagar pembatas untuk deteksi otomatis atas praktik terbaik. 

 **Contoh pelanggan** 

 Setelah terjadi beberapa insiden produksi, AnyCompany Retail memutuskan untuk menerapkan proses ORR. Mereka membangun daftar periksa yang terdiri dari praktik terbaik, persyaratan pengelolaan dan kepatuhan, serta pelajaran yang didapatkan dari pemadaman (outage). Beban kerja baru melakukan ORR sebelum diluncurkan. Setiap beban kerja melakukan ORR setiap tahun dengan subset praktik terbaik untuk menggabungkan praktik-praktik terbaik dan persyaratan baru yang ditambahkan ke daftar periksa ORR. Seiring waktu, AnyCompany Retail digunakan [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) untuk mendeteksi beberapa praktik terbaik, mempercepat proses ORR. 

 **Langkah-langkah implementasi** 

 Untuk mempelajari lebih lanjut tentang ORR, baca [laporan resmi Ulasan Kesiapan Operasional (ORR](https://docs.aws.amazon.com/wellarchitected/latest/operational-readiness-reviews/wa-operational-readiness-reviews.html)). Laporan resmi ini menyediakan detail informasi tentang riwayat proses ORR, cara membangun praktik ORR Anda sendiri, dan cara mengembangkan daftar periksa ORR Anda. Langkah-langkah berikut ini merupakan versi singkat dari dokumen tersebut. Untuk pemahaman yang mendalam tentang apa itu ORR dan cara membangunnya, sebaiknya baca laporan resmi tersebut. 

1. Kumpulkan para pemangku kepentingan utama, termasuk para perwakilan dari bagian keamanan, operasi, dan pengembangan. 

1. Minta setiap pemangku kepentingan untuk menyediakan setidaknya satu persyaratan. Untuk iterasi pertama, coba batasi jumlah item menjadi tiga puluh atau kurang. 
   +  [Lampiran B: Contoh pertanyaan ORR](https://docs.aws.amazon.com/wellarchitected/latest/operational-readiness-reviews/appendix-b-example-orr-questions.html) dari laporan resmi Peninjauan Kesiapan Operasional (ORR) yang berisi sampel pertanyaan yang dapat Anda gunakan untuk memulai. 

1. Kumpulkan persyaratan Anda ke dalam lembar kerja. 
   + Anda dapat menggunakan [lensa khusus](https://docs.aws.amazon.com/wellarchitected/latest/userguide/lenses-custom.html) di [AWS Well-Architected Tool](https://console.aws.amazon.com/wellarchiected/) untuk mengembangkan ORR Anda dan membagikannya di seluruh akun dan Organisasi AWS Anda. 

1. Identifikasi satu beban kerja untuk diberikan ORR. Idealnya adalah beban kerja sebelum peluncuran atau beban kerja internal. 

1. Pelajari daftar periksa ORR dan catat semua penemuan yang dibuat. Penemuannya mungkin akan dapat diterima jika terdapat mitigasi. Untuk penemuan yang tidak memiliki mitigasi, tambahkan beban kerja ke backlog item Anda dan implementasikan sebelum peluncuran. 

1. Seiring waktu, lanjutkan penambahan praktik terbaik dan persyaratan ke daftar periksa ORR Anda. 

 Pelanggan Dukungan dengan Dukungan Perusahaan dapat meminta [Lokakarya Tinjauan Kesiapan Operasional](https://aws.amazon.com/premiumsupport/technology-and-programs/proactive-services/) dari Manajer Akun Teknis mereka. Lokakarya ini adalah sesi *kerja mundur* interaktif untuk membuat daftar periksa ORR Anda sendiri. 

 **Tingkat upaya untuk rencana implementasi:** Tinggi. Untuk mengadopsi praktik ORR pada organisasi Anda diperlukan sponsor eksekutif dan dukungan pemangku kepentingan. Buat dan perbarui daftar periksa dengan masukan dari seluruh organisasi Anda. 

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

 **Praktik-praktik terbaik terkait:** 
+ [OPS01-BP03 Mengevaluasi persyaratan tata kelola](ops_priorities_governance_reqs.md) – Persyaratan tata kelola sangat sesuai untuk daftar periksa ORR. 
+ [OPS01-BP04 Evaluasi persyaratan kepatuhan](ops_priorities_compliance_reqs.md) – Terkadang persyaratan kepatuhan tercantum di daftar periksa ORR. Terkadang persyaratan kepatuhan adalah proses yang terpisah. 
+ [OPS03-BP07 Tim sumber daya dengan tepat](ops_org_culture_team_res_appro.md) – Kemampuan tim merupakan kandidat yang bagus untuk persyaratan ORR. 
+ [OPS06-BP01 Rencana untuk perubahan yang gagal](ops_mit_deploy_risks_plan_for_unsucessful_changes.md) – Rencana rollback atau rollforward harus dibuat sebelum Anda meluncurkan beban kerja Anda. 
+ [OPS07-BP01 Memastikan kemampuan personel](ops_ready_to_support_personnel_capability.md) – Untuk mendukung beban kerja, Anda harus memiliki personel yang diperlukan. 
+ [SEC01-BP03 Mengidentifikasi dan memvalidasi tujuan kontrol](https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_securely_operate_control_objectives.html) – Tujuan kontrol keamanan membuat persyaratan ORR yang sangat baik. 
+ [REL13-BP01 Tentukan tujuan pemulihan untuk waktu henti dan kehilangan data](https://docs.aws.amazon.com/wellarchitected/latest/framework/rel_planning_for_recovery_objective_defined_recovery.html) – Rencana pemulihan bencana adalah persyaratan ORR yang baik. 
+ [COST02-BP01 Kembangkan kebijakan berdasarkan persyaratan organisasi Anda](https://docs.aws.amazon.com/wellarchitected/latest/framework/cost_govern_usage_policies.html) – Kebijakan manajemen biaya baik untuk dimasukkan dalam daftar periksa ORR Anda. 

 **Dokumen terkait:** 
+  [AWS Control Tower - Pagar Pembatas di AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/guardrails.html) 
+  [AWS Well-Architected Tool - Lensa Kustom](https://docs.aws.amazon.com/wellarchitected/latest/userguide/lenses-custom.html) 
+  [Templat Peninjauan Kesiapan Operasional oleh Adrian Hornsby](https://medium.com/the-cloud-architect/operational-readiness-review-template-e23a4bfd8d79) 
+  [Laporan Resmi Peninjauan Kesiapan Operasional (ORR)](https://docs.aws.amazon.com/wellarchitected/latest/operational-readiness-reviews/wa-operational-readiness-reviews.html) 

 **Video terkait:** 
+  [AWS Dukungan Anda \$1 Membangun Peninjauan Kesiapan Operasional (ORR) yang Efektif](https://www.youtube.com/watch?v=Keo6zWMQqS8) 

 **Contoh terkait:** 
+  [Sampel Lensa Peninjauan Kesiapan Operasional (ORR)](https://github.com/aws-samples/custom-lens-wa-sample/tree/main/ORR-Lens) 

 **Layanan terkait:** 
+  [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) 
+  [AWS Control Tower](https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html) 
+  [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) 
+  [AWS Well-Architected Tool](https://docs.aws.amazon.com/wellarchitected/latest/userguide/intro.html) 

# OPS07-BP03 Menggunakan runbook untuk menjalankan prosedur
<a name="ops_ready_to_support_use_runbooks"></a>

 *Runbook* adalah sebuah proses terdokumentasi untuk meraih hasil tertentu. Runbook terdiri dari serangkaian langkah yang diikuti seseorang untuk menyelesaikan sesuatu. Runbook telah digunakan dalam operasi sejak masa-masa awal industri penerbangan. Dalam operasi cloud, kita menggunakan runbook untuk mengurangi risiko dan meraih hasil-hasil yang diinginkan. Dalam bentuk paling sederhananya, runbook adalah daftar periksa untuk menyelesaikan tugas. 

 Runbook adalah bagian penting dari operasi beban kerja Anda. Mulai dari pelaksanaan orientasi untuk anggota tim baru hingga melakukan deployment rilis besar, runbook adalah proses terkodifikasi yang dapat memberikan hasil-hasil yang konsisten, siapa pun yang menggunakannya. Runbook harus dipublikasikan di lokasi sentral dan diperbarui seiring berkembangnya proses karena memperbarui runbook adalah komponen utama dari proses manajemen perubahan. Runbook juga harus menyertakan panduan tentang cara menangani kesalahan, alat, izin, pengecualian, dan eskalasi jika terjadi masalah. 

 Saat organisasi Anda matang, mulailah mengotomatiskan runbook. Mulailah dengan runbook yang singkat dan sering kali digunakan. Gunakan bahasa skrip untuk mengotomatiskan langkah-langkah atau mempermudah pelaksanaan langkah-langkah. Seiring Anda mengotomatiskan beberapa runbook pertama, Anda harus mendedikasikan waktu untuk mengotomatiskan runbook yang lebih kompleks. Seiring waktu, sebagian besar runbook Anda harus diotomatiskan dalam cara tertentu. 

 **Hasil yang diinginkan:** Tim Anda memiliki kumpulan panduan langkah demi langkah untuk melakukan tugas-tugas beban kerja. Runbook berisi hasil yang diinginkan, alat dan izin yang diperlukan, serta petunjuk untuk penanganan kesalahan. Runbook disimpan di sebuah lokasi sentral (sistem kontrol versi) dan sering diperbarui. Misalnya, runbook Anda menyediakan kemampuan bagi tim Anda untuk memantau, mengomunikasikan, dan merespons peristiwa AWS Health untuk akun-akun penting selama terjadi alarm aplikasi, masalah operasional, dan peristiwa siklus hidup yang sudah direncanakan. 

 **Anti-pola umum:** 
+  Mengandalkan ingatan untuk menyelesaikan setiap langkah dari suatu proses. 
+  Menerapkan perubahan secara manual tanpa menggunakan daftar periksa. 
+  Anggota tim yang berbeda-beda melakukan proses yang sama, tetapi dengan langkah atau hasil yang berbeda. 
+  Membiarkan runbook tidak selaras dengan perubahan sistem dan otomatisasi. 

 **Manfaat menjalankan praktik terbaik ini:** 
+  Mengurangi tingkat kesalahan untuk tugas-tugas yang dilakukan manual. 
+  Operasi dilakukan secara konsisten. 
+  Anggota tim baru dapat mulai melakukan tugas dengan lebih cepat. 
+  Runbook dapat diotomatiskan untuk mengurangi upaya yang diperlukan. 

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

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

 Runbook dapat memiliki beberapa bentuk, bergantung pada tingkat kematangan organisasi Anda. Minimal, runbook harus terdiri dari dokumen teks langkah demi langkah. Hasil yang diinginkan harus ditunjukkan dengan jelas. Buatlah dokumentasi yang jelas mengenai izin atau alat khusus yang diperlukan. Berikan panduan mendetail tentang cara menangani kesalahan dan cara melakukan eskalasi jika terjadi kesalahan. Cantumkan pemilik runbook dan publikasikan di sebuah lokasi sentral. Setelah runbook Anda didokumentasikan, kemudian validasi dengan meminta orang lain di tim Anda untuk menjalankannya. Seiring berkembangnya prosedur, perbarui runbook Anda sesuai dengan proses manajemen perubahan Anda. 

 Runbook teks Anda harus diotomatiskan seiring semakin matangnya organisasi Anda. Dengan menggunakan layanan-layanan seperti [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html), Anda dapat mentransformasikan teks biasa menjadi otomatisasi yang dapat dijalankan dengan beban kerja Anda. Otomatisasi ini dapat dijalankan sebagai respons terhadap peristiwa, sehingga mengurangi beban operasional untuk memelihara beban kerja Anda. AWS Systems Manager Automation juga menyediakan [pengalaman desain visual](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-visual-designer.html) kode rendah untuk membuat runbook otomatisasi dengan lebih mudah. 

 **Contoh pelanggan** 

 AnyCompany Retail harus melakukan pembaruan skema basis data selama deployment perangkat lunak. Tim Operasi Cloud bekerja sama dengan Tim Administrasi Basis Data untuk membuat sebuah runbook guna menerapkan perubahan ini secara manual. Runbook ini mencantumkan setiap langkah yang ada dalam prosesnya dalam bentuk daftar periksa. Runbook ini berisi sebuah bagian yang menjelaskan cara menangani kesalahan saat terjadi kesalahan. Mereka memublikasikan runbook di wiki internal mereka bersama dengan runbook mereka yang lain. Tim Operasi Cloud berencana untuk mengotomatiskan runbook dalam sprint mendatang. 

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

 Jika Anda belum memiliki repositori dokumen, repositori kontrol versi bisa menjadi tempat yang tepat untuk mulai membangun pustaka runbook Anda. Anda dapat membangun runbook Anda dengan menggunakan Markdown. Kami telah menyediakan contoh templat runbook yang dapat Anda gunakan untuk mulai membangun runbook. 

```
# Runbook Title
## Runbook Info
| Runbook ID | Description | Tools Used | Special Permissions | Runbook Author | Last Updated | Escalation POC | 
|-------|-------|-------|-------|-------|-------|-------|
| RUN001 | What is this runbook for? What is the desired outcome? | Tools | Permissions | Your Name | 2022-09-21 | Escalation Name |
## Steps
1. Step one
2. Step two
```

1.  Jika Anda belum memiliki repositori atau wiki dokumentasi, buatlah repositori kontrol versi baru di sistem kontrol versi Anda. 

1.  Identifikasi proses yang tidak memiliki runbook. Proses yang ideal adalah proses yang dilakukan secara semi-reguler, sedikit jumlah langkahnya, dan memiliki kegagalan yang dampaknya rendah. 

1.  Di repositori dokumen Anda, buat draf dokumen Markdown baru dengan menggunakan templat tersebut. Isi Judul Runbook dan bidang-bidang yang wajib diisi di bawah Info Runbook. 

1.  Dimulai dengan langkah pertama, isi bagian Langkah-langkah dalam runbook. 

1.  Berikan runbook kepada anggota tim. Minta mereka menggunakan runbook ini untuk memvalidasi langkah-langkahnya. Jika ada sesuatu yang belum dimasukkan atau memerlukan kejelasan, perbarui runbook ini. 

1.  Publikasikan runbook ini ke bagian penyimpanan dokumentasi internal Anda. Setelah dipublikasikan, beri tahu tim Anda dan para pemangku kepentingan lainnya. 

1.  Seiring waktu, Anda akan membangun sebuah pustaka runbook. Saat pustaka tersebut bertambah besar, mulailah bekerja untuk mengotomatiskan runbook. 

 **Tingkat upaya untuk rencana implementasi:** Rendah. Standar minimum untuk runbook adalah panduan teks langkah demi langkah. Mengotomatiskan runbook dapat meningkatkan upaya penerapan. 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS02-BP02 Proses dan Prosedur memiliki pemilik teridentifikasi](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_ops_model_def_proc_owners.html) 
+  [OPS07-BP04 Menggunakan playbook untuk menyelidiki masalah](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_ready_to_support_use_playbooks.html) 
+  [OPS10-BP01 Menggunakan proses untuk manajemen peristiwa, insiden, dan masalah](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_event_response_event_incident_problem_process.html) 
+  [OPS10-BP02 Menjalankan proses untuk setiap peringatan](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_event_response_process_per_alert.html) 
+  [OPS11-BP04 Menjalankan manajemen pengetahuan](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_evolve_ops_knowledge_management.html) 

 **Dokumen terkait:** 
+  [Mencapai Keunggulan Operasional menggunakan playbook dan runbook otomatis](https://aws.amazon.com/blogs/mt/achieving-operational-excellence-using-automated-playbook-and-runbook/) 
+  [AWS Systems Manager: Bekerja dengan runbook](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html) 
+  [Playbook migrasi untuk migrasi besar AWS - Tugas 4: Meningkatkan runbook migrasi Anda](https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-migration-playbook/task-four-migration-runbooks.html) 
+  [Gunakan runbook AWS System Manager Automation untuk menyelesaikan tugas-tugas operasional](https://aws.amazon.com/blogs/mt/use-aws-systems-manager-automation-runbooks-to-resolve-operational-tasks/) 

 **Video terkait:** 
+  [AWS re:Invent 2019: Panduan mandiri untuk runbook, laporan insiden, dan respons insiden](https://www.youtube.com/watch?v=E1NaYN_fJUo) 
+  [Cara melakukan otomatisasi Operasi IT di AWS \$1 Amazon Web Services](https://www.youtube.com/watch?v=GuWj_mlyTug) 
+  [Integrasikan Skrip ke dalam AWS Systems Manager](https://www.youtube.com/watch?v=Seh1RbnF-uE) 

 **Contoh terkait:** 
+  [Lab Well-Architected: Melakukan otomatisasi operasi dengan Playbook dan Runbook](https://wellarchitectedlabs.com/operational-excellence/200_labs/200_automating_operations_with_playbooks_and_runbooks/) 
+  [AWS Postingan Blog : Membangun Praktik Otomatisasi Cloud untuk Keunggulan Operasional: Praktik Terbaik dari AWS Managed Services](https://aws.amazon.com/blogs/mt/build-a-cloud-automation-practice-for-operational-excellence-best-practices-from-aws-managed-services/) 
+  [AWS Systems Manager: Panduan otomatisasi](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk.html) 
+  [AWS Systems Manager: Pulihkan volume root dari snapshot runbook terbaru](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-document-sample-restore.html) 
+  [Membangun runbook respons insiden AWS dengan menggunakan notebook Jupyter dan CloudTrail Lake](https://catalog.us-east-1.prod.workshops.aws/workshops/a5801f0c-7bd6-4282-91ae-4dfeb926a035/en-US) 
+  [Gitlab - Runbook](https://gitlab.com/gitlab-com/runbooks) 
+  [Rubix – Pustaka Python untuk membuat runbook di Notebook Jupyter](https://github.com/Nurtch/rubix) 
+  [Menggunakan Document Builder untuk membuat runbook kustom](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk-document-builder.html) 

 **Layanan terkait:** 
+  [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) 

# OPS07-BP04 Menggunakan playbook untuk menyelidiki masalah
<a name="ops_ready_to_support_use_playbooks"></a>

 *Playbook* adalah panduan mendetail yang digunakan untuk menyelidiki insiden. Ketika terjadi sebuah insiden, playbook digunakan untuk menyelidiki, membuat cakupan dampak, dan mengidentifikasi akar masalah penyebabnya. Playbook digunakan untuk berbagai skenario, dari deployment yang gagal hingga insiden keamanan. Dalam banyak kasus, playbook mengidentifikasi akar masalah yang dimitigasi dengan menggunakan runbook. Playbook adalah komponen pokok dalam rencana respons insiden organisasi Anda. 

 Playbook yang baik memiliki sejumlah fitur utama. Playbook memberikan panduan secara mendetail bagi pengguna, dalam proses penemuan. Dengan berpikir secara menyeluruh, langkah apa saja yang sebaiknya diikuti seseorang untuk mendiagnosis sebuah insiden? Tetapkan secara jelas di dalam playbook apakah alat-alat khusus atau izin yang lebih tinggi diperlukan di dalam playbook. Membuat sebuah rencana komunikasi untuk memberikan informasi terbaru kepada para pemangku kepentingan mengenai status penyelidikan adalah komponen utama. Dalam situasi ketika akar penyebab masalah tidak dapat diidentifikasi, playbook harus memiliki rencana eskalasi. Jika akar penyebab masalah sudah diidentifikasi, playbook harus mengarah ke sebuah runbook yang menjelaskan cara menyelesaikannya. Playbook harus disimpan secara terpusat dan dipelihara secara rutin. Jika playbook digunakan untuk pemberitahuan khusus, bekali tim Anda dengan penunjuk ke playbook yang ada di dalam pemberitahuan tersebut. 

 Otomatisasi playbook Anda seiring dengan kematangan organisasi. Mulailah dengan playbook yang mencakup insiden-insiden berisiko rendah. Gunakan penulisan skrip untuk mengotomatiskan langkah-langkah penemuan. Pastikan Anda memiliki runbook pendamping untuk memitigasi akar masalah umum. 

 **Hasil yang diinginkan:** Organisasi Anda memiliki playbook untuk insiden umum. Playbook disimpan di lokasi terpusat dan tersedia untuk anggota tim Anda. Playbook harus sering diperbarui. Runbook pendamping dibuat untuk akar masalah apa pun yang diketahui. 

 **Anti-pola umum:** 
+  Tidak ada cara standar untuk menyelidiki sebuah insiden. 
+  Anggota tim mengandalkan memori otot atau pengetahuan kelembagaan untuk memecahkan masalah kegagalan deployment. 
+  Anggota tim baru mempelajari cara menyelidiki permasalahan melalui coba-coba (trial and error). 
+  Praktik terbaik untuk menyelidiki permasalahan tidak dibagikan ke seluruh tim. 

 **Manfaat menjalankan praktik terbaik ini:** 
+  Playbook meningkatkan upaya Anda untuk memitigasi insiden. 
+  Anggota tim yang berbeda-beda dapat menggunakan playbook yang sama untuk mengidentifikasi akar penyebab masalah secara konsisten. 
+  Setelah akar penyebab masalah diketahui, kemudian bisa dikembangkan runbook untuk masalah tersebut, sehingga dapat mempercepat waktu pemulihan. 
+  Playbook akan membantu anggota tim untuk mulai berkontribusi lebih cepat. 
+  Tim dapat menskalakan proses mereka dengan playbook yang dapat diulangi langkah-langkahnya. 

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

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

 Cara Anda membangun dan menggunakan playbook bergantung pada kematangan organisasi Anda. Jika Anda baru mengenal cloud, buatlah playbook dalam bentuk teks di dalam repositori dokumen pusat. Seiring dengan kematangan organisasi, playbook bisa dibuat menjadi semi-otomatis dengan bahasa skrip seperti Python. Skrip-skrip ini dapat dijalankan di dalam notebook Jupyter untuk mempercepat penemuan. Organisasi tingkat lanjut memiliki playbook yang sepenuhnya otomatis untuk permasalahan-permasalahan umum yang diperbaiki secara otomatis dengan runbook. 

 Mulailah membangun playbook Anda dengan mengidentifikasi insiden-insiden umum yang terjadi pada beban kerja Anda. Untuk mengawali, pilihlah playbook untuk insiden-insiden dengan risiko rendah dan dengan akar penyebab masalah yang telah dipersempit menjadi beberapa permasalahan. Setelah Anda memiliki playbook untuk skenario yang lebih sederhana, beralihlah ke skenario yang memiliki risiko lebih tinggi atau skenario dengan akar penyebab masalah yang tidak diketahui dengan baik. 

 Playbook teks Anda harus diotomatiskan seiring dengan kematangan organisasi Anda. Menggunakan layanan seperti [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html), teks datar dapat ditransformasi menjadi otomatisasi. Otomatisasi ini dapat dijalankan terhadap beban kerja untuk mempercepat penyelidikan. Otomatisasi ini dapat diaktifkan untuk merespons peristiwa, sehingga akan mengurangi rata-rata waktu untuk menemukan dan menyelesaikan insiden. 

 Pelanggan dapat menggunakan [AWS Systems Manager Incident Manager](https://docs.aws.amazon.com/incident-manager/latest/userguide/what-is-incident-manager.html) untuk menanggapi insiden. Layanan ini menyediakan satu antarmuka untuk memeriksa insiden, memberikan informasi kepada para pemangku kepentingan saat proses penemuan dan mitigasi, dan berkolaborasi selama berlangsungnya insiden. Layanan ini menggunakan AWS System Manager Automation untuk mempercepat deteksi dan pemulihan. 

 **Contoh pelanggan** 

 Insiden produksi memberikan dampak pada AnyCompany Retail. Rekayasawan yang siap dipanggil kapan saja (on-call) menggunakan playbook untuk menyelidiki permasalahan. Seiring mereka mengikuti langkah-langkahnya, mereka terus memutakhirkan para pemangku kepentingan utama yang diidentifikasi di dalam playbook. Rekayasawan mengidentifikasi akar penyebab masalah sebagai kondisi pacu di dalam layanan backend. Dengan menggunakan runbook, rekayasawan meluncurkan ulang layanan, sehingga AnyCompany Retail dapat kembali online. 

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

 Jika Anda belum memiliki repositori dokumen, kami menyarankan Anda untuk membuat repositori kontrol versi untuk pustaka playbook Anda. Anda dapat membangun playbook Anda dengan menggunakan Markdown, yang kompatibel dengan sebagian besar sistem otomatisasi playbook. Jika Anda memulai dari nol, gunakan contoh templat playbook berikut ini. 

```
# Playbook Title
## Playbook Info
| Playbook ID | Description | Tools Used | Special Permissions | Playbook Author | Last Updated | Escalation POC | Stakeholders | Communication Plan |
|-------|-------|-------|-------|-------|-------|-------|-------|-------|
| RUN001 | What is this playbook for? What incident is it used for? | Tools | Permissions | Your Name | 2022-09-21 | Escalation Name | Stakeholder Name | How will updates be communicated during the investigation? |
## Steps
1. Step one
2. Step two
```

1.  Jika Anda belum memiliki repositori dokumen atau wiki, buatlah repositori kontrol versi baru untuk playbook Anda di sistem kontrol versi Anda. 

1.  Identifikasi permasalahan umum yang memerlukan penyelidikan. Ini sebaiknya adalah skenario dengan akar penyebab masalah yang dibatasi ke beberapa permasalahan dan penyelesaian yang memiliki risiko rendah. 

1.  Menggunakan templat Markdown, isilah bagian Nama Playbook dan bidang di bawah Info Playbook. 

1.  Lengkapi langkah-langkah pemecahan masalah. Sampaikan dengan sejelas mungkin tindakan-tindakan yang akan dilakukan atau area apa saja yang harus Anda selidiki. 

1.  Berikan playbook tersebut kepada anggota tim dan minta mereka mempelajari dan memvalidasinya. Jika terdapat hal yang terlewatkan atau tidak jelas, lakukan pembaruan playbook. 

1.  Terbitkan playbook di dalam repositori dokumen Anda dan informasikan kepada tim dan pemangku kepentingan. 

1.  Pustaka playbook ini akan tumbuh seiring dengan semakin banyaknya playbook yang Anda tambahkan. Setelah Anda memiliki beberapa playbook, mulailah mengotomatiskannya menggunakan alat seperti AWS Systems Manager Automation untuk terus menyinkronkan otomatisasi dan playbook. 

 **Tingkat upaya untuk rencana implementasi:** Rendah. Playbook Anda harus berupa dokumen teks yang disimpan di sebuah lokasi terpusat. Organisasi yang lebih matang akan beralih ke playbook otomatis. 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS02-BP02 Proses dan Prosedur memiliki pemilik teridentifikasi](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_ops_model_def_proc_owners.html) 
+  [OPS07-BP03 Menggunakan runbook untuk menjalankan prosedur](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_ready_to_support_use_runbooks.html) 
+  [OPS10-BP01 Menggunakan proses untuk manajemen peristiwa, insiden, dan masalah](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_event_response_event_incident_problem_process.html) 
+  [OPS10-BP02 Menjalankan proses untuk setiap peringatan](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_event_response_process_per_alert.html) 
+  [OPS11-BP04 Menjalankan manajemen pengetahuan](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_evolve_ops_knowledge_management.html) 

 **Dokumen terkait:** 
+  [Mencapai Keunggulan Operasional menggunakan playbook dan runbook otomatis](https://aws.amazon.com/blogs/mt/achieving-operational-excellence-using-automated-playbook-and-runbook/) 
+  [AWS Systems Manager: Bekerja dengan runbook](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-documents.html) 
+  [Gunakan runbook AWS System Manager Automation untuk menyelesaikan tugas-tugas operasional](https://aws.amazon.com/blogs/mt/use-aws-systems-manager-automation-runbooks-to-resolve-operational-tasks/) 

 **Video terkait:** 
+  [AWS re:Invent 2019: Panduan mandiri untuk runbook, laporan insiden, dan respons insiden (SEC318-R1)](https://www.youtube.com/watch?v=E1NaYN_fJUo) 
+  [Incident Manager AWS Systems Manager - Lokakarya AWS Virtual](https://www.youtube.com/watch?v=KNOc0DxuBSY) 
+  [Integrasikan Skrip ke dalam AWS Systems Manager](https://www.youtube.com/watch?v=Seh1RbnF-uE) 

 **Contoh terkait:** 
+  [AWS Kerangka Kerja Playbook Pelanggan](https://github.com/aws-samples/aws-customer-playbook-framework) 
+  [AWS Systems Manager: Panduan otomatisasi](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk.html) 
+  [Membangun runbook respons insiden AWS dengan menggunakan notebook Jupyter dan CloudTrail Lake](https://catalog.workshops.aws/workshops/a5801f0c-7bd6-4282-91ae-4dfeb926a035/en-US) 
+  [Rubix – Pustaka Python untuk membuat runbook di Notebook Jupyter](https://github.com/Nurtch/rubix) 
+  [Menggunakan Document Builder untuk membuat runbook kustom](https://docs.aws.amazon.com/systems-manager/latest/userguide/automation-walk-document-builder.html) 

 **Layanan terkait:** 
+  [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-automation.html) 
+  [AWS Peluncuran Systems Manager Incident Manager](https://docs.aws.amazon.com/incident-manager/latest/userguide/what-is-incident-manager.html) 

# OPS07-BP05 Membuat keputusan yang tepat untuk melakukan deployment sistem dan perubahan
<a name="ops_ready_to_support_informed_deploy_decisions"></a>

Miliki proses untuk perubahan yang sukses dan tidak sukses pada beban kerja Anda. Pre-mortem adalah latihan simulasi tim terhadap terjadinya kegagalan untuk mengembangkan strategi mitigasi. Gunakan pre-mortem untuk mengantisipasi kegagalan dan menciptakan prosedur ketika diperlukan. Evaluasi manfaat dan risiko dari deployment perubahan ke beban kerja Anda. Pastikan apakah semua perubahan sudah mematuhi tata kelola atau tidak. 

 **Hasil yang diinginkan:** 
+  Anda mengambil keputusan yang tepat ketika melakukan deployment perubahan ke beban kerja Anda. 
+  Perubahan mematuhi tata kelola. 

 **Anti-pola umum:** 
+ Melakukan deployment perubahan ke beban kerja tanpa proses untuk menangani deployment yang gagal.
+ Membuat perubahan pada lingkungan produksi Anda yang tidak mematuhi persyaratan-persyaratan tata kelola.
+ Melakukan deployment versi beban kerja baru Anda tanpa menetapkan garis dasar untuk pemanfaatan sumber daya.

 **Manfaat menjalankan praktik terbaik ini:** 
+  Anda siap untuk menangani perubahan-perubahan yang tidak berhasil dilakukan pada beban kerja Anda. 
+  Perubahan pada beban kerja Anda mematuhi kebijakan-kebijakan tata kelola. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan:** Rendah 

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

 Gunakan pre-mortem untuk mengembangkan proses untuk perubahan yang tidak berhasil. Buatlah dokumentasi dari proses-proses Anda untuk perubahan yang tidak berhasil. Pastikan semua perubahan mematuhi tata kelola. Evaluasi manfaat dan risiko melakukan deployment perubahan ke beban kerja Anda. 

 **Contoh pelanggan** 

 AnyCompany Retail melakukan pre-mortem secara teratur untuk melakukan validasi terhadap proses-proses mereka untuk perubahan yang tidak berhasil. Mereka mendokumentasikan proses mereka di Wiki bersama dan sering kali memperbaruinya. Semua perubahan mematuhi persyaratan-persyaratan tata kelola. 

 **Langkah-langkah implementasi** 

1.  Ambil keputusan yang tepat ketika melakukan deployment perubahan ke beban kerja Anda. Tetapkan dan tinjau kriteria untuk deployment yang berhasil. Kembangkan skenario atau kriteria yang akan menginisiasi pengembalian perubahan ke versi sebelumnya. Pikirkan manfaat dari deployment perubahan dibandingkan dengan risiko perubahan yang tidak berhasil. 

1.  Pastikan bahwa semua perubahan mematuhi kebijakan tata kelola. 

1.  Gunakan pre-mortem guna membuat rencana untuk perubahan-perubahan yang tidak berhasil dan mendokumentasikan strategi mitigasi. Jalankan sesi latihan table-top untuk memperagakan perubahan yang tidak berhasil dan melakukan validasi terhadap prosedur pengembalian ke versi sebelumnya (roll-back). 

 **Tingkat upaya untuk rencana implementasi:** Sedang. Mengimplementasikan praktik pre-mortem memerlukan koordinasi dan upaya dari para pemangku kepentingan dalam seluruh organisasi Anda 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS01-BP03 Mengevaluasi persyaratan tata kelola](ops_priorities_governance_reqs.md) - Persyaratan tata kelola merupakan faktor kunci dalam menentukan apakah akan melakukan deployment perubahan. 
+  [OPS06-BP01 Rencana untuk perubahan yang gagal](ops_mit_deploy_risks_plan_for_unsucessful_changes.md) - Buat rencana untuk memitigasi deployment yang gagal dan gunakan pre-mortem untuk memvalidasinya. 
+  [OPS06-BP02 Uji penerapan](ops_mit_deploy_risks_test_val_chg.md) - Setiap perubahan perangkat lunak harus diuji dengan tepat sebelum deployment untuk mengurangi kecacatan dalam produksi. 
+  [OPS07-BP01 Memastikan kemampuan personel](ops_ready_to_support_personnel_capability.md) - Memiliki cukup banyak personel yang terlatih untuk mendukung beban kerja sangat penting dalam mengambil keputusan yang tepat dalam hal deployment perubahan sistem. 

 **Dokumen terkait:** 
+ [ Amazon Web Services: Risiko dan Kepatuhan ](https://docs.aws.amazon.com/whitepapers/latest/aws-risk-and-compliance/welcome.html)
+ [Model Tanggung Jawab Bersama AWS](https://aws.amazon.com/compliance/shared-responsibility-model/)
+ [ Tata Kelola dalam AWS Cloud: Keseimbangan yang Tepat Antara Kelincahan dan Keamanan ](https://aws.amazon.com/blogs/apn/governance-in-the-aws-cloud-the-right-balance-between-agility-and-safety/)

# OPS07-BP06 Membuat rencana dukungan untuk beban kerja produksi
<a name="ops_ready_to_support_enable_support_plans"></a>

 Aktifkan dukungan untuk perangkat lunak dan layanan yang diandalkan beban kerja produksi Anda. Pilih tingkat dukungan yang sesuai untuk memenuhi kebutuhan tingkat layanan produksi Anda. Rencana dukungan untuk dependensi ini diperlukan untuk berjaga-jaga jika ada gangguan layanan atau masalah perangkat lunak yang terjadi. Buatlah dokumentasi dari rencana-rencana dukungan dan cara meminta dukungan untuk semua vendor perangkat lunak dan layanan. Implementasikan mekanisme yang memastikan bahwa titik kontak dukungan selalu yang terbaru. 

 **Hasil yang diinginkan:** 
+  Implementasikan rencana dukungan untuk perangkat lunak dan layanan yang diandalkan oleh beban kerja produksi. 
+  Pilih rencana dukungan yang sesuai berdasarkan kebutuhan tingkat layanan. 
+  Buatlah dokumentasi dari rencana dukungan, tingkat dukungan, dan cara meminta dukungan. 

 **Anti-pola umum:** 
+  Anda tidak memiliki rencana dukungan untuk vendor perangkat lunak yang penting. Beban kerja Anda terkena dampaknya dan Anda tidak dapat melakukan apa-apa untuk mempercepat perbaikan atau mendapatkan informasi terbaru dari vendor secara tepat waktu. 
+  Seorang pengembang yang merupakan titik utama kontak untuk vendor perangkat lunak tidak lagi bekerja di perusahaan. Anda tidak dapat menghubungi dukungan vendor secara langsung. Anda harus meluangkan waktu menelusuri dan mencari-cari dalam sistem kontak generik, sehingga menambah waktu yang diperlukan untuk memberikan respons ketika diperlukan. 
+  Penghentian (outage) produksi terjadi pada vendor perangkat lunak. Tidak ada dokumentasi tentang cara mengajukan kasus dukungan. 

 **Manfaat menjalankan praktik terbaik ini:** 
+  Dengan tingkat dukungan yang sesuai, Anda dapat memperoleh respons dalam kerangka waktu yang diperlukan untuk memenuhi kebutuhan-kebutuhan tingkat layanan. 
+  Sebagai pelanggan yang didukung, Anda dapat menyampaikan masalah, jika terjadi masalah produksi. 
+  Vendor layanan dan perangkat lunak dapat membantu menyelesaikan masalah saat terjadi insiden. 

 **Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan:** Rendah 

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

 Aktifkan rencana dukungan untuk vendor perangkat lunak dan layanan yang diandalkan oleh beban kerja produksi Anda. Atur rencana dukungan yang sesuai untuk memenuhi kebutuhan-kebutuhan tingkat layanan Anda. Untuk pelanggan AWS, ini artinya Anda mengaktifkan Business Support AWS atau yang lebih tinggi pada setiap akun yang memiliki beban kerja produksi. Temui para vendor dukungan secara teratur untuk mendapatkan informasi terbaru mengenai penawaran dukungan, proses, dan kontak. Buatlah dokumentasi tentang cara meminta dukungan dari para vendor perangkat lunak dan layanan, termasuk cara menyampaikan masalah jika ada penghentian (outage). Implementasikan mekanisme-mekanisme untuk menjaga agar kontak selalu yang terbaru. 

 **Contoh pelanggan** 

 Di AnyCompany Retail, semua dependensi layanan dan perangkat lunak komersial memiliki rencana dukungan. Contohnya, mereka mengaktifkan Dukungan Perusahaan AWS di semua akun yang memiliki beban kerja produksi. Semua pengembang dapat membuka kasus dukungan bila ada masalah yang terjadi. Ada satu halaman wiki yang memuat informasi tentang cara meminta dukungan, siapa yang harus diberi tahu, dan praktik-praktik terbaik untuk mempercepat penanganan kasus. 

 **Langkah-langkah implementasi** 

1.  Bekerjasamalah dengan para pemangku kepentingan yang ada di organisasi Anda untuk mengidentifikasi para vendor perangkat lunak dan layanan yang diandalkan oleh beban kerja Anda. Buatlah dokumentasi mengenai dependensi ini. 

1.  Tentukan kebutuhan tingkat layanan untuk beban kerja Anda. Pilih rencana dukungan yang selaras dengannya. 

1.  Untuk layanan-layanan dan perangkat lunak komersial, tetapkan rencana dukungan dengan para vendornya. 

   1.  Dengan berlangganan AWS Business Support atau yang lebih tinggi untuk semua akun produksi, waktu respons AWS Dukungan akan lebih cepat dan hal ini sangat disarankan. Jika Anda tidak memiliki dukungan premium, Anda harus memiliki rencana tindakan untuk menangani masalah, yang memerlukan bantuan dari AWS Dukungan. AWS Dukungan memberikan kombinasi alat dan teknologi, orang, dan program yang dirancang untuk secara proaktif membantu Anda mengoptimalkan performa, menurunkan biaya, dan berinovasi dengan lebih cepat. Selain itu, AWS Business Support memberikan manfaat tambahan, termasuk akses API ke AWS Trusted Advisor dan AWS Health untuk integrasi programatis dengan sistem Anda, bersama metode akses lainnya seperti Konsol Manajemen AWS dan saluran Amazon EventBridge. 

1.  Buatlah dokumentasi tentang rencana dukungan di alat manajemen pengetahuan Anda. Sertakan cara untuk meminta dukungan, siapa yang harus diberi tahu jika ada kasus dukungan diajukan, dan cara untuk menyampaikan masalah saat terjadi insiden. Wiki bisa menjadi sebuah mekanisme yang bagus untuk memungkinkan semua orang membuat pembaruan yang diperlukan pada dokumentasi ketika mereka mengetahui tentang adanya perubahan yang dilakukan untuk mendukung proses atau perubahan kontak. 

 **Tingkat upaya untuk rencana implementasi:** Rendah. Sebagian besar vendor perangkat lunak dan layanan menawarkan pilihan penyertaan rencana dukungan. Mendokumentasikan dan berbagi praktik terbaik terkait dukungan di sistem manajemen pengetahuan Anda akan memastikan tim Anda mengetahui tindakan-tindakan yang harus dilakukan jika ada masalah produksi. 

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

 **Praktik-praktik terbaik terkait:** 
+  [OPS02-BP02 Proses dan Prosedur memiliki pemilik teridentifikasi](ops_ops_model_def_proc_owners.md) 

 **Dokumen terkait:** 
+ [Rencana AWS Dukungan](https://docs.aws.amazon.com/awssupport/latest/user/aws-support-plans.html)

 **Layanan terkait:** 
+ [AWS Business Support](https://aws.amazon.com/premiumsupport/plans/business/)
+ [Dukungan Perusahaan AWS](https://aws.amazon.com/premiumsupport/plans/enterprise/)