Sua equipe de Produto quer uma saída prática para a implantação rápida e segura de novos aplicativos? A metodologia/manifesto batizada de “12 Factor Apps” pode ser a solução ideal para a sua empresa. Lançada em 2011 pelos criadores da plataforma de nuvem Heroku, atualmente é tida como o “padrão ouro” para o design e desenvolvimento de software. Como o nome sugere, o 12 Factor Apps trata dos 12 princípios que norteiam o desenvolvimento de uma boa arquitetura de Produto. Interessante notar, contudo, que não se trata de uma receita para projetar um sistema completo, mas antes um conjunto de pré-requisitos para que o lançamento de novos Produtos Digitais possam ter um ótimo início.
Um resumão dos 12 fatores inclui:
- Inclui práticas definidas em torno do controle de versão, configuração de ambiente, dependências isoladas, execução de aplicativos como recursos stateless e muito mais
- Trabalhar com uma combinação de serviços de back-end, como banco de dados, queue, memory cache
- Usar ferramentas modernas para criar aplicativos nativos na nuvem bem estruturados e escaláveis
A arquitetura 12 Factor Apps deve ser:
Implementada em uma plataforma de nuvem
Acoplada ao back-end de forma flexível
Dependências explícitas em um único (pequeno) pacote
Separação de serviços do aplicativo principal (por exemplo, servidor da web)
Os processos 12 Factor Apps devem atingir os seguintes objetivos:
Tudo é automatizado
Tudo é escalável
O código é rastreado em um único lugar
O processo nunca é ignorado
Com base no 12-Factor App manifesto, e seguindo suas diretrizes, os líderes de TI devem ser capazes de:
- Minimizar o tempo de ramp up e o custo de novos desenvolvedores ingressando no mesmo projeto
- Aumentar a portabilidade entre ambientes
- Eliminar a necessidade de administração de servidores e sistemas
- Maximizar a agilidade do processo de implantação contínua
- Reduzir a quantidade de alterações em ferramentas, arquitetura e processos ao escalar
- Reduzir o time to-market de novas inovações ao adotar serviços modernos em nuvem (por exemplo, Inteligência Artificial, Machine Learning, Serverless)
Os benefícios
Assim, a metodologia 12-Factor App ajuda a criar aplicações empresariais que:
- Usam formatos declarativos para automação de configuração. Isso minimiza o tempo e o custo para novos desenvolvedores ingressarem no projeto
- Possuam um contrato limpo com o sistema operacional subjacente, oferecendo portabilidade máxima entre ambientes de execução
- São adequadas para implantação em plataformas de nuvem modernas, eliminando assim a necessidade de administração de servidores e sistemas
- Limitam as diferenças entre o desenvolvimento e a produção, possibilitando a implantação contínua para máxima agilidade
- Podem escalar sem grandes alterações em ferramentas, arquitetura ou práticas de desenvolvimento; o desempenho é uma prioridade
Criando microsserviços com o padrão
12 Factor App na AWS
Em um webinar ocorrido em maio de 2018 (veja video abaixo), Abby Fuller, Developer Relations da AWS, fez uma apresentação sobre como os padrões de design de software tradicionais evoluem no contexto dos containers, e as melhores práticas para construí-los na na nuvem da Amazon. Fuller aprofunda os princípios de Martin Fowler sobre microsserviços, e os mapeia para o padrão 12 Factor App e considerações do mundo real. No final, ele mostra um exemplo de construção e execução de um aplicativo de microsserviços em container usando o AWS Fargate:
AWS reInvent 2019: 12 Factor App
em Aplicações Serverless
Moheeb Zara, Engenheiro full-stack especialista em tecnologia Serverless, fez uma apresentação sobre aplicações criadas com base na metodologia durante o AWS re:Invent 2019. Durante a sessão, ele mostra que, a partir de diretrizes sobre fatores como configuração, deploy, tempo de execução e comunicação de vários serviços, o modelo de doze fatores prescreve práticas que se aplicam a tudo, desde aplicativos web a APIs e aplicações de processamento de dados.
Zara ressalta que, embora a computação sem servidor e o Lambda tenham transformado o desenvolvimento de aplicativos, a metodologia de doze fatores permanece relevante e aplicável em um mundo serverless. Na palestra apresentada por ele no vídeo abaixo, é aplicado o modelo de doze fatores ao desenvolvimento de aplicativos sem servidor com Lambda e Amazon API Gateway, e uma demonstração de como esses serviços permitem criar aplicativos escaláveis, bem construídos e de baixa administração.
Com informações de Srijan.net