2. l 2/28
Agenda
l Apresentação Pessoal/Profissional
l Conceito/Ideia Multi Tenancy
l Case Grupo Sage – Pentaho Multi Tenancy
l Resultados
3. Apresentação
Pessoal e Profissional
Vinicius Alexandre Elyseu
24 anos - Curitiba – PR.
Formação
- Sistemas de Informação (Universidade Positivo – 2011 – Curitiba PR).
- MBA Business Intelligence (Universidade Positivo – 2014 – Curitiba PR).
Experiências Profissionais
- Grupo Sage: EBS Sistemas – Analista de Sistemas/B.I
- Grupo Positivo: Tecnologia Educacional – Desenvolvedor
- Grupo Barigui: Barigui Financeira – Analista de Sistemas
Demais Experiências/Projetos
- Blog: pentahobrazil.wordpress.com.br
- Empresa: Millennials – Consultoria em BI
- Central do Jogo: www.centraldojogo.com.br
- Entre outros
l 3/28
4. Apresentação
Grupo Sage
O Grupo Sage é uma multinacional, líder mundial no desenvolvimento e
comercialização de Software de Gestão para Pequenas e Médias Empresas
(PME). Conta com mais de 6 milhões de clientes em todo o Mundo.
Grupo Sage Brasil:
Formado pela junção de três grandes empresas
EBS Sistemas
IOB
FOLHAMATIC
Principais Segmentos:
Contábil
ERP
Consultoria Tributária
l 4/28
Mais de 40.000 mil clientes
5. Case Grupo Sage
Situação
Projeto em parceria
O objetivo do Grupo Sage é implantar B.I em um software
ERP existente onde mais de 800 clientes já o utilizam.
CARACTERÍSTICA PRINCIPAL: Todo processo deve
estar automatizado.
O software possui a mesma estrutura de tabelas e cada instalação é
realizada no próprio servidor do cliente. Para implantar o B.I em cada
servidor precisaríamos instalar a ferramenta de B.I, banco de dados e
outros requisitos. Porém utilizando esse formato de projeto a
implantação seria longa e muitas vezes inviável.
COMO FAZER ISTO DE MANEIRA ÁGIL E
COM BAIXO CUSTO?
l 5/28
6. Conceito
Multi Tenancy
UTILIZANDO O CONCEITO MULTI-TENANCY
(Multi-Inquilinos/Clientes)
O Conceito multi-tenancy vem de princípios da
arquitetura de software, a fim de padronizar,
otimizar e minimizar estruturas e ideias.
A ideia do conceito é ter um único Servidor
de B.I servindo diversos clientes.
l 6/28
7. Conceito
Multi Tenancy
Multi-Tenancy: Multi-Inquilinos
Os Clientes utilizam (No Servidor) a
mesma:
→ Aplicação
→ Sistema operacional
→ Hardware
→ Banco de dados.
Porém de maneira que um usuário de um
“Tenant” não possa ver ou alterar os
dados de outros “Tenants”.
l 7/28
8. Pentaho Multi Tenancy
Infraestrutura Utilizada
O Grupo Sage possui dois servidores externos em Nuvem na
Amazon.
1- Servidor de Aplicação (WebService - Windows).
2- Servidor de B.I (Pentaho e MySQL - Linux).
l 8/28
SERVIDORES
9. Pentaho Multi Tenancy
Servidor B.I – Banco de Dados
COMO O SERVIDOR DE BI VAI DIFERENCIAR
OS DADOS DE CADA CLIENTE?
Cada cliente terá o seu Datawarehouse
em um database (MySQL) com seu
código de identificação que é o Código
do Cliente.
l 9/28
10. Pentaho Multi Tenancy
Envio dos dados do Cliente
MAS COMO OS DADOS SERÃO
ENVIADOS A ESTE SERVIDOR?
Servidor do Cliente: Roda um processo de ETL (Kettle) que gera
arquivos CSV (Ex: 10123-clientes.csv) com os dados do BD do
Cliente. Processo feito quando o cliente habilita/compra o B.I
Após a geração dos arquivos, o Kettle os envia para o Servidor de
Aplicação através de um WebService (utiliza a mesma porta do
HTTP).
O Servidor de Aplicação roda um processo de ETL (Kettle) de 15 em
15 minutos que lê os arquivos CSV, identifica qual o cliente através do
nome do arquivo, cria o datawarehouse do cliente, se necessário, e
insere os dados do cliente no Servidor de B.I.
l 10/28
11. Pentaho Multi Tenancy
Funcionamento Servidores
Servidor do B.I (Pentaho e MySQL):
Responsável por administrar o
Pentaho e o Banco de dados.
Servidor de aplicação (WebService):
Responsável por receber os dados e
enviar via ETL (Kettle) para o banco
de dados no Servidor do B.I.
l 11/28
12. Pentaho Multi Tenancy
Processo Kettle (Servidor Aplicação)
De 15 em 15 minutos roda o processo ETL
(Kettle) no Servidor de aplicação
Recebe parâmetro de Código do Cliente
através do nome do arquivo
Cria o DatawareHouse no MySQL
Cria as configurações do DW no HSQLDB
Datawarehouse_CodCliente
l 12/28
14. Pentaho Multi Tenancy
Criação de Usuários no HSQLDB
Criação automatizada dos usuários para integração:
no Banco de dados HSQLDB (InMemory) do Pentaho
l 14/28
16. Pentaho Multi Tenancy
Cache do Hibernate
Após a criação/atualização dos usuários pelo Kettle, subentende-se que o
usuário já poderá acessar o sistema com seu login, porém o Pentaho tem um
cache que só pega novos usuários quando o servidor do pentaho é reiniciado.
Para solucionar este problema, temos que desabilitar o cache do Hibernate.
Para desabilitar o mesmo: ir até o arquivo
applicationContext-spring-security-hibernate.xml que no meu caso fica no
diretório C:optpentahobiserver-cepentaho-solutionssystem e adicionar
uma nova propriedade dentro da tag XML:
<property name=”hibernateProperties”> e <props> após a última <prop>
l 16/28
17. Pentaho Multi Tenancy
Cache do Hibernate
Vale lembrar que esta situação só acontece para versões inferiores a 5.0.
Quem utiliza superior ou igual a 5.0 não precisa fazer esta customização
l 17/28
19. Pentaho Multi Tenancy
Desabilitar Cache CDA
Em todos os DataSources, alterar a propriedade Cache para false, devido a
inexistência de suporte do cache do CDA ao Multi-Tenancy
l 19/28
20. Pentaho Multi Tenancy
Diferenciação dos dados
MAS COMO O PENTAHO VAI BUSCAR E
MOSTRAR OS DADOS CORRETOS PARA O
USUÁRIO AUTENTICADO ?
l 20/28
21. Pentaho Multi Tenancy
Customizações no Servidor do B.I
Para que seja possível utilizar a estrutura de acessos com o
conceito Mutli Tenancy, é necessário mudar o código de um
arquivo.
Editar o arquivo pentahoObjects.sprint.xml que fica no
diretório do /pentaho/biserver-ce/pentaho-solutions/system/ com
as seguintes alterações:
→ Localizar a tag <bean “IdatasourceService”>, comentá-la ou
retirá-la.
l 21/28
22. Pentaho Multi Tenancy
Customizações no Servidor do B.I
Adicionar o seguinte código:
<bean id="IDatasourceService"
class="org.pentaho.platform.engine.services.connection.datasource.dbcp.
tenantaware.TenantAwareLoginParsingDatasourceService"
scope="singleton">
<property name="requireTenantId" value="false" /> (TENANT)
<property name="datasourceNameFormat" value="{0}-{1}" /> (PAC)
<property name="tenantSeparator" value="@" /> (USUÁRIO@BASE – PUC)
<property name="tenantOnLeft" value="false" /> (CONSIDERA DIREITA DO @)
</bean>
l 22/28
24. Pentaho Multi Tenancy
Visualização após Autenticação utilizando CST
Vale lembrar que todas as ferramentas do Pentaho Server estarão
disponíveis para os clientes utilizarem respeitando o conceito Multi-
Tenancy.
-> OLAP (SAIKU, Jpivot, etc…)
-> Reporter (PRD, SAIKU Report, etc…)
-> MetaDados (PME, etc…)
-> Dashboards (Ctools, etc…)
l 24/28
25. Pentaho Multi Tenancy
Vantagens e Benefícios
Custo
- Baixo número de servidores;
Consequentemente: número de licenças de S.O e número de
SGDB reduzido;
Agilidade
- Estrutura de implantação nos clientes é genérica;
- Fácil implantação nos clientes;
- Projeto de curto/médio prazo;
- Manutenção no Servidor de B.I é ágil porque só existe uma estrutura
Mobilidade
- Pode acessar de qualquer dispositivo que tenha conexão a internet;
l 25/28
26. Pentaho Multi Tenancy
Desvantagens
Manutenção
-Se acontecer algum problema no Servidor de B.I, como a estrutura é única,
irá afetar todos os clientes;
-Complexidade em controlar a troca de informações do Cliente x Servidor;
Customização
- Não é customizável por cliente devido ter a mesma estrutura para todos;
(DashBoards pré-definidos);
l 26/28
27. Pentaho Multi Tenancy
Custo aproximado
Recursos e Custo
l Tempo de projeto: 4 meses
l Custo por Servidor Externo (média mensal): Amazon “m1.large”
l $180 x 2 = $360 x 2.20 = R$ 792,00
l Homens mês: Um analista de B.I (Média R$ 5.000,00)
l Curso e consultoria: R$ 225,00/h (Se necessário)
l 27/28