Você está na página 1de 68

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

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

Agenda
Contexto Problema Objetivos Fundamentao terica Metodologia

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

Contexto
Crescimento dos usurios de internet Facebook possui 10% da populao mundial [1] Cauda Longa[2] Surgimento de Cloud Computing SaaS Multi-tenancy

Temos que repensar a nossa forma de desenvolver software?

Contexto Cauda Longa

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

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

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

Objetivo Especficos
Apresentar uma viso geral de multi-tenancy, explicando os principais conceitos para entendimento deste trabalho; Realizar um estudo de mapeamento para definir o status atual de maturidade deste princpio de arquitetura Identificar vantagens e desvantagens na adoo de multitenancy Identificar as principais proposta de implementao para multitenancy Identificar formas de gerenciar a variabilidade entre os tenants de uma aplicao multi-tenancy Aplicar os conceitos na indstria de software

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

Fundamentao terica

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

Cloud Computing
Definio:
Cloud computing um modelo que permite o acesso, atravs de rede de computadores, a um conjunto de recursos computacionais configurveis (Ex: rede, servidores, armazenamento, aplicaes e servios) de forma ubqua, conveniente e sob-demanda. Esses recursos podem ser rapidamente provisionados e liberados com um mnimo esforo de gerenciamento ou interao com o provedor de servio.

National Institute of Standards NIST [3]

Cloud Computing

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

10

SaaS
Definio:
Capacidade provida ao consumidor de usar aplicaes do provedor executando-a na infraestrutura de cloud. As aplicaes so acessveis de vrios dispositivos atravs de thin clients como browsers web. O Consumidor no gerencia ou controla a infraestrutura de cloud incluindo rede, servidores, sistemas operacionais, armazenamento ou ainda capacidades individuais da aplicao, com possiveis excees de configuraes da aplicao especficas do usurio.

National Institute of Standards NIST [3]

Multi-tenancy
Definio:
Multi-tenancy uma abordagem organizacional para aplicaes SaaS. Bezemer[4] define multi-tenancy como aplicaes que permitem o compartilhamento dos mesmos recursos de hardware, atravs do compartilhamento da aplicao e da instncia do banco de dados, enquanto permite configurar a aplicao para atender s necessidades do cliente como se estivesse executando em um ambiente dedicado. Tenant uma entidade organizacional que aluga uma aplicao multi-tenancy. Normalmente, um tenant agrupa um nmero de usurios que so os stakeholders da organizao.

Multi-tenancy

Nveis de maturidade de SaaS Multi-Tenancy[7]


Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

13

Engenharia de Software baseada em evidncias

Objetivo:
Fornecer os meios pelos quais as melhores vidncias de pesquisas atuais podem ser integradas experincia prtica e valores humanos no processo decisrio relativo ao desenvolvimento e manuteno de software. [5]

Metodologia

Fase 1 Entendimento do cenrio

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

16

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

Entendimento dos principais conceitos relacionados a multi-tenancy

Fase 1 Levantamento de questionamentos na rea

1. Quais as vantagens e desvantagens da adoo da arquitetura multi-tenancy? 2. Quando a adoo de multi-tenancy vivel? 3. Existe alguma forma de extender as funcionalidades de um tenant especfico? 4. Como gerenciar a variabilidade entre os tenants? 5. Como verificar se um tenant est consumindo mais recursos do que o esperado?
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

18

Fase 1 Levantamento de questionamentos na rea

6. Como tratar solicitaes de forma assncrona? 7. Como isolar os tenants, de forma que um tenant no tenha acesso a dados de outro indevidamente? 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?
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

19

Fase 2 Estudo de mapeamento

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

20

Processo de Mapeamento Sistemtico

Fonte: Adaptado de [6]

Questes de pesquisa
Apartir dos questionamentos levantados na Fase 1 foram selecionados 4 perguntas mais relevantes para serem respondidas:
1. Quais as vantagens e desvantagens de se adotar arquitetura multi-tenancy? 2. Quais as propostas existentes para implementao da arquitetura multi-tenancy? 3. Existe alguma forma de gerenciar a variabilidade entre os tenants de uma aplicao multi-tenancy? 4. Quando a adoo da arquitetura multi-tenancy vivel?
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

22

Estratgias de pesquisa
Automtica

Trabalhos Encontrados
Manual

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

23

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)

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

24

Estratgias de pesquisa
Termos para pesquisa automtica

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

25

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)

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

26

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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

27

Resultado das buscas


98% (625/637) dos estudos foram retornados
23% (144/625) no ScienceDirect 15% (93/625) no IEEE Computer Digital Library 24% (152/625) no El compendex 24% (148/625) no Scopus 14% (88/625) na ACM

2% (12/637) por meio de busca manual

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

28

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.

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

29

Triagem de Papers
Resultados das excluses

Restaram 71 trabalhos

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

30

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

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

31

Classificao
Contexto de multi-tenancy
Banco de dados Alocao de recursos Customizao Performance Segurana Escalabilidade Migrao de sistemas SOA Monitoramento
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

32

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

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

33

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

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

34

Classificao
Trabalhos/ Ano de Publicao

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

35

Classificao

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

36

Classificao
Trabalhos/Contexto
Virtualizao
SOA Segurana

3
6 7

Performance
Monitoramento Migrao 2 3 2

10

Escalabilidade
Customizao Banco de dados Alocao de Recursos 0 2

12 11 5 4 6 8 10 12 14

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

37

Classificao
Trabalhos/Contribuio
Modelo 6

Mtodo/tecnica

28

Framework

10

Ferramenta

Proposta de Arquitetura

14

10

15

20

25

30

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

38

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

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

39

Resultados
Trabalhos/Ano/Contexto
12

10
alocacao de recursos banco de dados 8 customizacao escalabilidade 6 migracao monitoramento performance 4

Publicaes

segurana
SOA

virtualizacao

0 2007 2008 2009 2010 2011

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

40

Resultados

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

41

Resultados

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

42

Resultados

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

43

Resposta Q1(Vantagens e desvantagens)


Vantagens
O provedor de servio pode usar a mesma verso da aplicao(com o nico cdigo base) para prover servios para vrias organizaes Atualizao do software de uma s vez para todos os tenants Facilidade de colaborao e integrao entre tenants Economia nos custos com infra-estrutura de hardware Aumento da margem de lucro Possibilidade de reusar 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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

44

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 da mesma instncia 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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

45

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

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

46

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)

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

47

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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

48

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

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

49

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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

50

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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

51

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.
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

52

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.

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

53

Discusso
No foi encontrado nenhum outro estudo de mapeamento sobre multi-tenancy Existem muitas propostas de implementao, mas poucas delas foram validadas na indstria A entrada de novos desenvolvedores nessa rea dificultada por no haver uma sumarizao dos conhecimentos existentes O armazenamento de dados multi-tenancy um ponto crtico. Bancos de dados convencionais no foram desenvolvidos para aplicaes desse tipo.
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

54

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.
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

55

Fase 3 Aplicao dos conceitos Na Indstria


Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

56

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

Grails

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

58

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

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

59

Arquitetura Escolhida

Fonte:[4]
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

60

Implementao
Foi encontrado um 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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

61

Implementao
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

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

62

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.

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

63

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

Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

64

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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

65

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
Social Machines Research Group The Emerging Web of Social Machines - A brainstorm 2011 Vinicius Cardoso Garcia

66

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.

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.