Framework Arsitektur Google Cloud: Keandalan

Last reviewed 2024-10-11 UTC

Pilar Framework Arsitektur Google Cloud ini mencakup prinsip-prinsip desain yang diperlukan untuk merancang dan mengoperasikan layanan yang andal di platform cloud pada tingkat tinggi.

Framework Arsitektur menjelaskan praktik terbaik, menyediakan rekomendasi implementasi, dan menjelaskan beberapa produk dan layanan yang tersedia. Framework ini bertujuan untuk membantu Anda mendesain deployment Google Cloud agar sesuai dengan kebutuhan bisnis Anda.

Untuk prinsip dan rekomendasi keandalan yang khusus untuk workload AI dan ML, lihat Perspektif AI dan ML: Keandalan dalam Framework Arsitektur.

Untuk menjalankan layanan yang andal, arsitektur Anda harus menyertakan hal-hal berikut:

  • Sasaran keandalan yang terukur yang segera Anda perbaiki setiap kali terjadi penyimpangan
  • Buat pola desain untuk hal berikut:
    • Skalabilitas
    • Ketersediaan tinggi
    • Pemulihan dari bencana
    • Pengelolaan perubahan otomatis
  • Komponen yang dapat melakukan pemulihan mandiri (memiliki kemampuan untuk memperbaiki masalah tanpa intervensi manual)
  • Kode yang menyertakan instrumentasi untuk kemampuan observasi
  • Operasi handsfree seperti layanan berjalan dengan pekerjaan manual minimal, beban operator kognitif, serta deteksi dan mitigasi kegagalan yang cepat

Seluruh organisasi engineering bertanggung jawab atas keandalan layanan, termasuk tim pengembangan, pengelolaan produk, operasi, dan site reliability engineering (SRE). Tim harus memahami target keandalan, risiko, dan anggaran error aplikasi mereka, serta bertanggung jawab atas persyaratan ini. Konflik antara keandalan dan pengembangan fitur produk harus diprioritaskan dan dieskalasi sebagaimana mestinya.

Prinsip keandalan inti

Bagian ini membahas prinsip inti layanan yang andal dan menetapkan dasar untuk dokumen yang lebih mendetail yang akan mengikutinya. Saat membaca lebih lanjut topik ini, Anda akan mempelajari pendekatan Google terkait keandalan yang didasarkan pada prinsip keandalan berikut.

Keandalan adalah fitur utama Anda

Tim engineer terkadang memprioritaskan pengembangan produk baru. Meskipun pengguna menantikan update baru dan menarik pada aplikasi favorit mereka, update produk adalah sasaran jangka pendek bagi pengguna Anda. Pelanggan Anda selalu mengharapkan keandalan layanan, meskipun mereka tidak menyadarinya. Kumpulan alat yang diperluas atau grafik yang menarik di aplikasi Anda tidak akan berarti jika pengguna tidak dapat mengakses layanan Anda atau layanan Anda menunjukkan performa yang buruk. Performa aplikasi yang buruk akan dengan cepat membuat fitur yang diperluas ini menjadi tidak relevan.

Keandalan ditentukan oleh pengguna

Singkatnya, layanan Anda dapat diandalkan jika pelanggan Anda puas. Pengguna tidak selalu dapat diprediksi, dan Anda mungkin melebih-lebihkan hal yang diperlukan untuk memuaskan mereka.

Menurut standar saat ini, halaman web harus dimuat dalam waktu sekitar dua detik. Pengabaian halaman adalah sekitar 53% jika waktu pemuatan tertunda satu detik lagi, dan meningkat drastis menjadi 87% jika waktu pemuatan tertunda tiga detik. Namun, berusaha membuat situs yang menampilkan halaman dalam hitungan detik mungkin bukan investasi terbaik. Untuk menentukan tingkat keandalan layanan yang tepat bagi pelanggan, Anda perlu mengukur hal-hal berikut:

  • Beban kerja yang dihadapi pengguna: Mengukur pengalaman pengguna. Misalnya, ukur rasio keberhasilan permintaan pengguna, bukan hanya metrik server seperti penggunaan CPU.
  • Workload batch dan streaming: Ukur indikator performa utama (KPI) untuk throughput data, seperti baris yang dipindai per jangka waktu. Pendekatan ini lebih informatif daripada metrik server seperti penggunaan disk. KPI throughput membantu memastikan pemrosesan yang diminta pengguna selesai tepat waktu.

Keandalan 100% adalah target yang salah

Prinsip ini adalah perluasan dari prinsip sebelumnya. Sistem Anda cukup andal jika pengguna puas. Biasanya, pengguna tidak memerlukan keandalan 100% untuk merasa puas. Oleh karena itu, tentukan tujuan tingkat layanan (SLO) yang menetapkan batas keandalan ke persentase yang diperlukan untuk membuat pengguna puas, lalu gunakan anggaran error untuk mengelola tingkat perubahan yang sesuai.

Terapkan prinsip desain dan operasional dalam framework ini ke produk hanya jika SLO untuk produk atau aplikasi tersebut membenarkan biayanya.

Keandalan dan Inovasi cepat saling melengkapi

Gunakan anggaran error untuk mencapai keseimbangan antara stabilitas sistem dan ketangkasan developer. Panduan berikut membantu Anda menentukan kapan harus lebih berfokus pada stabilitas atau pengembangan:

  • Saat anggaran error berkurang, perlambat dan fokuskan pada fitur keandalan.
  • Jika anggaran error yang memadai tersedia, Anda dapat berinovasi dengan cepat dan meningkatkan produk atau menambahkan fitur produk.

Prinsip desain dan operasional

Dokumen lainnya dalam pilar keandalan Framework Arsitektur memberikan prinsip desain dan operasional yang membantu Anda memaksimalkan keandalan sistem. Bagian berikut memberikan ringkasan desain dan prinsip operasional yang akan Anda temukan di setiap dokumen dalam seri ini.

Menetapkan sasaran keandalan

Ingat, kepuasan pengguna menentukan keandalan dan sasaran keandalan Anda diwakili oleh SLO yang Anda tetapkan. Saat menetapkan SLO, pertimbangkan hal-hal berikut:

  • Pilih indikator tingkat layanan (SLI) yang sesuai.
  • Tetapkan SLO berdasarkan pengalaman pengguna.
  • Meningkatkan SLO secara iteratif.
  • Gunakan SLO internal yang ketat.
  • Gunakan anggaran error untuk mengelola kecepatan pengembangan.

Untuk informasi selengkapnya, lihat Komponen tujuan tingkat layanan.

Build kemampuan observasi ke dalam infrastruktur dan aplikasi Anda

Instrumentasikan kode Anda untuk memaksimalkan kemampuan observasi. Untuk informasi selengkapnya, lihat Mem-build kemampuan observasi ke dalam infrastruktur dan aplikasi Anda.

Mendesain skala dan ketersediaan tinggi

Dalam hal skala dan ketersediaan tinggi (HA), pertimbangkan prinsip berikut:

  • Membuat redundansi untuk HA
  • Mereplikasi data di seluruh region untuk pemulihan dari bencana (DR)
  • Desain arsitektur multi-region untuk ketahanan terhadap pemadaman layanan regional
  • Menurunkan level layanan dengan baik saat kelebihan beban
  • Fail Safe dengan tetap mempertahankan fungsi sistem
  • Desain panggilan API dan perintah agar dapat dicoba lagi
  • Pertimbangkan dependensi:
    • Mengidentifikasi dan mengelola dependensi sistem
    • Meminimalkan dependensi kritis.
  • Memastikan setiap perubahan dapat di-roll back

Selain itu, aktivitas berikut membantu keandalan layanan Anda:

  • Menghilangkan hambatan skalabilitas.
  • Mencegah dan mengurangi lonjakan traffic
  • Membersihkan dan memvalidasi input

Untuk mengetahui informasi selengkapnya, lihat Mendesain untuk skala dan ketersediaan tinggi.

Membuat alat dan proses operasional yang andal

Buat keandalan ke dalam alat dan proses operasi dengan melakukan hal berikut:

  • Memilih nama yang logis dan mendefinisikan sendiri untuk aplikasi dan layanan
  • Menggunakan pengujian canary untuk menerapkan peluncuran progresif prosedur
  • Tentukan waktu promosi dan peluncuran Anda agar dapat menyebarkan traffic dan mengurangi kelebihan beban sistem
  • Mengembangkan proses build, pengujian, dan deployment terprogram
  • Memberikan perlindungan dari insiden yang disebabkan manusia, baik disengaja maupun tidak
  • Mengembangkan, menguji, dan mendokumentasikan aktivitas respons kegagalan
  • Mengembangkan dan menguji langkah-langkah disaster recovery secara rutin
  • Chaos engineering: Buatlah praktik memasukkan error ke dalam sistem untuk menentukan fault tolerance dan ketahanan layanan Anda

Untuk informasi selengkapnya, lihat Membuat proses dan alat operasional yang andal.

Membuat Pemberitahuan yang efisien

Saat membuat pemberitahuan, sebaiknya Anda melakukan hal berikut:

  • Mengoptimalkan pemberitahuan untuk penundaan yang sesuai
  • Buat pemberitahuan untuk gejala, bukan penyebab
  • Buat pemberitahuan untuk pencilan, bukan rata-rata

Untuk informasi selengkapnya, lihat Membuat pemberitahuan yang efisien dalam pilar keandalan Framework Arsitektur.

Buat proses manajemen insiden kolaboratif.

Respons dan pengelolaan insiden (IRM) sangat penting untuk pemulihan layanan dan meminimalkan kerusakan. IRM yang efektif mencakup:

  • Kepemilikan: Tetapkan pemilik layanan yang jelas.
  • Pemberitahuan yang disetel dengan baik: Meningkatkan respons insiden (IR) dan mengurangi waktu untuk mendeteksi (TTD) dengan pemberitahuan yang dirancang dengan cermat.
  • Rencana dan pelatihan IRM: Kurangi waktu untuk memitigasi (TTM) dengan rencana, dokumentasi, dan pelatihan yang komprehensif.
  • Dasbor: Desain tata letak dan konten dasbor untuk memberikan pemberitahuan secara efisien saat masalah terjadi guna meminimalkan TTM.
  • Dokumentasi: Buat dan pertahankan konten yang jelas dan ringkas untuk semua aspek dukungan layanan, termasuk prosedur diagnostik dan mitigasi untuk skenario penghentian layanan.
  • Budaya tanpa cela:
    • Ciptakan lingkungan blameless di organisasi Anda.
    • Menetapkan proses postmortem yang berfokus pada apa, bukan siapa.
    • Pelajari gangguan Anda dengan menyelidiki dengan benar dan mengidentifikasi area yang perlu ditingkatkan dan mencegah pengulangan.

Untuk informasi selengkapnya, lihat Membangun proses manajemen insiden kolaboratif dalam pilar keandalan Framework Arsitektur.

Langkah selanjutnya