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

1.323 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.323
No SlideShare
0
A partir de incorporações
0
Número de incorporações
30
Ações
Compartilhamentos
0
Downloads
10
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

×