O Sync Gateway 3.0 A versão apresenta uma abordagem modular e com reconhecimento de cluster para a configuração do Sync Gateway que substitui a configuração em nível de nó Arquivo de configuração JSON A nova abordagem baseada no Sync Gateway é a mesma das versões anteriores. Nesta postagem, daremos uma olhada mais profunda na nova abordagem da configuração do Sync Gateway e forneceremos o contexto da motivação por trás do aprimoramento. Para obter detalhes, consulte a seção Documentação do Sync Gateway.
Fluxo de trabalho de configuração
Começamos com uma discussão sobre os estágios lógicos da instalação e configuração de um nó do Sync Gateway, conforme mostrado nesta ilustração:
Bootstrap: A primeira etapa é inicializar o Sync Gateway para se conectar ao cluster do Couchbase Server com as credenciais de autenticação apropriadas.
Configuração do banco de dados: Depois que o Sync Gateway estiver instalado e funcionando, a próxima etapa é configurar o banco de dados do Sync Gateway. É aqui que se deve fornecer o nome do banco de dados, o bucket do Couchbase Server de apoio, configurar as políticas de gerenciamento de cache etc.
Controle de acesso: Depois que o banco de dados é configurado, as políticas de controle de acesso que controlam o acesso de leitura e gravação aos documentos são definidas por meio do Função de sincronização.
Gerenciamento de usuários: Por fim, os usuários do gateway de sincronização são criados/registrados no Sync Gateway por meio de um esquema de autenticação adequado. Esses são os clientes que sincronizam dados ou acessam dados por meio do endpoint REST público do Sync Gateway.
A partir da versão 3.0, o Sync Gateway é inicializado por meio de um arquivo de configuração formatado em JSON. Posteriormente, o restante da configuração é tratado por meio de uma interface RESTful.
Configuração estática baseada em arquivo (legado)
Para contextualizar, antes de nos aprofundarmos em como configurar o Sync Gateway na versão 3.0, vamos dar uma olhada na maneira de fazer as coisas antes da versão 3.0. Esse modelo de configuração continua a ser compatível com a versão 3.0 e pode ser ativado por meio de um opção de configuração que desabilita a abordagem baseada em configuração persistente.
No modelo legado, cada nó é configurado de forma independente com um Arquivo de configuração JSON que tem como escopo um nó do Sync Gateway. O arquivo de configuração inclui configurações de bootstrap, configuração no nível do banco de dados, políticas de controle de acesso e muito mais. As únicas exceções são os usuários e as replicações entre Gateways de sincronização, que também podem ser gerenciados por meio do arquivo usuários e replicações REST, respectivamente.
Sempre que a configuração do banco de dados precisar ser atualizada, o arquivo de configuração deverá ser atualizado em cada nó do gateway de sincronização. Depois de atualizar o arquivo, os nós do Sync Gateway precisam ser reiniciados para que a configuração atualizada tenha efeito.
Configuração persistente centralizada do Sync Gateway
Vamos dar uma olhada na configuração persistente centralizada. Fluxo de trabalho de configuração modelo descrito anteriormente:
Bootstrap
No modelo de configuração persistente centralizado, cada nó do Sync Gateway é configurado com um arquivo de configuração de bootstrap estático formatado em JSON que inclui informações mínimas que permitirão que o Sync Gateway se conecte com segurança ao cluster do Couchbase Server.
Qualquer alteração feita no arquivo de configuração exigirá a reinicialização do Sync Gateway para entrar em vigor.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
{ "bootstrap": { "group_id": "group1", "servidor": "couchbases://cb-server", "nome de usuário": "Administrador", "senha": "senha" }, "registro": { "console": { "log_level": "rastreamento", "log_keys": ["*"] } } } |
Configuração do banco de dados
Os bancos de dados do Sync Gateway podem ser criados e gerenciados por meio do Ponto de extremidade do administrador de gerenciamento de banco de dados. A configuração feita por meio da API REST é mantida no bucket correspondente do Couchbase Server e propagada automaticamente para os outros nós do Sync Gateway no cluster.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
enrolar --localização --solicitação PUT 'localhost:4985/travel-sample/' \ --cabeçalho 'Content-Type: application/json' \ --cabeçalho 'Authorization: Basic c2d3X2NsdXN0ZXI6cGFzc3dvcmQ=' \ --dados-bruto '{ "bucket": "travel-sample", "name": "travel-sample", "guest": { "disabled": true }, "import_docs": true, "num_index_replicas": 0, "enable_shared_bucket_access": true }' |
Controle de acesso
Da mesma forma, o Javascript Sincronização A função, que define as políticas de controle de acesso de leitura/gravação, pode ser configurada por meio do ponto de extremidade REST. Ela pode ser tratada como parte da função ponto de extremidade de configuração do banco de dados ou via o ponto de extremidade de sincronização.
1 2 3 4 5 |
enrolar --localização --solicitação PUT \ 'localhost:4985/travel-sample/_config/sync' \ --cabeçalho 'Content-Type: application/javascript' \ --cabeçalho 'Authorization: Basic c2d3X2FkbWluOnBhc3N3b3Jk'\ --dados-bruto 'function(doc, oldDoc) {if (doc.type){ channel("channel: "+ doc.type);}}' |
Gerenciamento de usuários
Os usuários são configurados por meio do ponto de extremidade de criação de usuário.
1 2 3 4 5 6 7 8 9 10 |
enrolar --localização --solicitação POST 'localhost:4985/travel-sample/_user/' \ --cabeçalho 'Content-Type: application/json' \ --cabeçalho 'Authorization: Basic c2d3X2FkbWluOnBhc3N3b3Jk' \ --dados-bruto '{ "name": "demo", "senha": "password", "admin_channels": ["*"], "email": "demo@example.com", "disabled": falso }' |
Todas as alterações de configuração feitas por meio da API REST são mantidas nos buckets correspondentes do Couchbase Server e sobrevivem a qualquer reinicialização do Sync Gateway.
Configuração do banco de dados de escopo
A configuração do banco de dados é aplicada a um nó do Sync Gateway e propagada automaticamente para todos os nós do cluster.
Agora, e se você não quiser que todos os nós do Sync Gateway compartilhem a mesma configuração de banco de dados? Introduzindo o conceito de grupos de configuração do banco de dados. Em um nível mais alto, um grupo de configuração de banco de dados especifica o subconjunto de nós do gateway de sincronização aos quais uma configuração de banco de dados será aplicada. Por padrão, todos os nós pertencem a um grupo de configuração padrão e os usuários podem definir grupos de configuração para restringir o escopo da configuração do banco de dados.
Por exemplo, considere um cluster de cinco nós do Sync Gateway em que três dos nós estão configurados para replicações de clientes do Couchbase Lite e os dois restantes estão configurados para Replicações inter-Sync Gateway. Nesse caso, os três nós podem ser configurados para pertencer ao grupo padrão, enquanto os dois nós restantes são configurados para pertencer a um grupo de configuração chamado ISGR.
Você pode saber mais sobre os grupos de configuração em nosso documentação páginas.
Resumo
Aqui estão os principais recursos do modelo de configuração:
Administração remota segura: Administre com segurança os clusters do Sync Gateway implantados na nuvem ou em data centers de borda.
Modular: Configure e gerencie dinamicamente os vários aspectos da configuração do banco de dados de forma modular.
Com reconhecimento de cluster: As alterações na configuração do banco de dados feitas em um nó do Sync Gateway são automaticamente propagadas para todos os nós do Sync Gateway ou para um subconjunto relevante de nós do cluster.
Persistência: Todas as alterações no banco de dados feitas por meio do ponto de extremidade REST são mantidas e sobrevivem às reinicializações.
Próximas etapas
Confira o sessão de vídeo que discute a abordagem de configuração e mostra uma demonstração.
Baixar Sync Gateway e experimente-o gratuitamente. O documentação são um bom recurso para obter mais informações.
Se tiver dúvidas ou comentários, deixe um comentário abaixo ou entre em contato comigo pelo Twitter ou e-mail Eu.
Agradecimentos
Gostaria de agradecer a Ben Brooksengenheiro da equipe do Sync Gateway, por sua contribuição para esta publicação do blog.