Laporan jujur seorang jurutera perisian yang secara tidak sengaja memadamkan keseluruhan pangkalan data pengeluaran syarikat permulaan mereka telah mencetuskan perbincangan sengit dalam komuniti teknologi mengenai amalan pembangunan yang betul berbanding kelajuan syarikat permulaan. Insiden ini, yang berlaku di sebuah syarikat permulaan AI hartanah Perancis, telah memecahbelahkan pembangun antara mereka yang melihatnya sebagai pengalaman pembelajaran yang berharga dan yang lain yang menganggapnya sebagai kisah amaran mengenai kejuruteraan yang melulu.
Jurutera tersebut bekerja secara langsung pada pangkalan data pengeluaran tanpa persekitaran peringkat atau sandaran yang disahkan apabila mereka cuba menyelesaikan isu profil pengguna pelanggan. Operasi padam yang ringkas mencetuskan pemadaman berturut-turut yang memadamkan tiga bulan petunjuk yang telah diproses disebabkan oleh seni bina Row Level Security (RLS) pangkalan data tersebut. Syarikat itu diselamatkan hanya oleh sandaran automatik Supabase , kehilangan 22 jam data dalam proses tersebut.
Isu Teknikal Utama yang Dikenal pasti:
- Membangun secara langsung pada pangkalan data pengeluaran tanpa persekitaran peringkat
- Tiada strategi sandaran yang disahkan (bergantung pada sandaran peringkat percuma Supabase yang tidak diketahui)
- Konfigurasi padam CASCADE pada kunci asing kritikal
- Seni bina Row Level Security (RLS) mewujudkan kebergantungan
- Beroperasi pada peringkat percuma Supabase untuk beban kerja pengeluaran
![]() |
---|
Catatan blog ini menceritakan pengalaman kritikal seorang jurutera perisian yang secara tidak sengaja memadamkan pangkalan data pengeluaran syarikat permulaan, menekankan kepentingan amalan kejuruteraan yang berhati-hati |
Reaksi Keras Komuniti Terhadap Amalan Pembangunan
Respons komuniti teknologi sangat mengkritik amalan kejuruteraan yang diterangkan. Ramai pembangun menyatakan kejutan terhadap gabungan bekerja secara langsung pada pangkalan data pengeluaran, kekurangan persekitaran peringkat, dan ketiadaan prosedur sandaran yang disahkan. Kritikan semakin memuncak apabila pembaca mengetahui bahawa pasukan tersebut beroperasi pada peringkat percuma Supabase untuk beban kerja pengeluaran.
Beberapa jurutera berpengalaman berkongsi kisah ngeri mereka sendiri, tetapi menekankan bahawa insiden sedemikian biasanya berlaku pada awal kerjaya atau di syarikat dengan amalan infrastruktur yang lemah. Konsensus di kalangan pengkritik ialah langkah keselamatan asas seperti persekitaran peringkat dan pengesahan sandaran memerlukan pelaburan masa yang minimum berbanding dengan potensi kerugian bencana.
Sehingga anda secara peribadi telah melihat pemulihan yang berjaya daripada sandaran, anda tidak mempunyai sandaran. Anda mempunyai harapan dan doa bahawa anda mempunyai sandaran.
Perdebatan Kelajuan Syarikat Permulaan Berbanding Keselamatan
Insiden ini telah mencetuskan semula perdebatan berterusan mengenai mengimbangkan pembangunan pantas dengan amalan kejuruteraan yang betul dalam persekitaran syarikat permulaan. Penyokong falsafah bergerak pantas dan pecahkan perkara berhujah bahawa syarikat peringkat awal mesti mengutamakan kelajuan ke pasaran berbanding langkah keselamatan yang komprehensif. Mereka berpendapat bahawa menghabiskan minggu untuk menyediakan saluran paip CI/CD dan sistem sandaran boleh membawa maut apabila sumber terhad.
Walau bagaimanapun, pengkritik sangat mempertikaikan alasan ini, menunjukkan bahawa strategi sandaran asas dan persekitaran pembangunan memerlukan masa persediaan yang minimum. Ramai berhujah bahawa alasan syarikat permulaan tidak membenarkan pengabaian asas yang boleh memusnahkan kerja berbulan-bulan dan data pelanggan. Perbincangan telah menyerlahkan jurang generasi dalam komuniti teknologi mengenai tahap risiko yang boleh diterima dalam sistem pengeluaran.
Amalan Terbaik yang Disyorkan oleh Komuniti:
- Gunakan persekitaran staging/pembangunan untuk ujian
- Laksanakan prosedur sandaran dan pemulihan yang telah disahkan
- Elakkan pemadaman CASCADE pada kunci asing yang kritikal
- Gunakan pemadaman lembut atau kekangan NULL sebagai gantinya
- Lakukan operasi pangkalan data dalam transaksi
- Jangan sekali-kali melakukan penempatan pada petang Jumaat tanpa liputan sokongan hujung minggu
Pengajaran Teknikal dan Amalan Terbaik
Selain perdebatan falsafah, insiden ini telah mencetuskan perbincangan teknikal yang berharga mengenai reka bentuk pangkalan data dan keselamatan operasi. Konfigurasi CASCADE delete asal yang menyebabkan kehilangan data yang meluas telah dikenal pasti sebagai kesilapan teknikal utama. Ramai pakar pangkalan data mengesyorkan menggunakan soft delete atau kekangan NULL sebagai ganti operasi CASCADE untuk kunci asing yang kritikal.
Komuniti juga telah menekankan kepentingan operasi berasaskan transaksi dan reka bentuk skema pangkalan data yang betul. Beberapa pembangun menyatakan bahawa PostgreSQL menyokong perubahan skema dalam transaksi, yang boleh mencegah bencana berturut-turut. Insiden ini berfungsi sebagai peringatan praktikal bahawa operasi pangkalan data harus dirancang dan diuji dengan teliti, tanpa mengira saiz syarikat atau keperluan kelajuan pembangunan.
Kisah ini berakhir dengan syarikat permulaan melaksanakan persekitaran pembangunan tempatan yang betul dan prosedur sandaran yang dipertingkatkan, walaupun ramai dalam komuniti mempersoalkan sama ada pengajaran ini datang pada kos yang terlalu tinggi untuk kedua-dua syarikat dan pelanggannya.
Rujukan: How I Dropped the Production Database on a Friday Night