Using Bitbucket Server in the enterprise

Still need help?

The Atlassian Community is here for you.

Ask the community

This page describes best practices for using Bitbucket Server in enterprise environments. If you're evaluating Bitbucket Server, we suggest that you begin with Install a Bitbucket trial, instead of this page.

Bitbucket Server is the Git code management solution for enterprise teams. It allows everyone in your organization to easily collaborate on your Git repositories, while providing enterprise-grade support for:

  • user authentication
  • repository security
  • integration with existing databases and dev environment.




Atlassian offers two deployment options for Bitbucket Server.


Bitbucket Server

For most organizations, a single instance of Bitbucket Server provides good performance. Continue reading this page for guidance on best practices in setting up a Bitbucket Server instance in a production environment.

Bitbucket Data Center

For larger enterprises that require high availability and greater performance at scale, Bitbucket Data Center resources uses a cluster of Bitbucket Server nodes to provide Active/Active failover, and is the deployment option of choice. 


Feature comparison

Here's a summary of what you get with each license. 

Core featuresServer licenseData Center license
Integrated CI/CD
Two new ways to get feedback on code - the Builds page and the Builds tab - designed to help you avoid switching tools.

Collaboration via pull requests
Review and discuss your code with your team before merging changes. Learn more about pull request collaboration

Branch permissions

Control what users can do on a single branch, branch type, or branch pattern within a repository or project. Learn more about branch permissions

Flexible workflows
Use centralized, forking, gitflow or forking workflows. Learn more about flexible workflows

Git LFS (Large File Storage)
Store large files without the need for an external object store. Learn more about Git LFS

CI and issue tracker integrations
Connect Bitbucket to Jira, Bamboo, Source Tree for a great developer experience. Learn more about integrations

User management

Just-in-time user provisioning
Allow users to be created an updated automatically when they log in through SAML, SSO, or OpenID Connect SSO. Learn more about JIT user provisioning

Single sign-on with OpenID Connect
Enable seamless integrations with many 3rd party identity providers. Learn more about OpenID Connect

External user directories
Store users in Active Directory, Crowd, Jira or another LDAP directory. Learn more about external user directories

SAML single sign-on
Use a SAML identity provider for authentication and single-sign on. Learn more about SAML single sign-on

High availability and performance at scale

Clustering
Run Bitbucket on multiple nodes for high availability. Learn more about clustering

Smart mirroring
Improve Git clone speeds for distributed teams working with large repositories. Learn more about smart mirroring

Content Delivery Network (CDN) support
Improve geo-performance for distributed teams. Learn more about CDN

Elasticsearch
Connect Bitbucket to a remote Elasticsearch instance for improved scalability (required for Data Center sites). Learn more about Elasticsearch

Infrastructure and Control

Auditing
Brings improvements to auditing for projects and repositories, and expanded it to the global admin settings that displays all events in the system. Having this digital record gives admins the higher level of visibility that they need to ensure security and compliance. Learn more about auditing

Advanced auditing
Gives you the visibility and security-relevant digital records needed to help demonstrate compliance, strengthen security, and improve workflow. Learn more about advanced auditing

App diagnostics
Get an overview of the health of your site, including potential performance issues relating to third-party apps. Learn more about diagnostics

Integrity tests for zero-downtime backup
Find and resolve any inconsistencies between the database and home directory, for example after restoring a backup. Learn more about integrity checks

Rate limiting
Control how many external REST API requests users and automations can make. Learn more about rate limiting

Repository delete policies
Secure your data via a new Global Permissions policy. Learn more about policies

Deployment options

Your own hardware
Run Bitbucket on your own physical servers, virtualized servers, or in the data center of your choice.

AWS Quick Start and Cloud Formation Templates
Use our Cloud Formation Templates to deploy Bitbucket on AWS. Learn more about AWS quick start





Platform requirements

Although Bitbucket Server can be run on Windows, Linux and Mac systems, for enterprise use we only recommend, and support using Linux. This recommendation is based on our own testing and experience with using Bitbucket Server.

See the Supported platforms page for details of the supported versions of Java, external databases, web browsers and Git.

See Installing Bitbucket Data Center for detailed information about Bitbucket Data Center requirements.

Performance considerations

In general, Bitbucket Server is very stable and has low memory consumption. There are no scalability limits other than for Git hosting operations (clone in particular). We know this is the scalability limit of the product; the limit is proportional to the number of cores on the system.

As an example, data collected from an internal Bitbucket Server instance indicate that for a team of approximately 50 developers, with associated continuous integration infrastructure, we see a peak concurrency of 30 simultaneous clone operations and a mean of 2 simultaneous clone operations. We conservatively expect that a customer with similar usage patterns would be capable of supporting 1000 users on a machine with 40 cores and a supporting amount of RAM. While we expect a peak concurrency larger than 40, Bitbucket Server is designed to queue incoming requests so as to avoid overwhelming the server.

Bitbucket Server – see Bitbucket Server production server data for data from the Bitbucket Server production instance we run internally at Atlassian.

Bitbucket Data Center – see Bitbucket Data Center Performance for the results of our performance testing for clusters of different sizes.

High availability

If Bitbucket Server is a critical part of your development workflow, maximizing Bitbucket Server availability becomes an important consideration.

Bitbucket Server – see High availability for Bitbucket for the background information you need to set up Bitbucket Server in a highly available configuration. 

Bitbucket Data Center – see Failover for Bitbucket Data Center for information about how Bitbucket Data Center provides HA and almost instant failover.

Scalability

Bitbucket Server is built with enterprise scaling and infrastructure flexibility in mind, giving administrators control over how Bitbucket Server fits into their environment: 

  • For most organizations, a single instance of Bitbucket Server provides good performance. Continue reading this page for guidance on best practice in setting up a Bitbucket Server instance in a production environment.
  • For larger enterprises that require HA and greater performance at scale, Bitbucket Data Center uses a cluster of Bitbucket Server nodes and is the deployment option of choice.

Your single instance of Bitbucket Server can be easily upgraded to Bitbucket Data Center when the time comes.

Bitbucket Server – see Scaling Bitbucket Server for information about how you can tune your Bitbucket Server instance to grow with your organization's needs. See also Scaling Bitbucket Server for Continuous Integration performance for information specific to Bitbucket Server performance when CI tools poll Bitbucket Server for changes.

Bitbucket Data Center – see Adding and removing Data Center nodes for information about how you can rapidly provision extra capacity without downtime.

Provisioning

Some possible approaches to provisioning Bitbucket Server include:

Setting up a production environment

When setting up Bitbucket Server for a production or enterprise environment, we highly recommend that you configure the following aspects:

Run Bitbucket Server as a dedicated user
Install Bitbucket Server as a service
Use an external database
  • For production environments Bitbucket Server should use an external database, rather than the embedded database. Set up your external DBMS (for example MySQL) before starting Bitbucket Server for the first time. This allows you to connect Bitbucket Server to that DBMS using the Setup Wizard that launches when you first run Bitbucket Server. See Connecting Bitbucket Server to an external database.
Connect to your existing user directory
Secure the Bitbucket home directory
Secure Bitbucket Server with HTTPS
  • Access to Bitbucket Server should be secured using HTTP over SSL, especially if your data is sensitive and Bitbucket Server is exposed to the internet. See Securing Bitbucket Server with HTTPS.
Enable SSH access to Git repositories
  • Enable SSH access for your Bitbucket Server users to Git repositories in Bitbucket Server so that they can add their own SSH keys to Bitbucket Server, and then use those SSH keys to secure Git operations between their computer and the Bitbucket Server instance. See Enabling SSH access to Git repositories in Bitbucket Server.
Change the context path for Bitbucket Server
  • If you are running Bitbucket Server behind a proxy, or you have another Atlassian application (or any Java web application), available at the same hostname and context path as Bitbucket Server, then you should set a unique context path for Bitbucket Server. See Moving Bitbucket Server to a different context path.

Administering a production environment

Upgrading Bitbucket Server
  • For production environments we recommend that you test the Bitbucket Server upgrade on a QA server before deploying to production. See the Bitbucket Server upgrade guide.
Backups and recovery
  • We highly recommend that you establish a data recovery plan that is aligned with your company's policies. See Data recovery and backups for information about tools and backup strategies for Bitbucket Server.
Logging
  • Bitbucket Server instance logs can be found in  <Bitbucket home directory>/log. Logs for the bundled Tomcat webserver can be found in  <Bitbucket Server installation directory>/log. See Bitbucket Server debug logging.
  • Bitbucket Server displays recent audit events for each repository and project (only visible to Bitbucket Server admins and system admins), and also creates full audit log files that can be found in the <Bitbucket home directory >/audit/logs directory. Note that Bitbucket Server has an upper limit to the number of log files it maintains, and deletes the oldest file when a new file is created – we recommend an automated backup of log files. See Auditing in Bitbucket.]
Last modified on Oct 13, 2020

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.