Apa itu Site Reliability Engineering?
Site reliability engineering (SRE) adalah penerapan scripting dan otomatisasi pada tugas-tugas operasional IT seperti pemeliharaan dan dukungan sistem. Tujuan utamanya adalah untuk memperbaiki bug dengan cepat dan menghilangkan pekerjaan manual yang bersifat repetitif.
Di beberapa departemen IT, tim pengembang dibagi menjadi dua: developer dan site reliability engineer (SRE). SRE bisa bekerja bareng developer untuk merancang software, dan juga kolaborasi dengan tim operasional IT dalam mengelola dan mendukung aplikasi yang berjalan.
Fokus utama SRE adalah meningkatkan kinerja software sekaligus meminimalkan pekerjaan rutin dalam pemeliharaannya. Mereka mengotomatiskan sebanyak mungkin proses agar tim operasional bisa fokus ke pekerjaan strategis seperti deployment baru atau membuat pipeline feedback produk yang lebih cepat.
Bagaimana cara kerja Site Reliability Engineering?
SRE punya peran penting dalam memastikan target SLA (service-level agreement) tercapai. SLA ini menentukan seberapa tinggi tingkat keandalan software yang harus dicapai. Misalnya, SLA 99% uptime berarti SRE punya toleransi 1% untuk error, bug, atau downtime.
Selain SLA, SRE juga menetapkan metrik performa penting seperti:
- SLO (service-level objective), yang berkaitan dengan keandalan sistem.
- SLI (service-level indicator), yang berfungsi mendeteksi masalah dan anomali performa.
Setelah SLO ditetapkan, SLI akan bantu mendeteksi kalau performa sistem mulai melenceng dari target. SRE juga akan menetapkan error budget, yaitu jangka waktu tertentu di mana masalah performa harus ditemukan, diterima, dan diselesaikan.
Struktur SLA ini memang mirip dengan tim operasi biasa, tapi yang bikin beda adalah peran dari SRE. Kalau kode yang ditulis untuk otomatisasi berhasil menjaga performa sesuai SLA, maka SRE bisa lanjut bikin improvement lain. Tapi kalau performa aplikasi mulai menurun, berdasarkan SLI dan dibandingkan dengan SLO, maka SRE harus segera turun tangan sebelum lanjut ke proyek lain.
Apa beda SRE dan DevOps?
SRE dan DevOps sama-sama bertujuan bikin sistem software jadi lebih efisien dan andal. Tapi ada perbedaan fokus dan pendekatan di antara keduanya.
DevOps
DevOps adalah pendekatan kerja kolaboratif antara developer, tim operasi, dan stakeholder lain di pengembangan software. DevOps mendorong integrasi dan delivery yang berkelanjutan, deployment yang cepat dan rutin, serta pemantauan terus-menerus di lingkungan produksi.
Site Reliability Engineering
SRE melengkapi DevOps dengan fokus ke optimasi resource, observabilitas sistem, keandalan, ketersediaan, dan serviceability (RAS). SRE membawa prinsip DevOps lebih jauh ke operasional, dengan menekankan otomatisasi, monitoring, dan perbaikan berkelanjutan.
SRE juga pakai pendekatan berbasis data untuk menganalisis insiden, mengurangi risiko, dan meningkatkan keandalan sistem. Idealnya, tim DevOps dan SRE bekerja sama di semua fase siklus pengembangan sistem.
Kenapa SRE itu penting?
Sebelum banyak tools untuk development dan manajemen software muncul, tugas-tugas operasional seperti pemeliharaan sistem produksi sering dilakukan secara manual. Sekarang, SRE memanfaatkan berbagai tools untuk mengotomatiskan performa dan keandalan sistem produksi.
SRE terlibat di berbagai tahap dalam lifecycle aplikasi — mulai dari development, testing, produksi, sampai ke pengalaman akhir pengguna. Mereka juga bertugas melakukan tuning performa, memanfaatkan resource jaringan untuk menurunkan latency, serta membantu manajemen perubahan, keamanan aplikasi, dan pemulihan bencana.
Karena jangkauan tugasnya luas, SRE punya peran penting buat memastikan semua komponen aplikasi berjalan optimal. Produk akhir dan semua fitur baru harus andal, ringan dijalankan, dan nyaman dipakai user.
Siapa yang butuh SRE?
Organisasi IT yang mengembangkan dan memelihara aplikasi besar cocok banget punya tim SRE. Biasanya peran ini dibutuhkan kalau aplikasi udah kompleks, pakai banyak resource, dan sifatnya mission critical.
SRE bertanggung jawab memastikan aplikasi yang dirilis itu aman, andal, dan gampang di-maintain. Di perusahaan kecil atau menengah, bisa aja cuma ada satu SRE, tapi karena skill dan pengalaman yang dibutuhkan tinggi, gaji posisi ini biasanya cukup besar.
Skill yang Dibutuhkan untuk SRE
Beberapa kualifikasi umum yang biasanya dicari dari seorang site reliability engineer meliputi:
- Lulusan S1 bidang ilmu komputer atau disiplin terkait, atau punya pengalaman yang setara.
- Paham teknologi container, web service, database, dan infrastruktur IT secara umum.
- Ahli dalam bahasa scripting.
- Berpengalaman dengan platform dan OS seperti VMware ESXi dan Linux.
- Punya pemahaman yang kuat tentang jaringan.
- Pengalaman dalam administrasi sistem dan komputasi awan.
- Kemampuan komunikasi dan kerja sama tim yang baik, terutama dengan tim pengembang dan tim operasi.
Sejarah SRE
Konsep SRE sebenarnya berakar dari prinsip manajemen klasik: orang yang membangun sesuatu juga harus bertanggung jawab atas kesuksesan jangka panjangnya. Google adalah pelopor penerapan prinsip ini di dunia web, dimulai pada 2003 saat Benjamin Treynor Sloss, VP Engineering Google, ditugaskan membentuk tim software engineer untuk mengelola lingkungan produksi IT mereka.
Tim ini menghabiskan setengah waktunya untuk mengerjakan tugas operasional agar lebih memahami software di lingkungan nyata. Dari sini, konsep SRE tumbuh sebagai cara untuk mengatur proses operasional yang terkait langsung dengan software yang dikembangkan oleh engineer itu sendiri — bahkan sampai ke titik menciptakan NoOps environment.
Beberapa perusahaan besar seperti Dropbox, Mozilla, LinkedIn, dan Netflix juga sudah mengadopsi pendekatan ini.