Use Bitbucket in the enterprise
This page describes best practices for using Bitbucket Data Center and Server in enterprise environments. If you're evaluating Bitbucket, we suggest that you begin with Install a Bitbucket Data Center trial, instead of this page.
Bitbucket 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:
- ユーザー認証
- リポジトリのセキュリティ
- integration with existing databases and dev environment.
Atlassian offers two deployment options for Bitbucket.
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.
Bitbucket 8.14.x は、Server ライセンスをサポートする最後のバージョンです。詳細をご確認ください。
利用可能な機能やインフラストラクチャは、Bitbucket ライセンスによって決定されます。
アトラシアンでは、すべてのチームが Bitbucket を最大限に活用できるよう、プロジェクト、リポジトリ、プル リクエスト、およびワークフローを含むコア機能をすべてのユーザーに提供しています。
機能の比較
各ライセンスに含まれる内容の概要を次に示します。
コードとコラボレーション | Server ライセンス | Data Center ライセンス |
---|---|---|
コード所有者 特定のファイルやディレクトリの変更をレビューするレビュアーとしてプル リクエストに追加されるコード所有者を定義します。 | ||
プル リクエスト 変更のマージ前に、チームとコードを確認、検討します。プル リクエストを介したコラボレーションの詳細をご確認ください。 レビュー プロセス中にファイルやコードにコメントを複数下書きします。コード レビューの新しいワークフローの詳細は、こちらをご確認ください。 | ||
ブランチの権限 ユーザーがリポジトリまたはプロジェクト内でシングル ブランチ、ブランチ タイプ、またはブランチ パターンに対して実行できる操作を管理します。ブランチ権限の詳細をご確認ください。 | ||
柔軟なワークフロー 集中化されたワークフロー、Gitflow ワークフロー、またはフォーク ワークフローを使用します。柔軟なワークフローの詳細をご確認ください。 | ||
レビュアー グループ 適切なレビュアーをコード レビューに一括ですばやく追加するのに役立ちます。レビュアー グループの詳細についてご確認ください。 |
| |
既定タスク プル リクエストが既定タスクとともにオープンになる際に、一定の要件を作成します。既定タスクの詳細をご確認ください。 |
|
|
Jira Software Server と Data Center の統合 Jira Server、Data Center、Bitbucket を接続して、両プラットフォーム全体で自動で課題をリンクして同時に進捗を追跡します。Jira Software との統合に関する詳細についてご確認ください。 | ||
Jira Software Cloud 統合 Jira Cloud と Bitbucket を接続して、両プラットフォーム全体で自動で課題をリンクして同時に進捗を追跡します。Jira Software との統合に関する詳細についてご確認ください。 |
|
|
CI/CD 統合 Bitbucket を世界の大手 CI/CD ベンダーとシームレスに統合して、生産への過程を合理化します。CI/CD 統合の詳細をご確認ください。 |
|
|
Code Insights コード レビュー プロセス全体を通してプル リクエストにおけるコード品質の改善に役立つレポート、注釈、メトリックを取得します。Code Insights の詳細についてご確認ください。 | ||
API とサードパーティ統合 Bitbucket API とサードパーティ統合を使用して、単純なタスクの自動化、自分のサイトへのデータの埋め込み、ワークフローのカスタマイズが可能です。API とサードパーティ統合の詳細をご確認ください。 | ||
プロジェクト レベルの Webhook 各リポジトリで Webhook を作成する代わりにプロジェクト レベルで Webhook を作成します。Webhook の詳細をご確認ください。 |
|
|
高可用性および大規模なパフォーマンス | ||
クラスタリング 高い可用性を確保するため、複数のノードで Bitbucket を実行します。クラスタリングの詳細をご確認ください。 | ||
スマート ミラーリング 大きいリポジトリを扱っている、分散されたチームの Git クローン速度を改善します。スマート ミラーリングの詳細をご確認ください。 | ||
分散 Git ストレージ リポジトリのパフォーマンスと高可用性を向上させます。Bitbucket Mesh の詳細についてご確認ください。 |
| |
Git LFS (Large File Storage) 外部オブジェクト記憶を使用せずに、大きいファイルを保存できます。Git LFS の詳細をご確認ください。 | ||
ディザスタ リカバリ プライマリー システムが使用不能になった場合に、チームをオンラインにし、ソース コード データを使用可能な状態に維持します。ディザスタ リカバリの詳細をご確認ください。 |
| |
検索サーバー Bitbucket をリモート検索サーバーに接続して、スケーラビリティを向上させます (Data Center サイトで必要になります)。リモート検索サーバーの使用に関する詳細は、こちらをご確認ください。 | ||
コンテンツ配信ネットワーク (CDN) サポート 分散されたチームの地理的パフォーマンスを改善します。CDNの詳細をご確認ください。 |
| |
セキュリティとコンプライアンス | ||
(強制) マージ チェック 設定された要件を満たすまで、プル リクエストのマージを防止します。マージ チェックの詳細をご確認ください。 | ||
高度な監査 Bitbucket インスタンスで何が起こっているかをより詳細に把握できます。高度な監査によって、インスタンスにおけるアクションを追跡、記録し、サードパーティ モニタリング ツールでエクスポート、保存できるセキュリティ関連時系列記録を作成できます。高度な監査の詳細をご確認ください。 |
| |
HTTP アクセス トークン 特定のプロジェクトやリポジトリに取り組んでいるチームのために、個々のユーザー アカウントに固定されていないアクセス トークンを作成します。HTTP アクセス トークンの詳細についてご確認ください。 |
| |
OAuth 2.0 Bitbucket を OAuth 2.0 のプロバイダーとして構成することで、外部アプリに Bitbucket へのアクセスを許可します。受信リンクの詳細についてご確認ください。 |
| |
シークレット スキャン 新しいコミットにシークレットが追加されたら通知を受け取ったり、シークレットを取り消して表示されないようにしたりします。シークレット スキャンの詳細をご確認ください。 |
| |
リポジトリ設定の厳密な制御 セキュリティやコンプライアンス要件を実現し、プロジェクト内の全リポジトリを横断して一貫した設定を作成できるように、リポジトリ設定をより厳密に制御できるようになりました。リポジトリ レベルの変更を制限する方法の詳細をご確認ください。 |
| |
ユーザー管理 | ||
外部ユーザー ディレクトリ Active Directory、Crowd、Jira、またはその他の LDAP ディレクトリにユーザーを保存します。外部ユーザー ディレクトリの詳細をご確認ください。 | ||
複数の ID プロバイダー 複数の ID プロバイダーを使用します。また、使用しないログイン方法 (基本認証など) を無効にします。複数の ID プロバイダーの使用に関する詳細についてご確認ください。 |
| |
シングル サインオン SAML または OpenID Connect ID プロバイダーを認証とシングル サインオンに使用します。SSO の詳細についてご確認ください。 |
| |
ジャストインタイム プロビジョニング ジャストインタイム ユーザー プロビジョニング (JIT プロビジョニング) によって、SAML SSO または OpenID Connect (OIDC) SSO を通して Jira、Confluence、Bitbucket などの Atlassian Data Center アプリケーションにログインすると、自動的にユーザーを作成、更新できます。ジャストインタイム ユーザー プロビジョニングの詳細をご確認ください。 |
| |
インフラストラクチャと制御 | ||
レート制限 ユーザーと自動化が作成できる外部 REST API リクエストの数を管理します。レート制限の詳細をご確認ください。 |
| |
高度なリポジトリ管理 グローバル リポジトリ ページからすべてのリポジトリを管理します。アクティブなリポジトリを見つけて、領域を使用している非アクティブなリポジトリを特定します。詳細なリポジトリ管理の詳細についてご確認ください。 |
| |
リポジトリのアーカイブ 未使用のリポジトリをアーカイブして、Bitbucket インスタンスを整理します。リポジトリのアーカイブとアーカイブ解除に関する詳細についてご確認ください。 |
| |
ローリング アップグレード ダウンタイムなしで同じ機能リリースの最新のバグ修正アップデートにアップグレードします。ローリング アップグレードの詳細についてご確認ください。 |
| |
ゼロ ダウンタイム バックアップのための完全性テスト バックアップ後などに、データベースとホーム ディレクトリ間の不一致を見つけ、解決します。ゼロ ダウンタイム バックアップのための完全性テストの詳細をご確認ください。 | ||
アプリ診断 サードパーティ アプリに関係する潜在的なパフォーマンス課題を含め、サイトの健全性の概要を取得します。アプリ診断の詳細をご確認ください。 | ||
ビジネス インテリジェンスと監視 | ||
データ パイプライン すべての Bitbucket データをエクスポートして、任意のビジネス インテリジェンス プラットフォームで分析します。データ パイプラインの詳細をご確認ください。 |
| |
デプロイメント オプション | ||
自社のハードウェア 物理サーバー、仮想化されたサーバー、または任意のデータ センターで Bitbucket を実行します。 | ||
Kubernetes Amazon EKS、Azure Kubernetes Service、Google Kubernetes Engine、またはオンプレミスの Kubernetes クラスターで Bitbucket を実行します。Kubernetes サポートの詳細についてご確認ください。 |
Platform requirements
Although Bitbucket 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.
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 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 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 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.
高可用性
If Bitbucket is a critical part of your development workflow, maximizing Bitbucket availability becomes an important consideration.
Bitbucket – see High availability for Bitbucket for the background information you need to set up Bitbucket 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.
スケーラビリティ
Bitbucket is built with enterprise scaling and infrastructure flexibility in mind, giving administrators control over how Bitbucket fits into their environment:
- For most organizations, a single instance of Bitbucket provides good performance. Continue reading this page for guidance on best practice in setting up a Bitbucket instance in a production environment.
- For larger enterprises that require HA and greater performance at scale, Bitbucket Data Center uses a cluster of Bitbucket nodes and is the deployment option of choice.
Your single instance of Bitbucket can be easily upgraded to Bitbucket Data Center when the time comes.
Bitbucket – see Scaling Bitbucket Server for information about how you can tune your Bitbucket instance to grow with your organization's needs. See also Scaling Bitbucket Server for Continuous Integration performance for information specific to Bitbucket performance when CI tools poll Bitbucket 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 include:
- Run the Bitbucket installer in either console or unattended mode
- Bitbucket Data Center resources - clustered Bitbucket
- Docker container image for Bitbucket Server
Setting up a production environment
When setting up Bitbucket for a production or enterprise environment, we highly recommend that you configure the following aspects:
Run Bitbucket as a dedicated user
- For production environments Bitbucket should be run from a dedicated user account with restricted privileges. See Running Bitbucket Server with a dedicated user.
Install Bitbucket as a service
外部データベースを使用する
- For production environments Bitbucket should use an external database, rather than the embedded database. Set up your external DBMS (for example MySQL) before starting Bitbucket for the first time. This allows you to connect Bitbucket to that DBMS using the Setup Wizard that launches when you first run Bitbucket. See Connect Bitbucket to an external database.
既存のユーザーディレクトリへ接続する
- Connect Bitbucket to your existing user directory (for example Active Directory). See External user directories.
Secure the Bitbucket home directory
- For production environments the Bitbucket home directory should be secured against unauthorized access. See Set the home directory.
Secure Bitbucket with HTTPS
- Access to Bitbucket should be secured using HTTP over SSL, especially if your data is sensitive and Bitbucket is exposed to the internet. See Securing Bitbucket Server with HTTPS.
Git リポジトリへの SSH アクセスを有効にする
- Enable SSH access for your Bitbucket users to Git repositories in Bitbucket so that they can add their own SSH keys to Bitbucket, and then use those SSH keys to secure Git operations between their computer and the Bitbucket instance. See Enable SSH access to Git repositories.
Change the context path for Bitbucket
- If you are running Bitbucket behind a proxy, or you have another Atlassian application (or any Java web application), available at the same hostname and context path as Bitbucket, then you should set a unique context path for Bitbucket. See Change Bitbucket's context path.
Administering a production environment
Upgrading Bitbucket
- For production environments we recommend that you test the Bitbucket upgrade on a QA server before deploying to production. See the Bitbucket Server upgrade guide.
バックアップとリカバリ
- 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.
ログ
- Bitbucket instance logs can be found in
<Bitbucket home directory>
/log<Bitbucket Server installation directory>
/log - Bitbucket displays recent audit events for each repository and project (only visible to Bitbucket 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 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 View and configure the audit log.]