Clustering with Bamboo Data Center

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

BAMBOO 8.0 EARLY ACCESS PROGRAM

Bamboo Data Center allows you to run a cluster of multiple Bamboo nodes, providing disaster recovery. We’ll tell you about the benefits, and give you an overview of what you’ll need to run Bamboo in a clustered environment.


Bamboo Data Center supports only 1 active node and unlimited list of cold-standby nodes which started on-demand if active node fails to run.

クラスタ化のメリット

Clustering is designed for enterprises with large or mission-critical Data Center deployments that require continuous uptime and disaster recovery.

メリットの一部をご紹介します。

  • High availability and failover

    If one node in your cluster goes down, the others take on the load, ensuring your users have shortly interrupted access to Bamboo.

アーキテクチャ

A Bamboo Data Center cluster consists of:

  • Multiple identical application nodes running Bamboo Data Center.

  • トラフィックをすべてのアプリケーション ノードに分散するロード バランサ。

  • A shared file system that stores build results, build logs, artefacts, and other shared files. 

  • すべてのノードが読み取るおよび書き込むデータベース

Only one application node is active and process requests. Other nodes are in cold-stanby mode and ready to start if active node fails to run. A user will access the same Bamboo node for all requests until their session times out, they log out, or a node is removed from the cluster. 

インフラストラクチャと要件

ハードウェアやインフラの選択はあなた次第です。以下はハードウェアおよびインフラストラクチャ要件を計画するときに考える必要がある領域です。


サーバー要件

You should not run additional applications (other than core operating system services) on the same servers as Bamboo. Running Bamboo, Bitbucket, and Jira on a dedicated Atlassian software server works well for small installations but is discouraged when running at scale. 

Bamboo Data Center can run successfully on virtual machines.

クラスタ ノードの要件

各ノードはまったく同じである必要はありませんが、一貫性のあるパフォーマンスのために、可能な限り同質になるようにします。すべてのクラスタ ノードは以下を満たす必要があります。

  • be a dedicated machine, physical or virtual

  • 同じデータ センターまたはリージョン内にあること (AWS と Azure の場合)

  • be connected in a high speed LAN (that is, high bandwidth and low latency)

  • have the same OS, Java and application server version. See Supported platforms

  • 同じメモリ設定(JVM と物理メモリの両方)(推奨)

  • be configured with the same time zone (and keep the current time synchronized). Using ntpd or a similar service is a good way to ensure this

 You must ensure the clocks on your nodes don't diverge, as it can result in a range of problems with your cluster.

Nodes requirements

Your Data Center license does not restrict the number of nodes in your cluster. The right number of nodes depends on the size of your Bamboo instance, and the size of your nodes.

データベース要件

You should ensure your intended database is listed in the current Supported platforms. The load on an average cluster solution is higher than on a standalone installation, so it is crucial to use a supported database.

データベースの高可用性のための追加要件

Running Bamboo Data Center in a cluster removes the application server as a single point of failure. You can also do this for 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.

共有ホームおよびストレージの要件

Bamboo Data Center requires a high performance shared file system such as a SAN, NAS, RAID server, or high-performance file server optimized for I/O. 

  • 共有ファイル システムは専用のマシンで実行する必要があります。 

  • ファイル システムはすべてのクラスタ ノードから高速 LAN 経由で到達できる (同じ物理データセンター内に存在する) 必要があります。 

  • 共有ファイル システムには、単一のマウント ポイントとして NFS 経由でアクセス可能である必要があります。 

  • Due to known performance issues, we only support NFSv3 at this time.


ロードバランサー

You can use the load balancer of your choice. Bamboo Data Center does not bundle a load balancer.

  • ロード バランサは専用のマシンで実行する必要があります。

  • Your load balancer must have a high-speed LAN connection to the Bamboo cluster nodes (that is, high bandwidth and low latency). 

  • Your load balancer must support both HTTP mode (for web traffic) and TCP mode (for remote agents ActiveMQ traffic). 

  • Terminating SSL (HTTPS) at your load balancer and running plain HTTP from the load balancer to Bamboo Server is highly recommended for performance. 

  • ロード バランサは "セッション アフィニティ" ("スティッキー セッション") をサポートしている必要があります。

  • If you don't have a preference for your load balancer, we provide instructions for haproxy, a popular Open Source software load balancer.

Many load balancers require a URL to constantly check the health of their backends in order to automatically remove them from the pool. It's important to use a stable and fast URL for this, but lightweight enough to not consume unnecessary resources. The following URL returns Bamboo’s status and can be used for this purpose. 

URL

期待される内容

予想 HTTP ステータス

http://<bamboourl>/rest/api/latest/status

{"state":"RUNNING"}

200 OK

HTTP ステータス コード

レスポンス エンティティ

説明

200

{"state":"RUNNING"}

通常実行

500

{"state":"ERROR"}

エラー状態

503

{"state":"STARTING"}

アプリケーションが起動

503

{"state":"STOPPING"}

アプリケーションが停止中

200

{"state":"FIRST_RUN"}

アプリケーションが初めて実行され、まだ設定されていない

404


アプリケーションが予期しない方法で起動に失敗(web アプリケーションのデプロイが失敗)

ネットワークアダプタ
サーバー間の通信に個別のネットワーク アダプタを使用します。クラスタ ノードはサーバー間通信用の個別の物理ネットワーク(個別の NIC など)を持っている必要があります。これはクラスタの実行を高速および信頼性を高くするのに最適な方法です。その他のデータ ストリーミングを多数持つネットワークを介してクラスタ ノードに接続する場合、パフォーマンスの問題が発生する可能性があります。 

アプリの互換性

The process for installing Marketplace apps (also known as add-ons) in a Bamboo cluster is the same as for a standalone installation. You will not need to stop the cluster, or bring down any nodes to install or update an app. 

The Atlassian Marketplace indicates apps that are compatible with Bamboo Data CenterLearn more about Data Center approved apps

最終更新日 2021 年 8 月 17 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.