SlideShare uma empresa Scribd logo
1 de 28
Criando sistemas híbridos (online/offline) com
ênfase em AP (alta disponibilidades)
utilizando Couchbase.
hello!
Leonardo Kobus
Arquiteto de Software - HBSIS.
Leonardo.kobus@gmail.com
O que vamos ver?
✘ Como fizemos a escolha do banco dados NOSQL para o problema
do cliente
✘ Porque o Couchbase
✘ O que API do Couchbase pode nos oferecer e como isso afeta nossa
produtividade.
✘ Exemplos de arquitetura hibrida online/off-line utilizando domínios
populares na comunidade de software.
1.
Porque couchbase?
Vamos começar do começo
Nosso cliente identificou que certos
lugares remotos do país seu produto
não chegava e resolveu colocar sua
tecnologia de gestão para
alavancar vendas nestes lugares.
Ele pegou seu sistema de +25
anos deu uma “enxugada” e
colocou pros usuários usarem.
Sistemas não conseguem atender 100%
dos cenários
✘ Números de usuários.
✘ Forma como ele é usado
✘ Infraestrutura onde ele é
instalado
✘ O que se quer resolver com o
uso do sistema
OFFLINE
A principal dor no sistema foi que ele
precisava rodar de forma Offline
É ai que entrou o Couchbase
✘ Banco NOSQL
✘ Trabalha orientado a documento
✘ API presente nas principais
linguagens alto nível
✘ Possui mecanismo sincronização de
dados (online,off-line).
✘ Possui uma rica tecnologia de
clusterização, capacity e etc
2.
Conceitos do banco
Armazenamento dos dados, consulta dos dados e o que
conseguimos fazer com ele
BucketCada registro é um documento
Nós criamos
os tipos
Usuário insere
informações
Alguém consulta os cafés
Bucket
Documento
REGISTRO
Content -> Dados da entidade do sistema
Event/Type -> Tipagem do documento
channels -> Canais do documento
Indexação
var view = _db.CreateView(“café”)
View.SetMap((doc, emit) => {
If(doc[“type”] == “CAFÉ”) {
emit(doc);
}
});
BUCKET
View
Café
N1QL - Níquel
Parece que a DSL SQL ANSI (select *
from …) é realmente uma ótima
maneira de humanos selecionarem
dados.
Clusterização
3.
Sincronismo
Como o banco consegue atuar de forma
online/offline
Sync Gateway
Couchbase
Server
Sync
Gateway
APP 1
APP 2
Couchbase LITE API
Couchbase Lite API
✘ Biblioteca disponibilizada
em Java, C# e etc.
✘ Utiliza o SQL Lite
internamente.
✘ É Open source.
✘ Faz sincronização do SQL
Lite com Couchbase
Bucket
Replicador
O replicador é a “Thread” que
vai replicar os dados da base
Local até a nuvem. Já
identificando se o dispositivo
esta online ou não
Funcionalidades
✘ É como se fosse um “mini-
bucket” sua maneira de
trabalhar.
✘ Possui menos recursos que
o Bucket.
✘ Trabalha bem como uma
quantidade considerável
de dados
✘ Multiplataforma
Canais
✘ O canal é um array de string no
documento chamado de channels
✘ Um documento pode ter vários
canais ou nenhum
✘ O documento será replicado caso
alguém esteja escutando 1 ou mais
canais dele.
Documento
Entidade
usuariofurb
ClonflitosSão resolvidos com MVCC (Multiversion concurrency control)
Bucket
Bucket
4.
Arquitetura
Exemplo de arquiteturas.
REST Simples Tradicional
REST
API
Datacenter
5.
Considerações finais
thanks!
Any questions?
You can find me at
leonardo.kobus@gmail.com

Mais conteúdo relacionado

Semelhante a Palestra couchbase-furb

Migrando Aplicações legadas para o Microsoft Azure
Migrando Aplicações legadas para o Microsoft AzureMigrando Aplicações legadas para o Microsoft Azure
Migrando Aplicações legadas para o Microsoft AzureRafael Dos Santos
 
De A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e TecnológicasDe A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e TecnológicasAndré Déo
 
Desenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureDesenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureLuciano Condé
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemRodrigo Valerio
 
Tesi Dados Final
Tesi Dados FinalTesi Dados Final
Tesi Dados Finaljcaroso
 
Guião demotécnica
Guião demotécnicaGuião demotécnica
Guião demotécnicaSilvio Dias
 
Guiao demotecnica
Guiao demotecnicaGuiao demotecnica
Guiao demotecnicaSilvio Dias
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopAlexei Znamensky
 
Apache CouchDB
Apache CouchDBApache CouchDB
Apache CouchDBHugo Souza
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
Desvendando a Plataforma de Serviços Windows Azure
Desvendando a Plataforma de Serviços Windows AzureDesvendando a Plataforma de Serviços Windows Azure
Desvendando a Plataforma de Serviços Windows AzureLucasRomao
 
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...Affinitas GmbH
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Alexandre Tarifa
 

Semelhante a Palestra couchbase-furb (20)

Migrando Aplicações legadas para o Microsoft Azure
Migrando Aplicações legadas para o Microsoft AzureMigrando Aplicações legadas para o Microsoft Azure
Migrando Aplicações legadas para o Microsoft Azure
 
De A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e TecnológicasDe A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
De A a Zabbix - I Congresso de Ciências Exatas e Tecnológicas
 
Desenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL AzureDesenvolvendo para o Windows Azure e SQL Azure
Desenvolvendo para o Windows Azure e SQL Azure
 
Apresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvemApresentação CEJS - Do nada para a nuvem
Apresentação CEJS - Do nada para a nuvem
 
Tesi Dados Final
Tesi Dados FinalTesi Dados Final
Tesi Dados Final
 
Guião demotécnica
Guião demotécnicaGuião demotécnica
Guião demotécnica
 
Guiao demotecnica
Guiao demotecnicaGuiao demotecnica
Guiao demotecnica
 
Palestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl WorkshopPalestra DataFlow - II São Paulo Perl Workshop
Palestra DataFlow - II São Paulo Perl Workshop
 
MODELO ASP
MODELO ASPMODELO ASP
MODELO ASP
 
Apache CouchDB
Apache CouchDBApache CouchDB
Apache CouchDB
 
Cake Php
Cake PhpCake Php
Cake Php
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
Desvendando a Plataforma de Serviços Windows Azure
Desvendando a Plataforma de Serviços Windows AzureDesvendando a Plataforma de Serviços Windows Azure
Desvendando a Plataforma de Serviços Windows Azure
 
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...
Python Brasil 2020 - Desmitificando pipeline de dados com Python: o que apren...
 
Apostila asp
Apostila aspApostila asp
Apostila asp
 
Continuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na NuvemContinuous Deployment e DevOps na Nuvem
Continuous Deployment e DevOps na Nuvem
 
Overview Azure
Overview AzureOverview Azure
Overview Azure
 
Azure Overview
Azure OverviewAzure Overview
Azure Overview
 
Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010Dev401 novos recursos do microsoft visual basic 2010
Dev401 novos recursos do microsoft visual basic 2010
 

Palestra couchbase-furb