- Compiler Explorer pada awalnya menggunakan pendekatan menyimpan seluruh status langsung di URL
- Karena URL menjadi terlalu panjang, layanan pemendek URL goo.gl milik Google diadopsi, tetapi struktur ini menimbulkan kerumitan karena harus melalui beberapa kali pengalihan
- Sejak 2018, karena masalah batas panjang URL dan sulitnya pemeliharaan, sistem ini beralih ke arsitektur yang memanfaatkan penyimpanan berbasis S3 dan DynamoDB milik sendiri
- Namun, karena Google akan menghentikan layanan goo.gl pada Agustus 2025, situasinya menjadi bahwa keberlangsungan tautan pendek lama harus dikelola sendiri
- Hingga saat ini, lebih dari 12.000 tautan lama telah berhasil diselamatkan, dan ini menunjukkan pentingnya pelestarian pengetahuan pemrograman dan pengoperasian layanan yang berkelanjutan
Jaminan keabadian tautan Compiler Explorer dan sejarahnya
Desain awal dan latar belakang adopsi goo.gl
- Pada 2012, Compiler Explorer memperkenalkan struktur yang mengodekan seluruh status kompilator langsung ke dalam URL
- Semakin banyak informasi status, semakin muncul masalah URL yang menjadi terlalu panjang
- Untuk memendekkan URL, pada 2014 layanan pemendek goo.gl dari Google diterapkan
- Menyediakan tautan pendek berformat
goo.gl/abc123, dan saat diklik akan mengalihkan ke URL panjang asli lalu memulihkan status
- Stack Overflow melarang penggunaan shortlink pada 2016, sehingga pendekatan yang ada menjadi dibatasi
- Karena risiko menyembunyikan tautan berbahaya, semua tautan berbasis goo.gl ikut terdampak
- Karena tidak ingin menyimpan data pengguna, sebagai solusi sementara dibuat jalur sendiri berformat
godbolt.org/g/abc123
- Saat mengakses
godbolt.org/g/abc123, pengguna akan dialihkan lagi ke goo.gl/abc123
- Dalam proses ini, pada akhirnya kembali ke URL panjang
godbolt.org
- Muncul masalah struktur menjadi rumit karena terjadi beberapa kali pengalihan
- Setelah itu, penggunaan Google API menyederhanakan sebagian prosedur pengalihan
Penerapan penyimpanan sendiri dan pengelolaan tautan
- Sejak 2018, batas panjang URL dan ketidaknyamanan kompresi data makin sering menjadi masalah
- Mengimplementasikan struktur penyimpanan sendiri dengan memanfaatkan S3 dan DynamoDB
- Nilai masukan di-hash dan disimpan ke S3 dalam bentuk dokumen JSON
- Saat tautan pendek (
godbolt.org/z/hashbit) diakses, pemetaan dicari di DynamoDB
- Jika nilai hash memuat kata kasar atau kata yang tidak pantas, diterapkan pemeriksaan untuk menghindarinya dengan menambahkan elemen acak
- Menyelesaikan masalah ketidaksesuaian pada tautan berbasis hash dan mengalami bug terkait (misalnya: issue #1297)
- Hingga kini format alamat
godbolt.org/g/abc123 masih tetap didukung
- Meskipun ada panduan resmi dari Google, layanan goo.gl telah berubah menjadi mode baca saja dan dijadwalkan berhenti total pada Agustus 2025
- Tautan pendek berbasis goo.gl nantinya tidak lagi dapat diurai
- Karena bentuk
godbolt.org/g/abc123 bisa diperpanjang masa hidupnya melalui pengelolaan langsung, dilakukan pekerjaan penyelamatan terstruktur terhadap struktur tautan ini
Pengumpulan besar-besaran tautan lama dan pekerjaan pengarsipan
- Baru-baru ini dilakukan crawling dan pendataan tautan lama dari semua sumber yang memungkinkan (pencarian, data dump, weblog, dan lain-lain)
- Google Web Search API
- GitHub API
- Log server internal
- Data dump Stack Overflow dari archive.org
- Data halaman web yang disimpan oleh Archive.org
- Sekitar 12.298 tautan pendek berhasil dipulihkan
- Secara internal, penggunaan basis data tautan milik sendiri mulai menggantikan goo.gl (PR terkait: #7724)
- Ke depan, tautan
godbolt.org/g/abc123 yang belum ditemukan akan terus dikumpulkan dan diamankan
- Jika komunitas masih memiliki tautan yang belum terdaftar, mereka diminta mengaksesnya langsung atau memberi tahu pengelola agar basis data dapat dilengkapi
Filosofi proyek dan pentingnya memiliki infrastruktur sendiri
- Kasus ini menunjukkan risiko bergantung hanya pada keberlangsungan layanan eksternal (misalnya Google) untuk infrastruktur penting
- Pengelolaan shortlink dan struktur pencadangan hanyalah solusi sementara, dan untuk benar-benar menjanjikan URL permanen perlu mengelola seluruh layanan secara langsung
- Dalam proses menyelamatkan tautan lama seperti arkeologi digital, disadari bahwa setiap tautan adalah jejak dari pembagian pengetahuan, pertanyaan, dan penjelasan konsep milik seseorang
- Tindakan penyimpanan dan pelestarian ini juga langsung terkait dengan pengarsipan sejarah komunitas pemrograman
- Jika menemukan tautan Compiler Explorer lama, menekannya sekali sekarang pun menjadi cara untuk berkontribusi pada pelestarian pengetahuan internet
- Kali ini, dengan bergantung pada infrastruktur yang dikendalikan langsung, bukan pihak ketiga, janji untuk menjamin keberlangsungan dapat dipenuhi
Disclaimer
- Tulisan ini ditulis oleh manusia, dan LLM digunakan dalam proses rekomendasi tautan serta pemeriksaan tata bahasa
1 komentar
Komentar Hacker News