Clustering with Bitbucket Data Center
Bitbucket Data Center is the on-premises Git repository management solution for larger enterprises that require high availability and performance at scale.
Bitbucket Data Center uses a cluster of Bitbucket Server nodes and is designed with enterprise scaling and infrastructure flexibility in mind for when you host Bitbucket in your own data center. It provides enterprise teams with (follow the links for more information on each topic):
- Clustered application: The ability to run your Bitbucket application on a cluster of nodes (connected by a high bandwidth, low latency network), providing scalable capacity, performance, and high availability.
- Performance at scale: A cluster of many machines each running Bitbucket Server can handle a greater load than a single machine.
- High availability and failover: If one cluster node goes down, then the remaining cluster nodes can continue servicing requests so that users see little or no loss of availability.
- Instant scalability: You can rapidly provision extra capacity with no downtime.
- Smart Mirroring: The ability to provide local Mirror nodes in geographically distributed locations, to accelerate Git clones and fetches for remote teams.
- Rate limiting (available from Bitbucket Data Center 6.6)- The ability for Bitbucket to self-protect. Helps you keep your instance stable by giving you control over how many HTTP requests (e.g. REST API requests) automations and scripts can make, and how often they can make them.
- Database high availability: With Bitbucket Data Center, the application server is no longer a single point of failure. With AWS deployments, you can extend this to the database through the following supported configurations:
Amazon RDS Multi-AZ: this database setup features a primary database that replicates to a standby in a different availability zone. If the primary goes down, the standby takes its place.
Amazon PostgreSQL-Compatible Aurora: this is a cluster featuring a database node replicating to one or more readers (preferably in a different availability zone). If the writer goes down, Aurora will promote one of the writers to take its place.
The AWS Quick Start deployment option allows you to deploy Bitbucket Data Center with either one, from scratch. To set up Amazon Aurora with an existing Bitbucket Data Center 6.7 (or later) deployment, refer to Configuring Bitbucket Data Center to work with Amazon Aurora.
A look at the architecture
Bitbucket Data Center consists of a cluster of dedicated machines, connected like this:
The load balancer distributes requests from your users to the cluster nodes. If a cluster node goes down, the load balancer immediately detects the failure and automatically directs requests to the other nodes within seconds.
The cluster of Bitbucket nodes share the workload of incoming requests. Failure of a cluster node causes virtually no loss of availability for users, because requests are immediately directed to other nodes.
Elasticsearch provides search functionality for Bitbucket Server. It provides a fast, full-text search engine that enables searching for projects, repositories, and code within Bitbucket Server.
Shared database and storage
Bitbucket Data Center supports the same databases as Bitbucket Server (except for MySQL). A high-performance shared file system, accessible via NFS, stores repository, attachment and avatar data.
Get started with Bitbucket Data Center
See Installing Bitbucket Data Center for detailed information about setting up Bitbucket Data Center.
The Bitbucket Data Center FAQ answers the questions you might have when starting with Bitbucket Data Center.