Satu Tombol Menjadi Hub — Desain Tiga Lapis dari xGrid Promote
Blog/
||||||

Satu Tombol Menjadi Hub — Desain Tiga Lapis dari xGrid Promote

Mempromosikan Spoke menjadi Hub tidak memerlukan SSH, laptop, atau keterampilan baris perintah. Pindai kode QR untuk WiFi, buka PWA, tekan tombol — tiga langkah. Di baliknya adalah arsitektur Script, API, UI yang memungkinkan perawat melakukan apa yang seharusnya operasi administrator sistem.

Kesalahpahaman: "Anda Perlu SSH untuk Promote"

Dalam artikel sebelumnya, kami menjelaskan topologi Hub-Spoke dari xGrid. Kemampuan paling kuatnya adalah bahwa setiap Spoke dapat menjadi Hub — cabut, bawa, nyalakan, promosikan.

Artikel itu menunjukkan perintah ini:

sudo xgrid-promote

Sebuah perintah shell melalui SSH. Pertanyaan alami berikutnya: "Jadi saya perlu laptop, klien SSH, dan keterampilan baris perintah untuk melakukan ini?"

Tidak.

SSH adalah lapisan paling bawah — dibangun untuk administrator sistem dan pengembang. Namun dalam insiden korban massal, orang yang perlu mempromosikan Spoke kemungkinan adalah perawat, paramedis, atau komandan insiden. Mereka membawa iPad, bukan laptop.

Maka fungsi promote xGrid bukan sekadar shell script. Ini adalah arsitektur tiga lapis.

Tiga Lapis Promote

LapisanPemicuPenggunaAlat yang Diperlukan
Lapisan 1 — Scriptsudo xgrid-promoteAdministrator sistemSSH + laptop
Lapisan 2 — APIPOST /api/failover/promoteOperator tingkat lanjutKlien HTTP apa pun
Lapisan 3 — PWA UITombol "Promosikan ke Hub" pada banner merahSiapa puniPad / iPhone + browser

Lapisan 3 memanggil Lapisan 2. Lapisan 2 memanggil Lapisan 1. Setiap lapisan menambahkan perlindungannya sendiri:

  • Lapisan 1 — Mesin keadaan atomik 8 langkah dengan rollback penuh jika terjadi kegagalan apa pun
  • Lapisan 2 — Validasi peran (sudah Hub? ditolak), validasi keadaan (transisi sedang berlangsung? ditolak), timeout 60 detik
  • Lapisan 3 — Dialog confirm() untuk mencegah sentuhan tidak sengaja, animasi berdenyut biru untuk mencegah klik ganda, umpan balik toast berhasil/gagal

Tiga lapisan berarti: kompleksitas operasi ditentukan oleh pengguna, bukan dipaksakan oleh sistem. Administrator sistem dapat SSH untuk kontrol terperinci. Perawat cukup menekan tombol.

Alur Kode QR — Dari Nol ke Promote

Setiap RPi dikirimkan dengan kartu kode QR berlaminasi, dipasang di samping perangkat. Kartu berisi dua kode:

┌─────────────────────────────────────────┐
│  DNO-HC02 Connection Card                │
│                                          │
│  ┌──────────┐    ┌──────────┐           │
│  │ WiFi QR  │    │ MIRS QR  │           │
│  │          │    │          │           │
│  │  Pindai  │    │  Pindai  │           │
│  │  untuk   │    │  untuk   │           │
│  │  WiFi    │    │  buka    │           │
│  └──────────┘    └──────────┘           │
│                                          │
│  WiFi: DNO-HC02                          │
│  MIRS: http://10.0.0.1:8000             │
└─────────────────────────────────────────┘

Langkah 1 — Pindai kode QR WiFi. Kamera iPhone dan iPad secara native mendukung kode QR WiFi (format: WIFI:T:WPA;S:{SSID};P:{password};;). Memindai memicu pesan "Gabung Jaringan". Satu sentuhan dan perangkat terhubung ke hotspot RPi. Tanpa memasukkan SSID atau kata sandi secara manual.

Langkah 2 — Pindai kode QR MIRS atau ketik URL. Safari membuka PWA MIRS. Service Worker menyimpannya di cache segera — kunjungan berikutnya berfungsi secara offline.

Langkah 3 — Ketika Hub offline, banner merah muncul secara otomatis. PWA memeriksa status Hub setiap 30 detik. Setelah 3 kegagalan berturut-turut (90 detik), banner merah muncul di bagian atas layar:

Hub Offline (3 kegagalan koneksi)Promosikan ke Hub

Langkah 4 — Tekan "Promosikan ke Hub." Dialog konfirmasi muncul: "Apakah Anda yakin ingin mempromosikan node ini menjadi Hub?" Setelah konfirmasi, banner berubah biru dengan animasi berdenyut: "Mempromosikan ke Hub, mohon tunggu..."

Dalam 60 detik, script menyelesaikan 8 langkahnya. Jika berhasil, halaman dimuat ulang secara otomatis dengan toast hijau: "Promosi selesai! Peran: HUB | Epoch: N".

Tanpa SSH. Tanpa laptop. Tanpa perintah yang harus dihapal.

Deteksi Otomatis, Bukan Navigasi Manual

Perhatikan pilihan desain Lapisan 3: tombol tidak berada dalam menu untuk dicari pengguna. Sebaliknya, ketika Hub benar-benar offline, banner muncul dan bertanya: "Hub sedang down. Apakah Anda ingin mengambil alih?"

Ini disengaja.

Promote bukan operasi rutin. Ini operasi darurat. Anda tidak ingin seseorang menekannya karena penasaran — itu akan menciptakan Hub kedua (split-brain). Maka tombol hanya muncul ketika diperlukan: Hub benar-benar offline, node saat ini adalah Spoke, dan ada snapshot valid yang siap dimuat.

Bahkan dalam kondisi itu, perlindungan pertama adalah dialog confirm(). Yang kedua adalah mekanisme hub_epoch — jika seseorang secara tidak sengaja memicu split-brain, Hub dengan epoch lebih rendah akan secara otomatis menurunkan perannya saat kedua jaringan terhubung kembali.

Desain ini tidak membuat kesalahan menjadi mustahil. Desain ini membuat kesalahan memperbaiki dirinya sendiri.

Kapan Anda Masih Memerlukan SSH

Lapisan 3 mencakup 95% skenario lapangan. Namun beberapa kasus masih memerlukan SSH:

  • Mode --skip-network: Melewati pengaturan hostapd/dnsmasq/IP statis saat pengujian localhost. Tombol PWA tidak mendukung flag ini.
  • Mode --dry-run: Melihat pratinjau apa yang akan dilakukan promote tanpa mengeksekusi. Berguna untuk memverifikasi ketersediaan snapshot.
  • Demote: Menurunkan Hub kembali menjadi Spoke. Ini operasi administrasi — tidak ditampilkan melalui banner otomatis (meskipun PWA Manajemen Stasiun menyediakan antarmuka manual).
  • Diagnostik rollback: Ketika promote gagal, memeriksa log untuk menentukan penyebabnya.

SSH adalah cadangan, bukan jalur utama. Seperti kontrol penerbangan manual pada pesawat — Anda ingin mereka tersedia, tetapi merancang agar jarang dibutuhkan.

Bisakah iPhone / iPad Melakukan SSH?

Bisa. App Store memiliki Termius, Prompt, dan Blink Shell, semuanya klien SSH yang mumpuni.

Namun intinya adalah: Anda tidak membutuhkannya. Lapisan 3 hadir justru agar SSH menjadi opsional, bukan wajib.

Dalam insiden korban massal, Anda tidak akan meminta perawat untuk menginstal aplikasi SSH. Anda memberikan mereka kartu QR berlaminasi: pindai sekali untuk WiFi, pindai sekali untuk sistem, tekan tombol saat waktunya promote.

Inilah filosofi inti dari desain tiga lapis: membungkus kemampuan administrator sistem dalam antarmuka yang dapat dioperasikan oleh siapa pun.


Bacaan lanjutan: Cabut dan Pergi — Topologi Hub-Spoke, Promosi Peran, dan Failover Lima Menit · "Offline-First" Bukan "Toleran-Offline" · Uji Walkaway — Bisakah Sistem Anda Bertahan dari Pemutusan Koneksi?