Portal/Notes πŸ“
Sre

Site Reliability Engineer

Versi Bahasa Indonesia. Baca dalam Bahasa Inggris

Definisi

SRE adalah disiplin yang menggabungkan prinsip-prinsip software engineering ke dalam infrastruktur dan operasi untuk menciptakan sistem yang sangat andal dan skalabel. SRE dipelopori oleh Google untuk mengelola sistem mereka yang masif dan kompleks, namun konsepnya telah diadopsi di seluruh industri.

SRE adalah apa yang terjadi ketika Anda memperlakukan operasi sebagai masalah perangkat lunak dan mengisinya dengan sekelompok software engineer.

Terdiri dari para engineer yang membangun dan mengimplementasikan perangkat lunak untuk meningkatkan keandalan sistem atau layanan.

  • Reliability sebagai Fitur: SRE memperlakukan keandalan sebagai fitur utama sistem, setara dengan kinerja, keamanan, dan fungsionalitas.
  • Tanggung Jawab Bersama: Menjembatani kesenjangan antara pengembangan dan operasi, sering berkolaborasi erat dengan tim DevOps.
  • Praktik Engineering: SRE menerapkan praktik software engineering ke operasi, mengotomatiskan tugas, menulis skrip, dan membuat alat untuk meningkatkan keandalan sistem.
  • Keputusan Berbasis Data: Metrik seperti SLA (Service Level Agreements), SLO (Service Level Objectives), dan SLI (Service Level Indicators) digunakan untuk mengukur dan memandu upaya keandalan.
  • Otomatisasi: Tugas manual dan berulang diotomatiskan untuk mengurangi toil dan meningkatkan efisiensi.
  • Error Budgets: Tim diberikan tingkat ketidakandalan yang diizinkan, menyeimbangkan inovasi dan keandalan.

Tanggung Jawab

  • Manajemen Insiden:
    • Merespons dan menyelesaikan pemadaman sistem atau masalah kinerja.
    • Menulis postmortem untuk menganalisis akar masalah dan mencegah terulang kembali.
    • Memberi tahu orang yang tepat dan memastikan semua informasi yang diperlukan disertakan dalam pesan alert.
  • Monitoring dan Metrik:
    • Menyiapkan sistem monitoring (misalnya, Prometheus, Grafana).
    • Mendefinisikan dan melacak SLA, SLO, dan SLI.
  • Otomatisasi:
    • Mengotomatiskan pipeline deployment, scaling, dan tugas operasional berulang.
  • Capacity Planning:
    • Memastikan sistem memiliki sumber daya untuk menangani beban kerja saat ini dan masa depan.
  • Optimasi Kinerja:
    • Mengidentifikasi bottleneck dan menerapkan optimasi untuk meningkatkan efisiensi sistem.
  • Peningkatan Keandalan:
    • Membangun sistem fault-tolerant menggunakan redundansi, chaos engineering, dan mekanisme failover.

Metrik Utama

  • SLA (Service Level Agreement): Kontrak formal antara penyedia layanan dan pelanggan yang mendefinisikan tingkat layanan yang diharapkan (misalnya, uptime 99,9%).
  • SLO (Service Level Objective): Target dalam SLA yang mendefinisikan ambang keandalan yang dapat diterima (misalnya, response time dalam 200ms untuk 95% permintaan).
  • SLI (Service Level Indicator): Metrik yang mengukur kinerja sistem (misalnya, latensi, error rate).

Tools Umum

Monitoring dan Alerting: Prometheus, Grafana, Datadog, New Relic.

Manajemen Insiden: PagerDuty, Opsgenie, Jira.

Otomatisasi: Terraform, Ansible, Kubernetes, Jenkins.

Logging: ELK Stack (Elasticsearch, Logstash, Kibana), Fluentd.

Chaos Engineering: Gremlin, Chaos Monkey.

Contoh: Praktik SRE dalam Aksi

Skenario: Aplikasi Web Mengalami Downtime

  • Monitoring Mendeteksi Masalah:
    • Prometheus mendeteksi peningkatan error rate HTTP 500.
    • AlertManager mengirim alert ke PagerDuty.
  • Respons Insiden:
    • Tim SRE mengikuti playbook respons insiden untuk menyelidiki.
    • Log dianalisis menggunakan Elasticsearch untuk menemukan masalah.
  • Analisis Akar Masalah:
    • Postmortem ditulis untuk mendokumentasikan penyebab (misalnya, kapasitas database terlampaui) dan menyarankan perbaikan (misalnya, autoscaling).
  • Peningkatan Keandalan:
    • Database autoscaling diimplementasikan menggunakan Terraform.
    • Kebijakan error budget diperbarui untuk mengalokasikan waktu bagi peningkatan keandalan.

Edit on GitHub

Last updated on

Site Reliability Engineer | Faisal Affan