Using Bitbucket Server in the enterprise
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 は、エンタープライズ チーム用の Git コード管理ソリューションです。組織の全員に Git リポジトリ上での容易なコラボレーションを実現すると同時に、エンタープライズ グレードのサポートを次の領域に提供します。
- ユーザー認証
- リポジトリのセキュリティ
- 既存のデータベースや開発環境との統合
アトラシアンは、Bitbucket Server の 2 つのデプロイメント オプションを提供しています。
Bitbucket Server
ほとんどの組織では、Bitbucket Server の単一インスタンスで優れたパフォーマンスを実現できます。本番環境で Bitbucket Server インスタンスをセットアップする際のベスト プラクティスについては、引き続きこのページをお読みください。
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.
機能の比較
各ライセンスに含まれる内容の概要を次に示します。
コア機能 | Server ライセンス | Data Center ライセンス |
---|---|---|
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 | ||
ブランチの権限 ユーザーがリポジトリまたはプロジェクト内でシングル ブランチ、ブランチ タイプ、またはブランチ パターンに対して実行できる操作を管理します。ブランチ権限の詳細をご確認ください。 | ||
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 | ||
ユーザー管理 | ||
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 | ||
高可用性および大規模なパフォーマンス | ||
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 | ||
インフラストラクチャと制御 | ||
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 | ||
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 | ||
Repository delete policies Secure your data via a new Global Permissions policy. Learn more about policies | ||
デプロイメント オプション | ||
独自のハードウェア Bitbucket を独自の物理サーバー、仮想サーバー、またはお好きなデータセンターで実行します。 | ||
AWS Quick Start and Cloud Formation Templates Use our Cloud Formation Templates to deploy Bitbucket on AWS. Learn more about AWS quick start |
プラットフォーム要件
Bitbucket Server は Windows、Linux および Mac システム上で実行できますが、アトラシアンではエンタープライズ用には Linux の使用のみを推奨し、サポートしています。この推奨は、Bitbucket Server を使用した当社独自のテストや経験に基づいています。
Java、外部データベース、Web ブラウザおよび Git のサポート対象バージョンの詳細については、「サポート対象プラットフォーム」ページを参照してください。
Bitbucket Data Center 要件の詳細については、「Bitbucket Data Center のインストール」を参照してください。
パフォーマンスの留意点
一般に、Bitbucket Server は非常に安定性が高く、メモリ消費量が低い製品です。Git ホスティング操作 (特にクローン) 以外にスケーラビリティの制限はありません。当社ではこれが製品のスケーラビリティの制限になっていることを把握しています。制限は、システムのコアの数に比例します。
例えば、内部の Bitbucket Serverインスタンスから収集されたデータでは、およそ 50 名の開発者のチームとそれらに関連付けられた継続的インテグレーション インフラストラクチャで、 同時クローン操作のピーク並行処理 30 件と、同時クローン操作の平均並行処理 2 件が確認されています。これに似た使用パターンをお持ちのお客様の場合、 1000 名のユーザーを、40 コアおよびそれをサポートする RAM のマシンで処理可能と見積もれます。40 件を超えるピーク並行処理が予測されますが、Bitbucket Server はサーバーの過負荷を防ぐため、受信リクエストをキューに入れるように設計されています。
Bitbucket Server – アトラシアン社内で実行した Bitbucket Server の本番環境インスタンスのデータについては、「Bitbucket Server の本番環境サーバーのデータ」を参照してください。
Bitbucket Data Center – 異なるサイズのクラスタに対する当社のパフォーマンス テストの結果については、「Bitbucket Data Center のパフォーマンス」を参照してください。
高可用性
Bitbucket Server が開発ワークフローの重要な部分である場合、Bitbucket Server の可用性を最大化することは重要な考慮事項となります。
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 – Bitbucket Data Center が HA と瞬時のフェイルオーバーを提供する方法の詳細については、「Bitbucket Data Center のフェイルオーバー」を参照してください。
スケーラビリティ
Bitbucket Server はエンタープライズ規模の拡張およびインフラストラクチャの柔軟性を考慮して構築されており、管理者は Bitbucket Server を環境に適合させる方法を制御できます。
- ほとんどの組織では、Bitbucket Server の単一インスタンスで優れたパフォーマンスを実現できます。本番環境で Bitbucket Server インスタンスをセットアップする際のベスト プラクティスについては、引き続きこのページをお読みください。
- 大規模環境での高可用性および高パフォーマンスが必要となる大規模なエンタープライズ向けの Bitbucket Data Center は、Bitbucket Server ノードのクラスタを使用する最適なデプロイメント オプションです。
Bitbucket Server の単一インスタンスは後から Bitbucket Data Center に容易にアップグレードできます。
Bitbucket Server – 組織のニーズに合わせて Bitbucket Server インスタンスを調節する方法の詳細については、「Bitbucket Server の拡張」を参照してください。また、CI ツールが変更のために Bitbucket Server をポーリングする場合の Bitbucket Server のパフォーマンス固有の詳細情報について、「Bitbucket Server を拡張して継続的インテグレーション性能を実現する」を参照してください。
Bitbucket Data Center – see Adding and removing Data Center nodes for information about how you can rapidly provision extra capacity without downtime.
プロビジョニング
Bitbucket Server をプロビジョニングする際には、次のようなアプローチが考えられます。
- コンソールまたは無人モードで Bitbucket Server インストーラを実行する
- Bitbucket Data Center resources - clustered Bitbucket Server
- Bitbucket Server 用の Docker コンテナ イメージ
本番環境のセットアップ
Bitbucket Server を本番環境またはエンタープライズ環境用にセットアップするときは、以下の項目を構成することを強く推奨します。
Bitbucket Server を専用ユーザーで実行する
- 本番環境の場合、Bitbucket Server は権限が制限された専用ユーザー アカウントから実行する必要があります。「Bitbucket Server を専用ユーザーで実行する」をご参照ください。
Bitbucket Server をサービスとしてインストールする
- 「Bitbucket Server インストーラーを実行する」をご参照ください。
外部データベースを使用する
- 本番環境では、Bitbucket Server は組み込みデータベースではなく外部データベースを使用する必要があります。Bitbucket Server の初回起動の前に外部 DBMS (MySQL など) をセットアップします。これにより、Bitbucket Server を初めて実行したときに起動されるセットアップ ウィザードを使用して、Bitbucket Server をその DBMS に接続できます。「Bitbucket Server を外部データベースに接続する」をご参照ください。
既存のユーザーディレクトリへ接続する
- Bitbucket Server を既存のユーザー ディレクトリ (Active Directory など) に接続します。「外部ユーザー ディレクトリ」をご参照ください。
Bitbucket ホーム ディレクトリの保護
- 本番環境の場合、Bitbucket Server ホーム ディレクトリを認証されていないアクセスから保護する必要があります。詳細は「Bitbucket Server ホーム ディレクトリ」をご参照ください。
HTTPS による Bitbucket Server の保護
- 特に機密データを扱っていて、Bitbucket Server がインターネット上にある場合、Bitbucket Server へのアクセスを HTTP over SSL を使用して保護する必要があります。「HTTPS で Bitbucket Server を保護する」をご参照ください。
Git リポジトリへの SSH アクセスを有効にする
- Bitbucket Server ユーザーが独自の SSH キーを Bitbucket Server に追加し、これらの SSH キーを使用してユーザーのコンピューターと Bitbucket Server インスタンス間の Git 操作を保護できるよう、Bitbucket Server 内の Git リポジトリへの SSH アクセスを有効化します。「Bitbucket Server のリポジトリへの SSH アクセスを有効にする」を参照してください。
Bitbucket Server のコンテキスト パスを変更する
- Bitbucket Server をプロキシの背後で実行中の場合、または他のアトラシアン アプリケーション (または任意の Java web アプリケーション) を Bitbucket Server と同じホスト名やコンテキスト パスで利用できるようにしている場合、Bitbucket Server の一意のコンテキスト パスを設定する必要があります。「Bitbucket サーバーを異なるコンテキスト パスに移動する」を参照してください。
本番環境の管理
Bitbucket Server のアップグレード
- 本番環境の場合、本番環境へのデプロイ前に QA サーバーで Bitbucket Server のアップグレードをテストすることを推奨します。「Bitbucket Server アップグレード ガイド」をご参照ください。
バックアップとリカバリ
- 会社のポリシーに沿ったデータ復旧計画を確立することを強く推奨します。Bitbucket Server のツールやバックアップ戦略については、「データ リカバリとバックアップ」を参照してください。
ログ
- Bitbucket Server instance logs can be found in
<Bitbucket home directory>
/log<Bitbucket Server installation directory>
/log - 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.]