Apa itu SRE? Peran penting dari insinyur keandalan situs

Seiring dunia bergeser secara online, keandalan situs web, aplikasi cloud, dan infrastruktur cloud telah menjadi bisnis yang sangat penting — untuk segala hal mulai dari operasi e-commerce hingga bank global hingga mesin pencari.

Cara kami mengelola sistem dan beban kerjanya telah berubah. Saat ini, kami jarang berpikir tentang server berharga, sentuh tinggi, dan berkinerja tinggi, melainkan rak di atas rak server komoditas yang dikumpulkan bersama melalui virtualisasi, dengan arsitektur perangkat lunak terdistribusi yang mencegah pemadaman server menyebabkan downtime. Fokus telah bergeser dari perangkat keras ke infrastruktur yang ditentukan perangkat lunak dan dari proses manual yang tidak konsisten dan rawan kesalahan ke tugas otomatis yang konsisten, andal, dan berulang.

Rekayasa keandalan situs adalah praktik memelihara infrastruktur yang dapat diprogram dan memaksimalkan ketersediaan beban kerja yang berjalan di atasnya. Jabatan insinyur keandalan situs (SRE) berasal dari aula Google, yang, pada pergantian milenium, ingin mendefinisikan kembali hubungan antara pengembang perangkat lunak dan staf operasi - dan membantu mereka bekerja sama untuk membangun sistem yang kokoh dan fleksibel, dengan peningkatan konstan dan otomatisasi sebagai prinsip inti.

Apa itu SRE?

Pada tingkat dasar, SRE membawa prinsip-prinsip rekayasa perangkat lunak ke masalah infrastruktur dan operasi, dengan tujuan bintang utara untuk menciptakan sistem yang sangat terukur dan andal.

“Pada dasarnya, itulah yang terjadi ketika Anda meminta insinyur perangkat lunak untuk merancang fungsi operasi,” seperti yang sering dikatakan oleh Ben Treynor, VP teknik di Google dan ayah baptis SRE.

Pimpinan di antara tanggung jawab SRE adalah menetapkan ambang batas tingkat layanan, yang sering kali dimanifestasikan sebagai tujuan tingkat layanan (SLO), yang membantu menginformasikan apakah rilis mendapat lampu hijau atau tidak. Cawan suci selalu merupakan 'lima sembilan' yang suci atau 99,999% waktu aktif. Semakin baik uptime, semakin banyak pengembang tali dapat meluncurkan barang baru yang keren dan semakin banyak SRE tidur, yang mengarah ke hubungan yang saling menguntungkan antara fungsi, jauh dari masa lalu antagonisme pengembang dan operasi.

Fungsi SRE biasanya akan diukur pada sekumpulan metrik keandalan utama, yaitu: kinerja sistem, ketersediaan, latensi, efisiensi, pemantauan, perencanaan kapasitas, dan tanggap darurat.

[Juga pada: Pemantauan aplikasi: Hal yang dapat dilakukan developer dengan lebih baik]

Tanggung jawab pekerjaan utama SRE

SRE yang baik akan terobsesi dengan satu hal: otomatisasi.

Seperti yang dikatakan Jason Qualman, seorang SRE di vendor perangkat lunak pemantauan New Relic, dalam sebuah entri blog: “Banyak dari peran ini memikirkan tentang hal-hal yang tidak efisien dan memakan waktu yang dilakukan orang-orang dan menghentikannya sesegera mungkin. Alih-alih menendang kaleng di jalan pada pekerjaan manual, Anda berkata, 'Saya akan meluangkan waktu untuk mengotomatiskan ini sekarang dan menghentikan orang lain untuk melakukan hal yang menyakitkan ini.' ”

Elemen kunci lain dari peran SRE adalah sesuatu yang disebut "rekayasa rilis," yang melibatkan penentuan praktik terbaik untuk memastikan rilis perangkat lunak konsisten dan dapat diulang.

“Engineer rilis memiliki pemahaman yang solid (jika bukan ahli) tentang manajemen kode sumber, kompiler, bahasa konfigurasi build, alat build otomatis, manajer paket, dan installer. Keterampilan mereka mencakup pengetahuan mendalam tentang beberapa domain: pengembangan, manajemen konfigurasi, integrasi pengujian, administrasi sistem, dan dukungan pelanggan, ”tulis Dinah McNutt, manajer program teknis di Google, untuk buku penting Site Reliability Engineering (diterbitkan oleh O'Reilly di 2016 dan ditulis oleh Karyawan Google Jennifer Petoff, Niall Richard Murphy, Chris Jones, dan Betsy Beyer).

Lalu ada bagian respons dari peran tersebut, yang melibatkan peringatan, siap dipanggil, dan pemecahan masalah, bersama dengan respons darurat dan insiden serta postmortem.

Pada dasarnya, penting bagi SRE untuk mengetahui cara terbaik untuk memantau sistem dan bereaksi ketika ada yang salah, terus-menerus menulis dan menulis ulang pedoman tanggapan untuk mengurangi waktu untuk memperbaiki kerusakan yang mungkin terjadi. Di Google, ini melibatkan pendokumentasian insiden, memahami semua penyebab utama yang berkontribusi, dan menerapkan tindakan pencegahan di masa mendatang.

“Menulis postmortem bukanlah hukuman - ini adalah kesempatan belajar bagi seluruh perusahaan,” tulis karyawan Google John Lunney dan Sue Lueder dalam bab kontribusi dari buku Site Reliability Engineering .

[Juga pada: 3 langkah untuk menerapkan metodologi agile dalam operasi TI]

SRE vs. insinyur pengembang

Saya tahu apa yang Anda pikirkan. Kedengarannya sangat mirip dengan pengembang, tetapi ketika sampai pada terminologi, jabatan SRE sebenarnya sudah ada sebelum insinyur pengembang sekitar lima tahun.

Keduanya didasarkan pada prinsip yang sama, tetapi perbedaannya halus dan penting. Kedua cara kerja tersebut melibatkan penghancuran penghalang antara pengembang dan staf operasi, dan keduanya bertujuan untuk meningkatkan kecepatan tim pengembang sambil mempertahankan ketahanan inti dari layanan tersebut.

Perbedaan utamanya adalah bahwa insinyur pengembang cenderung fokus untuk mendukung pengiriman berkelanjutan dan kecepatan pengembang, sedangkan SRE bertanggung jawab atas keandalan dan otomatisasi sepanjang siklus hidup perangkat lunak, dengan penekanan pada keberhasilan penerapan dan pemantauan rilis dan menjaga infrastruktur yang ditentukan perangkat lunak tetap bersenandung. SRE memiliki fungsi integral dalam tim teknik yang lebih luas: memastikan ada kursi spesialis di meja yang berfokus pada pembangunan sistem yang stabil.

Seperti yang dikatakan Jayne Groll dari The Devops Institute: “Devops berfokus pada pengiriman berkelanjutan rekayasa hingga penerapan; SRE berfokus pada rekayasa operasi berkelanjutan pada titik konsumsi pelanggan. "

Sejarah SRE di Google

Menelusuri prinsip SRE kembali ke asalnya di Google pada awal tahun 2000-an memberikan pelajaran objek yang sangat penting dalam disiplin ini.

“Ketika saya datang ke Google, saya cukup beruntung menjadi bagian dari tim yang sebagian terdiri dari orang-orang yang merupakan insinyur perangkat lunak, dan yang cenderung menggunakan perangkat lunak sebagai cara untuk memecahkan masalah yang secara historis diselesaikan dengan tangan. Jadi, ketika tiba waktunya untuk membuat tim formal untuk melakukan pekerjaan operasional ini, wajar untuk mengambil pendekatan 'semuanya dapat diperlakukan sebagai masalah perangkat lunak' dan menjalankannya, "kata Ben Treynor dalam sebuah wawancara di blog internal Google.

“Jadi SRE pada dasarnya melakukan pekerjaan yang secara historis dilakukan oleh tim operasi, tetapi menggunakan insinyur dengan keahlian perangkat lunak, dan mengandalkan fakta bahwa para insinyur ini secara inheren cenderung, dan memiliki kemampuan untuk, menggantikan otomatisasi untuk tenaga kerja manusia, Treynor menambahkan.

Google juga berpikir dengan cukup kaku tentang bagaimana menyusun tim SRE. Semua Google SRE haruslah Insinyur Perangkat Lunak Google atau "kandidat yang sangat dekat dengan kualifikasi Rekayasa Perangkat Lunak Google." Mereka juga harus memiliki keterampilan manajemen infrastruktur, yang paling umum adalah keahlian “Internal sistem dan jaringan Unix (Lapisan 1 hingga Lapisan 3)”.

Kualifikasi SRE masih cenderung bervariasi dari perusahaan ke perusahaan, tetapi sejauh prinsip dasar berjalan, pendekatan Google adalah titik awal yang solid. Detailnya akan bergantung pada kebutuhan bisnis, proses yang ditetapkan, dan tumpukan teknologi yang sudah diadopsi oleh organisasi.

Deskripsi pekerjaan dan gaji SRE

SRE biasanya menghabiskan sekitar 50 persen dari waktu mereka untuk melakukan fungsi operasi tradisional, seperti siap dipanggil dan terjun untuk menyelesaikan masalah. 50 persen lainnya difokuskan pada pengembangan perangkat lunak untuk membuat sistem yang mendasarinya lebih tangguh, otomatis, dan pulih sendiri dari waktu ke waktu. Itulah mengapa peran tersebut membutuhkan perpaduan yang solid antara keahlian rekayasa perangkat lunak dan keterampilan operasi. SRE yang baik akan terorganisir, tenang di bawah tekanan, dan menjadi pemecah masalah. Manajer SRE bertanggung jawab atas kinerja tim, strategi, dan pengoptimalan.

Tetapi bagaimana dengan organisasi yang tidak memiliki peran SRE? Dalam laporan O'Reilly, “Apa itu SRE?” Kurt Andersen dari LinkedIn dan Craig Sebenik dari Split (vendor perangkat lunak manajemen rilis) merekomendasikan untuk mengambil pendekatan “akar rumput”. Mereka merekomendasikan untuk menemukan “tim pengembangan yang termotivasi untuk berubah dan menerapkan tim SRE kecil (atau individu) di sana. Seiring waktu, Anda dapat menggunakan kesuksesan itu sebagai contoh positif untuk tim lain. "

Gaji tahunan rata-rata untuk SRE kira-kira $ 130.000 di AS dan £ 76.000 di Inggris, menurut situs kerja Memang.

Sumber daya SRE

Sumber daya berlimpah untuk membangun keterampilan SRE, mulai dari sertifikasi dari DevOps Institute hingga buku dan sumber daya online dari O'Reilly, Microsoft, dan Google. Rekayasa Keandalan Situs raksasa 550 halaman yang disebutkan di atas   oleh Jennifer Petoff, Niall Richard Murphy, Chris Jones, dan Betsy Beyer adalah penulis buku besar untuk topik ini, yang diterbitkan pada 2016. Buku ini juga tersedia online gratis dari Google. 

Buku lain yang lebih baru tentang topik ini termasuk  Training Site Reliability Engineers  oleh Jennifer Petoff, JC van Winkel, dan Preston Yoshioka; Apa itu SRE?  oleh Kurt Andersen dan Craig Sebenik; Mencari SRE  oleh David N. Blank-Edelman, dan  Buku Kerja Keandalan Situs  oleh Betsy Beyer, Niall Richard Murphy, David K. Rensin, Kent Kawahara, dan Stephen Thorne.

O'Reilly juga memiliki pustaka lengkap aset online, video, dan ebook tentang topik tersebut, yang dengan mudah dikurasi dalam daftar putar SRE Essentials ini oleh mantan insinyur keandalan situs Google Liz Fong-Jones.

Raksasa pembelajaran online Coursera menawarkan beberapa kursus, termasuk Rekayasa Keandalan Situs yang populer: Mengukur dan Mengelola Keandalan dari Pelatihan Google Cloud. Kursus ini juga tersedia dari Pluralsight, seperti kursus pemula Site Reliability Engineering (SRE): Gambar Besar oleh Elton Stoneman. Linux Foundation menawarkan kursus mandiri berjudul DevOps dan SRE Fundamentals: Implementing Continuous Delivery.

Pelatihan Ubur-ubur yang berbasis di Inggris menawarkan berbagai pilihan kursus pelatihan pribadi selama dua hari untuk SRE Foundation (SREF).

Baca lebih lanjut tentang devops

  • Apa itu devops? Mengubah pengembangan perangkat lunak
  • 3 cara untuk memulai program pengembang
  • Praktik terbaik pengembang: 5 metode yang harus Anda adopsi
  • 15 KPI untuk melacak transformasi developer
  • Pemantauan aplikasi: Apa yang bisa dilakukan developer dengan lebih baik
  • Di mana rekayasa keandalan situs bertemu dengan pengembang
  • 5 prinsip untuk menjadi tim pengembang tangkas kolaboratif
  • 3 langkah untuk menerapkan metodologi tangkas dalam operasi TI
  • Bagaimana tim yang gesit dapat mendukung manajemen insiden
  • Bagaimana dataops meningkatkan data, analitik, dan pembelajaran mesin
  • Menerapkan pengembang dalam ilmu data dan pembelajaran mesin
  • 7 pertanyaan untuk memprioritaskan backlog devops Anda