Melihat Redis: Apakah kita benar-benar developer yang menciptakan sesuatu?
(blog.day1swhan.com)Sambil melihat ekosistem Redis, saya kembali merenungkan apakah saya benar-benar bisa dengan percaya diri menyebut diri sebagai developer yang menciptakan sesuatu.
Lahirnya storage key-value
- Sejak era web 2.0 pada tahun 2000-an, perusahaan layanan web menghadapi situasi harus menanggung jumlah pengguna yang sangat besar
- Untuk menangani trafik sebesar ini, yang dibutuhkan bukan server besar nan mewah, melainkan sistem terdistribusi berskala besar yang kecil namun murah
- Untungnya, sebagian besar struktur data bersifat sederhana (mis. mengambil informasi
userid = 1234) - Menggunakan basis data relasional (RDBMS) terlalu berat, mahal, dan kompleks
- Muncul CAP Theorem
- Kalau begitu, meski konsistensi dikorbankan, yang penting ketersediaan dan kecepatan bisa didapat
- Lahirlah basis data sederhana yang melemparkan
valuesaat diberikey(Memcached-2003, Amazon Dynamo-2007)
Lahirnya Redis
- Di Italia, kampung halaman pasta, seorang developer bernama Salvatore Sanfilippo sedang menjalankan startup bernama LLOOGG (ejaan "Log" dengan dua huruf O memang benar)
- LLOOGG menyediakan layanan pelacakan pengunjung situs web secara real-time
- Meski kecil, layanannya benar-benar punya pengguna
- Pada masa itu, analitik real-time adalah pekerjaan yang cukup sulit
- Data mulai menumpuk → RDBMS yang ada makin lambat → respons real-time tidak tercapai
- Untuk respons real-time, memori harus digunakan → Memcached saat itu hanya mendukung GET dan PUT sederhana dalam bentuk string
- Dibutuhkan fungsi dictionary yang sedikit lebih luas seperti INCR, DECR, LIST, tetapi tidak ada DB seperti itu? → ya sudah, saya buat sendiri
- Lahirlah versi awal yang berjalan di atas server TCP super sederhana (tidak ada fitur tingkat lanjut seperti cluster, AOF, atau replikasi)
Evolusi Redis
- Redis lahir bukan sebagai cache, melainkan sebagai penyimpanan struktur data untuk pemrosesan real-time
- Namun orang-orang mulai memakainya sebagai cache
- Kebutuhan struktur data yang melampaui cache dari para raksasa lama (Facebook, Twitter, GitHub, Stack Overflow, dll.) pun meningkat
- Adopsi bertahap dimulai dari fitur-fitur kecil seperti penyimpanan sesi, pengelolaan token login, counter real-time, sistem peringkat, dan jumlah like
- Berbagai fitur dan struktur data yang dibutuhkan kemudian ditambahkan secara evolutif (Sorted Set, HASH, Cluster, persistence...)
- Redis pun berubah menjadi platform pemrosesan data yang fleksibel
Komunitas, UX, dan filosofi developer
- Redis dibangun di atas filosofi bahwa meskipun fiturnya banyak, ia tidak boleh menjadi rumit
- Dokumentasi resminya menyediakan contoh berbasis CLI yang bisa langsung dijalankan, serta penjelasan perilaku yang jelas
- Perintah-perintah intuitif (SET, GET, LPUSH, ZADD, HGETALL, dll.) cukup dilihat sekilas di dokumentasi resmi untuk langsung menangkap fungsinya
- Intuitivitas ini bukan sekadar soal kenyamanan, tetapi juga menurunkan hambatan psikologis terhadap alat dan meningkatkan produktivitas developer
- Generalitas yang lahir dari struktur seperti ini membawa keuntungan bagi pengguna, penyedia cloud, maupun kontributor open source
- Dalam ekosistem yang tersusun dari kepentingan bersama, Redis menjadi standar de facto in-memory DB melalui pilihan yang tidak dipaksakan
Sambil melihat ekosistem Redis
- Redis berawal sebagai sarana untuk mewujudkan ide yang mungkin terdengar umum: analitik pengunjung real-time
- Redis menerobos batas pendekatan lama bernama SQL (lambat dan mahal) dengan pendekatan baru
- Ini bukan optimasi atas aturan lama seperti memanfaatkan relasi bisnis, menekan vendor, tuning hardware, atau membatasi penggunaan
- Redis menciptakan aturan baru: menjadikan memori sebagai elemen inti database
- Untuk bisa merancang alat sendiri, mengusulkan alur yang sebelumnya belum ada, lalu membuat seluruh dunia menerimanya, pengetahuan dasar untuk aplikasi nyata itu sangat penting
- Bahkan jika melihat Amazon Dynamo, yang dirancang untuk menyelesaikan masalah penyimpanan keranjang belanja, pengetahuan tentang sistem terdistribusi yang kompleks tetap harus diterapkan
- Ketika sesuatu menjadi standar industri lewat pilihan sukarela semua orang, nilai tambah dan lapangan kerja yang besar pun tercipta
- Hal ini bisa dirasakan dari adanya tenaga ahli Redis, infrastruktur hardware, konten pembelajaran, managed service (AWS, Azure), dan solusi profesional (Redis Enterprise)
- Semua ini bukan hasil dari kebijakan atau hukum pemerintah tentang menyelamatkan industri tertentu atau sejenisnya
Kita perlu merenungkan apakah selama ini kita masih hanya tampak seperti negara maju di permukaan, namun sebenarnya hidup dengan pola pikir era manufaktur, sambil keliru mengira developer sebagai pekerja industri jasa pengetahuan.
- Apakah kita bisa membuktikan lewat hasil mengapa teknologi dasar (mis. algoritma) itu penting
- Apakah kita punya budaya developer dan sistem pendidikan yang mampu membuat alat untuk menyelesaikan masalah
- Semua orang berkata kita harus menumbuhkan budaya yang mentoleransi kegagalan, tetapi apakah saya sendiri tidak marah atau memaki saat melihat kesalahan orang lain
- Apakah kita benar-benar memahami nilai tambah sejati dari industri jasa pengetahuan dan mampu mendorongnya terus dengan tekun
Saya kembali mengingatkan diri bahwa developer sejati bukanlah sekadar orang yang pandai memakai alat, melainkan orang yang, meski alatnya mungkin sederhana, mampu merancang alat yang ia butuhkan sendiri, lalu membuat alat itu mudah digunakan orang lain sehingga bisa memperluas ekosistem dan menciptakan nilai tambah.
Belum ada komentar.