

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

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

 Jika Anda memiliki konfigurasi dinamis di aplikasi Anda yang berjalan di instans Amazon EC2, AWS Lambda, kontainer, perangkat 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 Anda. 

 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](https://aws.amazon.com/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/)). 

 **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 meminimalkan dampak apa pun terhadap pelanggan dan pengguna akhir. 

 **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. 
+  Anda mendorong konfigurasi pra-produksi ke dalam produksi melalui CI/CD tanpa validasi. Anda mengekspos pengguna dan pelanggan ke data dan layanan yang salah. 

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

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

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

 Sistem manajemen konfigurasi digunakan untuk melacak dan mengimplementasikan perubahan pada konfigurasi aplikasi dan lingkungan. Sistem manajemen konfigurasi juga digunakan untuk mengurangi kesalahan yang disebabkan oleh proses manual, membuat perubahan konfigurasi berulang dan dapat diaudit, dan mengurangi tingkat upaya. 

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

1.  Identifikasikan pemilik konfigurasi. 

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

1.  Identifikasikan item konfigurasi dan hasil kerja. 

   1.  Item konfigurasi adalah semua konfigurasi aplikasi dan lingkungan yang dipengaruhi oleh deployment dalam pipeline CI/CD Anda. 

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

1.  Pilih alat untuk manajemen konfigurasi berdasarkan kebutuhan bisnis dan pipeline pengiriman Anda. 

1.  Pertimbangkan deployment tertimbang seperti deployment canary untuk 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 terbaik terkait:** 
+  [OPS06-BP01 Antisipasikan perubahan yang tidak berhasil](ops_mit_deploy_risks_plan_for_unsucessful_changes.md) 
+  [OPS06-BP02 Menguji deployment](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 pengembalian (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 Pendaratan 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 Developer AWS](https://aws.amazon.com/products/developer-tools/) 

 **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 menggunakan AWS Config](https://youtu.be/m8vTwvbzOfw?si=my4DP0FLq1zwKjho)
+ [ Kelola dan Deploy Konfigurasi Aplikasi dengan AWS AppConfig](https://youtu.be/ztIxMY3IIu0?si=ovYGsxWOBysyQrg0)