Os 12 fatores
uma metodologia para
criação de projetos SaaS
Quem?
Elton Minetto
Fundador da Coderockr
Graduado/pós-graduado em Ciência da Computação
Desenvolvedor desde 1997
Professor desd...
O que?
Criado pela equipe da
Heroku é uma espécie
de “manifesto” com os
12 fatores que uma
aplicação SaaS deveria
seguir para ter...
I.Codebase
Uma única base de
código, múltiplos
deploys, gerenciado
por controle de
versões
II.Dependencies
Dependências
isoladas do código
Composer (PHP),
Bower (JS), etc
III.Config
Configurações
armazenadas fora do
código.
Variáveis de ambiente,
arquivos distintos para
ambientes distintos
IV.Backing Services
Serviços externos que o
aplicativo consome.
Banco de dados, cache,
podem estar tanto locais
quanto remotos sem
mudanças de...
V.Build, release, run
Três fases bem separadas e
definidas facilita a criação de
scripts e procedimentos a
serem executados em cada
uma delas.
C...
VI.Processes
O aplicativo como um ou
mais processos, que sejam
“stateless” e “share-
nothing”
Diminuir o acoplamento entre
componentes ...
VII.Port binding
Não depender de um servidor externo
para ser executado, poder ser auto-
contido e executar em uma porta
específica que ser...
VIII. Concurrency
Pensar o projeto como
processos que podem
ser executados em
paralelo.
RabbitMQ, Gearman,
etc
IX. Disposability
Processos facilmente
descartáveis, que podem ser
iniciados ou parados a qualquer
momento.
Facilitar este processo, permiti...
X. Dev/prod parity
Ambientes de
desenvolvimento,
homologação e produção
o mais similares possíveis.
Vagrant, Puppet, Docker,
etc
XI. Logs
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 red...
XII. Admin processes
Tarefas administrativas como
limpar caches, carregar
dados, atualizar bases de
dados, devem ser tratadas
de forma automati...
Contato
http://eltonminetto.net
@eminetto
eminetto@coderockr.com
http://asemanaphp.com.br
http://coderockr.com
Próximos SlideShares
Carregando em…5
×

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

1.219 visualizações

Publicada em

O 12factor é uma espécie de “manifesto” criado pela equipe do Heroku com os 12 fatores que uma aplicação deveria seguir para ter sucesso no formato SaaS.

Publicada em: Tecnologia
0 comentários
14 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.219
No SlideShare
0
A partir de incorporações
0
Número de incorporações
29
Ações
Compartilhamentos
0
Downloads
9
Comentários
0
Gostaram
14
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

  1. 1. Os 12 fatores uma metodologia para criação de projetos SaaS
  2. 2. Quem?
  3. 3. Elton Minetto Fundador 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
  4. 4. O que?
  5. 5. Criado pela equipe da Heroku é uma espécie de “manifesto” com os 12 fatores que uma aplicação SaaS deveria seguir para ter sucesso
  6. 6. I.Codebase
  7. 7. Uma única base de código, múltiplos deploys, gerenciado por controle de versões
  8. 8. II.Dependencies
  9. 9. Dependências isoladas do código Composer (PHP), Bower (JS), etc
  10. 10. III.Config
  11. 11. Configurações armazenadas fora do código. Variáveis de ambiente, arquivos distintos para ambientes distintos
  12. 12. IV.Backing Services
  13. 13. Serviços externos que o aplicativo consome. Banco de dados, cache, podem estar tanto locais quanto remotos sem mudanças de código
  14. 14. V.Build, release, run
  15. 15. 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
  16. 16. VI.Processes
  17. 17. O aplicativo como um ou mais processos, que sejam “stateless” e “share- nothing” Diminuir o acoplamento entre componentes do projeto para facilitar a escala
  18. 18. VII.Port binding
  19. 19. 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
  20. 20. VIII. Concurrency
  21. 21. Pensar o projeto como processos que podem ser executados em paralelo. RabbitMQ, Gearman, etc
  22. 22. IX. Disposability
  23. 23. 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
  24. 24. X. Dev/prod parity
  25. 25. Ambientes de desenvolvimento, homologação e produção o mais similares possíveis. Vagrant, Puppet, Docker, etc
  26. 26. XI. Logs
  27. 27. 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
  28. 28. XII. Admin processes
  29. 29. Tarefas administrativas como limpar caches, carregar dados, atualizar bases de dados, devem ser tratadas de forma automatizada
  30. 30. Contato
  31. 31. http://eltonminetto.net @eminetto eminetto@coderockr.com http://asemanaphp.com.br http://coderockr.com

×