Bitbucket vs Git
Faaaaaaaaaaaaaaala galerinha!
Graças a grande contribuição
dos senhores na iniciativa vingadores (boa aceitação de meu primeiro post),
tive a oportunidade de continuar escrevendo, afinal, se não existirem
interessados este trabalho de super hero não serve de muita coisa (é tipo o
hulk no ultimato xD).
Bem, dessa vez, estou
aqui com o intuito de comparar dois grandes integrantes do universo ”canônico”
do desenvolvimento de software, esta será feita sem opinar é claro (mesmo que
eu prefira o gitHub :D). Estes caras são tipo a Marvel e a DC jovens geeks,
cada um com seus poderes porém, no seu universo compartilhado. Vamos lá começar
essa bagaça!
Obs: Ficou um pouco grande, então, peço que, mesmo
que não leiam até o fim, pelo menos marquem a estrelinha da alegria, pois caso
contrário, como sempre digo, espero que o estalo do Thanos acerte
aleatoriamente vocês J
Este post vai ser separado em dois grandes arcos:
- O primeiro arco será direcionado aos desenvolvedores que apenas
usam e não pagam (Estilo a batalha de Nova York / Marvel, ou a grana do Batman
/ DC) :D
- O segundo arco, será estilo a Guerra Civil / Marvel ou as
Indústrias Queen, focado em política e Dinelo,
muito Dinelo! Onde será feita a
comparação dos benefícios pelo seu custo (essa é a parte que doí e muita gente
esquece)...
Neste post,
analisaremos as diferenças entre o
GitHub e o Bitbucket ,
dois serviços de hospedagem de controle de versão baseados na Web e muito
populares.
Independentemente de você escolher o BitBucket, o
GitHub ou um repositório auto-hospedado, conectar
um repositório ao DeployBot é muito simples. (Psst
... Se você já é um usuário do Bitbucket, este Guia de Implementação do Bitbucket vai ajudar.)
Arco 1: Bitbucket vs GitHub
O Bitbucket e
o GitHub oferecem uma
série de recursos que agradarão a todos, desde o desenvolvedor individual,
pequenas equipes e até os clientes corporativos.
A hospedagem de repositórios Git e Mercurial (lembram-se dele nas pós-créditos do ultimo post né?) está disponível com o Bitbucket. As solicitações pull facilitam a revisão do
código, enquanto as discussões inline simplificam o compartilhamento de
conhecimento entre sua equipe. As permissões de filial permitem controlar
quem pode escrever ou mesclar em ramificações específicas. Então, apenas
as pessoas certas podem fazer as mudanças certas. E quando algo em seu
repositório Bitbucket muda, as views diff ajudam você a
entender melhor o que está acontecendo.
Bitbucket suporta armazenamento de arquivos grandes
Git (LFS), o que significa menor tempo de clone e busca para aqueles que
trabalham com arquivos grandes.
Os repositórios do Bitbucket podem ser organizados
em projetos, ajudando a equipe a se concentrar em um resultado específico. Além
disso, as integrações de terceiros permitem integrar o Bitbucket em várias
facetas do seu fluxo de trabalho existente, tornando o processo de
desenvolvimento completo muito mais eficiente. Versões em nuvem do
Bitbucket oferecem entrega contínua integrada, rastreamento de problemas e
wikis. O software integra-se facilmente ao Bamboo e ao Confluence, além do
próprio Jira Software Cloud da Atlassian, para personalização e configuração
adicionais da instalação. E para aqueles que usam o Trello para gerenciar
tarefas do projeto em uma equipe, o Bitbucket oferece placas através de uma
integração do Trello.
Como o Bitbucket, o GitHub oferece uma ampla
variedade de recursos. As solicitações permitem que você conduza revisões,
atribua tarefas e discuta ideias. Assim como no Bitbucket, os diffs do
GitHub permitem comparar versões do código-fonte para que você possa ver as
mudanças em seu repositório. Comentários e conversas ocorrem em seu código,
ajudando a fornecer um feedback claro, como eu sempre costumo dizer “comente bem! Não faz mal escrever um pouco
e ajudar um pobre coitado que vai pegar seu código depois”.
As permissões restringem quem pode enviar para uma
ramificação específica e os repositórios podem ser configurados para exigir
revisões de solicitações pull e verificações de status, ajudando a reduzir os
erros.
O GitHub
também oferece um conjunto de itens integrados de gerenciamento de projetos,
incluindo cartões, notas, tarefas, marcos e atribuições (Isso ia ajudar um
amigo meu no controle e gerenciamento. Vou chamar apenas chamar de ROD pra não
ter que pagar royalties. Afinal, como ele sempre diz “EU SOU O CORNO DA
HISTÓRIA”). É ROD! Isso ajuda a coordenar a equipe e manter todos no
caminho certo. Se você precisar de algo especial, você sempre pode usar um
dos vários complementos de terceiros do GitHub.
Com uma comunidade
de mais de 20 milhões de usuários ,
os usuários do GitHub descobrirão que há uma enorme
quantidade de suporte à comunidade disponível. Além disso, o GitHub é
especialmente popular para projetos de código aberto, e a plataforma possui
repositórios de tendências e exibe tópicos populares - portanto, se você quiser
criar algo específico, provavelmente encontrará um repositório que pode ser
combinado e personalizado sem precisar pesquisar muito.
Arco 2: Cash GitHub vs. Cash Bitbucket
Agora vamos falar daquilo que o brasileiro mais
sabe fazer que é “pagar”.
A comparação direta de preços entre o Bitbucket e o GitHub é difícil devido à
complexidade das ofertas entre as duas organizações. Então, vamos começar
com a versão gratuita oferecida pelo Bitbucket e pelo GitHub - e as diferenças
entre a oferta gratuita de cada empresa, afinal não custa nada usar um Free.
Plano Individual “Di Grátis” // Bitbucket & GitHub
O plano gratuito oferecido pelo Bitbucket e GitHub
é destinado a desenvolvedores individuais e equipes pequenas. Ao comparar
o plano gratuito oferecido pelo Bitbucket ou pelo GitHub, fica claro que há um trade-off a ser feito entre o número de
usuários versus o número de repositórios privados.
O Bitbucket oferece repositórios privados e
públicos ilimitados, mas limita o número de usuários em seu plano gratuito a cinco. O GitHub oferece usuários
ilimitados e repositórios públicos, mas não fornece repositórios privados em
seu plano gratuito. Isso é algo que você precisa considerar se você é um
programador novato que tem vergonha de compartilhar código ou está trabalhando
em um projeto secreto que gostaria de manter em sigilo (famoso pano preto J).
Embora o GitHub ofereça um número ilimitado de
colaboradores em seu plano gratuito, as permissões de equipe e usuário não
estão disponíveis. Isso coloca alguns desafios ao trabalhar com uma equipe
em que você deseja controlar melhor o acesso.
Plano de desenvolvimento do GitHub //
GitHub
O GitHub oferece um plano de desenvolvimento de US
$ 7 / mês que inclui uma conta pessoal, repositórios públicos e privados
ilimitados e colaboradores ilimitados. Para os desenvolvedores solos
interessados no GitHub, que precisam de depositários privados, essa é uma opção viável.
Plano de equipe // Bitbucket &
GitHub
Tanto o GitHub quanto o Bitbucket oferecem planos
de equipe.
Como no plano gratuito, os planos pagos da
Bitbucket oferecem repositórios privados ilimitados. Mas eles têm dois
tipos de planos de equipe (Standard e Premium) que diferem nos recursos
oferecidos.
O Bitbucket Standard (para equipes em crescimento) começa em US $
10 / mês para 5 usuários, mais US $ 2 / mês para cada usuário adicional. O
Bitbucket Premium (para grandes equipes) começa em US $ 25 / mês para 5
usuários, mais US $ 5 / mês para cada usuário adicional.
O Bitbucket Premium inclui mais minutos de construção para
pipelines Bitbucket, maior armazenamento de arquivos grandes Git, além de recursos
adicionais, como verificações de mesclagem necessárias, lista de permissões de
IP, verificação em duas etapas e espelhamento inteligente.
O GitHub tem um plano de equipe que começa em US $
25 por mês para cinco usuários, mais US $ 9 por mês para cada usuário
adicional. Este plano pago fornece uma conta da organização com
repositórios públicos e privados ilimitados com permissões de equipe e usuário.
Plano Empresarial / Corporativo //
Bitbucket & GitHub
Bitbucket Server e Data Center são os dois planos
empresariais oferecidos pela empresa-mãe, a Atlassian. Como o nome do
plano implica, o plano do servidor é hospedado no próprio servidor da empresa e
requer um pagamento único (US $ 2.000 para 25 usuários). Este plano inclui
uma licença perpétua e um ano de manutenção gratuita.
O plano do Data Center está disponível por US $
1.800 por ano para 25 usuários e é hospedado pelo data center Bitbucket. Ele
oferece clustering avançado ativo para alta disponibilidade, espelhamento
inteligente para desempenho em várias regiões e recuperação de desastre
suportada pela Atlassian.
O GitHub oferece dois planos de negócios, Business
on GitHub.com e GitHub Enterprise, a partir de US $ 21 / mês por usuário. Um
está hospedado no GitHub.com, enquanto o outro está hospedado em seus
servidores, AWS, Azure ou GCP. No caso do GitHub Enterprise, o
licenciamento está disponível em blocos de 10 usuários cobrados anualmente. Ambos
os planos oferecem níveis crescentes de suporte em comparação com outros planos
do GitHub.
E o vencedor é...
“Só espero que não me processem por direitos
autorais dessa imagem... ”J
... aquele que você escolher J. Sabe a frase do Tio
Bem? “Grandes poderes vem grandes responsabilidades” ? Então, com este mega
post, mother of god, você possui todo o poder de um Jedi
e a força necessária para decidir o que é melhor para a sua situação atual (projetista e
financeira claro).
Ambas as opções são fáceis de usar, oferecem um produto de qualidade por um
preço razoável e têm uma reputação merecida no mundo dos desenvolvedores. No
entanto, como dito anteriormente, se você precisar ou quiser manter seu
repositório privado, você precisará usar o BitBucket ou pagar uma pequena taxa
para uma conta atualizada do GitHub. Caso contrário, ambos oferecem os
recursos necessários em um serviço de hospedagem de controle de versão e o
fazem muito bem.
É claro que nenhuma comparação entre o DeployBot
Bitbucket e o Github seria completa sem mencionar que facilitamos a conexão do
DeployBot a qualquer repositório, onde quer que ele esteja hospedado, para
implementações de código mais rápidas e mais suaves. É o que fazemos.
Do ponto de vista
de um desenvolvedor, ambas as ferramentas permitem que você execute ações
comuns que são exigidas pela maioria das equipes de desenvolvimento atualmente,
estas incluem:
- Puxar pedido
- Revisão de código
- Edição inline
- Acompanhamento de problemas
- Suporte para Markdown
- Autenticação de dois fatores
- Gerenciamento Avançado de
Permissão
- Páginas da Web estáticas
hospedadas
- API rica em recursos
- Repositórios de garfo / clone
- Trechos
- Integrações de terceiros
Fim....”aguarde a
cena pós créditos”
Ainda
tem dúvida? Oukey Oukey, abaixo vou ser mais direto em cada um dos ditos cujos:
Bitbucket
Da suíte
Atlassian , o Bitbucket vem como um sistema de controle de versão
distribuído baseado no Git.Muito conhecida por sua integração total com outros
produtos da família Atlassian, como Jira, Fisheye e Bamboo. A vantagem que a
Bitbucket tem sobre seus concorrentes é que a Bitbucket oferece um número
ilimitado de repositórios privados.
Para elaborar
mais sobre os recursos que o Bitbucket tem a oferecer:
- Suporta
Mercurial e Git
- Integração
direta com Bambu, Jira, Crucible e Jenkins
- Suporta
autenticação externa com o Github, Facebook, Twitter e Google
- Pode
importar repos facilmente a partir do Git, Codeplex, Google Code, HG,
SourceForge e SVN.
- Tem
comparação de ramificação e histórico de confirmação
- Tem um
cliente Mac e Windows chamado SourceTree e
um aplicativo Android chamado BitBeaker
- Lançamento
com o Jira Software e o Bitbucket, que são perfeitamente integrados da
filial à implantação. Crie
ramificações Bitbucket de dentro do Software Jira ou problemas de
transição sem sair do Bitbucket.
- Os
pipelines são construídos dentro do Bitbucket Cloud, dando a você
visibilidade de ponta a ponta, desde a codificação até a implantação.
Uma desvantagem,
no entanto, é que ele não inclui suporte para SVN, mas isso pode ser facilmente
corrigido ao migrar os repositórios SVN para o Git com ferramentas como o SVN
Mirror para Bitbucket.
Servidor Bitbucket (tipicamente Azure ou AWS)
Se você deseja
mover de uma implantação de servidor único para um cluster ativo-ativo
altamente disponível com o Bitbucket Data Center. Se você decidir instalar seu próprio servidor Bitbucket, terá
duas opções de escolha:
Servidor
·
Hospedagem de código baseada em Git
e colaboração para equipes
·
Uma implantação de servidor único
·
Licença perpétua + ano livre de
manutenção
Centro de dados
·
Hospedagem de código baseada em Git
e colaboração para equipes
·
Clustering ativo-ativo para alta
disponibilidade
·
Espelhamento inteligente para
desempenho em diferentes regiões
·
Licença de prazo anual + manutenção
Passando para a segunda ferramenta dentro da minha comparação:
GitHub.
GitHub
Entre as características gerais do GitHub, há algumas características
que realmente se destacam:
- Páginas do GitHub e GitHub Gists
- Suporta clientes SVN
- Suporta GIT
- Integração direta com: Zendesk,
Cloudbees, Travis, AWS, Codeclimate, Azure, Google Cloud e Heroku
- Pode facilmente importar repos do
Git, SVN, TFS e HG
A desvantagem de usar o GitHub é que você tem que pagar por ter
um repositório privado, algo que vem de graça com todos os planos do Bitbucket.
Github.com (hospedado pelo Github)
O GitHub é
uma plataforma de desenvolvimento muito conhecida, com mais de um milhão de
equipes formando sua comunidade. Do código - fonte
aberto aos negócios , você pode hospedar e analisar códigos,
gerenciar projetos e construir softwares ao lado de milhões de outros
desenvolvedores.
Como você
provavelmente sabe, é grátis, MAS, apesar desse plano gratuito permitir que você crie um número
ilimitado de repositórios públicos, ele não permite que você tenha repositórios
privados. Para isso, você precisa atualizar
seu plano gratuito para um dos seguintes planos de assinatura:
GitHub Enterprise (normalmente, o
Azure ou o AWS)
O GitHub Enterprise é a versão local do GitHub.com .
Todos os dados do
repositório são armazenados em máquinas que você controla e o acesso é
integrado ao sistema de autenticação da sua organização (LDAP, SAML ou CAS).
O GitHub
Enterprise é fornecido como um dispositivo virtual, isso inclui todo o software
necessário para ser instalado e executado. O
único software adicional necessário é um ambiente de máquina virtual
compatível.
Os seguintes requisitos
mínimos de hardware são sugeridos para implantações de produção:
·
Processador: Dois núcleos de CPU de
3,0 GHz (ou equivalente virtual)
·
Memória: 14-16 GB (mínimo dependente
da plataforma selecionada)
·
Disco: partição raiz da VM de 80 GB
·
Partição de dados de 100 GB (nossa
recomendação, o tamanho real depende dos seus dados)
·
Armazenamento: SAN de alto
desempenho ou armazenamento conectado localmente
Para projetos de
hospedagem, como o GitHub Enterprise é uma instância privada, ele é projetado
apenas para colaboração interna, portanto, projetos públicos
não são permitidos nele.
O GitHub Enterprise
não está seguindo o modelo tradicional de pagamento por usuário por mês como GitHub.com ,
ele é licenciado sob um modelo de assinatura anual em que os assentos são
adquiridos por um período de um ano, isso inclui suporte completo e acesso a
todas as atualizações e upgrades.
Isso inclui, como
comentamos antes:
- Múltiplas
organizações
- SAML,
LDAP e CAS
- Provisionamento
de acesso
- Suporte
24/7 para problemas urgentes
- Auditoria
Avançada
- Hospede
em seus servidores, AWS, Azure ou GCP
Mas, novamente,
os assentos são vendidos em pacotes de 10 usuários e faturados anualmente.
Mais informações
aqui: https://enterprise.github.com/features#pricing .
Integração Com Jira
Apesar do
Bitbucket ser um produto da Atlassian, ambas as ferramentas têm total
integração com o Jira.Quando os desenvolvedores criam uma ramificação, criam
uma solicitação pull, um código de commit, etc, tudo é refletido nos seus
tickets Jira.
Mas não apenas
isso, usando o plug-in DVCS no Jira ,
você poderá alterar algumas propriedades em seus tickets apenas adicionando o
comentário correto em sua operação de repositório, outras capacidades incluem:
- Comente
sobre questões
- Registrar
informações de rastreamento de tempo em relação a problemas
- Transição
de problemas para qualquer status (por exemplo, 'Resolvido') definido no
fluxo de trabalho do projeto JIRA Software.
- Adicionar
rótulos
Em termos de
quantidade de integrações, o Atlassian Marketplace expulsa o GitHub da água. Unificar suas extensões no Atlassian significa implementação
mais fácil e fluxos de trabalho mais coerentes, para que você não tenha que
fazer malabarismos entre vários provedores de aplicativos. A compatibilidade integrada permitirá que os desenvolvedores
utilizem mais ferramentas com mais facilidade e codifiquem um produto melhor.
Integração Com Jenkins
Uma coisa a ser
levada muito a sério é como o seu Version Control System se integra com outras
ferramentas que fazem parte do pipeline de CI / CD. Entre os servidores de automação de CI / CD mais populares,
temos o Jenkins, que é usado extensivamente por muitas equipes de
desenvolvedores para criar, testar e implantar soluções de maneira
automatizada.
As pessoas podem
ver que o Jenkins é uma ferramenta de código aberto, pois tem centenas de
plugins e personalizações e é muito fácil de integrar com qualquer VCS. No entanto, o mesmo não pode ser dito sobre a integração com
o Github ou o Bitbucket do que com o TFVC ou o Perforce. A integração pode ser bastante direta ou um verdadeiro
pesadelo.
Ambos, Github e
Bitbucket, têm a integração clássica com o Jenkins, como trigger em commit ou
pull request.
O Jenkins, ele
próprio localizado no GitHub, possui vários plugins para integração no GitHub. Os principais caminhos para integrar sua instância do Jenkins
com o GitHub são:
- “Integração
de builds” - usando o GitHub para acionar construções
- “Integração
de autenticação” - usando o GitHub como fonte de informações de
autenticação para proteger uma instância do Jenkins.
Para o Bitbucket,
é um pouco mais desajeitado, mas também pode ser feito. Existe um artigo interessante de Tomas Bjerre sobre como
fazer isso.
Atlassian também
tem um plugin pago para Jenkins que
não é muito caro e pode ser feito de forma mais eficiente.
Para migrar do
GIT para o GitHub ou Bitbucket, ambos seguem procedimentos semelhantes e são
diretos, sem soluções alternativas necessárias.
Bem senhores,
chegamos ao final de mais um post e, espero realmente que tenha sido útil. Como
dito no início, estes dois grandes heróis da atualidade possuem pontos
positivos e negativos que variam dentre as necessidades. Este serve para
definir um norte e não como imposição (afinal de preferir o GitHub). Então boa
escolha, bons códigos, bons projetos e até a próxima, nesta mesma hora e neste
mesmo canal. Espero que tenham gostado e, um abraço do amigo da vizinhança de
sempre Bruno Rafael.
Comentários
Postar um comentário