Você está na página 1de 75

Desenvolvimento de aplicaes multi-tenant: um estudo de mapeamento sistemtico

Mestrando: Josino Rodrigues Orientador: Silvio Meira Co-orientador: Vincius Garcia

Se a engenharia civil criou prdios, a computao criou multi-tenancy.

Agenda
Contexto Problema Objetivos Metodologia Fase 1 Entendimento do Cenrio Fase 2 Mapeamento Sistemtico Fase 3 Aplicao na Indstria Concluso
3

Como esse trabalho se originou???

Como? Que tecnologias? Ser se isso vivel pra nossa realidade?


7

Aumentar a quantidade de clientes possvel ...

... atravs da otimizao na utilizao de recursos.

10

Problema
Desenvolver software para atender a um grande nmero de usurios a baixo custo, no modelo de software como servio Ausncia de trabalhos que apresentem diretrizes para desenvolver SaaS Multitenancy
11

Objetivo Geral
Contribuir com a evoluo do estado da arte do desenvolvimento de aplicaes SaaS que implementam a arquitetura multi-tenancy.

12

Objetivo Especficos
Apresentar uma viso geral de multitenancy; Definir o status de maturidade atual de multi-tenancy;
Identificar vantagens e desvantagens na adoo de multitenancy Identificar as principais propostas de implementao para multi-tenancy Identificar formas de gerenciar a variabilidade entre os tenants Aplicar os conceitos na indstria de software

13

14

Metodologia

15

Fase 1 Entendimento do cenrio

16

17

Fase 1
Leitura ad-hoc de artigos e sites sobre:
Cloud Computing SaaS Multi-tenancy

Entendimento dos principais conceitos relacionados a multi-tenancy

18

Fase 1 Levantamento de questionamentos na rea

1. Quais as vantagens e desvantagens da adoo? 2. Quando vivel? 3. Existe alguma forma de extender as funcionalidades de um tenant? 4. Como gerenciar a variabilidade entre os tenants? 5. Como verificar se um tenant est consumindo mais recursos do que o esperado?
19

Fase 1 Levantamento de questionamentos na rea

6. Como tratar solicitaes de forma assncrona? 7. Como evitar que um tenant tenha acesso a dados de outro ? 8. Caso um tenant esteja consumindo muitos recursos, como migrar esse tenant para outra mquina ou VM(Virtual Machine)? 9. Quais as propostas existentes para se implementar a arquitetura multi-tenancy?
20

21

Sistematic

22

Fase 2 Estudo de mapeamento

23

Processo de Mapeamento Sistemtico

Fonte: Adaptado de [6]

24

Questes de pesquisa
1. Quais as vantagens e desvantagens de multitenancy?

2. Quais as propostas de implementao existentes?


3. Existe alguma forma de gerenciar a variabilidade em aplicao multi-tenancy? 4. Quando vivel adotar multi-tenancy?

25

Estratgias de pesquisa
Automtica

Trabalhos Encontrados
Manual

26

Estratgias de pesquisa
Fontes para pesquisa automtica:
IEEEXplore Digital Library (httt://ieeexplore.ieee.org/) ACM Digital Library (http://portal.acm.org) Elsevier ScienceDirect (http:// www.sciencedirect.com) EI Compendex (http://www.engineeringvillage2.org) Elsevier Scopus (http://www.scopus.com)

27

Estratgias de pesquisa
Termos para pesquisa automtica

28

Estratgias de pesquisa
Query
(multi-tenancy OR multi-tenant) AND ("Cloud computing"OR iaas OR paas OR saas OR advantages OR disadvantages OR approach OR barrier OR adoption OR viability OR approach OR methods OR techniques OR proposal OR framework OR tenant OR "product lines"OR variability OR variation OR adoption OR viability OR challenges OR problems OR benefits OR loss)

29

Estratgias de pesquisa
Pesquisa Manual
Search Engines(Google, Bing, Yahoo) Pesquisa em principais conferncias
IEEE International Conference on e-Business Engineering (ICEBE) International Conference on Cloud Computing ACM SIGMOD/PODS Conference International Conference on Advanced Communication Technology IEEE International Conference on Data Engineering

30

Resultado das buscas


93 152
IEEE

88

ACM Scopus ScienceDirect EI Compendex

144 148

31

Triagem de Papers
Critrios de excluso
1. Papers duplicados 2. Trabalhos no relacionados arquitetura multitanancy 3. Poster, Panel e Workshop paper 4. Papers que no estejam escritos em ingls 5. Papers que no acessveis na web.

32

Triagem de Papers
Resultados das excluses

Restaram 71 trabalhos

33

Classificao
O resumo, ttulo e palavras-chave de cada estudo so revisados em busca de termos e conceitos que reflitam a contribuio do trabalho Foram definidas 3 facetas

34

Classificao
Contexto de multi-tenancy
Banco de dados Alocao de recursos Customizao Performance Segurana Escalabilidade Migrao de sistemas SOA Monitoramento
35

Classificao
Faceta Contribuio:
Framework Mtodo/tcnica Modelo Ferramenta Proposta de arquitetura

36

Classificao
Faceta Tipo de Pesquisa:
Validation Research Evaluation Research Solution Proposal Philosophical Paper Opinion Paper Experience Paper

37

Classificao
Trabalhos/ Ano de Publicao

38

Classificao

39

Classificao
Trabalhos/Contexto
Virtualizao SOA Segurana Performance Monitoramento Migrao Escalabilidade Customizao Banco de dados Alocao de Recursos 0 2 4 5 6 8 10 12 14 11 2 12 2 3 3 6 7 10

40

Classificao

Trabalhos/Contribuio
Modelo
Mtodo/tecnica Framework Ferramenta Proposta de Arquitetura 0 5 10 10 6 28

4
14 15 20 25 30

41

Classificao
Trabalhos/Tipo de Pesquisa
Validation Research 10

Solution Proposal

45

Philosophical Paper

Opinion Paper

Evaluation Research

Experience Paper

10

15

20

25

30

35

40

45

50

42

Resultados
Trabalhos/Ano/Contexto
12 10 alocacao de recursos banco de dados 8 Publicaes customizacao escalabilidade 6 migracao monitoramento performance 4 segurana SOA 2 virtualizacao

0 2007 2008 2009 2010 2011

43

Resultados

44

Resultados

45

Resultados

46

Resposta Q1(Vantagens e desvantagens)


Vantagens
nico cdigo fonte para vrias verses da aplicao Atualizao do software de uma s vez para todos os clientes Facilidade de colaborao e integrao entre tenants Economia nos custos com infra-estrutura de hardware Aumento da margem de lucro Reuso de regras de negcio com o mnimo de adaptao Reduo dos custos de venda e manuteno do software Agrupamento de tenants de acordo com a SLA exigida pelo cliente
47

Resposta Q1
Desvantagens
difcil calcular os recursos requeridos para cada novo tenant e ao mesmo tempo garantir que as restries de todos os outros tenants sejam atendidas Dificuldade de comparar e otimizar a reduo de custos das diferentes formas de distribuio dos tenants entre os servidores, pelo fato de existirem vrias variveis envolvidas Preocupao das empresas com o custo inicial de reestruturas suas aplicaes legadas para multi-tenancy Preocupao dos mantenedores de software com a possibilidade de multi-tenancy introduzir problemas adicionais de manuteno decorrentes do fato desses novos sistemas serem altamente customizveis

48

Resposta Q2(Propostas para implementao)

Foram encontratos frameworks que tratam de:


Isolamento de segurana Isolamento de performance Isolamento de disponibilidade Isolamento de administrao Customizao Alocao de recursos Garantia de SLA

49

Resposta Q2
Foram encontratos ferramentas que tratam de:
Auxlio a compartilhamento de recursos Identificao de tenants maliciosos Proposta de SGBD multi-tenancy(M-Store) Garantia de SLA(SmartSLA)

50

Resposta Q2
Foram encontrados 27 mtodos ou tcnicas que abordam os mais variados contextos relacionados a aplicaes multi-tenancy
Alocao de Recursos Bancos de dados Customizao Monitoramento Melhoria de Performance Segurana SOA Virtualizao
51

Resposta Q2
Modelos
Customizao entre tenants Predio de violaes nos tempos de resposta esperados Modelo para predio de consumo de recursos Modelo de indexao de dados Modelo de controle de acesso baseado em ontologias

52

Resposta Q2
Propostas de arquitetura
Force.com SPOSAD(Shared, Polymorphic, Scalable Application and Data) L4 Cache Arquitetura de Sistemas de Autenticao Multitenancy Ao todo foram encontrados 13 propostas de arquitetura

53

Resposta Q3(Variabilidade)
Customizao baseada em metadados Padres de customizao a nivel de banco de dados Tcnicas de mapeamento de esquemas para o banco de dados Utilizao de SCA (Service component architecture) Utilizao de POA(Programao Orientada a Aspectos) Customizao baseada em ontologias Utilizao de tcnicas de SPL para gerenciamento de variabilidade
54

Resposta Q4(Quando vivel)


Quando possvel cumprir os requisitos de SLA exigidos pelos tenants necessrio comparar o custo de gerenciamento da infraestrutura e a reduo do custo com infraestrutura Variabilidades muito complexas entre os tenants podem exigir um investimento muito alto, o que pode inviabilizar a adoo de multi-tenancy.
55

Ameaas a Validade
Questes de pesquisa
A ausncia de algum sinnimo no previsto nas strings de busca

No possvel garantir que todos os estudos relevantes foram encontrados Estudos foram classificados baseado no jungamento do autor. Algum estudo pode ter sido classificado incorretamente.

56

Discusso
Nenhum mapeamento sobre multi-tenancy encontrado Poucas propostas de implementao validadas na indstria Ausncia de sumarizao dos conhecimentos existentes Bancos de dados convencionais no foram desenvolvidos para aplicaes desse tipo.

57

Discusso
Baseado nas evidncias encontradas, a utilizao linguagens dinmicas e metaprogramao podem ser teis na implementao da aplicativos multitenancy Poucos trabalhos exploram a implementao de aplicaes multi-tenancy em ambientes como Amazon AWS, Azure e Google App Engine. Foi encontrado apenas 1 trabalho que trata da implicaes de requisitos multi-tenancy no processo de desenvolvimento.
58

Fase 3 Aplicao dos conceitos Na Indstria


59

Fase 3
Problema:
Desenvolver um aplicativo web no modelo de SaaS No era necessrio implementar requisitos de variabilidade complexos O sistema deveria ser desenvolvido em Grails Equipe pequena(2 desenvolvedores)

Foi decidido adotar o estilo arquitetural multitenancy


60

Grails

61

Requisitos
Implementar CRUDs e Relatrios Cada usurio de uma empresa deve ver apenas dados relacionados sua empresa Implementar mecanismo de gerenciamento de configuraes Implementar ajustes no modelo de dados

62

Arquitetura Escolhida

Fonte:[4]
63

Implementao
Plugin grails que atendia parcialmente arquitetura apresentada anteriormente A parte no atendida pelo plugin teve que ser desenvolvida Implementao usando anotaes e metaprogramao Separao entre requisitos multi-tenancy e requisitos da aplicao Implementao de multi-tenancy como interesse transversal
64

Acesso a Dados
package br.com.rise.alexandria import grails.plugin.multitenant.core.groovy.compiler.MultiTenant @MultiTenant class Product { String name String description static hasMany = [ features : Feature ]

Product(){ features = new HashSet() } //mtodos


}

65

Customizao

66

Autenticao

67

Resultado da implementao
As funcionalidades bsicas de multi-tenancy (autenticao, customizao e armazenamento)foram implementadas com sucesso Uso metaprogramao para implementar multi-tenancy como interesse transversal Abordagem de plugins do grails permite um alto grau de reuso entre aplicaes.

68

Contribuies
Sumarizao de conceitos sobre multi-tenancy Criao de um catlogo de artefatos que podem auxiliar na implementao de uma aplicao multi-tenancy Validao dos conceitos encontrados atravs de experincia prtica na indstria

69

Concluso
Multi-tenancy uma abordagem nova e ainda possui muitas lacunas abertas para pesquisa Empresas como IBM, Microsoft e Google tem investido nesse tpico, o que refora a relevncia do tema Em geral, a adoo de multi-tenancy traz mais benefcios que perdas Embora esse trabalho tenha realizado uma sumarizao de conhecimentos sobre o tema, ainda no o suficiente
70

Trabalhos futuros
Executar experimentos com o objetivo de comparar as propostas de implementao encontradas Definir um processos com diretivas para implementao de uma aplicao multitenancy Propor multi-tenancy a nvel de plataforma Propor uma implementao de referncia que utilize as melhores prticas de implementao
71

Trabalhos Publicados
Minicurso: Desenvolvendo aplicaes multitenancy para computao em nuvem. ERCEMAPI 2011 Minicurso: Software as a Service: Desenvolvendo Aplicaes Multi-tenancy com Alto Grau de Reuso. WebMedia 2012(no prelo) Artigo: Uma Abordagem para Desenvolvimento de SaaS Multi-Tenancy Utilizando Metaprogramao. WebMedia 2012(submetido)

72

Referncias
[1] A. Rosenberg, Facebook socially networks roughly 10 percent of Earth's population, Digital Trends, 26 06 2011. [Online]. Available: http://www.digitaltrends.com/computing/facebook-socially-networks-roughly-10-percentof-earths-population/. [Acesso em 11 02 2011]. [2] ANDERSON, C. A Cauda Longa: do mercado de massa para o mercado de nicho. Traduo Afonso Celso da Cunha Serra. Rio de Janeiro, Elsevier, 2006. 2 reimpresso. [3] NIST Definition of Cloud Computing v15 Acessado em 26/02/2010. h ttp://csrc.nist.gov/groups/SNS/cloud-computing/ [4] Bezemer, C.-P. and Zaidman, A. (2010). Multi-tenant saas applications: maintenance dream or nightmare? In Proceedings of the Joint ERCIM Workshop on Software Evolution (EVOL) and International Workshop on Principles of Software Evolution (IWPSE), IWPSE-EVOL 10, pages 8892, New York, NY, USA. ACM. [5] Barbara A. Kitchenham, Tore Dyba, and Magne Jorgensen. 2004. Evidence-Based Software Engineering. In Proceedings of the 26th International Conference on Software Engineering (ICSE '04). IEEE Computer Society, Washington, DC, USA, 273-281. [6] Petersen, K., Feldt, R., Mujtaba, S., & Mattsson, M. (2007). Systematic Mapping Studies in Software Engineering. 12th International Conference on Evaluation and Assessment in Software Engineering, 17(1), 1-10.

73

Referncias
[7] Chong, F. and Carraro, G. (2006). Architecture strategies for catching the long tail. [8] Petersen, K., Feldt, R., Mujtaba, S., and Mattsson, M. (2008). Systematic Mapping Studies in Software engineering. In EASE 08: Proceedings of the 12th International Conference on Evaluation and Assessment in Software Engineering. [9] Wieringa, R., Maiden, N., Mead, N., and Rolland, C. (2005). Requirements engineering paper classification and evaluation criteria: a proposal and a discussion. Requir. Eng., 11, 102107.

74

Muito Obrigado!!!

Perguntar vocs vo????


75