Framework Arsitektur Google Cloud: Keandalan

Last reviewed 2024-03-29 UTC

Kategori dalam Framework Arsitektur Google Cloud ini mencakup prinsip-prinsip desain yang diperlukan untuk merancang dan mengoperasikan layanan yang andal pada 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 menjalankan layanan yang andal, arsitektur Anda harus menyertakan hal-hal berikut:

  • Sasaran keandalan terukur yang segera Anda perbaiki setiap kali terjadi penyimpangan
  • Desain pola untuk hal berikut:
    • Skalabilitas
    • Ketersediaan tinggi
    • Pemulihan dari bencana
    • Manajemen perubahan otomatis
  • Komponen yang dapat pulih secara mandiri (memiliki kemampuan untuk memperbaiki masalah tanpa intervensi manual)
  • Kode yang mencakup instrumentasi untuk kemampuan observasi
  • Operasi handsfree seperti berjalannya layanan 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, manajemen produk, operasi, dan tim Site Reliability Engineering (SRE). Tim harus memahami target keandalan, anggaran risiko, dan error aplikasi mereka, serta bertanggung jawab atas persyaratan ini. Konflik antara keandalan dan pengembangan fitur produk harus diprioritaskan dan dieskalasikan sebagaimana mestinya.

Prinsip keandalan inti

Bagian ini membahas prinsip inti dari layanan yang andal dan menetapkan fondasi untuk dokumen yang lebih mendetail berikutnya. Setelah membaca topik ini lebih lanjut, Anda akan mempelajari pendekatan Google terhadap keandalan didasarkan pada prinsip keandalan berikut.

Keandalan adalah fitur utama Anda

Tim teknik terkadang memprioritaskan pengembangan produk baru. Meskipun pengguna mengantisipasi update baru dan menarik pada aplikasi favorit mereka, update produk adalah tujuan jangka pendek bagi pengguna. Pelanggan Anda selalu expect keandalan layanan, meskipun mereka tidak menyadarinya. Serangkaian alat yang diperluas atau grafis yang berkedip dalam aplikasi Anda tidak akan menjadi masalah jika pengguna tidak dapat mengakses layanan atau layanan Anda menunjukkan performa yang buruk. Performa aplikasi yang buruk dengan cepat membuat fitur yang diperluas ini tidak relevan.

Keandalan ditentukan oleh pengguna

Singkatnya, layanan Anda akan menjadi andal saat pelanggan merasa puas. Pengguna tidak selalu dapat diprediksi, dan Anda mungkin melebih-lebihkan apa yang diperlukan untuk memuaskan mereka.

Menurut standar hari ini, halaman web seharusnya dimuat dalam waktu sekitar dua detik. Pengabaian halaman sekitar 53% ketika waktu pemuatan tertunda satu detik lagi, dan meningkat secara dramatis menjadi 87% jika waktu pemuatan tertunda selama tiga detik. Namun, mencoba situs yang menayangkan 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.
  • Beban kerja batch dan streaming: Mengukur indikator performa utama (KPI) untuk throughput data, seperti baris yang dipindai per periode waktu. Pendekatan ini lebih informatif daripada metrik server seperti penggunaan disk. KPI throughput membantu memastikan pemrosesan permintaan pengguna selesai tepat waktu.

Keandalan 100% adalah target yang salah

Prinsip ini merupakan kepanjangan dari prinsip sebelumnya. Sistem Anda cukup dapat diandalkan ketika pengguna merasa puas. Biasanya, pengguna tidak perlu keandalan 100% untuk merasa puas. Dengan demikian, 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 kategori keandalan Framework Arsitektur menyediakan prinsip-prinsip desain dan operasional yang membantu Anda memaksimalkan keandalan sistem. Bagian berikut memberikan ringkasan prinsip desain dan operasional yang akan Anda temukan dalam setiap dokumen dalam rangkaian 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 mengetahui informasi selengkapnya, lihat Membangun kemampuan observasi ke infrastruktur dan aplikasi Anda.

Mendesain skala dan ketersediaan tinggi

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

  • Membuat redundansi untuk HA
  • Mereplikasi data di berbagai 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 cara yang 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.

Menciptakan alat dan proses operasional yang andal

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

  • Pilih nama yang logis dan menentukan sendiri untuk aplikasi dan layanan
  • Gunakan pengujian canary untuk menerapkan peluncuran prosedur secara progresif
  • Atur waktu promosi dan peluncuran Anda agar dapat menyebarkan traffic dan mengurangi kelebihan beban sistem
  • Mengembangkan proses build, pengujian, dan deployment yang terprogram
  • Melindungi dari insiden yang disebabkan manusia, baik disengaja maupun tidak
  • Mengembangkan, menguji, dan mendokumentasikan aktivitas respons kegagalan
  • Mengembangkan dan menguji langkah-langkah pemulihan dari bencana (disaster recovery) secara rutin
  • Rekayasa kekacauan: Praktikkan memasukkan kesalahan ke dalam sistem untuk menentukan faulttolerance dan ketahanan layanan Anda

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

Membuat Pemberitahuan yang efisien

Saat membuat pemberitahuan, sebaiknya Anda melakukan hal berikut:

  • Optimalkan peringatan untuk keterlambatan yang sesuai
  • Kirim peringatan untuk gejala, bukan penyebab
  • Buat pemberitahuan untuk outlier, bukan rata-rata

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

Buat proses manajemen insiden kolaboratif.

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

  • Kepemilikan: Tetapkan pemilik layanan yang jelas.
  • Pemberitahuan yang disesuaikan: Meningkatkan respons insiden (IR) dan mengurangi waktu deteksi (TTD) dengan pemberitahuan yang dirancang secara cermat.
  • Rencana dan pelatihan IRM: Kurangi waktu untuk melakukan mitigasi (TTM) dengan rencana, dokumentasi, dan pelatihan yang komprehensif.
  • Dasbor: Desain tata letak dan konten dasbor untuk memberi tahu secara efisien saat terjadi masalah untuk meminimalkan TTM.
  • Dokumentasi: Buat dan kelola konten yang jelas dan ringkas untuk semua aspek dukungan layanan, termasuk prosedur diagnostik dan mitigasi untuk skenario pemadaman.
  • Budaya tanpa kesalahan:
    • Kembangkan lingkungan tanpa menyalahkan di organisasi Anda.
    • Menetapkan proses {i>postmortem <i}yang berfokus pada apa, bukan siapa.
    • Belajar dari pemadaman layanan dengan menyelidiki secara tepat dan mengidentifikasi area untuk meningkatkan serta mencegah pengulangan.

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

Langkah selanjutnya