[Projeto B.I – Grupo Sage]
Pentaho CEMulti Tenancy
l 2/28
Agenda
l Apresentação Pessoal/Profissional
l Conceito/Ideia Multi Tenancy
l Case Grupo Sage – Pentaho Multi Tenancy
l Resultados
ApresentaçãoPessoal e Profissional
Vinicius Alexandre Elyseu24 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
ApresentaçãoGrupo 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.
l 4/28
Grupo Sage Brasil:Formado pela junção de três grandes empresasEBS SistemasIOB FOLHAMATIC
Principais Segmentos:ContábilERPConsultoria Tributária
Mais de 40.000 mil clientes
Case Grupo SageSituação
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.
l 5/28
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.
COMO FAZER ISTO DE MANEIRA ÁGIL E COM BAIXO CUSTO?
Projeto em parceria
ConceitoMulti Tenancy
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
UTILIZANDO O CONCEITO MULTI-TENANCY (Multi-Inquilinos/Clientes)
ConceitoMulti 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
Pentaho Multi TenancyInfraestrutura 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
Pentaho Multi TenancyServidor B.I – Banco de Dados
l 9/28
Cada cliente terá o seu Datawarehouse em um database (MySQL) com seu código de identificação que é o Código do Cliente.
COMO O SERVIDOR DE BI VAI DIFERENCIAR OS DADOS DE CADA CLIENTE?
Pentaho Multi TenancyEnvio dos dados do Cliente
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
MAS COMO OS DADOS SERÃO ENVIADOS A ESTE SERVIDOR?
Pentaho Multi TenancyFuncionamento 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
Pentaho Multi TenancyProcesso Kettle (Servidor Aplicação)
l 12/28
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 MySQLCria as configurações do DW no HSQLDB
Datawarehouse_CodCliente
Pentaho Multi TenancyProcesso Criação DW PAC
l 13/28
Pentaho Multi TenancyCriaçã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
Pentaho Multi TenancyCriação de Usuários no HSQLDB
l 15/28
Pentaho Multi TenancyCache 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:\opt\pentaho\biserver-ce\pentaho-solutions\system\ e adicionar uma nova propriedade dentro da tag XML:<property name=”hibernateProperties”> e <props> após a última <prop>
l 16/28
Pentaho Multi TenancyCache do Hibernate
l 17/28
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
Pentaho Multi TenancyAcesso Clientes
l 18/28
Pentaho Multi TenancyDesabilitar Cache CDA
l 19/28
Em todos os DataSources, alterar a propriedade Cache para false, devido a inexistência de suporte do cache do CDA ao Multi-Tenancy
l 20/28
MAS COMO O PENTAHO VAI BUSCAR E MOSTRAR OS DADOS CORRETOS PARA O USUÁRIO AUTENTICADO ?
Pentaho Multi TenancyDiferenciação dos dados
Pentaho Multi TenancyCustomizaçõ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
Pentaho Multi TenancyCustomizaçõ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
Pentaho Multi TenancyVisualização após Autenticação utilizando CST
l 23/28
Pentaho Multi TenancyVisualização após Autenticação utilizando CST
l 24/28
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…)
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
Pentaho Multi TenancyVantagens e Benefícios
- Pode acessar de qualquer dispositivo que tenha conexão a internet;
l 25/28
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);
Pentaho Multi TenancyDesvantagens
l 26/28
Pentaho Multi TenancyCusto 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
Pentaho Multi TenancyContato
Dúvidas e/ou Sugestões?
Obrigado,
Vinicius Alexandre Elyseu
l 28/28
Contato: [email protected] (41) 9993-4377 Blog: pentahobrazil.wordpress.com.br
www.millennialscwb.com.br