MulT: Uma biblioteca Multi-Tenant para

o framework Flask

Bruno Resende Pinheiro - brp
Introdução
Computação em Nuvem: Solução para baratear e facilitar
manutenção de infraestrutura.

Tipos de serviço:
● SaaS
● PaaS
● IaaS
Software-as-a-Service

“Software implantado como um serviço
hospedado e acessado pela Internet.”

(Fred Chong and Gianpaolo Carraro. Architecture strategies for catching the long
tail. MSDN Library, Microsoft Corporation, pages 9–10, 2006.)
Software-as-a-Service
Níveis de maturidade:
● Nível 1 - Personalizado
● Nível 2 - Configurável
● Nível 3 - Configurável e eficiente para múltiplos inquilinos
● Nível 4 - Escalonável, configurável e eficiente para
múltiplos inquilinos

(Fred Chong and Gianpaolo Carraro. Architecture strategies for catching the long
tail. MSDN Library, Microsoft Corporation, pages 9–10, 2006.)
Multi-Tenancy
Aspectos chave:
● Compartilhamento de recursos
● Customização
● Compartilhamento de banco de dados e aplicação

(Cor-Paul Bezemer and Andy Zaidman. 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), pages 88–92. ACM, 2010.)
Flask
Micro-framework opensource, para o
desenvolvimento de aplicações Web, escrito em
Python por Armin Ronacher.
Flask
Ferramentas escolhidas para utilizar no MulT:
● SQLAlchemy
● WTForms
● Jinja 2
● Werkzeug
Trabalhos Correlatos
Exemplos de trabalhos correlatos:
● App Dispatching
● Blueprints
● SQLAlchemy
● Django Multi-Tenant
● Grails Multi-Tenant
MulT
Modelo conceitual simplificado
MulT
Managers para auxiliarem o desenvolvedor na busca
MulT
Acesso ao tenant através do subdomínio
MulT
Recuperação de informações do tenant e subdomínio através
do request
MulT
Recuperação de informação através do context, como tenant,
subdomínio e tema
Conclusão

Benesses oriundas desse trabalho:
● Melhoria no aproveitamento dos recursos
● Avanço na manutenção da aplicação
Trabalhos futuros
● Implementar biblioteca em outros
frameworks, como Rails
● Disponibilizar nesta ou em outras bibliotecas
arquiteturas irmãs
● Adicionar mais ferramentas de
personalização
● Medir empiricamente a relevância desta
biblioteca
MulT: Uma biblioteca Multi-Tenant para
o framework Flask

Bruno Resende Pinheiro - brp