Bagian ini meninjau konsep indikator tingkat layanan (SLI), menentukan apa yang membuat SLI menjadi baik atau berguna, dan memberikan contoh penerapan SLI untuk layanan tertentu. Halaman ini ditujukan bagi orang-orang yang ingin melihat contoh penerapan SLI khusus layanan.
Pengantar SLI
Keandalan layanan adalah konsep abstrak; arti keandalan bergantung pada layanan dan kebutuhan penggunanya. Indikator tingkat layanan (SLI) adalah ukuran keandalan yang akan digunakan untuk mengomunikasikan keandalan layanan dan mengelola layanan.
SLI diukur selama jangka waktu tertentu. Ukuran jendela biasanya bergantung pada keputusan yang akan dibuat berdasarkan informasi tersebut. Misalnya, Anda dapat mengukur satu SLI dengan cara berikut:
- Selama satu jam terakhir, untuk membuat kebijakan pemberitahuan.
- Selama beberapa minggu, untuk membuat keputusan taktis.
- Selama berbulan-bulan, untuk membuat keputusan strategis.
Sebaiknya gunakan 28 hari sebagai titik awal untuk mengukur SLI Anda; nilai ini memberikan keseimbangan yang baik antara kasus penggunaan strategis dan taktis.
Untuk mengetahui informasi selengkapnya, lihat bagian berikut dalam Site Reliability Engineering Workbook:
Properti SLI yang baik
Kami menganggap SLI "baik" adalah pengukuran yang memenuhi kriteria berikut:
SLI adalah ukuran proxy yang baik untuk kepuasan pengguna.
SLI yang baik berkorelasi kuat dengan kepuasan pengguna. Anda menggunakan SLI sebagai dasar untuk tujuan tingkat layanan (SLO), yaitu nilai minimum yang ditetapkan pada SLI. Anda menetapkan SLO sehingga, saat SLI berada dalam rentang yang ditentukan, sebagian besar pengguna Anda merasa puas. Agar hubungan ini tetap terjaga, SLI harus menjadi ukuran proxy yang baik untuk kepuasan pengguna.
Jika SLI adalah proksi yang baik untuk kepuasan pengguna, maka saat ada peristiwa yang memengaruhi kepuasan pengguna, SLI akan berubah ke arah tertentu. Demikian pula, jika tidak ada peristiwa yang memengaruhi kepuasan pengguna, SLI tidak akan berubah.
SLI diskalakan secara monoton dan linear dengan kepuasan pengguna.
SLI yang baik diskalakan secara monoton, dan linear, dengan kepuasan pengguna. Jika SLI meningkat, maka kepuasan pengguna juga meningkat. Demikian pula, jika SLI menurun, maka kepuasan pengguna juga menurun. Jumlah peningkatan nilai SLI yang baik sesuai dengan jumlah peningkatan kepuasan pengguna.
SLI menghasilkan pengukuran yang berkisar dari 0% hingga 100%.
SLI yang baik menghasilkan pengukuran performa yang berkisar dari 0% hingga 100%: rentang ini intuitif dan mudah digunakan. Misalnya, performa SLI sebesar 100% berarti semuanya berfungsi, dan performa SLI sebesar 0% berarti tidak ada yang berfungsi.
Dengan memiliki SLI yang berkisar dari 0% hingga 100%, Anda dapat menetapkan SLO dengan mudah dan jelas: tetapkan target persentase seperti 99,9%, dan performa SLI harus sama dengan atau lebih tinggi dari target tersebut agar layanan memenuhi SLO-nya.
Janji
Salah satu cara menerapkan SLI yang memiliki properti ini adalah dengan memikirkan SLI dalam hal janji yang diberikan kepada pengguna Anda. Dengan menghitung janji yang Anda buat dan tepati selama jangka waktu tertentu, Anda dapat memperoleh angka yang berkisar dari 0% hingga 100%. SLI tersebut juga dapat diterjemahkan dengan baik ke dalam anggaran error: untuk SLO tertentu, anggaran error Anda adalah jumlah janji yang dapat Anda langgar selama jangka waktu tertentu dan tetap memenuhi SLO Anda.
Contoh janji meliputi:
- Untuk menampilkan respons dengan kode status HTTP
200
terhadap permintaan pelanggan. - Untuk merespons permintaan gRPC dalam waktu kurang dari 100 md.
- Untuk menyelesaikan alur kerja "Buat Virtual Machine" dengan berhasil.
- Untuk menyajikan data yang telah diperbarui dalam 10 menit terakhir.
- Untuk mulai menjalankan tugas batch terjadwal dalam waktu satu menit dari waktu mulainya.
Spesifikasi dan penerapan SLI
Spesifikasi SLI adalah hal yang ingin Anda ukur. Spesifikasi tidak menyertakan detail teknis yang tepat tentang cara Anda akan mengukurnya. Misalnya, berikut adalah spesifikasi SLI untuk waktu pemuatan halaman:
- Persentase permintaan halaman beranda yang dimuat dalam waktu kurang dari 100 md.
Ada banyak cara untuk mengukur SLI, masing-masing dengan kelebihan dan kekurangan. Cara mengukur SLI adalah Implementasi SLI. Misalnya, Anda dapat menerapkan spesifikasi pemuatan halaman sebagai salah satu dari berikut ini:
- Kolom latensi log permintaan server aplikasi.
- Metrik yang diekspor oleh server aplikasi.
- Metrik yang diekspor oleh load balancer di depan server aplikasi.
- Layanan pemantauan black box yang mengirim permintaan buatan ke sistem dan mengukur waktu yang diperlukan untuk menerima respons yang valid.
- Kode khusus aplikasi yang dieksekusi di browser pelanggan yang mencatat informasi waktu dan mengirimkannya kembali ke layanan pengumpulan.
Setiap pilihan ini melibatkan kompromi antara karakteristik berikut:
- Fidelitas: seberapa akuratnya dalam merekam pengalaman pengguna.
- Cakupan: proporsi interaksi pengguna yang diukur.
- Biaya: jumlah uang dan waktu engineering yang diperlukan untuk membangun dan memelihara solusi.
Kesetiaan terhadap pengalaman pengguna biasanya meningkat saat SLI diukur lebih dekat dengan pengguna. Misalnya, penerapan yang menggunakan kode di browser pengguna menghasilkan pengukuran latensi yang lebih akurat daripada latensi yang dirasakan oleh pengguna atau oleh pilihan pengukuran lainnya.
Sebagai gantinya, pengukuran berbasis browser juga mencakup latensi apa pun yang disebabkan oleh koneksi pengguna ke layanan Anda. Misalnya, saat layanan digunakan melalui internet publik, latensi ini mungkin sangat bervariasi berdasarkan lokasi geografis atau kondisi jaringan.
Hasilnya, sinyal berbasis browser menjadi proxy yang baik untuk kepuasan pengguna. Namun, sinyal ini mungkin tidak memberikan informasi yang dapat ditindaklanjuti yang dapat Anda gunakan untuk meningkatkan keandalan layanan Anda.
Untuk mengetahui informasi tentang cara menggabungkan beberapa pengukuran untuk menyeimbangkan kompromi ini, lihat postingan dari The Telegraph ini.
Pengelompokan
Anda mungkin memerlukan beberapa SLI untuk layanan saat layanan Anda melakukan berbagai jenis pekerjaan untuk pengguna yang berbeda, atau saat layanan tersebut melakukan tugas tertentu dengan kemungkinan hasil yang berbeda.
Tugas yang berbeda
Layanan yang melakukan beberapa jenis pekerjaan, untuk berbagai kategori pengguna, dan yang setiap jenis pekerjaannya memengaruhi kepuasan pengguna secara berbeda akan mendapatkan manfaat dari beberapa SLI.
Misalnya, jika layanan Anda menangani permintaan baca dan tulis, pengguna yang melakukan tugas tersebut mungkin memiliki persyaratan yang berbeda:
- Permintaan baca harus cepat.
- Permintaan penulisan harus berhasil.
Untuk mencatat berbagai persyaratan ini, SLI Anda harus dapat membedakan kedua kasus ini. Biasanya, metrik SLI memiliki label yang dapat Anda gunakan untuk mengklasifikasikan nilai ke dalam salah satu dari beberapa bucket.
Satu tugas dengan hasil yang berbeda
Layanan yang melakukan satu jenis pekerjaan, tetapi ekspektasi pengguna berbeda berdasarkan respons yang diberikan, akan mendapatkan manfaat dari beberapa SLI.
Misalnya, jika layanan Anda hanya menawarkan akses baca ke data, pengguna mungkin memiliki toleransi yang berbeda terhadap latensi, bergantung pada hasil permintaan:
- Pengguna mungkin mentoleransi error yang ditampilkan dengan cepat, karena pengguna dapat segera mencoba lagi permintaan.
- Pengguna mungkin kurang toleran terhadap permintaan yang berhasil dan membutuhkan waktu lama.
- Pengguna paling tidak toleran terhadap skenario terburuk: permintaan yang membutuhkan waktu lama untuk menampilkan error.
Dalam hal ini, SLI latensi Anda harus dapat membedakan antara permintaan yang berhasil dan yang tidak berhasil.
Langkah berikutnya
Untuk mengetahui informasi tentang penerapan SLI untuk layanan Google Cloud menggunakan metrikGoogle Cloud , lihat referensi berikut:
Untuk mengetahui informasi tentang cara menerapkan SLI khusus aplikasi, lihat artikel berikut:
Untuk contoh yang menggambarkan cara membuat SLI untuk layanan yang melaporkan metrik kustom, lihat Menetapkan SLO: kemampuan observasi menggunakan metrik kustom.