Bem-vindo ao meu blog!

Estou iniciando este projeto como uma forma de revisitar alguns conceitos importantes, estudar um pouco e compartilhar parte do conhecimento que acumulei em minha trajetória até agora!

Nesta primeira fase de estudos, gostaria de revisitar os conceitos empregados nos estudos sobre os 12 fatores para o desenvolvimento de aplicações modernas, inspirados pelos livros do lendário Martin Fowler.

Este estudo foi coordenado pelos desenvolvedores da Heroku, uma plataforma focada em fornecer aplicações do tipo SaaS (Software como Serviço).

Então, vamos conhecer o primeiro fator:

Base de Código

Toda aplicação deve possuir um sistema ativo de controle de versão, algumas opções são Git, Mercurial ou Subversion.

Uma cópia desse banco de dados é conhecida como repositório de código, repositório ou apenas o simpático repo.

Aqui é onde armazenaremos o código para a nossa aplicação, e esta base de código sempre tem uma relação de 1:1 com a aplicação, ou seja, cada aplicação possui sua própria base de código.

Esta base de código pode ser compartilhada com outra aplicação, mas como parte de sua própria base de código. Quando essa situação ocorre, temos uma aplicação distribuída e não uma aplicação. Uma aplicação distribuída é uma composição de várias aplicações altamente vinculadas.

Para que uma aplicação distribuída seja adequada ao modelo de 12 fatores, seria necessário dividir essa aplicação em bibliotecas e, assim, criar a dependência correta entre a aplicação e os pacotes apropriados.

No entanto, isso não significa que não possamos ter vários ambientes executando o mesmo código, na verdade, esta é uma das vantagens dos 12 fatores. Podemos criar nossos próprios ambientes para desenvolvimento, teste, staging e produção.

Cada ambiente pode executar uma versão deste repositório, e cada ambiente tem sua própria finalidade, para o desenvolvedor um ambiente para fazer mudanças, um ambiente para testar e verificar com dados semelhantes à produção e o ambiente de produção, que é a versão ideal para o cliente, livre de bugs e totalmente funcional.

Chamamos a distribuição do repositório para os ambientes de deploy ou apenas deployment.

Esta imagem ilustra bem esses ambientes:

codebase-deploys

Resumindo a imagem, podemos ter a mesma aplicação em diferentes versões, cada uma com uma razão para existir.

Quando se trata de ferramentas de versionamento, Git é amplamente utilizado, tornando-se quase um padrão na maioria das empresas. Não só isso, mas Git foi desenvolvido por Linus Torvalds, o mesmo criador do kernel Linux. 😁

Ao pesquisar no Google Trends, podemos ver sua popularidade:

Em um post futuro, podemos falar mais sobre esta ferramenta fantástica. Mas até lá, recomendo a leitura deste material no site do Git.

Até a próxima!