OPS06-BP02 Menguji deployment - Pilar Keunggulan Operasional

OPS06-BP02 Menguji deployment

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

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

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

Anti-pola umum:

  • Selama rilis produksi, deployment yang belum teruji sering kali akan menyebabkan masalah-masalah yang memerlukan penyelesaian dan eskalasi.

  • Rilis Anda berisi infrastruktur sebagai kode (IaC) yang memperbarui sumber daya yang ada sekarang. Anda tidak yakin apakah IaC berjalan dengan sukses atau akan menyebabkan dampak pada sumber daya.

  • Anda men-deploy sebuah fitur baru ke aplikasi Anda. Fitur tersebut tidak berfungsi sesuai keinginan dan masalah ini baru dapat diketahui setelah dilaporkan oleh para pengguna yang terdampak.

  • Anda memperbarui sertifikat Anda. Anda secara tidak sengaja menginstal sertifikat ke komponen-komponen yang salah, yang akhirnya tidak terdeteksi dan berdampak pada pengunjung situs web karena koneksi yang aman ke situs web tidak dapat dibuat.

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

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

Panduan implementasi

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

Contoh pelanggan

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

Langkah-langkah implementasi

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

    1. Gunakan deteksi penyimpanan untuk mendeteksi apabila sumber daya telah diubah di luar AWS CloudFormation.

    2. Gunakan set perubahan untuk memvalidasi bahwa maksud pembaruan tumpukan sesuai dengan tindakan yang dilakukan oleh AWS CloudFormation saat rangkaian perubahan dimulai.

  2. Ini akan memicu langkah persetujuan manual di AWS CodePipeline untuk mengotorisasi deployment ke lingkungan pra-produksi.

  3. Gunakan konfigurasi deployment seperti file AWS CodeDeploy AppSpec untuk menentukan langkah deployment dan validasi.

  4. Jika berlaku, integrasikan AWS CodeDeploy dengan layanan-layanan AWS lain atau integrasikan AWS CodeDeploy dengan produk dan layanan mitra.

  5. Pantau deployment dengan menggunakan Amazon CloudWatch, AWS CloudTrail dan pemberitahuan acara Amazon SNS.

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

  7. Memecahkan masalah deployment.

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

Tingkat upaya untuk rencana implementasi: Tinggi

Sumber daya

Praktik-praktik terbaik terkait:

Dokumen terkait:

Video terkait:

Contoh terkait: