Where Bitbucket Wins!


Posted by
Abdulrazaq OMAR

October 19, 2017

Bitbucket is one of the most popular Git/Hg hosting services available on the market. Even though there are a wide range of tools and services which are available, there are areas that Bitbucket clearly wins! I’ll talk about them below in two parts: for enterprise and smaller teams, respectfully.

Bitbucket for the enterprise

Atlassian Bitbucket has the vision to make sure that your code hosting grows with you! They do offer great options for large and enterprise level teams.

High Availability

Bitbucket for large teams is often mission critical, so the great thing about this offer is you have the option of deploying the Data Center version – which ensures you never have down times. Since you will have several nodes running Bitbucket, it dramatically decreases the probability of unplanned outages.

The key areas that high availability with Bitbucket Data Center helps with is Failover options – failover would be almost instant and automatic, so users will not notice that a node had just gone down. This is supported by the Active-Active clustering. This results in an amazing performance and high availability.

Scalability

When dealing with scaling Bitbucket, the most resource consuming process is managing the many Git requests from thousands of users, all at the same time. This is because when users initiate a Git command that must communicate with a repository on Bitbucket, your Git client opens one or more connections to your Bitbucket instance. When this Git command passes the authentication, it will initiate a process on Bitbucket server and will stream the response to the client. As all Git processes are resource intensive, imagine thousands of users doing these commands at the same time – the load it puts on the CPU and memory of the server will be huge.

Now to complicate things further, let’s add CI and operations into the mix, which will be always listening to events on the servers. Evidently, your server will be under constant pressure.

If you have a Bitbucket Server option, your only way out is to throw more money into the machine, and upgrade it or buy a bigger machine. But if you have Bitbucket Data Center, you can scale your setup by simply adding more nodes behind the load balancer, to handle the continuous spikes in requests to your Bitbucket server. You can even go one step further and dedicate nodes to only handle CI integrations, which relieves pressure on other nodes.

Git Large File Storage

This is a technology developed by Atlassian in collaboration with other organizations, such as Github. Git LFS improves handling of large files in your repository without dragging the performance down. This feature is truly a life saver for teams that work with big binary files in their development, and sets Git to be used effectively at enterprise level.

The way it works could be sumarized in few points:

  1. When a developer commits a file to a repository, Git LFS replaces the content with a pointer, and stores the file in a local Git LFS cache.
  2. When a push of commits occurs to the servers, any large files that are referenced by the new commits will be transfered from the local cache to the remote Git LFS file storage that’s linked to your repository.
  3. Similarly, when you try to checkout a commit that has large files, Git LFS system will replace the files from your local Git LFS cache, or if they don’t exist will be downloaded from the remote server Git LFS storage.

The below video from Atlassian explains it in very simple way:

Smart Mirroring

For enterprise teams, having distributed teams across multiple cities, sometimes across continents, all connected to a repository hosted in one geographical location can quickly lead to poor performance. Bitbucket solves this problem by implementing Smart Mirroring, providing locally hosted mirrors of the main repositories thus reducing the Git Clone time and commit time to the main repository, while keeping all instances of the repository in sync.

“When a user clones or fetches from a mirror, the mirror automatically delegates the authentication and authorization of their credentials back to the primary server. So no additional user management is required on mirrors, and all the users, groups, and permissions of the primary Bitbucket instance (whether provided by the built-in user directory and permission system or by your own user directories and/or custom extensions) are always replicated exactly on all mirrors. ” – Atlassian

Rich API

A mature and rich API extensions allows Bitbucket marketplace to grow, and in Atlassian’s ecosystem there are a lot of apps that can be installed on Bitbucket to extend it’s functionalities. Few examples of these apps are:

  • Awesome Graphs for Bitbucket Server: Provides great statistics and graphs about team performance and repository metrics.
  • Code Review Assistant: Assist reviewers by integrating a static code analysis in Bitbucket server.
  • Smart Search: Allows you to extend the search functionality in Bitbucket to search by commits, pull requests and many more.

Security

Atlassian takes security seriously –  and Bitbucket is no exception. There are multiple strong authentications for enterprise users and SAML authentication. To complement these security features, Bitbucket also introduces repository permissions and SSH access for developers.

Bitbucket for small teams

Bitucket is a perfect choice for small teams, with powerful features that makes it easy for your team to get started in literally minutes.

Free private repositories for small teams

Bitbucket is generous enough to offer free unlimited repositories for teams that are up to five people. They also offer integration with Atlassian’s Jira, even through in free pipelines builds.

Free unlimited academic and community license

If you are an academic team or a charity organization, then you’re in luck. Bitbucket offers free unlimited user tier for your team, unlimited repositories and unlimited users. It also has free guidebook and tutorials for Git and development best practices.

Get up and running in a few minutes

Thanks to the Bitbucket Cloud offerings, Your team could be live, collaborating, committing code in under under a few minutes. It takes the hassle away from setting up your own servers – which is perfect for small teams.

Pipelines

Continues Integration right in your Bitbucket Cloud. This feature saves lots of time for teams that want a quick way to build/deploy their applications with no time wasted on setups and integrations. It also further extends to allow your team to create their configuration as a code in a  yml file.

Ready to give Bitbucket a try?

There are also many other features that make Bitbucket a strong contender that provides just the right balance of features for both small teams of five or for large enterprise with thousands of users. Not forgetting the seamless integrations with popular software such as Jira.

If you’re a small team, it is easy to get started. However if you are deploying Bitbucket at the enterprise level, you may want to discuss your options with one of our friendly Atlassian certified consultants at Valiantys. Just click below and we’ll be happy to discuss your project!