Diterbitkan: 8 Oktober 2024
Kontributor: Camilo Quiroz Vazquez, Michael Goodwin
Rekayasa keandalan situs (sre) adalah praktik rekayasa perangkat lunak yang menggabungkan DevOps dan operasi tradisional untuk memecahkan masalah pelanggan, mengotomatiskan tugas-tugas operasi, mempercepat pengiriman perangkat lunak, dan meminimalkan risiko TI.
SRE mendukung ketahanan, redundansi, dan keandalan dalam siklus DevOps dan menangani implementasi program perangkat lunak sehari-hari. Teknisi keandalan situs umumnya mengikuti aturan lima puluh-lima puluh: mereka mendedikasikan separuh waktu mereka untuk memecahkan masalah pelanggan seperti mengelola eskalasi dan menanggapi insiden, dan separuh lainnya untuk mengotomatiskan operasi TI. Operasi ini meliputi manajemen sistem produksi, manajemen perubahan, respons insiden, dan respons darurat.
Tim SRE menjembatani kesenjangan antara bagaimana pengembang perangkat lunak menginginkan program berfungsi dan bagaimana program tersebut berfungsi dalam situasi dunia nyata. Teknisi keandalan lokasi bekerja secara langsung dengan pelanggan untuk memecahkan masalah mereka dan mengumpulkan data tentang pengalaman pengguna. Tim SRE memberikan data ini kembali ke tim pengembangan memberi mereka insight yang lebih dalam tentang kinerja perangkat lunak dan pembaruan apa yang perlu dilakukan.
SRE memahami bahwa kegagalan tidak dapat dihindari. Tugas mereka adalah mengidentifikasi (melalui proses seperti analisis akar penyebab) penyebab masalah langsung dan menggunakan data pemantauan dan pencatatan untuk memprediksi potensi kegagalan di masa depan. Kemudian, mereka menyiapkan otomatisasi untuk memecahkan masalah ini, membangun ketahanan dan redundansi ke dalam sistem.
Pengawasan otomatis terhadap sistem perangkat lunak skala besar ini mengurangi kebutuhan administrator sistem untuk menyelesaikan tugas operasi TI secara manual. Menghilangkan fungsi manual membantu tim TI menghemat waktu, menjalankan tugas operasi dengan lebih akurat, dan fokus pada pemeliharaan kinerja aplikasi.
Seorang insinyur keandalan situs adalah posisi teknis yang membutuhkan pengalaman dalam pengembangan perangkat lunak dan operasi TI. Dengan memahami posisi ini, tim SRE dapat memenuhi peran mereka dalam mendukung siklus pengembangan perangkat lunak. SRE didasarkan pada strategi ketahanan melalui otomatisasi proses yang konsisten.
Secara tradisional, praktik rekayasa keandalan situs berfokus pada pelaksanaan operasi dan berbagai tugas administrasi sistem. Tugas-tugas ini termasuk menganalisis log, penyetelan kinerja, menerapkan patch, menguji lingkungan produksi, manajemen insiden, dan melakukan postmortem. Tugas-tugas ini awalnya dilakukan secara manual, yang memakan waktu dan rentan terhadap kesalahan manusia. Modernisasi rekayasa keandalan situs melibatkan otomatisasi tugas-tugas manual ini.
Pemantauan dan pencatatan memainkan peranan kunci dalam SRE. Tim SRE menggunakan alat pemantauan untuk melacak apa yang terjadi dalam sistem perangkat lunak secara real-time. Pemantauan memungkinkan perbaikan masalah teknis langsung dan membantu tim mengantisipasi masalah di masa mendatang serta mengatasinya sebelum terjadi.
Log berfungsi sebagai arsip yang dapat dianalisis untuk mendapatkan insight tentang bagaimana sistem berfungsi dan meningkatkan observabilitas sistem. Pencatatan membuat peta jalan yang membantu tim sre memahami rangkaian peristiwa yang menyebabkan kesalahan yang tidak terduga. Insinyur dapat mengotomatiskan remediasi kesalahan dan mencegahnya terulang kembali. Pemantauan dan pencatatan membantu para insinyur mengidentifikasi titik-titik kegagalan dan secara terprogram memecahkan masalah melalui otomatisasi sehingga mereka tidak perlu diperbaiki secara manual.
Tim SRE juga mencari kekurangan sistem melalui proses yang disebut rekayasa kekacauan. Rekayasa kekacauan adalah strategi yang diterapkan oleh teknisi keandalan lokasi untuk secara sengaja menyebabkan kegagalan dalam lingkungan produksi dan pra-produksi. Tujuan dari chaos engineering adalah untuk memahami dampak kegagalan produksi terhadap sistem perangkat lunak dan mengembangkan rencana yang lebih kuat untuk memitigasi kegagalan di masa depan.
SRE juga berfokus pada perencanaan kapasitas, sebuah proses yang menentukan sumber daya yang dibutuhkan untuk menjalankan fungsi bisnis penting, menskalakan fungsi bisnis tersebut dan mengembangkan aplikasi dan fitur baru. Selain itu, tim SRE membuat metrik yang digunakan untuk mengevaluasi pengiriman pembaruan dan implementasi fitur baru.
Insinyur keandalan lokasi menggunakan berbagai metrik untuk membantu melacak konsistensi pemberian layanan dan keandalan sistem perangkat lunak, termasuk:
Perjanjian tingkat layanan (SLA)
SLA menetapkan syarat dan ketentuan antara penyedia layanan dan pelanggan. Perjanjian ini menentukan tingkat kinerja, indikator yang disepakati untuk mengukur kinerja, dan konsekuensi jika gagal memberikan layanan. Layanan umum yang diuraikan dalam SLA adalah waktu aktif, atau jumlah waktu layanan tersedia.
Anggaran kesalahan
Anggaran kesalahan adalah alat yang digunakan tim SRE untuk secara otomatis merekonsiliasi keandalan layanan perusahaan dengan kecepatan pengembangan perangkat lunak dan inovasi. Anggaran kesalahan menetapkan tingkat risiko kesalahan yang sejalan dengan perjanjian tingkat layanan.
Target waktu aktif 99,999%, yang dikenal sebagai "ketersediaan lima-sembilan", adalah ambang batas SLA yang umum. Itu berarti anggaran kesalahan bulanan—jumlah total waktu henti yang diperbolehkan tanpa konsekuensi kontrak untuk bulan tertentu—adalah sekitar 4 menit dan 23 detik. Jika tim pengembang ingin mengimplementasikan fitur baru atau peningkatan pada sistem, sistem tidak boleh melebihi anggaran kesalahan.
Anggaran kesalahan membantu tim pengembangan dan tim operasi meningkatkan stabilitas dan kinerja layanan. Mereka juga membantu membuat keputusan berbasis data tentang penerapan fitur atau aplikasi baru dan memaksimalkan inovasi dengan mengambil risiko dalam batas yang dapat diterima.
Tujuan tingkat layanan (SLO)
Tim SRE juga membantu menetapkan tujuan tingkat layanan (SLOs), target kinerja yang disepakati untuk layanan tertentu selama periode tertentu. SLO mendefinisikan status layanan yang diharapkan dan membantu para pemangku kepentingan mengelola kesehatan layanan tertentu dan memenuhi SLA.
Indikator tingkat layanan (SLIs)
SLOs diukur dengan indikator tingkat layanan (SLI). SLI adalah pengukuran kuantitatif yang disajikan sebagai persentase, rata-rata atau tingkat. Mereka termasuk pengukuran aktual layanan seperti waktu aktif, latensi, throughput, dan tingkat kesalahan.
DevOps adalah metodologi pengembangan perangkat lunak yang mempercepat pengiriman aplikasi dan layanan berkualitas tinggi dengan menggabungkan dan mengotomatiskan pekerjaan pengembangan perangkat lunak dan tim operasi TI. DevOps membantu mengotomatiskan siklus hidup pengembangan perangkat lunak (SDLC), memberikan tim pengembangan dan operasi lebih banyak tanggung jawab bersama dan memberikan semua pemangku kepentingan relevan input ke dalam SDLC.
SRE dan DevOps merupakan strategi yang saling melengkapi dalam rekayasa perangkat lunak yang memecah silo dan menghasilkan pengiriman perangkat lunak yang lebih efisien dan andal.
Sementara tim DevOps fokus untuk menjawab pertanyaan, “Apa yang harus dilakukan oleh perangkat lunak ini?” Tim SRE bekerja untuk menjawab, “Bagaimana perangkat lunak ini dapat diterapkan dan dipelihara, sehingga berfungsi sesuai kebutuhan?” Tim SRE menyediakan tim DevOps data dunia nyata tentang data kinerja perangkat lunak, membawa keseimbangan data praktis ke dunia teoritis pengembangan perangkat lunak.
Seperti SRE, DevOps membuat perusahaan lebih tangkas dengan menyeimbangkan kebutuhan untuk mengirimkan aplikasi dan perubahan lebih cepat dengan kebutuhan untuk menghindari “merusak” lingkungan produksi. Baik SRE maupun DevOps bertujuan mencapai keseimbangan ini dengan menetapkan risiko kesalahan yang dapat diterima. Tim DevOps berfokus pada pembuatan pembaruan dan penerapan fitur baru sementara praktik SRE berfungsi melindungi keandalan sistem seiring peningkatan skalanya.
Tim DevOps dan SRE merampingkan metode komunikasi dan membangun loop masukan yang konstan. Lingkaran seperti itu mungkin bekerja seperti ini: Ketika tim SRE mengungkap akar masalah kesalahan, tim mengirimkan temuannya ke tim DevOps yang dapat mengembangkan pembaruan untuk versi perangkat lunak berikutnya. Sementara itu, SRE membangun otomatisasi untuk menyelesaikan masalah dan melacak data pemantauan dan pencatatan untuk memastikan bahwa masalah telah diselesaikan.
Selain mendukung kesuksesan DevOps, rekayasa keandalan situs dapat membantu organisasi:
Ketika organisasi bermigrasi dari TI tradisional dan pusat data lokal ke hybrid cloud, mereka sering kali menghasilkan volume data operasional yang lebih besar. SRE memainkan peran penting dalam penggunaan data ini untuk mengotomatiskan administrasi sistem, operasi, dan respons insiden serta meningkatkan keandalan perusahaan seiring dengan semakin kompleksnya lingkungan TI.
Pendekatan pengembangan cloud native —khususnya, membangun aplikasi sebagai layanan mikro dan menerapkannya dalam kontainer—dapat menyederhanakan pengembangan, penerapan, dan skalabilitas aplikasi. Tetapi pengembangan cloud native juga menciptakan lingkungan yang semakin terdistribusi yang mempersulit administrasi, operasi IT, dan manajemen.
Tim SRE dapat mendukung laju inovasi yang cepat yang dimungkinkan oleh pendekatan cloud native dan meningkatkan keandalan sistem, tanpa memberi lebih banyak tekanan operasi pada tim DevOps.
Tingkatkan pemantauan kinerja aplikasi Anda guna memberikan konteks yang Anda butuhkan untuk menyelesaikan insiden dengan lebih cepat.
Atasi masalah sebelum memengaruhi pelanggan Anda dengan pengambilan keputusan yang ditanami AI.
Dapatkan pandangan yang komprehensif dan terpusat tentang kesehatan dan kinerja seluruh ekosistem IT Anda dalam satu dasbor.