What is most valuable?
- Clustering: The ability to run your Bitbucket instance on a cluster of multiple nodes (connected by a high bandwidth, low latency network). This provides scalable capacity, performance, and high availability. This is the top feature since every firm is looking for business resiliency. It is a cluster of nodes connected to a load balancer and single node failure doesn't impact the developer operations. More nodes can be added to, or deleted from, the system without downtime.
- Smart mirroring: The ability to provide local READ-only mirror nodes in geographically distributed locations, to accelerate Git clones and fetches for remote teams. This feature really improves performance for geographically distributed teams, where all READ operations happen from local mirror and only WRITE operations require a central remote server.
- Disaster recovery: A strategy to resume operations from an alternate data center (usually in another geographic location), in the event of a disaster whereby the main data center becomes unavailable. Failover (to another location) is a fundamental part of disaster recovery.
How has it helped my organization?
- Any organization with multiple, parallel release development and large SCRUM teams can really benefit by adopting Bitbucket as an SCM solution.
- We leverage the auto-merge feature and forked development model, which really accelerates our development and release process.
- The integrated code review feature, called Pull-Request, reduced the need for another code-review tool for review purposes.
- We are using a number of Atlassian products like JIRA, Confluence, and Bamboo that are interconnected using native app links. The connectivity/integration is very good and we don't need to spend money for custom tools/plugins for tools integration. Normally, other companies buy products from different vendors and spend time and resources to develop integration tools.
- Auto-Merge: Auto cascading of changes from lower release branch to higher release branches. It is one of the unique features of this SCM tool that other SCM tools are lacking. In most other companies, and with most SCM tools, this is achieved either via custom tools or by a multiple-day effort to merge changes from one release branch to future releases.
- Forked repos: Large SCRUM teams can work in isolation from master/integration repo by forking the master repo and all master repo changes are auto-synchronized to forks always(or you can control this behavior). Any number of forks can be created based on SCRUM team size and each fork can complete the detailed sanity/integration tests with master repo changes before delivering the contents from fork repo to master repo.
What needs improvement?
- Branch naming restrictions should be implemented either via a native feature or should be a part of separate plugin/hooks.
- Ability to configure files for excluding merges. For example, VERSION.txt, POM.XML are specific to each release and there is no need to merge them to other release branches.
- Folder level locking could be improved. We can lock a branch entirely now, but we cannot lock a specific folder from a specific branch.
For how long have I used the solution?
I have been using Atlassian Stash (a.k.a., Atlassian Bitbucket Sever v3.7.4) for the last year. We are migrating from Stash to Bitbucket Data Center v4.3.2.
What do I think about the stability of the solution?
Stability depends on the way you perform the setup.
We had issues with our initial setup where MySQL was the database. When the data had grown beyond a certain limit and we migrated to Oracle, we didn't see issues.
I always recommend selecting a stable database at the backend, since we also had issues migrating a huge database into Oracle.
What do I think about the scalability of the solution?
We have not yet encountered any scalability issues.
How are customer service and technical support?
Technical support has been good, so far. We are getting support and answers on time.
Which solution did I use previously and why did I switch?
We used to deploy CVS and SVN. A lot of issues arose with
- Work space (checkout)
- Creation of large repositories
How was the initial setup?
The initial setup was straightforward if you follow the instructions carefully.
What's my experience with pricing, setup cost, and licensing?
Pricing and licensing depend on the individual/company's choice.
Which other solutions did I evaluate?
We did not evaluate other options. We were looking for a complete business solution for:
- Bug tracking
- Continuous Integration (CI)
- Source code management
We finalized with Atlassian.
What other advice do I have?
Atlassian can definitively be a choice if you:
- Are dealing with parallel/multiple-release development at the same time
- Have large SCRUM teams
- Want a complete business solution for bug tracking, collaboration, continuous integration (CI)
- Want source code management
Which version of this solution are you currently using?