

# REL 8 Bagaimana cara mengimplementasikan perubahan?
<a name="w2aac19b9b9b9"></a>

Perubahan terkontrol diperlukan untuk melakukan deployment fungsionalitas baru, dan untuk memastikan bahwa beban kerja dan lingkungan operasi menjalankan perangkat lunak yang dikenal dan dapat di-patch atau diganti dengan cara yang dapat diprediksi. Jika perubahan-perubahan ini tidak terkontrol, maka akan sulit untuk memprediksi efek dari perubahan-perubahan tersebut, atau untuk mengatasi masalah yang timbul sebagai akibatnya. 

**Topics**
+ [REL08-BP01 Menggunakan runbook untuk aktivitas standar seperti deployment](rel_tracking_change_management_planned_changemgmt.md)
+ [REL08-BP02 Integrasikan pengujian fungsional sebagai bagian dari deployment Anda](rel_tracking_change_management_functional_testing.md)
+ [REL08-BP03 Mengintegrasikan pengujian ketahanan sebagai bagian dari deployment Anda](rel_tracking_change_management_resiliency_testing.md)
+ [REL08-BP04 Melakukan deployment menggunakan infrastruktur tetap](rel_tracking_change_management_immutable_infrastructure.md)
+ [REL08-BP05 Melakukan deployment perubahan dengan otomatisasi](rel_tracking_change_management_automated_changemgmt.md)

# REL08-BP01 Menggunakan runbook untuk aktivitas standar seperti deployment
<a name="rel_tracking_change_management_planned_changemgmt"></a>

 Runbook adalah prosedur terdokumentasi untuk mencapai hasil tertentu. Gunakan runbook untuk melakukan aktivitas standar, baik yang dilakukan secara manual maupun otomatis. Contohnya adalah men-deploy beban kerja, mem-patch beban kerja, atau membuat modifikasi DNS. 

 Misalnya, terapkan proses untuk [memastikan keamanan pembatalan selama deployment](https://aws.amazon.com/builders-library/ensuring-rollback-safety-during-deployments). Memastikan bahwa Anda dapat membatalkan deployment tanpa gangguan terhadap pelanggan adalah sesuatu yang penting dalam menciptakan keandalan layanan. 

 Untuk prosedur runbook, mulailah dengan proses manual efektif yang valid, implementasikan dalam kode, dan picu agar berjalan secara otomatis saat diperlukan. 

 Bahkan untuk beban kerja canggih yang diotomatiskan dalam tingkat tinggi, runbook tetap bermanfaat untuk [menjalankan aktivitas game day](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/test-reliability.html#GameDays) atau memenuhi persyaratan pelaporan dan audit yang ketat. 

 Ingat bahwa buku pedoman digunakan untuk merespons insiden tertentu, sedangkan runbook digunakan untuk mencapai hasil tertentu. Sering kali, runbook ditujukan untuk aktivitas rutin, sedangkan buku pedoman digunakan untuk merespons peristiwa nonrutin. 

 **Antipola umum:** 
+  Melakukan perubahan tidak terencana pada konfigurasi di lingkungan produksi. 
+  Melewatkan langkah-langkah dalam rencana Anda untuk men-deploy lebih cepat, sehingga mengakibatkan kegagalan deployment. 
+  Membuat perubahan tanpa menguji pembatalan perubahan. 

 **Manfaat menjalankan praktik terbaik ini:** Perencanaan perubahan yang efektif meningkatkan kemampuan Anda untuk berhasil mengeksekusi perubahan karena Anda mengetahui semua sistem yang terpengaruh. Validasi perubahan di lingkungan pengujian meningkatkan kepercayaan diri Anda. 

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

## Panduan implementasi
<a name="implementation-guidance"></a>
+  Aktifkan respons yang cepat dan konsisten terhadap peristiwa yang dipahami dengan baik dengan cara mendokumentasikan prosedur di dalam runbook. 
  +  [AWS Well-Architected Framework: Konsep: Runbook](https://wa.aws.amazon.com/wat.concept.runbook.en.html) 
+  Gunakan prinsip infrastruktur sebagai kode untuk menetapkan infrastruktur Anda. Dengan menggunakan AWS CloudFormation (atau pihak ketiga tepercaya) untuk menetapkan infrastruktur Anda, Anda dapat menggunakan perangkat lunak kontrol versi untuk membuat versi baru dan melacak perubahan. 
  +  Gunakan AWS CloudFormation (atau penyedia pihak ketiga tepercaya) untuk menetapkan infrastruktur Anda. 
    +  [Apa itu AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
  +  Buat templat singular dan terpisah-pisah, menggunakan prinsip desain perangkat lunak yang baik. 
    +  Tentukan izin, templat, dan pihak-pihak yang bertanggung jawab untuk implementasi. 
      + [ Mengontrol akses dengan AWS Identity and Access Management. ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html)
    +  Gunakan kontrol sumber, seperti AWS CodeCommit atau alat pihak ketiga tepercaya, untuk kontrol versi. 
      +  [Apa Itu AWS CodeCommit?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 

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

 **Dokumen terkait:** 
+  [Partner APN: partner yang dapat membantu Anda membuat solusi deployment yang diotomatisasi](https://aws.amazon.com/partners/find/results/?keyword=devops) 
+  [AWS Marketplace: produk yang dapat digunakan untuk mengotomatisasi deployment Anda](https://aws.amazon.com/marketplace/search/results?searchTerms=DevOps) 
+  [AWS Well-Architected Framework: Konsep: Runbook](https://wa.aws.amazon.com/wat.concept.runbook.en.html) 
+  [Apa itu AWS CloudFormation?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) 
+  [Apa Itu AWS CodeCommit?](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) 

   **Contoh terkait:** 
+  [Mengotomatiskan operasi dengan Buku Pedoman dan Runbook](https://wellarchitectedlabs.com/operational-excellence/200_labs/200_automating_operations_with_playbooks_and_runbooks/) 

# REL08-BP02 Integrasikan pengujian fungsional sebagai bagian dari deployment Anda
<a name="rel_tracking_change_management_functional_testing"></a>

 Uji fungsional dijalankan sebagai bagian dari deployment otomatis. Jika kriteria untuk sukses tidak terpenuhi, maka alur akan dihentikan atau dikembalikan. 

 Pengujian ini dijalankan dalam lingkungan praproduksi, yang dilaksanakan sebelum perkembangan produksi. Idealnya, ini dilakukan sebagai bagian dari alur deployment. 

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

## Panduan implementasi
<a name="implementation-guidance"></a>
+  Integrasikan pengujian fungsional sebagai bagian dari deployment Anda. Uji fungsional dijalankan sebagai bagian dari deployment otomatis. Jika kriteria untuk sukses tidak terpenuhi, maka alur akan dihentikan atau dikembalikan. 
  +  Panggil AWS CodeBuild selama ‘Tindakan Pengujian’ dari alur rilis perangkat lunak Anda yang dimodelkan di AWS CodePipeline. Kemampuan ini memungkinkan Anda untuk dengan mudah menjalankan berbagai macam pengujian terhadap kode Anda, seperti uji unit, analisis kode statis, dan uji integrasi. 
    +  [AWS CodePipeline Menambahkan Dukungan untuk Unit dan Pengujian Integrasi Kustom dengan AWS CodeBuild](https://aws.amazon.com/about-aws/whats-new/2017/03/aws-codepipeline-adds-support-for-unit-testing/) 
  +  Gunakan solusi AWS Marketplace untuk melaksanakan pengujian otomatis sebagai bagian dari alur hasil pengiriman perangkat lunak Anda. 
    +  [Otomatisasi uji perangkat lunak](https://aws.amazon.com/marketplace/solutions/devops/software-test-automation) 

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

 **Dokumen terkait:** 
+  [AWS CodePipeline Menambahkan Dukungan untuk Unit dan Pengujian Integrasi Kustom dengan AWS CodeBuild](https://aws.amazon.com/about-aws/whats-new/2017/03/aws-codepipeline-adds-support-for-unit-testing/) 
+  [Otomatisasi uji perangkat lunak](https://aws.amazon.com/marketplace/solutions/devops/software-test-automation) 
+  [Apa Itu AWS CodePipeline?](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 

# REL08-BP03 Mengintegrasikan pengujian ketahanan sebagai bagian dari deployment Anda
<a name="rel_tracking_change_management_resiliency_testing"></a>

 Pengujian ketahanan (menggunakan [prinsip-prinsip chaos engineering](https://principlesofchaos.org/)) dijalankan sebagai bagian dari pipeline deployment otomatis dalam lingkungan praproduksi. 

 Pengujian tersebut dilaksanakan dan dijalankan di lingkungan praproduksi. Pengujian harus dijalankan dalam produksi sebagai bagian dari [https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/test-reliability.html#GameDays](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/test-reliability.html#GameDays). 

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

## Panduan implementasi
<a name="implementation-guidance"></a>
+  Integrasikan pengujian ketahanan sebagai bagian dari deployment Anda. Gunakan Chaos Engineering, bidang ilmu yang bereksperimen pada sistem guna membangun kepercayaan pada kemampuan beban kerja untuk menahan kondisi turbulen dalam produksi. 
  +  Pengujian ketahanan memasukkan kesalahan atau degradasi sumber daya untuk menilai apakah beban kerja merespons dengan desain ketahanannya. 
    +  [Lab Well-Architected: Level 300: Pengujian Ketahanan EC2, RDS, dan S3](https://wellarchitectedlabs.com/Reliability/300_Testing_for_Resiliency_of_EC2_RDS_and_S3/README.html) 
  +  Pengujian ini dapat dijalankan secara rutin di lingkungan praproduksi dalam pipeline deployment otomatis. 
  +  Pengujian harus dijalankan dalam produksi sebagai bagian dari game day terjadwal. 
  +  Dengan menggunakan prinsip-prinsip Chaos Engineering, ajukan hipotesis tentang cara beban kerja bekerja di berbagai gangguan, kemudian uji hipotesis dengan menggunakan pengujian ketahanan. 
    +  [Prinsip-prinsip Chaos Engineering](https://principlesofchaos.org/) 

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

 **Dokumen terkait:** 
+  [Prinsip-prinsip Chaos Engineering](https://principlesofchaos.org/) 
+  [Apa itu Simulator Injeksi Kesalahan AWS?](https://docs.aws.amazon.com/fis/latest/userguide/what-is.html) 

 **Contoh terkait:** 
+  [Lab Well-Architected: Level 300: Pengujian Ketahanan EC2, RDS, dan S3](https://wellarchitectedlabs.com/Reliability/300_Testing_for_Resiliency_of_EC2_RDS_and_S3/README.html) 

# REL08-BP04 Melakukan deployment menggunakan infrastruktur tetap
<a name="rel_tracking_change_management_immutable_infrastructure"></a>

 Infrastruktur tetap adalah model yang menuntut bahwa tidak ada pembaruan, patch keamanan, atau perubahan konfigurasi yang terjadi di tempat pada beban kerja produksi. Saat perubahan diperlukan, arsitektur dibangun ke infrastruktur baru dan di-deploy ke dalam produksi. 

 Implementasi yang paling umum dari paradigma infrastruktur tetap adalah ***server tetap***. Ini artinya, jika server memerlukan pembaruan atau perbaikan, server baru akan di-deploy, bukannya memperbarui server yang sudah digunakan. Jadi, daripada masuk ke server melalui SSH dan memperbarui versi perangkat lunak, setiap perubahan dalam aplikasi dimulai dengan push perangkat lunak ke repositori kode, misalnya, git push. Karena perubahan tidak diizinkan dalam infrastruktur tetap, Anda dapat yakin tentang status sistem yang di-deploy. Secara permanen, infrastruktur tetap lebih konsisten, dapat diandalkan, dan diprediksikan, selain itu juga mampu menyederhanakan banyak aspek dari pengembangan dan operasi perangkat lunak. 

 Gunakan deployment blue/green atau canary saat melakukan deployment aplikasi dalam infrastruktur tetap. 

 [https://martinfowler.com/bliki/CanaryRelease.html](https://martinfowler.com/bliki/CanaryRelease.html) adalah praktik mengarahkan sejumlah kecil pelanggan kepada versi baru, yang biasanya dijalankan di instans layanan tunggal (canary). Lalu, Anda meneliti secara mendalam setiap perubahan perilaku atau kesalahan yang dihasilkan. Anda dapat menghapus lalu lintas dari canary jika menemui masalah kritis dan mengembalikan pengguna ke versi sebelumnya. Jika deployment berhasil, Anda dapat melanjutkan melakukan deployment pada kecepatan yang diinginkan, sambil memantau perubahan kesalahan, hingga Anda di-deploy sepenuhnya. AWS CodeDeploy dapat dikonfigurasi dengan konfigurasi deployment yang akan mengaktifkan deployment canary. 

 [https://martinfowler.com/bliki/BlueGreenDeployment.html](https://martinfowler.com/bliki/BlueGreenDeployment.html) bersifat serupa dengan deployment canary, kecuali armada penuh aplikasi di-deploy secara paralel. Anda mengubah deployment di dua tumpukan (blue dan green). Sekali lagi, Anda mengirimkan lalu lintas ke versi baru, dan kembali ke versi lama jika Anda melihat masalah dengan deployment. Biasanya semua lalu lintas dialihkan sekaligus, tetapi Anda juga dapat menggunakan sebagian lalu lintas ke setiap versi untuk meningkatkan adopsi versi baru menggunakan kemampuan perutean DNS tertimbang dari Amazon Route 53. AWS CodeDeploy dan AWS Elastic Beanstalk dapat dikonfigurasikan dengan konfigurasi deployment yang akan mengaktifkan deployment blue/green. 

![\[Diagram yang menampilkan deployment blue/green dengan AWS Elastic Beanstalk dan Amazon Route 53\]](http://docs.aws.amazon.com/id_id/wellarchitected/2022-03-31/framework/images/blue-green-deployment.png)


 Manfaat infrastruktur tetap: 
+  **Pengurangan dalam penyimpangan konfigurasi:** Dengan sering mengganti server dari konfigurasi dasar, yang dikenal dan dikontrol versinya, infrastruktur **diatur ulang** ke status yang diketahui, menghindari penyimpangan konfigurasi. 
+  **Penyederhanaan deployment**: Deployment disederhanakan karena tidak memerlukan pembaruan dukungan. Pembaruan hanyalah deployment baru. 
+  **Deployment atom yang andal:** Deployment sepenuhnya berhasil, atau tidak ada yang berubah. Hal ini memberikan lebih banyak kepercayaan pada proses deployment. 
+  **Deployment yang lebih aman dengan proses rollback dan pemulihan yang cepat:** Deployment lebih aman karena versi kerja sebelumnya tidak berubah. Anda dapat melakukan rollback jika kesalahan terdeteksi. 
+  **Pengujian yang konsisten dan debugging lingkungan:** Karena semua server menggunakan gambar yang sama, tidak ada perbedaan antara lingkungan. Satu build di-deploy ke beberapa lingkungan. Hal itu juga mencegah lingkungan yang tidak konsisten dan menyederhanakan pengujian dan debugging. 
+  **Peningkatan skalabilitas:** Karena sistem menggunakan gambar dasar yang konsisten dan berulang, penskalaan otomatis menjadi lebih sederhana. 
+  **Penyederhanaan rantai alat**: Rantai alat disederhanakan karena Anda dapat menyingkirkan alat manajemen konfigurasi yang mengelola peningkatan perangkat lunak produksi. Tidak ada alat tambahan atau agen yang diinstal pada server. Perubahan dilakukan pada gambar dasar, diuji, dan diluncurkan. 
+  **Peningkatan keamanan:** Dengan menolak semua perubahan ke server, Anda dapat menonaktifkan SSH pada instans dan menghapus kunci. Hal ini mengurangi vektor serangan, meningkatkan postur keamanan organisasi. 

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

## Panduan implementasi
<a name="implementation-guidance"></a>
+  Lakukan deployment menggunakan infrastruktur tetap. Infrastruktur tetap adalah model yang di dalamnya tidak ada pembaruan, patch keamanan, atau perubahan konfigurasi yang terjadi *di tempat* pada sistem produksi. Jika ada perubahan yang diperlukan, arsitektur versi baru dibangun dan di-deploy ke dalam produksi. 
  +  [Ikhtisar Deployment Blue/Green](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html#welcome-deployment-overview-blue-green) 
  +  [Melakukan Deployment Aplikasi Nirserver Secara Bertahap](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html) 
  +  [Infrastruktur Tetap: Keandalan, konsistensi, dan kepercayaan melalui ketetapan](https://medium.com/@adhorn/immutable-infrastructure-21f6613e7a23) 
  +  [CanaryRelease](https://martinfowler.com/bliki/CanaryRelease.html) 

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

 **Dokumen terkait:** 
+  [CanaryRelease](https://martinfowler.com/bliki/CanaryRelease.html) 
+  [Melakukan Deployment Aplikasi Nirserver Secara Bertahap](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html) 
+  [Infrastruktur Tetap: Keandalan, konsistensi, dan kepercayaan melalui ketetapan](https://medium.com/@adhorn/immutable-infrastructure-21f6613e7a23) 
+  [Ikhtisar Deployment Blue/Green](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html#welcome-deployment-overview-blue-green) 
+  [Amazon Builders' Library: Memastikan keamanan rollback selama deployment](https://aws.amazon.com/builders-library/ensuring-rollback-safety-during-deployments) 

# REL08-BP05 Melakukan deployment perubahan dengan otomatisasi
<a name="rel_tracking_change_management_automated_changemgmt"></a>

 Deployment dan patching diotomatisasi untuk menyingkirkan dampak negatif. 

 Membuat perubahan pada sistem produksi adalah salah satu area risiko terbesar untuk banyak organisasi. Kami menganggap deployment sebagai masalah kelas pertama untuk diatasi bersamaan dengan masalah-masalah bisnis yang ditangani oleh perangkat lunak. Saat ini, ini berarti penggunaan otomatisasi kapan saja memungkinkan dalam operasi, termasuk untuk menguji dan melakukan deployment perubahan, menambah atau menghapus kapasitas, dan memigrasikan data. AWS CodePipeline memungkinkan Anda mengelola langkah-langkah yang diperlukan untuk merilis beban kerja Anda. Ini mencakup status deployment menggunakan AWS CodeDeploy untuk mengotomatisasi deployment kode aplikasi ke instans Amazon EC2, instans on-premise, fungsi Lambda nirserver, atau layanan Amazon ECS. 

**Rekomendasi**  
 Meskipun kebijaksanaan konvensional menyarankan Anda untuk melibatkan manusia untuk prosedur operasional paling sulit, kami justru menyarankan Anda mengotomatisasi prosedur paling sulit untuk alasan tersebut. 

 **Antipola umum:** 
+  Melakukan perubahan secara manual. 
+  Melewatkan langkah-langkah dalam otomatisasi Anda melalui alur kerja darurat. 
+  Tidak mengikuti rencana Anda. 

 **Manfaat menjalankan praktik terbaik ini:** Penggunaan otomatisasi untuk melakukan deployment semua perubahan dapat menyingkirkan potensi munculnya kesalahan manusia dan menghadirkan kemampuan untuk menguji sebelum mengubah produksi guna memastikan rencana Anda sudah lengkap. 

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

## Panduan implementasi
<a name="implementation-guidance"></a>
+  Otomatiskan pipeline deployment Anda. Pipeline deployment memungkinkan Anda untuk memanggil pengujian dan deteksi anomali secara otomatis, serta memberi Anda pilihan untuk menghentikan pipeline pada langkah tertentu sebelum deployment produksi atau membatalkan perubahan secara otomatis. 
  +  [Amazon Builders' Library: Memastikan keamanan pembatalan selama deployment](https://aws.amazon.com/builders-library/ensuring-rollback-safety-during-deployments) 
  +  [Amazon Builders' Library: Melaju lebih cepat dengan pengiriman berkelanjutan](https://aws.amazon.com/builders-library/going-faster-with-continuous-delivery/) 
    +  Gunakan AWS CodePipeline (atau produk pihak ketiga tepercaya) untuk menetapkan dan menjalankan pipeline Anda. 
      +  Konfigurasikan pipeline untuk mulai saat ada perubahan yang dimasukkan ke repositori kode Anda. 
        +  [Apa Itu AWS CodePipeline?](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 
      +  Gunakan Amazon Simple Notification Service (Amazon SNS) dan Amazon Simple Email Service (Amazon SES) untuk mengirimkan notifikasi tentang masalah di dalam pipeline atau integrasikan dengan alat obrolan tim, seperti Amazon Chime. 
        +  [Apa Itu Amazon Simple Notification Service?](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) 
        +  [Apa Itu Amazon SES?](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html) 
        +  [Apa itu Amazon Chime?](https://docs.aws.amazon.com/chime/latest/ug/what-is-chime.html) 
        +  [Otomatiskan pesan obrolan dengan webhooks.](https://docs.aws.amazon.com/chime/latest/ug/webhooks.html) 

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

 **Dokumen terkait:** 
+  [Partner APN: partner yang dapat membantu Anda membuat solusi deployment yang diotomatisasi](https://aws.amazon.com/partners/find/results/?keyword=devops) 
+  [AWS Marketplace: produk yang dapat digunakan untuk mengotomatisasi deployment Anda](https://aws.amazon.com/marketplace/search/results?searchTerms=DevOps) 
+  [Otomatiskan pesan obrolan dengan webhooks.](https://docs.aws.amazon.com/chime/latest/ug/webhooks.html) 
+  [Amazon Builders' Library: Memastikan keamanan pembatalan selama deployment](https://aws.amazon.com/builders-library/ensuring-rollback-safety-during-deployments) 
+  [Amazon Builders' Library: Melaju lebih cepat dengan pengiriman berkelanjutan](https://aws.amazon.com/builders-library/going-faster-with-continuous-delivery/) 
+  [Apa Itu AWS CodePipeline?](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 
+  [Apa Itu CodeDeploy?](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html) 
+  [AWS Systems Manager Patch Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-patch.html) 
+  [Apa Itu Amazon SES?](https://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html) 
+  [Apa Itu Amazon Simple Notification Service?](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) 

 **Video terkait:** 
+  [AWS Summit 2019: CI/CD di AWS](https://youtu.be/tQcF6SqWCoY) 