O
pai ta on!!
Em
nosso último artigo falamos sobre o histórico do versionamento, passando pela
criação do git, e as aplicações que existem para ele.
Nesse
post vamos nos aprofundar um pouco em onde armazenar esses códigos, além
de trazer uma breve comparação das estruturas atuais.
De
fato, existem diversas opções para de sistemas de controle de versão descentralizados,
como o Mercurial, o Bazaar e o próprio Git. A grande maioria deles possuem
também um sistema de repositórios, e aqui vamos comparar três desses
repositórios.
Github
Lançado
em 2008, teve como seu principal objetivo servir como repositório para o GIT. Conforme
a evolução e as necessidades surgiram o GitHub deixou de ser apenas um repositório
para se transformar em uma rede social, onde existem trocas de informações,
contribuições e sobretudo atualizações de features em projetos famosos. Foi
comprada pela Microsoft em 2018 (o que na época era uma das 20 maiores
aquisições do mundo). Atualmente é o maior repositório GIT do mundo, com
aproximadamente 36 milhões de usuários.
Gitlab
Lançado
3 anos após o GitHub, escrito na mesma linguagem (Ruby) e com o objetivo
primário igual (ser um repositório de códigos), contudo o GitLab possui uma
grande vantagem em relação ao seu irmão mais velho: é desenvolvido e
distribuído pela comunidade de forma gratuita.
CodeCommit
Para concluir temos o
CodeCommit, que é o repositório de códigos da AWS, lançado em 2015 para
integração (e inicio) de toda a suite de serviços e soluções de CI/CD da
gigante de nuvem.
O serviço é 100% gerenciado,
de forma que você não se preocupa com a infraestrutura, e possui integração com
diversos serviços da AWS, além de ser 100% compativel com o GIT em si.
Comparação
Todos os repositórios vão lhe
atender na necessidade primária (armazenar códigos), contudo eles possuem
diferenças entre si, nessa comparação levo em consideração a utilização privada
dos softwares, não a pública.
No que tange requerimentos de
hardware o CodeCommit sai na frente, pois se trata de uma estrutura 100%
gerenciada, de forma que não precisamos nos preocupar com isso. O GitLab, tem
requerimentos menores que o GitHub para atender até 500 usuários, então caso a
opção for trabalhar em IaaS, ele acaba sendo uma opção melhor.
No quesito configuração novamente
o CodeCommit acaba se saindo melhor justamente por ser gerenciado, com pouco
mais de 3min já se tem um repositório, ao passo que tanto GitLab quanto GitHub
é necessário realizar algumas configurações de parâmetros para se conseguir
chegar no mesmo ponto, com uma vantagem para o GitHub que possui uma interface
mais amigável.
Entrando na área de CI/CD,
o GitLab leva vantagem disparado, uma vez que ele é por si só também uma
ferramenta de integração e entrega, sendo capaz de execução em Docker e
Kubernetes, tanto o Github quanto o CodeCommit dependem de outras soluções para
fazer a mesma coisa, e justamente por isso ele também tem características como
o scan de containers, o que o GitHub não possui, e o CodeCommit depende do ECR
para fazer.
Por fim em questão de integração,
temos uma boa briga entre GitLab e CodeCommit. O primeiro possui uma vasta
quantidade de integrações de forma nativa, e o segundo é 100% integrado com
serviços AWS. Assim (a depender do caso) se sua estrutura de pipeline for AWS utilizar
o CodeCommit é uma opção mais interessante, se você procura algo mais Cloud
Native, o gitLab poderá te ajudar melhor.
That’s all folks!
Be Happy!!!
thiago.marques@darede.com.br
Technical Account Manager da Darede, formato em Rede de Computadores, e pós graduado em Segurança da Informação. Possui ampla experiência em Datacenters e Service Providers, além de ser um entusiasta em DevOps e mercado financeiro.