Neste documento, explicamos como implantar o Spanner Omni em máquinas virtuais (VMs). Esta implantação não tem criptografia. Se você quiser configurar rapidamente um ambiente de teste ou prova de conceito para avaliar o Spanner Omni, criar uma implantação sem segurança é a maneira mais rápida de começar, porque não exige que você configure o mTLS ou outras medidas de segurança. No entanto, devido a riscos de segurança, como tráfego de rede não criptografado e acesso aberto, não recomendamos essa configuração para ambientes de produção. É possível escolher entre uma implantação de servidor único ou regional em várias zonas.
A versão prévia do Spanner Omni não é compatível com a criptografia TLS e para de gravar dados 90 dias após a criação de uma implantação. Para acesso antecipado à edição com todos os recursos, entre em contato com o Google.
Antes de começar
Antes de configurar uma implantação sem segurança, verifique se você atende aos seguintes requisitos:
Acesso SSH: tenha acesso SSH a todas as máquinas na implantação para fazer o download e executar o binário do Spanner Omni.
Conectividade: todas as máquinas na implantação podem se conectar entre si.
Rede: sua configuração de rede permite a comunicação TCP nas portas
15000a15025.Armazenamento: cada máquina tem armazenamento suficiente para hospedar os dados que a implantação processa.
Requisitos do sistema: verifique se sua configuração atende a todos os requisitos do sistema.
Configuração do vSphere: se você estiver executando o Spanner Omni na plataforma de virtualização vSphere, desative a virtualização do contador de carimbo de data/hora (TSC, na sigla em inglês). Adicione
monitor_control.virtual_rdtsc = FALSEao arquivo de configuração.vmxda máquina virtual.
Etapa 1: decidir a topologia de implantação
O Spanner Omni usa uma hierarquia de locais, zonas e servidores para definir a topologia de implantação. Você pode escolher entre as seguintes topologias com base nas suas metas de disponibilidade:
Servidor único: a implantação tem um único servidor que é executado em uma única máquina.
Zona única: a implantação é executada em vários servidores distribuídos em uma única zona.
Um local, várias zonas (implantação replicada): a implantação é executada em vários servidores distribuídos em várias zonas em um local.
Vários locais, várias zonas: a implantação é executada em vários servidores distribuídos em vários locais e zonas.
Para mais informações, consulte Termos principais do Spanner Omni e Configurações de implantação do Spanner Omni.
Para qualquer implantação que não seja um único servidor, crie um arquivo de configuração YAML
chamado deployment.yaml que defina a topologia. Especifique apenas os servidores raiz
neste arquivo. Adicione servidores não raiz mais tarde.
Exemplo: implantação replicada em várias zonas
O exemplo a seguir mostra uma configuração para uma implantação regional em três zonas.
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
Exemplo: implantação em vários locais
O exemplo a seguir mostra uma configuração para uma implantação em três locais.
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
Etapa 2: fazer o download e configurar o binário
Repita essas etapas para cada máquina na implantação:
Crie um diretório para o binário e navegue até ele.
Faça o download do binário:
gsutil cp gs://spanner-omni/VERSION/spanner-omni-VERSION-linux-x86_64.tar.gz .Também é possível usar
scpou outras ferramentas de transferência de arquivos para copiar o binário para suas VMs.Extraia o binário:
tar -xvf spanner-omni-VERSION-linux-x86_64.tar.gz
Etapa 3: iniciar os servidores
Crie um diretório base em cada servidor para armazenar dados, metadados e registros. Se um servidor precisar ser reiniciado, especifique o mesmo diretório para garantir a continuidade.
Opção A: implantação de servidor único
Para uma implantação de servidor único, execute o seguinte comando:
spanner start-single-server --base-dir=SPANNER_BASE_DIR
Depois que o servidor for iniciado, siga para a Etapa 6: interagir com a implantação.
Opção B: implantação de escalonamento horizontal
Para implantações de escalonamento horizontal, inicie o servidor em cada máquina. As flags
--server-address e --zone correspondem aos valores na configuração
de implantação. A rede resolve o server_address.
spanner start --root --server-address=RESOLVABLE_HOSTNAME --zone=ZONE_NAME --base-dir=SPANNER_BASE_DIR
Exemplo:
spanner start --root --server-address=rootserver1 --zone=us-central-1a --base-dir=./spanbasedir
Etapa 4: criar a implantação
Para criar a implantação, siga estas etapas:
Copie o arquivo
deployment.yamlcriado na Etapa 1: decidir a topologia de implantação para um dos servidores raiz.No servidor raiz, execute o seguinte comando para criar a implantação:
spanner deployment create --config-file=deployment.yamlO console de cada máquina mostra mensagens indicando que a implantação está pronta.
Valide a implantação listando as zonas:
spanner deployment zones listA saída lista os locais, as zonas e os servidores especificados em
deployment.yaml.
Etapa 5: configurar um balanceador de carga (opcional)
Configure um balanceador de carga TCP com os seguintes detalhes:
| Configuração | Valor |
|---|---|
| Protocolo | TCP |
| IP do back-end | Os endereços IP dos seus servidores |
| Porta | 15000 (ou a porta usada na flag --server-address) |
| URL de verificação de integridade | http://SERVER_IP:15012/healthz |
| Estratégia de balanceamento | Round-robin |
Em implantações com vários locais, é possível configurar um balanceador de carga por local e um balanceador de carga principal para distribuir o tráfego em todos os locais.
Etapa 6: interagir com a implantação
Depois que a implantação estiver pronta, interaja com ela usando a CLI de qualquer VM ou máquina local. Se você executar a CLI em uma máquina separada, como um laptop de desenvolvedor, faça o download e extraia o pacote da CLI. Para mais informações, consulte o Guia de início rápido sobre como usar a CLI do Spanner Omni.
Para interagir com a implantação, siga estas etapas:
Crie um banco de dados.
spanner --deployment-endpoint=LOAD_BALANCER_IP_OR_SERVER_IP databases create DATABASE_NAMEAbra o shell do SQL:
spanner sql --database=DATABASE_NAMECrie uma tabela e insira dados:
CREATE TABLE names ( nameId INT64 NOT NULL, name STRING(100) ) PRIMARY KEY (nameId); INSERT INTO names (nameId, name) VALUES (1, "Jack");Verifique o banco de dados e os dados:
Para listar bancos de dados:
bash spanner databases listA saída será assim:
NOME ESTADO VERSION_RETENTION_PERIOD EARLIEST_VERSION_TIME ENABLE_DROP_PROTECTION DATABASE_NAME READY 1h 2025-02-07T12:25:30Z falso Para consultar a tabela:
bash spanner sql --database=DATABASE_NAMEExecute os seguintes comandos SQL:
SHOW TABLES; SELECT * FROM names;
Etapa 7: (opcional) escalonar a implantação
Para escalonar a capacidade em uma zona, adicione servidores não raiz. Execute o seguinte comando em cada novo servidor:
spanner start --server-address=NON_ROOT_HOSTNAME --join-servers=SERVER1:PORT1,SERVER2:PORT2,SERVER3:PORT3 --zone=ZONE_NAME --base-dir=SPANNER_BASE_DIR
Etapa 8: (opcional) observar a implantação
Para monitorar a integridade e o desempenho da sua implantação, configure a coleta, a visualização e os alertas de métricas. Também é possível coletar traces distribuídos para analisar a latência da solicitação.
Configurar o Prometheus
Os servidores do Spanner Omni exportam métricas no formato do Prometheus na porta
15012. Adicione o seguinte a scrape_configs em prometheus.yml:
scrape_configs:
- job_name: 'spanner'
static_configs:
- targets: ['HOST1:15012', 'HOST2:15012', 'HOSTN:15012']
Configure o Grafana
Para ver dados de monitoramento no Grafana:
Provisione a fonte de dados do Prometheus criando um arquivo em
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: 10mCrie um painel na interface do Grafana ou provisione-o usando
provisioning/dashboards.
Configurar alertas
Configure alertas usando a interface do Grafana ou arquivos de configuração. Por exemplo, é possível acionar um alerta se o 95º percentil (p95) da latência de transação exceder 100 milissegundos. Para uma lista de alertas disponíveis, consulte Usar alertas do Prometheus para monitorar o Spanner Omni.
Coletar e analisar rastreamentos
Colete informações de rastreamento distribuído no formato OTLP e visualize-as com ferramentas como o Jaeger.
Configure um coletor de rastreamento compatível com OTLP. Para o Jaeger:
export COLLECTOR_OTLP_ENABLED=true jaeger-all-in-oneVerifique se a porta OTLP permite o tráfego de rede entre o Spanner Omni e o coletor.
Defina a variável de ambiente
SPANNER_BOX_OTLP_TRACE_EXPORTER_ENDPOINTe inicie os servidores do 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