Menaruh sistem otomatis di server kecil
Ada kelas program yang harus hidup terus: penarik data berkala, penjadwal tugas, pemantau, dan apa pun yang kalau mati akan menghasilkan lubang di catatan. Program seperti ini tidak cocok ditaruh di komputer yang sesekali dimatikan. Solusinya server kecil yang menyala terus.
Biayanya lebih kecil dari dugaan. Penyedia terbesar menawarkan paket dasar di kisaran lima sampai enam dolar sebulan, dan penyedia Eropa dengan pusat data di Jerman sekitar empat euro. Untuk satu program ringan, paket itulah yang paling masuk akal.
Yang benar-benar dibutuhkan
Sebelum memilih penyedia, tentukan tiga hal lebih dulu.
Satu, lokasi server. Pilih yang paling dekat dengan sumber data. Kalau data diambil dari pertukaran aset atau penyedia API di kawasan tertentu, jarak geografis berpengaruh langsung ke jeda respons. Selisih puluhan milidetik terasa kalau program mengambil data ratusan kali sehari.
Dua, memori. Program penarik data sederhana cukup dengan satu gigabita. Kalau program menjalankan basis data kecil dan pemroses tambahan di mesin yang sama, ambil dua gigabita. Menambah memori jauh lebih murah daripada memperbaiki program yang tiba-tiba dihentikan sistem karena kehabisan memori.
Tiga, ruang penyimpanan. Data berkala menumpuk diam-diam. Rencanakan pembersihan sejak awal: simpan data rinci untuk jangka pendek, ringkasannya untuk jangka panjang.
Urutan pemasangan
Setelah server didapat, urutannya selalu sama.
- Amankan akses. Masuk memakai kunci, bukan kata sandi. Matikan pintu masuk lewat kata sandi sepenuhnya.
- Perbarui sistem. Satu perintah untuk memperbarui daftar paket dan memasang versi terbaru.
- Pasang bahasa pemrograman. Python untuk program data, Node untuk program berbasis JavaScript. Pilih salah satu, tidak perlu keduanya.
- Jalankan program di bawah pengelola proses. Ini bagian yang paling sering dilewati pemula. Program yang dijalankan langsung akan mati saat sesi terminal ditutup. Pengelola proses seperti systemd atau pm2 memastikan program hidup kembali setelah server menyala ulang.
- Pasang penjadwal. Kalau program harus berjalan pada jam tertentu, penjadwal bawaan sistem sudah cukup untuk hampir semua kebutuhan.
- Pantau. Minimal satu pemeriksaan berkala yang memberi tahu kalau program berhenti. Tanpa ini, program yang mati bisa tidak ketahuan selama berhari-hari.
Bagian yang paling sering bikin repot
Bukan pemasangannya. Yang sering bikin repot adalah hal-hal kecil setelah semuanya jalan.
Log yang menumpuk tanpa batas adalah yang pertama. Sebuah program yang menulis satu baris tiap menit akan menghasilkan puluhan ribu baris dalam sebulan. Pasang pemutaran log sebelum masalahnya muncul, bukan sesudah.
Yang kedua: pembaruan otomatis yang mengubah versi bahasa pemrograman di tengah jalan. Sebuah program yang berjalan baik hari ini bisa berhenti besok karena versi baru mengubah perilaku pustaka yang dipakai. Tahan versinya, dan uji dulu sebelum naik.
Yang ketiga: menyimpan kunci akses di dalam kode. Kalau repositori pernah dibuka untuk umum, kunci itu harus dianggap bocor dan diganti. Simpan di berkas lingkungan yang tidak ikut masuk repositori.
Untuk apa ini dipakai
Program seperti ini tidak perlu pintar. Yang dibutuhkannya konsisten: menarik data pada jam yang sama, menyimpannya dengan bentuk yang sama, dan memberi tahu kalau ada yang gagal. Nilainya bukan pada satu hasil, melainkan pada catatan yang terkumpul setelah berbulan-bulan.
Server kecil berharga lima dolar memang terasa sederhana. Tetapi begitu catatan sudah mengalir tanpa bolong selama beberapa bulan, kumpulan itu menjadi bahan yang tidak bisa dibeli: perbandingan perilaku antar periode waktu yang diukur dengan cara yang sama.