os 12 fatores: uma metodologia para criação de projetos saas

31
Os 12 fatores uma metodologia para criação de projetos SaaS

Upload: elton-minetto

Post on 25-Jul-2015

521 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Os 12 fatores: uma metodologia para criação de projetos SaaS

Os 12 fatores uma metodologia para

criação de projetos SaaS

Page 2: Os 12 fatores: uma metodologia para criação de projetos SaaS

Quem?

Page 3: Os 12 fatores: uma metodologia para criação de projetos SaaS

Elton MinettoFundador da Coderockr

Graduado/pós-graduado em Ciência da Computação Desenvolvedor desde 1997

Professor desde 2004 Autor de quatro livros sobre PHP

@eminetto

Page 4: Os 12 fatores: uma metodologia para criação de projetos SaaS

O que?

Page 5: Os 12 fatores: uma metodologia para criação de projetos SaaS

Criado pela equipe da Heroku é uma espécie

de “manifesto” com os 12 fatores que uma

aplicação SaaS deveria seguir para ter sucesso

Page 6: Os 12 fatores: uma metodologia para criação de projetos SaaS

I.Codebase

Page 7: Os 12 fatores: uma metodologia para criação de projetos SaaS

Uma única base de código, múltiplos

deploys, gerenciado por controle de

versões

Page 8: Os 12 fatores: uma metodologia para criação de projetos SaaS

II.Dependencies

Page 9: Os 12 fatores: uma metodologia para criação de projetos SaaS

Dependências isoladas do código Composer (PHP),

Bower (JS), etc

Page 10: Os 12 fatores: uma metodologia para criação de projetos SaaS

III.Config

Page 11: Os 12 fatores: uma metodologia para criação de projetos SaaS

Configurações armazenadas fora do

código. Variáveis de ambiente, arquivos distintos para

ambientes distintos

Page 12: Os 12 fatores: uma metodologia para criação de projetos SaaS

IV.Backing Services

Page 13: Os 12 fatores: uma metodologia para criação de projetos SaaS

Serviços externos que o aplicativo consome.

Banco de dados, cache, podem estar tanto locais

quanto remotos sem mudanças de código

Page 14: Os 12 fatores: uma metodologia para criação de projetos SaaS

V.Build, release, run

Page 15: Os 12 fatores: uma metodologia para criação de projetos SaaS

Três fases bem separadas e definidas facilita a criação de

scripts e procedimentos a serem executados em cada

uma delas. Capistrano, Ant, Deployer,

Grunt, etc

Page 16: Os 12 fatores: uma metodologia para criação de projetos SaaS

VI.Processes

Page 17: Os 12 fatores: uma metodologia para criação de projetos SaaS

O aplicativo como um ou mais processos, que sejam

“stateless” e “share-nothing”

Diminuir o acoplamento entre componentes do projeto

para facilitar a escala

Page 18: Os 12 fatores: uma metodologia para criação de projetos SaaS

VII.Port binding

Page 19: Os 12 fatores: uma metodologia para criação de projetos SaaS

Não depender de um servidor externo para ser executado, poder ser auto-

contido e executar em uma porta específica que seria acessado por

outras partes do projeto. Depender de uma estrutura de

nomes e endereços que podem ser configurados em arquivos de

configuração

Page 20: Os 12 fatores: uma metodologia para criação de projetos SaaS

VIII. Concurrency

Page 21: Os 12 fatores: uma metodologia para criação de projetos SaaS

Pensar o projeto como processos que podem

ser executados em paralelo.

RabbitMQ, Gearman, etc

Page 22: Os 12 fatores: uma metodologia para criação de projetos SaaS

IX. Disposability

Page 23: Os 12 fatores: uma metodologia para criação de projetos SaaS

Processos facilmente descartáveis, que podem ser

iniciados ou parados a qualquer momento.

Facilitar este processo, permitindo início rápido, processo de

finalização simplificado

Page 24: Os 12 fatores: uma metodologia para criação de projetos SaaS

X. Dev/prod parity

Page 25: Os 12 fatores: uma metodologia para criação de projetos SaaS

Ambientes de desenvolvimento,

homologação e produção o mais similares possíveis. Vagrant, Puppet, Docker,

etc

Page 26: Os 12 fatores: uma metodologia para criação de projetos SaaS

XI. Logs

Page 27: Os 12 fatores: uma metodologia para criação de projetos SaaS

O código não deve se preocupar com o formato de armazenamento, enviar as mensagens para a saída

padrão e esta deve ser redirecionada para locais específicos de acordo

com o ambiente onde o projeto está executando.

Monolog, Loggly, etc

Page 28: Os 12 fatores: uma metodologia para criação de projetos SaaS

XII. Admin processes

Page 29: Os 12 fatores: uma metodologia para criação de projetos SaaS

Tarefas administrativas como limpar caches, carregar

dados, atualizar bases de dados, devem ser tratadas

de forma automatizada

Page 30: Os 12 fatores: uma metodologia para criação de projetos SaaS

Contato

Page 31: Os 12 fatores: uma metodologia para criação de projetos SaaS

http://eltonminetto.net @eminetto

[email protected] http://asemanaphp.com.br

http://coderockr.com