

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