OPS06-BP04 Mengotomatiskan pengujian dan pengembalian (rollback) - Pilar Keunggulan Operasional

OPS06-BP04 Mengotomatiskan pengujian dan pengembalian (rollback)

Untuk meningkatkan kecepatan, keandalan, dan keyakinan pada proses deployment Anda, miliki strategi untuk kemampuan pengujian dan rollback otomatis di lingkungan praproduksi dan produksi. Otomatiskan pengujian saat melakukan deployment ke produksi untuk menyimulasikan interaksi manusia dan sistem yang memverifikasi perubahan yang sedang di-deploy. Otomatiskan rollback untuk kembali ke keadaan pasti baik sebelumnya dengan cepat. Rollback harus dimulai secara otomatis pada kondisi yang telah ditentukan di awal seperti ketika hasil perubahan yang Anda inginkan tidak tercapai atau ketika pengujian otomatis mengalami kegagalan. Mengotomatiskan kedua aktivitas ini dapat memperbaiki tingkat keberhasilan untuk deployment Anda, meminimalkan waktu pemulihan, dan mengurangi potensi dampak terhadap bisnis.

Hasil yang diinginkan: Strategi pengujian dan rollback otomatis Anda diintegrasikan ke dalam pipeline integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) Anda. Pemantauan Anda dapat memvalidasi berdasarkan kriteria keberhasilan Anda dan memulai rollback otomatis setelah kegagalan. Hal ini meminimalkan dampak apa pun terhadap pelanggan dan pengguna akhir. Misalnya, ketika semua hasil pengujian telah terpenuhi, Anda meneruskan kode Anda ke lingkungan produksi tempat pengujian regresi otomatis dimulai, dengan memanfaatkan kasus pengujian yang sama. Jika hasil pengujian regresi tidak sesuai dengan harapan, maka rollback otomatis akan dimulai dalam alur kerja pipeline.

Antipola umum:

  • Sistem Anda tidak dirancang dapat diperbarui dengan rilis-rilis yang lebih kecil. Akibatnya, Anda mengalami kesulitan dalam membatalkan perubahan massal tersebut selama deployment yang gagal.

  • Proses deployment Anda terdiri dari serangkaian langkah manual. Setelah melakukan deployment perubahan ke beban kerja, Anda memulai pengujian pasca-deployment. Setelah pengujian, Anda menyadari bahwa beban kerja Anda tidak dapat dioperasikan dan koneksi pelanggan terputus. Kemudian Anda mulai melakukan rollback ke versi sebelumnya. Semua langkah manual ini menghambat pemulihan sistem secara keseluruhan dan menyebabkan dampak yang berkepanjangan terhadap pelanggan Anda.

  • Anda menghabiskan waktu mengembangkan kasus pengujian otomatis untuk fungsionalitas yang tidak sering digunakan dalam aplikasi Anda, sehingga memperkecil laba atas investasi dalam kemampuan pengujian otomatis Anda.

  • Rilis Anda terdiri dari aplikasi, infrastruktur, patch, dan pembaruan konfigurasi yang tidak bergantung satu sama lain. Namun, Anda memiliki satu pipeline CI/CD yang mengirimkan semua perubahan sekaligus. Kegagalan pada satu komponen memaksa Anda untuk mengembalikan semua perubahan, menjadikan rollback Anda kompleks dan tidak efisien.

  • Tim Anda menyelesaikan tugas pengodean dalam sprint satu dan memulai tugas sprint dua, tetapi rencana Anda tidak menyertakan pengujian sampai sprint tiga. Akibatnya, pengujian otomatis mengungkap cacat dari sprint satu yang harus diselesaikan sebelum pengujian kiriman sprint dua dapat dimulai dan seluruh rilis menjadi tertunda, sehingga menurunkan nilai pengujian otomatis Anda.

  • Kasus pengujian regresi otomatis Anda untuk rilis produksi sudah selesai, tetapi Anda tidak memantau kondisi beban kerja. Karena Anda tidak memiliki visibilitas apakah layanan telah dimulai ulang atau belum, Anda tidak yakin apakah rollback diperlukan atau rollback sudah terjadi.

Manfaat menjalankan praktik terbaik ini: Pengujian otomatis meningkatkan transparansi proses pengujian Anda dan kemampuan Anda untuk mencakup lebih banyak fitur dalam periode waktu yang lebih singkat. Dengan menguji dan memvalidasi perubahan dalam produksi, Anda dapat segera mengidentifikasi masalah. Peningkatan konsistensi dengan alat pengujian otomatis memungkinkan deteksi cacat yang lebih baik. Dengan melakukan rollback otomatis ke versi sebelumnya, dampak pada pelanggan diminimalkan. Rollback otomatis pada akhirnya memunculkan keyakinan yang lebih tinggi pada kemampuan deployment Anda dengan mengurangi dampak bisnis. Secara keseluruhan, kemampuan ini mengurangi waktu pengiriman sekaligus memastikan kualitas.

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

Panduan implementasi

Otomatiskan pengujian lingkungan yang di-deploy untuk mengonfirmasi hasil yang diinginkan dengan lebih cepat. Otomatiskan pengembalian ke keadaan yang diketahui baik sebelumnya ketika hasil yang ditetapkan di awal tidak tercapai, untuk mempersingkat waktu pemulihan dan mengurangi kesalahan yang disebabkan oleh proses manual. Integrasikan alat pengujian dengan alur kerja pipeline Anda untuk menguji dan meminimalkan input manual secara konsisten. Prioritaskan otomatisasi kasus pengujian, seperti kasus pengujian yang mengurangi risiko terbesar dan perlu sering diuji dengan setiap perubahan. Selain itu, otomatiskan rollback berdasarkan kondisi tertentu yang telah ditentukan di awal dalam rencana pengujian Anda.

Langkah implementasi

  1. Bangun siklus pengujian untuk siklus hidup pengembangan Anda yang menentukan setiap tahap proses pengujian mulai dari perencanaan persyaratan hingga pengembangan kasus pengujian, konfigurasi alat, pengujian otomatis, dan penutupan kasus pengujian.

    1. Buat pendekatan pengujian khusus beban kerja dari strategi pengujian Anda secara keseluruhan.

    2. Pertimbangkan strategi pengujian berkelanjutan jika diperlukan di seluruh siklus pengembangan.

  2. Pilih alat otomatis untuk pengujian dan rollback berdasarkan kebutuhan bisnis dan investasi pipeline Anda.

  3. Tentukan kasus pengujian mana yang ingin Anda otomatisasi dan mana yang harus dilakukan secara manual. Anda dapat menentukannya berdasarkan prioritas nilai bisnis dari fitur yang sedang diuji. Selaraskan semua anggota tim dengan rencana ini dan pastikan akuntabilitas untuk melakukan pengujian manual.

    1. Terapkan kemampuan pengujian otomatis ke kasus pengujian tertentu yang cocok untuk otomatisasi, seperti kasus berulang atau yang sering dijalankan, kasus yang memerlukan tugas berulang, atau kasus yang diperlukan di beberapa konfigurasi.

    2. Tentukan skrip otomatisasi pengujian serta kriteria keberhasilan di dalam alat otomatisasi sehingga otomatisasi alur kerja yang berkelanjutan dapat dimulai ketika ada kasus tertentu yang gagal.

    3. Tentukan kriteria kegagalan khusus untuk rollback otomatis.

  4. Prioritaskan otomatisasi pengujian untuk mendorong hasil yang konsisten dengan pengembangan kasus pengujian menyeluruh di mana kompleksitas dan interaksi manusia memiliki risiko kegagalan yang lebih tinggi.

  5. Integrasikan pengujian otomatis dan alat rollback Anda ke dalam pipeline CI/CD Anda.

    1. Kembangkan kriteria keberhasilan yang jelas untuk perubahan Anda.

    2. Pantau dan amati untuk mendeteksi kriteria ini dan secara otomatis membalikkan perubahan ketika kriteria rollback tertentu terpenuhi.

  6. Lakukan berbagai jenis pengujian produksi otomatis, seperti:

    1. Pengujian A/B untuk menunjukkan hasil yang dibandingkan dengan versi saat ini antara dua kelompok pengujian pengguna.

    2. Pengujian canary yang memungkinkan Anda untuk meluncurkan perubahan Anda pada subset pengguna sebelum merilisnya ke semua pengguna.

    3. Pengujian penandaan fitur (feature flag) yang memungkinkan satu per satu fitur dari versi baru untuk ditandai atau dihapus tandanya dari luar aplikasi sehingga setiap fitur baru dapat divalidasi satu per satu.

    4. Pengujian regresi untuk memverifikasi fungsionalitas baru dengan komponen yang saling terkait.

  7. Pantau aspek operasional aplikasi, transaksi, dan interaksi dengan aplikasi dan komponen lain. Kembangkan laporan untuk menunjukkan keberhasilan perubahan berdasarkan beban kerja sehingga Anda dapat mengidentifikasi bagian otomatisasi dan alur kerja apa yang dapat dioptimalkan lebih lanjut.

    1. Kembangkan laporan hasil pengujian yang membantu Anda mengambil keputusan cepat terkait apakah prosedur rollback perlu dimulai.

    2. Terapkan strategi yang memungkinkan rollback otomatis berdasarkan kondisi kegagalan yang telah ditentukan di awal yang dihasilkan dari satu atau beberapa metode pengujian Anda.

  8. Kembangkan kasus pengujian otomatis untuk memungkinkan penggunaan ulang di seluruh perubahan berulang di masa mendatang.

Tingkat upaya untuk rencana implementasi: Sedang

Sumber daya

Praktik terbaik terkait:

Dokumen terkait:

Contoh terkait:

Video terkait: