Bagian ini meninjau konsep indikator tingkat layanan (SLI), menentukan apa yang membuat SLI baik atau berguna, dan memberikan contoh penerapan SLI untuk layanan tertentu. Halaman ini ditujukan untuk orang yang menginginkan contoh yang menerapkan 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 digunakan untuk mengomunikasikan keandalan layanan dan mengelola layanan.
SLI diukur selama jangka waktu tertentu. Ukuran jangka waktu biasanya bergantung pada keputusan yang 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 beberapa 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 dari Site Reliability Engineering Workbook:
Properti SLI yang baik
Kami menganggap SLI "baik" sebagai ukuran 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 akan merasa puas. Agar hubungan ini dapat dipertahankan, SLI harus menjadi ukuran proxy yang baik untuk kepuasan pengguna.
Jika SLI adalah proxy 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, kepuasan pengguna juga akan meningkat. Demikian pula, jika SLI menurun, kepuasan pengguna juga akan menurun. Jumlah peningkatan nilai SLI yang baik sesuai dengan jumlah peningkatan kepuasan pengguna.
SLI menghasilkan pengukuran yang berkisar antara 0% hingga 100%.
SLI yang baik menghasilkan pengukuran performa yang berkisar antara 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 SLI yang berkisar antara 0% hingga 100%, SLO pada SLI dapat ditetapkan 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 untuk menerapkan SLI yang memiliki properti ini adalah dengan memikirkan SLI dalam hal janji yang dibuat kepada pengguna Anda. Dengan menghitung janji yang Anda buat dan tepati selama jangka waktu tertentu, Anda dapat memperoleh angka yang berkisar antara 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 gagal tepati selama jangka waktu tertentu, tetapi tetap memenuhi SLO Anda.
Contoh janji mencakup:
- Mengembalikan respons dengan kode status HTTP
200ke permintaan pelanggan. - Merespons permintaan gRPC dalam waktu kurang dari 100 md.
- Menyelesaikan alur kerja "Buat Mesin Virtual" dengan berhasil.
- Menyajikan data yang telah diperbarui dalam 10 menit terakhir.
- Mulai menjalankan tugas batch terjadwal dalam waktu satu menit setelah waktu mulainya.
Spesifikasi dan penerapan SLI
Spesifikasi SLI adalah apa yang ingin Anda ukur. Spesifikasi ini tidak mencakup detail teknis persis 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 pertimbangan dan manfaatnya. Cara mengukur SLI adalah Penerapan SLI. Misalnya, Anda dapat menerapkan spesifikasi pemuatan halaman sebagai salah satu hal berikut:
- 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 mencatat 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 pertimbangan antara karakteristik berikut:
- Fidelitas: seberapa akuratnya dalam menangkap pengalaman pengguna.
- Cakupan: proporsi interaksi pengguna yang diukur.
- Biaya: jumlah uang dan waktu teknik yang diperlukan untuk membangun dan memelihara solusi.
Fidelitas 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.
Pertimbangannya adalah bahwa pengukuran berbasis browser juga mencakup latensi yang diperkenalkan oleh koneksi pengguna ke layanan Anda. Misalnya, saat layanan digunakan melalui internet publik, latensi ini dapat bervariasi secara signifikan dengan lokasi geografis atau kondisi jaringan.
Hasilnya adalah sinyal berbasis browser merupakan 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 pertimbangan ini, lihat postingan ini dari The Telegraph.
Pengelompokan
Anda mungkin memerlukan beberapa SLI untuk layanan jika 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 tulis harus berhasil.
Untuk menangkap persyaratan yang berbeda ini, SLI Anda harus dapat membedakan antara 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, akan mendapatkan manfaat dari beberapa SLI.
Misalnya, jika layanan Anda hanya menawarkan akses baca ke data, pengguna mungkin memiliki toleransi yang berbeda untuk latensi, bergantung pada hasil permintaan:
- Pengguna mungkin toleran terhadap error yang ditampilkan dengan cepat, karena pengguna dapat segera mencoba lagi permintaan tersebut.
- Pengguna mungkin kurang toleran terhadap permintaan yang berhasil, tetapi memerlukan waktu yang lama.
- Pengguna paling tidak toleran terhadap skenario terburuk: permintaan yang memerlukan 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 cara menerapkan SLI untuk Google Cloud layanan menggunakan Google Cloud metrik, lihat hal berikut:
Untuk mengetahui informasi tentang cara menerapkan SLI khusus aplikasi, lihat hal berikut:
Untuk contoh yang mengilustrasikan cara membuat SLI untuk layanan yang melaporkan metrik kustom, lihat Menetapkan SLO: observabilitas menggunakan metrik kustom.