

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

 Adopsi pendekatan yang meningkatkan aliran perubahan ke dalam produksi, yang memampukan pemfaktoran ulang, umpan balik cepat atas kualitas, dan perbaikan bug. Ini mempercepat perubahan yang bermanfaat memasuki produksi, membatasi masalah yang di-deploy, dan memampukan 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 Membagikan 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 Membuat perubahan yang sering, kecil, dan dapat dikembalikan](ops_dev_integ_freq_sm_rev_chg.md)
+ [OPS05-BP10 Mengotomatiskan integrasi dan deployment sepenuhnya](ops_dev_integ_auto_integ_deploy.md)

# 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 menawarkan kemampuan kontrol versi. Gunakan sistem kontrol revisi atau sumber seperti [AWS CodeCommit](https://aws.amazon.com/codecommit/) untuk mengelola kode dan artefak lain, seperti templat [AWS CloudFormation](https://aws.amazon.com/cloudformation/) yang dikontrol versi dari infrastruktur Anda. 

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

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

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

## Panduan implementasi
<a name="implementation-guidance"></a>
+  Gunakan kontrol versi: Pelihara aset di repositori terkontrol 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 baik apabila terjadi kegagalan). Integrasikan kemampuan kontrol versi sistem manajemen konfigurasi Anda ke dalam prosedur Anda. 
  +  [Pengantar AWS CodeCommit](https://youtu.be/46PRLMW8otg) 
  +  [Apa Itu AWS CodeCommit?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 

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

 **Dokumen terkait:** 
+  [Apa Itu AWS CodeCommit?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 

 **Video terkait:** 
+  [Pengantar AWS CodeCommit](https://youtu.be/46PRLMW8otg) 

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

 Uji dan validasi perubahan untuk membantu membatasi dan mendeteksi kesalahan. Otomatiskan pengujian untuk mengurangi kesalahan yang disebabkan oleh proses manual, dan mengurangi upaya untuk melakukan pengujian. 

 Banyak layanan AWS menawarkan kemampuan kontrol versi. Gunakan sistem kontrol revisi atau sumber seperti [AWS CodeCommit](https://aws.amazon.com/codecommit/) untuk mengelola kode dan artefak lain, seperti templat [AWS CloudFormation](https://aws.amazon.com/cloudformation/) yang dikontrol versi dari infrastruktur Anda. 

 **Antipola umum:** 
+  Anda melakukan deployment kode baru ke produksi dan pelanggan mulai menghubungi Anda karena aplikasi berhenti berjalan. 
+  Anda menerapkan grup keamanan baru untuk meningkatkan keamanan perimeter Anda. Tindakan ini berjalan dengan konsekuensi tidak terduga; Pengguna Anda tidak dapat mengakses aplikasi. 
+  Anda memodifikasi sebuah metode yang dipanggil oleh fungsi baru Anda. Ada fungsi lain yang juga bergantung pada metode tersebut dan berhenti berfungsi. Masalah ini tidak terdeteksi dan masuk ke tahap produksi. Fungsi lain tersebut tidak dipanggil dalam waktu tertentu dan akhirnya gagal dalam produksi tanpa ada korelasi dengan penyebabnya. 

 **Manfaat menjalankan praktik terbaik ini:** Dengan menguji dan memvalidasi perubahan sejak dini, Anda dapat mengatasi masalah dengan biaya minim dan membatasi dampak terhadap pelanggan. Dengan menguji sebelum deployment, Anda meminimalkan munculnya kesalahan. 

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

## Panduan implementasi
<a name="implementation-guidance"></a>
+  Uji dan validasi perubahan: Perubahan harus diuji dan hasilnya divalidasi pada semua tahap siklus hidup (seperti pengembangan, pengujian, dan produksi). Gunakan hasil pengujian untuk mengonfirmasi fitur baru dan memitigasi risiko serta dampak deployment yang gagal. Otomatiskan pengujian dan validasi untuk memastikan konsistensi peninjauan, untuk mengurangi kesalahan yang disebabkan oleh proses manual, dan mengurangi upaya. 
  +  [Apa itu AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [Dukungan build lokal untuk AWS CodeBuild](https://aws.amazon.com/blogs/devops/announcing-local-build-support-for-aws-codebuild/) 

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

 **Dokumen terkait:** 
+  [Alat Pengembang AWS](https://aws.amazon.com/products/developer-tools/) 
+  [Dukungan build lokal untuk AWS CodeBuild](https://aws.amazon.com/blogs/devops/announcing-local-build-support-for-aws-codebuild/) 
+  [Apa itu AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/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 menginisialisasi sumber daya yang diharapkan tetap konsisten selama masa pakai sumber daya. Beberapa contoh menyertakan pengaturan konfigurasi untuk web atau server aplikasi pada instans, atau menentukan konfigurasi layanan AWS dalam [Konsol Manajemen AWS](https://docs.aws.amazon.com/awsconsolehelpdocs/index.html) atau melalui [AWS CLI](https://aws.amazon.com/cli/). 

 Manajemen konfigurasi dinamis menetapkan nilai saat inisialisasi. Nilai ini dapat atau diharapkan untuk berubah selama masa pakai sumber daya. Misalnya, Anda dapat menetapkan toggle fitur untuk mengaktifkan fungsionalitas dalam kode melalui perubahan konfigurasi, atau mengubah tingkat detail log selama insiden untuk memperoleh lebih banyak data, lalu mengubahnya kembali setelah insiden menghilangkan log yang saat ini tidak dibutuhkan dan pengeluaran yang terkait dengannya. 

 Jika Anda memiliki konfigurasi dinamis di aplikasi Anda yang berjalan di instans, kontainer, fungsi nirserver, atau perangkat, Anda dapat menggunakan [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) untuk melakukan deployment dan mengelolanya di seluruh lingkungan. 

 Di AWS, Anda dapat menggunakan [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) untuk tetap mengawasi konfigurasi sumber daya AWS [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 [Paket Konformasi AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/conformance-packs.html). 

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

 Miliki kalender perubahan dan lacak saat ada rencana acara atau aktivitas operasional atau bisnis signifikan yang dapat terpengaruh oleh implementasi perubahan. Sesuaikan aktivitas untuk mengelola risiko seputar rencana. [Kalender Perubahan AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html) menyediakan mekanisme untuk mendokumentasikan blok waktu dengan keterangan terbuka atau tertutup terhadap perubahan beserta alasannya, serta [membagikan informasi tersebut](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-calendar-share.html) dengan Akun AWS lainnya. Skrip AWS Systems Manager Automation dapat dikonfigurasi untuk mematuhi status kalender perubahan. 

 [Periode Pemeliharaan AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html) dapat digunakan untuk menjadwalkan kinerja skrip Run Command (Jalankan Perintah) atau Automation (Otomatisasi) AWS SSM, invokasi AWS Lambda, atau aktivitas AWS Step Functions pada waktu tertentu. Tandai aktivitas ini dalam kalender perubahan sehingga dapat disertakan dalam evaluasi. 

 **Antipola umum:** 
+  Anda memperbarui konfigurasi server web secara manual di seluruh armada dan beberapa server menjadi tidak responsif karena kesalahan pembaruan. 
+  Anda memperbarui armada server aplikasi selama berjam-jam. Inkonsistensi dalam konfigurasi selama perubahan menyebabkan perilaku tak terduga. 
+  Seseorang telah memperbarui grup keamanan Anda dan server web Anda tidak lagi dapat diakses. Tanpa mengetahui apa yang telah diubah, Anda menghabiskan banyak waktu untuk menyelidiki masalah tersebut sehingga memperpanjang waktu pemulihan. 

 **Manfaat menerapkan praktik terbaik ini:** Mengadopsi sistem manajemen konfigurasi meminimalkan tingkat upaya untuk membuat dan melacak perubahan, serta mengurangi frekuensi kesalahan yang disebabkan prosedur manual. 

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

## Panduan implementasi
<a name="implementation-guidance"></a>
+  Gunakan sistem manajemen konfigurasi: Gunakan sistem manajemen konfigurasi untuk melacak dan mengimplementasikan perubahan, mengurangi kesalahan yang disebabkan proses manual, dan meminimalkan tingkat upaya. 
  +  [Manajemen konfigurasi infrastruktur](https://aws.amazon.com/answers/configuration-management/aws-infrastructure-configuration-management/) 
  +  [AWS Config](https://aws.amazon.com/config/) 
  +  [Apa itu AWS Config?](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) 
  +  [Pengantar AWS CloudFormation](https://youtu.be/Omppm_YUG2g) 
  +  [Apa itu AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
  +  [AWS OpsWorks](https://aws.amazon.com/opsworks/) 
  +  [Apa itu AWS OpsWorks?](https://docs.aws.amazon.com/opsworks/latest/userguide/welcome.html) 
  +  [Pengantar AWS Elastic Beanstalk](https://youtu.be/SrwxAScdyT0) 
  +  [Apa itu AWS Elastic Beanstalk?](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) 

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

 **Dokumen terkait:** 
+  [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html) 
+  [Alat Developer AWS](https://aws.amazon.com/products/developer-tools/) 
+  [AWS OpsWorks](https://aws.amazon.com/opsworks/) 
+  [Kalender Perubahan AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-change-calendar.html) 
+  [Periode Pemeliharaan AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html) 
+  [Manajemen konfigurasi infrastruktur](https://aws.amazon.com/answers/configuration-management/aws-infrastructure-configuration-management/) 
+  [Apa itu AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+  [Apa itu AWS Config?](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) 
+  [Apa itu AWS Elastic Beanstalk?](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html) 
+  [Apa itu AWS OpsWorks?](https://docs.aws.amazon.com/opsworks/latest/userguide/welcome.html) 

 **Video terkait:** 
+  [Pengantar AWS CloudFormation](https://youtu.be/Omppm_YUG2g) 
+  [Pengantar AWS Elastic Beanstalk](https://youtu.be/SrwxAScdyT0) 

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

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

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

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

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

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

## Panduan implementasi
<a name="implementation-guidance"></a>
+  Gunakan sistem manajemen build dan deployment: Gunakan sistem manajemen build dan deployment untuk melacak dan mengimplementasikan perubahan, mengurangi kesalahan yang disebabkan oleh proses manual, dan mengurangi upaya. Otomatiskan sepenuhnya pipeline integrasi dan deployment dari check-in kode hingga build, pengujian, deployment, dan validasi. Ini mengurangi waktu tunggu, sehingga meningkatkan frekuensi perubahan, dan mengurangi upaya. 
  +  [Apa itu AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [Praktik terbaik integrasi berkelanjutan untuk pengembangan perangkat lunak](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
  +  [Slalom: CI/CD untuk aplikasi nirserver di AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
  +  [Pengantar AWS CodeDeploy - deployment perangkat lunak otomatis dengan Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 
  +  [Apa itu AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

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

 **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) 
+  [Apa itu AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

 **Video terkait:** 
+  [Praktik terbaik integrasi berkelanjutan untuk pengembangan perangkat lunak](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
+  [Pengantar AWS CodeDeploy - deployment perangkat lunak otomatis dengan Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 
+  [Slalom: CI/CD untuk aplikasi nirserver di AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 

# 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, dan mengurangi upaya untuk melakukan patch. 

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

 Memperbarui image mesin, image kontainer, atau waktu proses dan pustaka tambahan Lambda [untuk menghapus kerentanan](https://docs.aws.amazon.com/lambda/latest/dg/security-configuration.html) adalah bagian dari manajemen patch. Anda harus mengelola pembaruan pada [Amazon Machine Images](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html) (AMI) untuk Linux atau image Windows Server menggunakan [EC2 Image Builder](https://aws.amazon.com/image-builder/). Anda dapat menggunakan [Amazon Elastic Container Registry](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html) dengan pipeline Anda yang ada untuk [mengelola image Amazon ECS](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_ECS.html) dan [mengelola image Amazon EKS](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_EKS.html). AWS Lambda mencakup [fitur ](https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html) manajemen versi. 

 Patching tidak boleh dilakukan pada sistem produksi tanpa mengujinya terlebih dahulu di lingkungan yang aman. Patch hanya bisa diterapkan jika mendukung hasil operasi atau bisnis. Di 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 [AWS Systems Manager Maintenance Windows](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html). 

 **Antipola umum:** 
+  Anda diberi tugas untuk menerapkan semua patch keamanan baru dalam waktu dua jam yang menyebabkan beberapa pemadaman akibat ketidaksesuaian aplikasi dengan patch. 
+  Pustaka yang tidak di-patch menimbulkan konsekuensi yang tidak dinginkan karena pihak yang tidak diketahui memanfaatkan kerentanan di dalamnya untuk mengakses beban kerja Anda. 
+  Anda melakukan patch pada lingkungan pengembangan secara otomatis tanpa memberi tahu pengembang. Anda menerima beberapa keluhan dari pengembang bahwa lingkungan mereka berhenti beroperasi sesuai dengan yang diharapkan. 
+  Anda belum melakukan patch pada perangkat lunak komersial siap pakai di instans tetap. Ketika Anda memiliki masalah dengan perangkat lunak dan menghubungi vendornya, Anda diberi tahu bahwa versi tersebut tidak didukung dan Anda harus melakukan patch pada tingkat tertentu untuk menerima bantuan. 
+  Patch yang baru-baru ini dirilis untuk perangkat lunak enkripsi yang Anda gunakan memiliki peningkatan kinerja yang signifikan. Sistem Anda yang tidak di-patch tetap memiliki masalah kinerja akibat tidak dilakukannya patching. 

 **Manfaat menjalankan praktik terbaik ini:** Dengan menjalankan proses manajemen patch, termasuk kriteria Anda untuk patching dan metodologi untuk distribusi ke seluruh lingkungan Anda, Anda akan mewujudkan manfaatnya serta dapat mengontrol dampaknya. Ini akan memungkinkan adopsi fitur dan kemampuan yang diinginkan, penyingkiran masalah, dan kepatuhan yang berkelanjutan terhadap tata kelola. Implementasikan sistem manajemen dan otomatisasi untuk mengurangi tingkat upaya untuk men-deploy patch dan mengurangi kesalahan yang disebabkan oleh proses manual. 

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

## Panduan implementasi
<a name="implementation-guidance"></a>
+  Manajemen patch: Lakukan patch 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, deploy dengan rangkaian patch yang sesuai untuk mencapai hasil yang diinginkan. Otomatiskan mekanisme manajemen patch untuk mengurangi waktu yang telah berlalu untuk melakukan patch, untuk mengurangi kesalahan yang disebabkan oleh proses manual, dan mengurangi upaya dalam melakukan patch. 
  +  [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 

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

 **Dokumen terkait:** 
+  [Alat Pengembang AWS](https://aws.amazon.com/products/developer-tools/) 
+  [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 

 **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:** 
+  [Lab Well-Architected – Manajemen Inventaris dan Patch](https://wellarchitectedlabs.com/operational-excellence/100_labs/100_inventory_patch_management/) 

# OPS05-BP06 Membagikan 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 pengembangan. 

 Di AWS, Anda dapat mengelola dan menetapkan aplikasi, komputasi, infrastruktur, dan operasi, menggunakan metodologi kode. Ini akan mempermudah peluncuran, pembagian, dan pengadopsian. 

 Banyak layanan dan sumber daya AWS yang dirancang untuk dibagikan lintas akun, sehingga Anda dapat membagikan pembelajaran dan aset yang diciptakan ke seluruh tim. Misalnya, Anda dapat membagikan [repositori CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/cross-account.html) , [fungsi Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-permissions.html) , [bucket Amazon S3](https://aws.amazon.com/premiumsupport/knowledge-center/cross-account-access-s3/), dan [AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html) ke akun tertentu. 

 Ketika Anda memublikasikan pembaruan atau sumber daya baru, gunakan Amazon SNS untuk menyediakan [notifikasi lintas akun](https://docs.aws.amazon.com/lambda/latest/dg/with-sns-example.html). Pelanggan dapat menggunakan Lambda untuk memperoleh versi baru. 

 Jika standar bersama telah diterapkan di dalam organisasi Anda, tersedianya mekanisme sangat penting untuk meminta penambahan, perubahan, dan pengecualian terhadap standar dalam mendukung aktivitas tim. Tanpa opsi ini, standar akan menjadi penghambat inovasi. 

 **Antipola umum:** 
+  Anda telah membuat mekanisme autentikasi Anda sendiri, begitu juga dengan tim pengembangan lain di organisasi Anda. Pengguna Anda harus mempertahankan rangkaian kredensial terpisah untuk setiap bagian sistem yang ingin diakses. 
+  Anda telah membuat mekanisme autentikasi Anda sendiri, begitu juga dengan tim pengembangan lain di organisasi Anda. Organisasi Anda diberi persyaratan kepatuhan baru yang harus dipenuhi. Masing-masing tim pengembangan kini harus memperhatikan sumber daya untuk mengimplementasikan persyaratan baru. 
+  Anda telah membuat tata letak layar Anda sendiri, begitu juga dengan tim pengembangan lain di organisasi Anda. Pengguna Anda mengeluhkan tentang kesulitan menavigasi antarmuka yang tidak konsisten. 

 **Manfaat menerapkan praktik terbaik ini:** Gunakan standar bersama untuk mendukung pengadopsian praktik terbaik serta memaksimalkan manfaat dari upaya pengembangan dengan standar yang memenuhi persyaratan untuk beberapa aplikasi atau organisasi. 

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

## Panduan implementasi
<a name="implementation-guidance"></a>
+  Bagikan standar desain: Bagikan praktik terbaik, standar desain, daftar periksa, prosedur operasi, serta panduan dan persyaratan tata kelola yang ada di seluruh tim untuk mengurangi kompleksitas dan memaksimalkan manfaat dari upaya pengembangan. Pastikan bahwa prosedur tersedia untuk meminta perubahan, tambahan, dan pengecualian untuk mendesain standar guna mendukung peningkatan dan inovasi yang berkelanjutan. Pastikan tim sadar terhadap konten yang dipublikasikan agar mereka dapat memanfaatkan konten, serta mengurangi pengerjaan ulang dan upaya yang tidak bermakna. 
  +  [Mendelegasikan akses ke lingkungan AWS Anda](https://www.youtube.com/watch?v=0zJuULHFS6A&t=849s) 
  +  [Bagikan repositori AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-share-repository.html) 
  +  [Otorisasi mudah fungsi AWS Lambda](https://aws.amazon.com/blogs/compute/easy-authorization-of-aws-lambda-functions/) 
  +  [Membagikan AMI dengan Akun AWS tertentu](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html) 
  +  [Percepat pembagian templat dengan URL desainer AWS CloudFormation](https://aws.amazon.com/blogs/devops/speed-template-sharing-with-an-aws-cloudformation-designer-url/) 
  +  [Menggunakan AWS Lambda dengan Amazon SNS](https://docs.aws.amazon.com/lambda/latest/dg/with-sns-example.html) 

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

 **Dokumen terkait:** 
+  [Otorisasi mudah fungsi AWS Lambda](https://aws.amazon.com/blogs/compute/easy-authorization-of-aws-lambda-functions/) 
+  [Bagikan repositori AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-share-repository.html) 
+  [Membagikan AMI dengan Akun AWS tertentu](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html) 
+  [Percepat pembagian templat dengan URL desainer AWS CloudFormation](https://aws.amazon.com/blogs/devops/speed-template-sharing-with-an-aws-cloudformation-designer-url/) 
+  [Menggunakan AWS Lambda dengan Amazon SNS](https://docs.aws.amazon.com/lambda/latest/dg/with-sns-example.html) 

 **Video terkait:** 
+  [Delegating access to your AWS environment](https://www.youtube.com/watch?v=0zJuULHFS6A&t=849s) 

# 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, dan pengadopsian standar. 

 Di AWS, Anda dapat mengintegrasikan layanan seperti [Amazon CodeGuru](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) dengan pipeline Anda untuk secara otomatis [mengidentifikasi potensi masalah keamanan dan kode](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/how-codeguru-reviewer-works.html) menggunakan analisis program dan machine learning. CodeGuru menyediakan rekomendasi terkait cara untuk mengimplementasikan praktik terbaik AWS untuk mengatasi masalah ini. 

 **Antipola umum:** 
+  Agar dapat menguji fitur lebih awal, Anda memutuskan untuk tidak mengintegrasikan pustaka sanitasi input standar Anda. Setelah pengujian, Anda mengeksekusi kode tanpa mengingat untuk menyelesaikan penggabungan pustaka. 
+  Anda memiliki pengalaman yang minim tentang set data yang sedang diproses dan tidak menyadari bahwa deret kasus edge dapat muncul di dalam set data Anda. Kasus edge tersebut tidak kompatibel dengan kode yang Anda implementasikan. 

 **Manfaat menerapkan praktik terbaik ini:** Dengan mengadopsi praktik untuk meningkatkan kualitas kode, Anda dapat membantu meminimalkan masalah yang terjadi di produksi. 

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

## Panduan implementasi
<a name="implementation-guidance"></a>
+  Implementasikan praktik untuk meningkatkan kualitas kode: Implementasikan praktik untuk meningkatkan kualitas kode guna meminimalkan kecacatan dan risiko di-deploy. Misalnya, pengembangan yang didorong pengujian, pair programming, peninjauan kode, dan adopsi standar. 
  +  [Amazon CodeGuru](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) 

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

 **Dokumen terkait:** 
+  [Amazon CodeGuru](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.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 akan beroperasi sesuai keinginan ketika di-deploy. 

 **Antipola umum:** 
+  Anda sedang melakukan pengembangan di sebuah lingkungan pengembangan bersama dan developer lain menimpa perubahan kode Anda. 
+  Kontrol keamanan terbatas di lingkungan pengembangan bersama Anda melarang Anda melakukan eksperimen dengan layanan dan fitur baru. 
+  Anda melakukan pengujian beban pada sistem produksi Anda dan menyebabkan pemadaman untuk pengguna Anda. 
+  Kesalahan fatal yang menyebabkan hilangnya data terjadi di produksi. Di lingkungan produksi, Anda mencoba membuat ulang kondisi yang menyebabkan data hilang tersebut sehingga Anda dapat mengidentifikasi bagaimana hal tersebut terjadi dan mencegahnya agar tidak terjadi lagi. Untuk mencegah kejadian hilang data lainnya selama pengujian, Anda terpaksa menjadikan aplikasi tidak tersedia untuk pengguna. 
+  Anda mengoperasikan layanan multi-tenant dan tidak dapat mendukung permintaan lingkungan khusus yang diajukan pelanggan. 
+  Anda mungkin tidak selalu melakukan pengujian, tetapi pengujian yang Anda lakukan terjadi di tahap produksi. 
+  Anda percaya bahwa dengan satu lingkungan tunggal, cakupan dampak perubahan hanya terjadi di dalam lingkungan tersebut. 

 **Manfaat menerapkan praktik terbaik ini:** Dengan men-deploy beberapa lingkungan, Anda dapat mendukung beberapa lingkungan pengembangan, pengujian, dan produksi secara serentak tanpa menciptakan konflik antar developer atau komunitas pengguna. 

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

## Panduan implementasi
<a name="implementation-guidance"></a>
+  Gunakan beberapa lingkungan: Sediakan lingkungan sandbox developer dengan kontrol minim untuk memungkinkan eksperimen. Sediakan lingkungan pengembangan individu untuk memungkinkan kerja secara paralel, sehingga ketangkasan pengembangan meningkat. Implementasikan kontrol yang lebih kuat di lingkungan ketika mendekati produksi agar developer dapat berinovasi. Gunakan infrastruktur sebagai kode dan sistem manajemen konfigurasi untuk men-deploy lingkungan yang dikonfigurasi sesuai dengan kontrol yang ada di dalam produksi guna memastikan sistem beroperasi sesuai keinginan saat di-deploy. Saat lingkungan tidak digunakan, nonaktifkan untuk menghindari 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 memungkinkan hasil yang valid. 
  +  [Apa itu AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
  +  [Bagaimana cara menghentikan dan memulai instans Amazon EC2 pada interval yang teratur menggunakan AWS Lambda?](https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/) 

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

 **Dokumen terkait:** 
+  [Bagaimana cara menghentikan dan memulai instans Amazon EC2 pada interval yang teratur menggunakan AWS Lambda?](https://aws.amazon.com/premiumsupport/knowledge-center/start-stop-lambda-cloudwatch/) 
+  [Apa itu AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 

# OPS05-BP09 Membuat perubahan yang sering, kecil, dan dapat dikembalikan
<a name="ops_dev_integ_freq_sm_rev_chg"></a>

 Gunakan perubahan yang sering, kecil, dan dapat dikembalikan untuk mengurangi cakupan perubahan. Hal ini memudahkan pemecahan masalah, memungkinkan perbaikan yang lebih cepat, dan menyediakan opsi untuk mengembalikan perubahan. 

 **Antipola umum:** 
+  Anda melakukan deployment versi baru aplikasi Anda setiap kuartal. 
+  Anda sering melakukan perubahan pada skema basis data Anda. 
+  Anda melakukan pembaruan pengganti manual, menimpa instalasi dan konfigurasi yang ada. 

 **Manfaat menerapkan praktik terbaik ini:** Anda dapat merasakan manfaat dari upaya pengembangan dengan lebih cepat melalui deployment perubahan-perubahan kecil secara sering. Ketika perubahannya kecil, akan jauh lebih mudah untuk mengidentifikasi apakah terdapat konsekuensi yang tidak diinginkan. Ketika perubahan dapat dikembalikan, lebih sedikit risiko dari implementasi perubahan karena pemulihannya lebih mudah. 

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

## Panduan implementasi
<a name="implementation-guidance"></a>
+  Buat perubahan yang sering, kecil, dan dapat dikembalikan: Perubahan yang sering, kecil, dan dapat dikembalikan mengurangi cakupan dan dampak perubahan. Hal ini memudahkan pemecahan masalah, memungkinkan perbaikan yang lebih cepat, dan menyediakan opsi untuk mengembalikan perubahan. Hal ini juga meningkatkan rasio nilai yang dapat anda berikan ke bisnis. 

# 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) mengikuti strategi [pemberian tag yang konsisten](https://aws.amazon.com/answers/account-management/aws-tagging-strategies/) untuk memungkinkan identifikasi sumber daya. Beri tag pada sumber daya Anda untuk organisasi, akuntansi biaya, kontrol akses, dan penargetan eksekusi aktivitas operasi yang diotomatisasi. 

 **Antipola umum:** 
+  Pada hari Jumat, Anda menyelesaikan penulisan kode baru untuk cabang fitur Anda. Pada hari Senin, setelah menjalankan skrip pengujian kualitas kode dan setiap skrip pengujian unit, Anda akan mendaftarkan kode untuk rilisan terjadwal berikutnya. 
+  Anda ditugaskan untuk membuat kode perbaikan untuk sebuah masalah besar yang memengaruhi banyak pelanggan di tahap produksi. Setelah menguji perbaikan tersebut, Anda melakukan commit kode Anda dan mengirimkan manajemen perubahan melalui email untuk meminta persetujuan deployment ke produksi. 

 **Manfaat menjalankan praktik terbaik ini:** Dengan mengimplementasi sistem manajemen build dan deployment otomatis, Anda mengurangi kesalahan akibat proses manual dan mengurangi upaya untuk melakukan deployment perubahan sehingga anggota tim Anda dapat berkonsentrasi menghadirkan nilai bisnis. 

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

## Panduan implementasi
<a name="implementation-guidance"></a>
+  Gunakan sistem manajemen build dan deployment: Gunakan sistem manajemen build dan deployment untuk melacak dan mengimplementasikan perubahan, mengurangi kesalahan yang disebabkan proses manual, dan meminimalkan upaya. Otomatiskan jalur deployment dan integrasi secara penuh dari check-in kode hingga build, pengujian, deployment, dan validasi. Ini mengurangi waktu penyelesaian proses, memampukan peningkatan frekuensi perubahan, dan mengurangi upaya. 
  +  [Apa itu AWS CodeBuild?](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
  +  [Praktik terbaik integrasi berkelanjutan untuk pengembangan perangkat lunak](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
  +  [Slalom: CI/CD untuk aplikasi nirserver di AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 
  +  [Pengantar AWS CodeDeploy - deployment perangkat lunak otomatis dengan Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 
  +  [Apa itu AWS CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 

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

 **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:** 
+  [Praktik terbaik integrasi berkelanjutan untuk pengembangan perangkat lunak](https://www.youtube.com/watch?v=GEPJ7Lo346A) 
+  [Pengantar AWS CodeDeploy - deployment perangkat lunak otomatis dengan Amazon Web Services](https://www.youtube.com/watch?v=Wx-ain8UryM) 
+  [Slalom: CI/CD untuk aplikasi nirserver di AWS](https://www.youtube.com/watch?v=tEpx5VaW4WE) 