Dalam dunia pengembangan perangkat lunak modern, peran DevOps, Site Reliability Engineering (SRE), dan Platform Engineering sangat krusial, meskipun ketiganya memiliki tujuan yang berbeda. Memahami bagaimana masing-masing berkontribusi pada kecepatan, stabilitas, dan pengalaman pengembang adalah kunci.
Tim pengembangan modern, banyak yang sudah mengadopsi — atau setidaknya mengklaim mengadopsi — DevOps, SRE, dan Platform Engineering. Namun, mencari tahu makna sebenarnya dari jargon-jargon ini bisa jadi susah-susah gampang, apalagi sekilas ketiganya tampak tumpang tindih.
Wartawan telah berbicara dengan sejumlah pengembang dan pemimpin teknik, beberapa di antaranya memiliki salah satu atau lebih istilah ini dalam jabatan mereka, untuk mendapatkan pandangan mereka tentang perbedaan dan tumpang tindih antara DevOps, SRE, dan Platform Engineering. Denis Tiumentsev, yang saat ini menjabat sebagai Lead DevOps Engineer di Integro Technologies dan pernah berkecimpung di ketiga bidang tersebut, menyampaikan, “DevOps adalah ‘mengapa’, SRE adalah ‘bagaimana’ memastikan keandalan, dan Platform Engineering adalah ‘bagaimana’ menskalakan dan memudahkannya untuk semua orang.” Mari kita selami detailnya.
Apa Itu DevOps?
DevOps bermula sebagai sebuah gerakan kultural yang bertujuan meruntuhkan “tembok kebingungan” antara tim pengembang (dev) dan tim operasi (ops). Dulu, pengembang menulis kode di lingkungan pengembangan sebelum melemparkannya ke administrator sistem (ops) untuk di-deploy dan diintegrasikan ke lingkungan produksi. Namun, metodologi agile dan teknologi komputasi awan (cloud) mengubah cara kita membangun dan men-deploy perangkat lunak, dengan banyak organisasi berorientasi pada praktik modern dan cloud-native demi rilis yang lebih cepat dan lebih baik. Hal ini menuntut integrasi yang lebih baik antara dev dan ops.
Menurut Rohan Rasane, Product Architect di ServiceNow, DevOps “mengunggulkan gagasan bahwa pengiriman dan operasi perangkat lunak adalah tanggung jawab bersama.” Fokusnya adalah pada otomatisasi, kolaborasi, dan continuous delivery. Hasil dari DevOps meliputi CI/CD pipelines, infrastructure as code, dan operational hygiene yang kuat.
Penting untuk diingat bahwa meskipun banyak orang berjabatan “DevOps Engineer,” DevOps lebih merupakan filosofi daripada sebuah jabatan. “DevOps bukanlah sebuah peran. Ini adalah pola pikir yang memengaruhi bagaimana pengembang dan operasi berkolaborasi di seluruh siklus hidup layanan,” tambah Rasane.
Apa Itu Site Reliability Engineering (SRE)?
SRE adalah disiplin ilmu yang menerapkan praktik dan prinsip rekayasa perangkat lunak untuk masalah operasi. Dari deskripsi ini, terlihat jelas bagaimana SRE mencakup banyak area yang sama dengan DevOps. Sesuai namanya, SRE berfokus pada keandalan. “SRE lebih berpusat pada produksi – bayangkan keandalan, service-level indicators (SLI) dan service-level objectives (SLO), incident response, error budgets – ini adalah operasi melalui lensa rekayasa,” ujar Alexander Simonov, Deputy DevOps Practice Lead di Coherent Solutions.
SRE awalnya dikembangkan di Google, dan segera “bukan lagi tentang menjaga agar sistem tetap menyala,” kata Prashanth Nanjundappa, VP of Product di Progress Software. “Ini berevolusi menjadi tujuan-tujuan yang berarti seperti membangun perangkat lunak yang, jika gagal, dapat pulih dengan cepat dan elegan.” Praktik kunci SRE meliputi mendefinisikan SLO, menggunakan error budgets untuk menyeimbangkan keandalan dan inovasi, serta mengimplementasikan sistem incident response.
Apa Itu Platform Engineering?
Platform Engineering berfokus pada peningkatan pengalaman pengembang melalui internal tools dan framework yang dapat digunakan kembali. “Platform Engineering membangun internal platform sebagai sebuah produk, sehingga tim tidak perlu menciptakan kembali roda setiap sprint: self-service, golden paths, reusable infrastructure,” kata Simonov dari Coherent Solutions.
Menurut Loreli Cadapan, VP of Product Management di CloudBees, platform engineers “fokus pada pengalaman pengembang dan menyediakan kemampuan self-service. Mereka biasanya ditugaskan untuk membangun internal developer platforms (IDP).”
Perbedaan Antara DevOps, SRE, dan Platform Engineering
Meskipun disiplin ilmu ini memiliki tujuan yang sama – otomatisasi, pengiriman lebih cepat, keandalan – mereka berbeda dalam tujuan utama dan lingkupnya. Rasane mengonseptualisasikan perbedaan ini sebagai berikut: “DevOps terutama berputar pada budaya kolaboratif. SRE menekankan pemeliharaan ketersediaan tinggi. Platform Engineering menekankan developer enablement.”
Cadapan dari CloudBees menguraikan lebih dalam:
- DevOps engineers bertindak sebagai perekat antara pengembangan dan operasi. Contoh Key Performance Indicators (KPI) untuk DevOps engineers adalah metrik DORA (DevOps Research and Assessment) yang khas, seperti frekuensi deployment dan waktu lead time perubahan.
- Platform engineers mengurangi beban kognitif pada pengembang. Contoh KPI adalah kepuasan pengembang atau Internal Net Promoter Score (NPS) dan waktu onboarding pengembang.
- SREs berfokus pada keandalan produksi dan kinerja sistem. KPI cenderung berkisar pada SLI dan SLO, serta waktu respons insiden.
Tumpang Tindih antara DevOps, SRE, dan Platform Engineering
Terlepas dari perbedaan mereka, peran-peran ini seringkali bekerja paling baik secara bersamaan. Seperti yang dikatakan Nanjundappa dari Progress Software: “DevOps mendorong budaya, SRE memastikan keandalan, dan Platform Engineering menskalakannya untuk semua orang.”
Banyak dari hasil kerja mereka yang serupa: infrastructure as code, observability, otomatisasi. Namun, sudut pandangnya berbeda. “DevOps dan SRE sama-sama bertujuan untuk meningkatkan pengiriman dan operasi,” kata Tiumentsev dari Integro. “Tetapi SRE lebih terstruktur dan berorientasi pada metrik. Platform Engineering membangun fondasi infrastruktur yang memungkinkan dan mendukung praktik DevOps dan SRE.”
Benjamin Brial, pendiri perusahaan platform engineering Cycloid.io, menekankan bahwa ketiganya “memiliki tujuan bersama, yaitu untuk meningkatkan efisiensi, keandalan, dan kecepatan pengiriman perangkat lunak. Masing-masing memainkan peran dalam menjembatani kesenjangan antara pengembang dan operasi, tetapi mereka memiliki fokus dan metodologi yang berbeda.”
“Meskipun semuanya memiliki fokus yang berbeda, mereka semua bekerja sama untuk menyediakan infrastruktur, keandalan, dan kolaborasi, tiga aspek kunci dari pengembangan dan operasi perangkat lunak modern,” kata Brial. “Salah satunya tanpa yang lain bisa berfungsi, tetapi membutuhkan lebih banyak waktu, biaya lebih banyak upaya, dan akhirnya mengarah pada kebutuhan untuk reorganisasi tim dan proses.”
Peran-peran ini juga saling mendukung secara operasional. “Tim platform dapat membangun pipeline dan Kubernetes templates yang dapat digunakan kembali (DevOps tooling) dengan SLO monitoring bawaan (SRE best practice), semuanya disampaikan melalui portal self-service,” jelas Rasane dari ServiceNow.
Kesimpulan
Satu hal yang perlu diingat adalah bahwa pembagian tiga konsentrasi ini paling mudah diwujudkan di organisasi yang lebih besar. “Untuk tim engineering yang lebih kecil atau tahap awal, ketiga jabatan ini bisa kabur dan tumpang tindih,” kata Cadapan dari CloudBees. “Tetapi seiring bertambahnya ukuran dan kematangan tim, Anda cenderung melihat peran-peran ini menyimpang.”
Cameron Rimington, CEO Iron Software, menjelaskan bagaimana timnya berevolusi untuk mengakomodasi praktisi yang berbeda dari semua peran ini:
“Ketika kami memiliki lima pengembang, saya memegang topi DevOps — menyiapkan CI/CD pipelines dan mengelola deployment. Tim kami tumbuh menjadi 15 orang dan kami merekrut seorang SRE yang menyiapkan sistem monitoring dan incident response yang tepat; downtime tim turun dari empat jam sebulan menjadi 30 menit. Sekarang, dengan 40 orang, platform engineer kami membangun internal APIs yang memungkinkan pengembang menyiapkan test environments dalam hitungan menit, bukan jam.”
Tumpang tindih konseptual dapat membuat proses pertumbuhan dan perekrutan menjadi tricky alias rumit. Tiumentsev dari Integro mencatat bahwa “kadang-kadang sebuah perusahaan mengatakan mereka merekrut untuk DevOps, tetapi pada kenyataannya, mereka menginginkan seseorang yang merupakan campuran DevOps dan SRE.” Takeaway dari Rimington: “Jangan mengejar jabatan yang sedang nge-tren. Rekrutlah untuk masalah spesifik yang ingin Anda selesaikan sekarang.”
DevOps, SRE, dan Platform Engineering semuanya saling terhubung. Mereka berbeda dalam penekanan tetapi bersama-sama membentuk triad yang kuat untuk pengiriman perangkat lunak berkualitas dalam skala besar.
Seperti yang dikatakan Rasane: “Kunci untuk membuat mereka berfungsi adalah clear team charters, tujuan yang terukur, dan product thinking yang diterapkan secara internal. Berinvestasi pada ketiganya — tidak hanya pada tools, tetapi pada orang dan kejelasan — adalah bagaimana organisasi berskala dengan percaya diri.”