BYOC: Gambaran Umum & Cara Kerja

Apa itu Bring Your Own Compute, kapan memakainya, dan bagaimana tepatnya Raklane mem-build, men-deploy, dan menyajikan aplikasi di server milik Anda.

Bring Your Own Compute (BYOC) memungkinkan Anda mendaftarkan server yang sudah Anda miliki — VPS, server dedicated, mesin on-premise, apa pun yang bisa menjalankan Docker — lalu men-deploy aplikasi dan database Raklane ke sana. Server, tagihannya, dan akses root penuh tetap di tangan Anda sepanjang waktu. Raklane mengurus bagian platformnya: mem-build kode, merilis versi baru dengan health check dan rollback, mengarahkan trafik, menerbitkan sertifikat HTTPS, serta menampilkan status, log, dan metrik di dashboard yang sama dengan yang Anda pakai untuk hal lainnya.

Halaman ini menjelaskan apa itu BYOC dan bagaimana cara kerjanya di balik layar. Jika sudah siap menyiapkannya, buka Menyiapkan Server BYOC.

Kapan memakai BYOC

BYOC cocok jika:

  • Anda sudah membayar server dan ingin alur kerja PaaS (git push → aplikasi live) di atasnya, alih-alih mengelola Docker, reverse proxy, dan sertifikat secara manual.
  • Anda perlu mengendalikan lokasi fisik aplikasi — negara tertentu, penyedia tertentu, data center sendiri, atau hardware dengan spesifikasi khusus.
  • Anda ingin biaya infrastruktur yang bisa diprediksi. Compute server Anda sama sekali tidak ditagih oleh Raklane; paling banyak, Raklane menagih biaya pengelolaan yang kecil (lihat Tagihan BYOC).
  • Anda ingin trafik langsung menuju mesin sendiri. Aplikasi BYOC disajikan langsung dari server Anda, bukan lewat infrastruktur bersama Raklane.

Jika Anda tidak ingin mengurus server sama sekali, compute terkelola Raklane (bayar sesuai pemakaian atau dedicated hosting) lebih sederhana — lihat Tempat Aplikasi Berjalan untuk perbandingannya.

Gambaran besar

Ada dua sisi dalam setiap penyiapan BYOC:

  • Control plane Raklane — dashboard, API, sistem build, image registry, dan bagian yang memutuskan apa harus berjalan di mana. Ini dioperasikan oleh Raklane.
  • Server Anda — menjalankan tiga hal yang dipasang Raklane sekali saja: Docker (menjalankan container), Caddy (menyajikan aplikasi lewat HTTPS), dan Raklane Node Agent (layanan latar belakang kecil yang menerima instruksi dari control plane).

Ada dua koneksi penting, dan arahnya berlawanan:

  1. Trafik kendali mengalir keluar dari server Anda. Node Agent menghubungi Raklane ke arah luar dan menjaga satu koneksi terenkripsi tetap terbuka. Setiap instruksi (nyalakan container ini, hentikan yang itu, perbarui rute, ambil log) dikirim lewat koneksi itu. Raklane tidak pernah login ke server Anda, tidak butuh akses SSH, dan tidak butuh port masuk untuk orkestrasi.
  2. Trafik pengunjung mengalir masuk ke server Anda. Pengunjung aplikasi terhubung langsung ke IP publik server Anda di port 80/443, tempat Caddy menangani HTTPS dan meneruskan request ke container. Trafik ini tidak pernah melewati Raklane.

Apa yang terjadi saat Anda deploy ke server BYOC

Deploy ke server Anda terlihat sama persis seperti deploy ke tempat lain — Anda mengklik Deploy (atau push ke GitHub). Di balik layar:

  1. Raklane mem-build image secara terpusat. Kode Anda di-clone dan di-build (dengan Cloud Native Buildpacks) di sistem build Raklane, bukan di server Anda — jadi VPS kecil tidak pernah kehabisan memori saat kompilasi, dan setiap server mendapat image yang identik. Image hasil build di-push ke registry Raklane.
  2. Raklane memastikan ada ruang. Request CPU/memori aplikasi Anda dicocokkan dengan sisa kapasitas server. Deploy yang tidak muat ditolak sejak awal alih-alih gagal di tengah jalan.
  3. Agent menarik dan menyalakan container. Raklane memberi tahu agent di server Anda image mana yang harus ditarik dan cara menjalankannya (port, environment variable, batas resource). Agent menarik image dari registry dan menyalakan container dengan Docker.
  4. Raklane memeriksa kesehatan release baru. Container baru harus lolos health check sebelum menerima trafik apa pun. Jika gagal, deploy dibatalkan dan apa pun yang berjalan sebelumnya tetap melayani — perilaku tanpa downtime dan rollback otomatis yang sama seperti deploy lainnya (lihat Men-deploy Aplikasi).
  5. Raklane memperbarui rute di server Anda. Setelah release baru sehat, Raklane mengirim tabel rute terbaru ke Caddy di server Anda, sehingga hostname aplikasi mengarah ke container baru. Release lama dipensiunkan setelah bake window sebagai jaring pengaman.

Cara aplikasi Anda dijangkau

Setiap aplikasi di server BYOC mendapat URL bawaan yang langsung berfungsi, tanpa perlu mengatur DNS. URL ini tersusun dari tiga bagian:

BagianContohArtinya
Subdomain aplikasimy-app-a1b2c3Nama aplikasi Anda ditambah ID unik pendek.
IP server203.0.113.10Alamat IPv4 publik server Anda.
Domain BYOCbyoc.example.comDomain wildcard-DNS yang dikonfigurasi oleh instalasi Raklane Anda.

Jika digabung menjadi https://my-app-a1b2c3.203.0.113.10.byoc.example.com.

Domain BYOC adalah jenis domain DNS khusus: setiap hostname di bawahnya akan mengarah ke alamat IP yang tertulis di dalam hostname tersebut. Karena IP server menjadi bagian dari nama, URL ini selalu mengarah langsung ke server Anda, tanpa ada record DNS yang perlu dibuat siapa pun. Setiap instalasi Raklane memilih domain BYOC-nya sendiri. Bisa berupa layanan wildcard-DNS publik seperti sslip.io atau nip.io, atau domain yang dijalankan sendiri oleh instalasi tersebut. Anda tidak perlu tahu yang mana: halaman ringkasan aplikasi selalu menampilkan URL yang tepat.

Anda juga bisa menambahkan domain kustom — arahkan record A ke IP server Anda (bukan ke Raklane). Lihat Menjalankan Aplikasi & Database di BYOC.

HTTPS

Caddy di server Anda mendapatkan sertifikat secara otomatis dari certificate authority publik, sesuai permintaan: saat request pertama untuk sebuah hostname tiba, Caddy bertanya ke Raklane apakah hostname itu sah (URL bawaan aplikasi, atau domain kustom yang lolos verifikasi DNS). Hanya jika Raklane menjawab ya, Caddy meminta sertifikat. Ini mencegah siapa pun mengarahkan domain sembarangan ke server Anda dan membuatnya meminta sertifikat untuk domain itu.

Penerbitan sertifikat membutuhkan port 80 yang bisa dijangkau dari internet (certificate authority melakukan verifikasi lewat port itu), meskipun aplikasi Anda disajikan di 443.

Jika IP server Anda privat (alamat LAN, VM lokal, sesuatu di balik NAT), tidak ada certificate authority publik yang bisa menjangkaunya, sehingga Raklane mengonfigurasi server itu untuk HTTP biasa saja. Semua hal lain tetap berfungsi; hanya saja tanpa HTTPS.

Pendaftaran dan keamanan

Model keamanannya dibangun di atas satu aturan: server Anda hanya pernah membuat koneksi keluar, dan hanya memegang kredensial untuk dirinya sendiri.

  • Token pendaftaran sekali pakai. Saat Anda mendaftarkan server, Raklane memberikan perintah instalasi berisi token sekali pakai. Raklane hanya menyimpan hash-nya. Token habis terpakai begitu server mendaftar; memakainya ulang setelah itu akan gagal. Jika token hilang sebelum dipakai, Anda bisa membuat ulang, dan token lama langsung tidak berlaku.
  • Private key server tidak pernah keluar dari server Anda. Selama pendaftaran, agent membuat pasangan kunci sendiri secara lokal dan hanya mengirim permintaan penandatanganan sertifikat ke Raklane. Raklane menandatanganinya dan mengembalikan sertifikat klien.
  • Identitas sertifikat ditentukan Raklane, bukan server Anda. Sertifikat terikat ke ID cluster Anda, yang dicari dari token. Server yang disusupi tidak bisa menyamar sebagai server lain.
  • Mutual TLS di setiap koneksi. Agent membuktikan identitasnya dengan sertifikat di setiap koneksi, dan memastikan bahwa ia berbicara dengan control plane Raklane yang asli.
  • Tanpa kredensial cloud. Raklane tidak pernah meminta API key, IAM role, atau SSH key penyedia cloud Anda. "Provider" yang Anda pilih saat mendaftar hanyalah label.
  • Tanpa port masuk untuk orkestrasi. Satu-satunya port masuk yang dibutuhkan server Anda adalah 80/443 untuk pengunjung aplikasi (dan 22 untuk SSH Anda sendiri, yang tidak dipakai Raklane).

Apa yang terjadi saat ada gangguan

BYOC dirancang agar gangguan di salah satu sisi tidak pernah dengan sendirinya mematikan aplikasi yang sedang berjalan.

SituasiYang Anda lihatYang terjadi
Server reboot, atau agent restartServer menjadi Offline; aplikasinya menampilkan unreachableAgent terhubung kembali otomatis saat menyala. Status kembali Healthy dan aplikasi kembali active setelah Raklane memastikan ulang. Tidak ada yang perlu dilakukan.
Gangguan jaringan antara server dan RaklaneSama seperti di atasSama seperti di atas — heartbeat berikutnya memulihkan semuanya.
Control plane Raklane mati atau tidak terjangkauAnda tidak bisa deploy atau melihat status terbaruAplikasi Anda tetap melayani trafik. Caddy dan container berjalan lokal di server Anda dan tidak membutuhkan control plane untuk menjawab request.
Docker di server berhentiAplikasi menampilkan unreachable; pemeriksaan "Docker connectivity" gagalLayanan Docker di-restart oleh service manager-nya sendiri; Raklane otomatis mengenali kondisi yang pulih.
Disk penuh saat menarik imageDeploy gagal dengan error image-pullDicoba ulang otomatis dengan jeda; kosongkan ruang disk dan percobaan berikutnya atau deploy ulang akan berhasil.
Release baru gagal health checkDeploy ditandai failedRelease sebelumnya tetap melayani. Perbaiki lalu deploy ulang.

"Unreachable" sengaja dibedakan dari "failed": artinya Raklane saat ini tidak bisa memastikan kondisi aplikasi Anda, bukan berarti aplikasinya berhenti. Dalam kebanyakan kasus, aplikasi Anda tetap berjalan dan melayani trafik sepanjang waktu.

Hal yang perlu diketahui sebelum mulai

  • Setiap server yang didaftarkan adalah cluster tersendiri. Anda bisa mendaftarkan server sebanyak apa pun, tetapi masing-masing adalah cluster terpisah dengan satu node, dan Anda memilih server mana yang menjadi tujuan deploy sebuah aplikasi. Raklane belum menyebar replica satu aplikasi ke beberapa server Anda. Lihat Mengelola Server BYOC.
  • Raklane mengelola Caddy di server tersebut. Raklane mengganti seluruh konfigurasi Caddy setiap kali rute berubah, jadi jangan memakai instance Caddy yang sama untuk situs lain yang tidak terkait — situs itu akan terhapus. Gunakan server khusus (atau reverse proxy terpisah di port lain) untuk apa pun yang tidak dikelola Raklane.
  • Log diambil saat dibutuhkan. Runtime log aplikasi BYOC diambil dari server Anda saat Anda membuka halaman Logs, bukan dialirkan dan disimpan terus-menerus.
  • IPv4 dibutuhkan untuk URL bawaan. Server yang hanya punya alamat IPv6 tidak mendapat URL bawaan berbasis IP. Domain kustom tetap berfungsi.
  • Database di server Anda adalah data Anda. Raklane tidak mem-backup database yang berjalan di server BYOC. Backup server (atau database-nya) sendiri.

Langkah berikutnya

  1. Menyiapkan Server BYOC — daftarkan server dan jalankan perintah instalasi.
  2. Menjalankan Aplikasi & Database di BYOC — deploy, tambahkan domain, dan sediakan database.
  3. Mengelola Server BYOC — pemeriksaan status, mengganti nama, menghentikan server, pembaruan agent.
  4. Konfigurasi Agent BYOC — setiap pengaturan yang dibaca agent di server Anda.
  5. Tagihan BYOC — cara kerja biaya pengelolaan.
  6. Pemecahan Masalah BYOC — saat ada yang tidak berfungsi.