Tanya jawab umum: Apa hubungan antara SRE dan DevOps?

Terdapat sekumpulan pertanyaan umum yang muncul terkait hubungan antara rekayasa keandalan situs dan DevOps termasuk "Bagaimana persamaan keduanya? Bagaimana perbedaan keduanya? Bisakah kita memiliki keduanya di organisasi kita?". Artikel ini berupaya membagikan beberapa jawaban yang telah diberikan oleh komunitas SRE dan DevOps agar kita lebih memahami hubungan keduanya.

Bagaimana persamaan keduanya?

SRE dan DevOps adalah praktik operasi modern yang dibuat dan dikembangkan sebagai respons terhadap tantangan yang mencakup:

  • semakin banyak kompleksitas dari lingkungan produksi dan pengembangan kami
  • peningkatan dependensi bisnis pada fungsi berkelanjutan dari lingkungan tersebut
  • ketidakmampuan untuk menskalakan tenaga kerja secara linier dengan ukuran lingkungan tersebut
  • perlunya bergerak lebih cepat sembari mempertahankan stabilitas operasional

Kedua praktik operasi tersebut menaruh perhatian pada subjek yang penting untuk menghadapi tantangan ini seperti pemantauan/observabilitas, otomatisasi, dokumentasi, dan alat pengembangan perangkat lunak kolaboratif.

Terdapat banyak tumpang tindih dalam alat dan area kerja antara SRE dan DevOps. Seperti yang dijelaskan dalam Buku Kerja Keandalan Situs, "SRE percaya pada hal yang sama seperti DevOps tetapi untuk alasan yang sedikit berbeda."

Tiga cara berbeda untuk membandingkan dua praktik operasi

Persamaan antara SRE dan DevOps sudah jelas. Hal yang membuatnya sangat menarik adalah bagaimana keduanya berbeda atau berlawanan. Di sini, kami menawarkan tiga cara untuk mempertimbangkan hubungan keduanya sebagai cara dalam memberikan beberapa variasi jawaban atas pertanyaan ini. Anda mungkin tidak setuju dengan jawaban ini, tetapi jawaban ini memberikan sarana awal yang baik untuk diskusi.

"SRE kelas mengimplementasikan antarmuka DevOps"

Buku Kerja Keandalan Situs (disebutkan dalam daftar buku sumber daya kami) membahas SRE dan DevOps di bab pertamanya. Bab tersebut menggunakan frasa "SRE kelas mengimplementasikan antarmuka DevOps" sebagai subjudulnya. Hal ini dimaksudkan untuk menyarankan (menggunakan frasa yang ditujukan untuk pengembang) bahwa SRE dapat dianggap sebagai implementasi spesifik dari filosofi DevOps. Seperti yang ditunjukkan bab ini, "DevOps relatif diam tentang cara menjalankan operasi pada tingkat yang terperinci" sementara SRE jauh lebih ketat dalam praktiknya. Jadi satu kemungkinan jawaban atas pertanyaan tentang hubungan keduanya adalah SRE dapat dianggap sebagai salah satu dari banyaknya kemungkinan implementasi DevOps.

SRE adalah untuk keandalan, sedangkan DevOps adalah untuk pengiriman

Perbandingan ini sedikit membingungkan karena ada banyak definisi untuk SRE dan DevOPS, tetapi kemungkinan masih berguna. Diawali dengan pertanyaan “apakah Anda harus menyaring setiap praktik operasi dalam satu atau dua kata yang mencerminkan masalah utamanya, bagaimana bisa itu terjadi?”

Jika kami menggunakan definisi SRE ini dari hub rekayasa keandalan situs:

Rekayasa Keandalan Situs adalah disiplin teknik yang ditujukan untuk membantu organisasi secara berkelanjutan mencapai tingkat keandalan yang sesuai dalam sistem, layanan, dan produknya.

maka bisa disimpulkan SRE adalah “keandalan”. Memilikinya tepat di tengah nama juga menawarkan beberapa bukti yang bagus untuk klaim ini.

Jika kami menggunakan definisi DevOps ini dari pusat sumber Daya Azure DevOps:

DevOps adalah perpaduan orang, proses, dan produk untuk memungkinkan pengiriman nilai yang berkelanjutan kepada pengguna akhir kami.

maka penyaringan yang mirip untuk DevOps dapat berupa “pengiriman”.

Oleh karena itu, "SRE adalah untuk keandalan, sedangkan DevOps adalah untuk pengiriman".

Arah perhatian

Jawaban ini dikutip atau sedikit digubah dari kontribusi Thomas Limoncelli pada buku Mencari SRE yang disebutkan dalam daftar buku referensi kami. Dia menyadari bahwa insinyur DevOps sebagian besar berfokus pada alur siklus hidup pengembangan perangkat lunak dengan tanggung jawab operasi produksi sesekali, sementara SRE fokus pada operasi produksi dengan tanggung jawab alur SDLC sesekali.

Namun yang lebih penting, dia juga menggambar diagram yang dimulai dengan proses pengembangan perangkat lunak di satu sisi, sementara operasi produksi berfungsi di sisi lainnya. Keduanya tersambung dengan alur biasa yang dibuat untuk mengambil kode dari pengembang, menggiringnya melalui jumlah pengujian dan tahap yang diinginkan, lalu memindahkan kode itu ke dalam produksi.

Limoncelli menyadari bahwa rekayasa DevOps dimulai di lingkungan pengembangan dan mengotomatiskan langkah-langkah produksi selanjutnya. Setelah selesai, mereka kembali untuk mengoptimalkan penyempitan.

Di sisi lain, SRE fokus pada operasi produksi, dan menjangkau alur secara mendalam sebagai sarana untuk meningkatkan hasil akhir (pada dasarnya bekerja dalam arah yang berlawanan).

Perbedaan arah fokus SRE dan DevOps inilah yang dapat membantu membedakan keduanya.

Koeksistensi dalam organisasi yang sama

Pertanyaan terakhir yang ingin kami sampaikan adalah "Dapatkah Anda memiliki SRE dan DevOps dalam organisasi yang sama?"

Jawaban untuk pertanyaan ini sudah pasti "ya!".

Kami berharap bahwa jawaban sebelumnya menawarkan beberapa ide bagaimana praktik dua operasi tumpang tindih dan, kapan tidak tumpang tindih, bagaimana keduanya dapat saling melengkapi yang menjadi fokusnya. Organisasi dengan praktik DevOps yang sudah teruji dapat bereksperimen dengan praktik SRE pada skala kecil (misalnya, mencoba SLI dan SLO) tanpa harus berkomitmen untuk membuat posisi atau tim SRE. Ini adalah pola adopsi SRE yang cukup umum.

Langkah berikutnya

Tertarik untuk mempelajari selengkapnya tentang rekayasa keandalan situs atau DevOps? Buka hub rekayasa keandalan situs dan pusat Sumber Daya Azure DevOps.