Membuat deployment di VM

Dokumen ini menjelaskan cara men-deploy Spanner Omni di virtual machine (VM). Deployment ini tidak memiliki enkripsi. Jika Anda ingin menyiapkan lingkungan pengujian atau proof-of-concept dengan cepat untuk mengevaluasi Spanner Omni, membuat deployment yang tidak aman adalah cara tercepat untuk memulai karena Anda tidak perlu mengonfigurasi mTLS atau langkah-langkah keamanan lainnya. Namun, karena risiko keamanan, seperti traffic jaringan yang tidak dienkripsi dan akses terbuka, kami tidak merekomendasikan konfigurasi ini untuk lingkungan produksi. Anda dapat memilih antara deployment satu server atau deployment regional di beberapa zona.

Versi Pratinjau Spanner Omni tidak mendukung enkripsi TLS. Untuk mendapatkan fitur yang memungkinkan Anda membuat deployment dengan enkripsi TLS, hubungi Google untuk meminta akses awal ke Spanner Omni versi lengkap.

Sebelum memulai

Sebelum menyiapkan deployment yang tidak aman, pastikan Anda memenuhi persyaratan berikut:

  • Akses SSH: Memiliki akses SSH ke setiap mesin dalam deployment untuk mendownload dan menjalankan biner Spanner Omni.

  • Konektivitas: Semua mesin dalam deployment dapat terhubung satu sama lain.

  • Jaringan: Konfigurasi jaringan Anda mengizinkan komunikasi TCP di port 15000 hingga 15025.

  • Penyimpanan: Setiap mesin memiliki penyimpanan yang cukup untuk menghosting data yang ditangani deployment.

  • Persyaratan sistem: Pastikan penyiapan Anda memenuhi semua persyaratan sistem.

  • Konfigurasi vSphere: Jika Anda menjalankan Spanner Omni di platform virtualisasi vSphere, nonaktifkan virtualisasi Time Stamp Counter (TSC). Tambahkan monitor_control.virtual_rdtsc = FALSE ke file konfigurasi .vmx virtual machine.

Langkah 1: Tentukan topologi deployment

Spanner Omni menggunakan hierarki lokasi, zona, dan server untuk menentukan topologi deployment-nya. Anda dapat memilih dari topologi berikut berdasarkan target ketersediaan Anda:

  • Server Tunggal: Deployment memiliki satu server yang berjalan di satu mesin.

  • Zona Tunggal: Deployment berjalan di beberapa server yang tersebar di satu zona.

  • Satu Lokasi, Beberapa Zona (Deployment yang Direplikasi): Deployment berjalan di beberapa server yang didistribusikan di beberapa zona dalam satu lokasi.

  • Beberapa Lokasi, Beberapa Zona: Deployment berjalan di beberapa server yang didistribusikan di beberapa lokasi dan beberapa zona.

Untuk mengetahui informasi selengkapnya, lihat Istilah utama Spanner Omni dan Konfigurasi deployment Spanner Omni.

Untuk deployment selain server tunggal, buat file konfigurasi YAML bernama deployment.yaml yang menentukan topologi. Hanya tentukan server root dalam file ini. Tambahkan server non-root nanti.

Contoh: Deployment multi-zona yang direplikasi

Contoh berikut menunjukkan konfigurasi untuk deployment regional di tiga zona.

name: regional-deployment
location:
  - name: us-central1
zone:
  - name: us-central1-a
    location: us-central1
    single_server: false
    root_server:
      - host: rootserver1
  - name: us-central1-b
    location: us-central1
    single_server: false
    root_server:
      - host: rootserver2
  - name: us-central1-c
    location: us-central1
    single_server: false
    root_server:
      - host: rootserver3

Contoh: Deployment multi-lokasi

Contoh berikut menunjukkan konfigurasi untuk deployment di tiga lokasi.

name: multi-location-deployment
location:
  - name: us-central1
  - name: europe-west2
  - name: asia-southeast1
zone:
  - name: us-central1-a
    location: us-central1
    single_server: false
    root_server:
      - host: rootserver1
  - name: europe-west2-a
    location: europe-west2
    single_server: false
    root_server:
      - host: rootserver2
  - name: asia-southeast1-a
    location: asia-southeast1
    single_server: false
    root_server:
      - host: rootserver3

Langkah 2: Download dan siapkan biner

Ulangi langkah-langkah ini untuk setiap mesin dalam deployment:

  1. Buat direktori untuk biner dan buka direktori tersebut.

  2. Download biner:

    gsutil cp gs://spanner-omni/VERSION/spanner-omni-VERSION-linux-x86_64.tar.gz .
    

    Anda juga dapat menggunakan scp atau alat transfer file lainnya untuk menyalin biner ke VM Anda.

  3. Ekstrak biner:

    tar -xvf spanner-omni-VERSION-linux-x86_64.tar.gz
    

Langkah 3: Mulai server

Buat direktori dasar di setiap server untuk menyimpan data, metadata, dan log. Jika server perlu dimulai ulang, tentukan direktori yang sama untuk kelanjutan.

Opsi A: Deployment server tunggal

Untuk deployment server tunggal, jalankan perintah berikut:

spanner start-single-server --base-dir=SPANNER_BASE_DIR

Setelah server dimulai, lanjutkan ke Langkah 6: Berinteraksi dengan deployment.

Opsi B: Deployment scale-out

Untuk deployment scale-out, mulai server di setiap mesin. Flag --server-address dan --zone cocok dengan nilai dalam konfigurasi deployment Anda. Jaringan menyelesaikan server_address.

spanner start --root --server-address=RESOLVABLE_HOSTNAME --zone=ZONE_NAME --base-dir=SPANNER_BASE_DIR

Contoh:

spanner start --root --server-address=rootserver1 --zone=us-central-1a --base-dir=./spanbasedir

Langkah 4: Buat deployment

Untuk membuat deployment, ikuti langkah-langkah berikut:

  1. Salin file deployment.yaml yang Anda buat di Langkah 1: Tentukan topologi deployment ke salah satu server root.

  2. Di server root tersebut, jalankan perintah berikut untuk membuat deployment:

    spanner deployment create --config-file=deployment.yaml
    

    Konsol setiap mesin menampilkan pesan yang menunjukkan bahwa deployment sudah siap.

  3. Validasi deployment dengan mencantumkan zona:

    spanner deployment zones list
    

    Output mencantumkan lokasi, zona, dan server yang Anda tentukan di deployment.yaml.

Langkah 5: (Opsional) Konfigurasikan load balancer

Siapkan load balancer TCP dengan detail berikut:

Setelan Nilai
Protokol TCP
IP backend Alamat IP server Anda
Port 15000 (atau port yang Anda gunakan di flag --server-address)
URL pemeriksaan kesehatan http://SERVER_IP:15012/healthz
Strategi penyeimbangan Panggilan acak

Untuk deployment multi-lokasi, Anda dapat menyiapkan satu load balancer per lokasi dan load balancer utama untuk mendistribusikan traffic di semua lokasi.

Langkah 6: Berinteraksi dengan deployment

Setelah deployment siap, Anda dapat berinteraksi dengannya menggunakan CLI dari VM atau mesin lokal mana pun. Jika Anda menjalankan CLI dari komputer terpisah, seperti laptop developer, download dan ekstrak paket CLI. Untuk mengetahui informasi selengkapnya, lihat Panduan memulai menggunakan Spanner Omni CLI.

Untuk berinteraksi dengan deployment, ikuti langkah-langkah berikut:

  1. Buat database:

    spanner --deployment-endpoint=LOAD_BALANCER_IP_OR_SERVER_IP databases create DATABASE_NAME
    
  2. Buka shell SQL:

    spanner sql --database=DATABASE_NAME
    
  3. Buat tabel dan masukkan data:

    CREATE TABLE names (
      nameId INT64 NOT NULL,
      name STRING(100)
    ) PRIMARY KEY (nameId);
    
    INSERT INTO names (nameId, name) VALUES (1, "Jack");
    
  4. Verifikasi database dan data:

    Untuk mencantumkan database: bash spanner databases list

    Outputnya akan terlihat mirip seperti berikut:

    NAMA STATUS VERSION_RETENTION_PERIOD EARLIEST_VERSION_TIME ENABLE_DROP_PROTECTION
    DATABASE_NAME SIAP 1j 2025-02-07T12:25:30Z false

    Untuk membuat kueri tabel: bash spanner sql --database=DATABASE_NAME

  5. Jalankan perintah SQL berikut:

    SHOW TABLES;
    SELECT * FROM names;
    

Langkah 7: (Opsional) Menskalakan deployment

Untuk menskalakan kapasitas dalam zona, Anda dapat menambahkan server non-root. Jalankan perintah berikut di setiap server baru:

spanner start --server-address=NON_ROOT_HOSTNAME --join-servers=SERVER1:PORT1,SERVER2:PORT2,SERVER3:PORT3 --zone=ZONE_NAME --base-dir=SPANNER_BASE_DIR

Langkah 8: (Opsional) Amati deployment

Untuk memantau kondisi dan performa deployment, Anda dapat menyiapkan pengumpulan, visualisasi, dan pemberitahuan metrik. Anda juga dapat mengumpulkan rekaman aktivitas terdistribusi untuk menganalisis latensi permintaan.

Menyiapkan Prometheus

Server Spanner Omni mengekspor metrik dalam format Prometheus di port 15012. Tambahkan kode berikut ke scrape_configs di prometheus.yml:

scrape_configs:
  - job_name: 'spanner'
    static_configs:
      - targets: ['HOST1:15012', 'HOST2:15012', 'HOSTN:15012']

Menyiapkan Grafana

Untuk melihat data pemantauan di Grafana:

  1. Sediakan sumber data Prometheus dengan membuat file di provisioning/datasources:

    apiVersion: 1
    datasources:
      - name: Prometheus
        uid: prometheus
        type: prometheus
        access: proxy
        url: http://PROMETHEUS_HOST:PROMETHEUS_PORT
        jsonData:
          httpMethod: POST
          manageAlerts: false
          prometheusType: Prometheus
          prometheusVersion: PROMETHEUS_VERSION
          cacheLevel: 'High'
          disableRecordingRules: false
          incrementalQueryOverlapWindow: 10m
    
  2. Buat dasbor di UI Grafana atau sediakan menggunakan provisioning/dashboards.

Menyiapkan pemberitahuan

Konfigurasi pemberitahuan menggunakan UI Grafana atau file konfigurasi. Misalnya, Anda dapat memicu pemberitahuan jika latensi transaksi persentil ke-95 (p95) melebihi 100 milidetik. Untuk mengetahui daftar pemberitahuan yang tersedia, lihat Menggunakan pemberitahuan Prometheus untuk memantau Spanner Omni.

Mengumpulkan dan menganalisis rekaman aktivitas

Kumpulkan informasi pelacakan terdistribusi dalam format OTLP dan visualisasikan dengan alat seperti Jaeger.

  1. Siapkan pengumpul rekaman aktivitas yang kompatibel dengan OTLP. Untuk Jaeger:

    export COLLECTOR_OTLP_ENABLED=true
    jaeger-all-in-one
    

    Pastikan port OTLP mengizinkan traffic jaringan antara Spanner Omni dan pengumpul.

  2. Tetapkan variabel lingkungan SPANNER_BOX_OTLP_TRACE_EXPORTER_ENDPOINT dan mulai server Spanner Omni:

    export SPANNER_BOX_OTLP_TRACE_EXPORTER_ENDPOINT=COLLECTOR_HOST:COLLECTOR_PORT
    spanner start --root --server-address=RESOLVABLE_HOSTNAME --zone=ZONE_NAME --base-dir=SPANNER_BASE_DIR
    

Langkah berikutnya