Categories: 未分類

BOSH(ソフトウェア)

BOSH_(software)

 「BOSH」ソフトウェア 
BOSHは、大規模な分散サービスのリリースエンジニアリング、ソフトウェアデプロイメント、およびアプリケーションライフサイクル管理のためのツールチェーンを提供するオープンソースソフトウェアプロジェクトです。ツールチェーンは、サーバー(BOSH Director)とコマンドラインツールで構成されています。BOSHは通常、クラウドソフトウェアのパッケージ化、展開、および管理に使用されます。BOSHは、Cloud Foundry PaaSをデプロイするために2010年にVMwareによって最初に開発されましたが、他のソフトウェア(Hadoopなど)をデプロイするために使用できます。 、RabbitMQ、またはMySQLなど)。BOSHは、大規模な分散システムのライフサイクル全体を管理するように設計されています。
Cloud Foundry BOSH
開発者 Cloud Foundry 初回リリース 2010年 安定リリース
271.2.0(2020年8月3日; 14か月前) (2020-08-03)
リポジトリ
github .com / cloudfoundry / bosh
で書かれている
Ruby、Go、Bash
オペレーティング・システム
クロスプラットフォーム
タイプ
クラウドコンピューティング
ライセンス
Apacheライセンス2.0
Webサイト
bosh .io
2016年3月以降、BOSHはMicrosoft Windows サーバーとLinuxサーバーの両方での展開を管理できます。
BOSHディレクターは、単一のIaaS(Infrastructure as a Service)プロバイダーと通信して、基盤となるネットワークおよび仮想マシン(VM)(またはコンテナー)を管理します。いくつかのIaaSプロバイダーがサポートされています:Amazon Web Services EC2、Apache CloudStack、Google Compute Engine、Microsoft Azure、OpenStack、およびVMwarevSphere。
より基盤となるIaaSプロバイダーをサポートするために、BOSHはクラウドプロバイダーインターフェイス(CPI)の概念を使用しています。上記の各IaaSプロバイダーにはCPIの実装が通常、CPIはVMのデプロイに使用されますが、コンテナーのデプロイにも使用できます。
BOSHを使用してコンテナーをデプロイするためのCPIはほとんどなく、アクティブにサポートされているのは1つだけです。この場合、BOSHは、VirtualBoxまたはVMware Workstationによって実行される単一の仮想マシンにPivotal SoftwareのGardenコンテナー(GardenはDockerに非常に似ています)をデプロイするCPIを使用します。理論的には、必要なCPIが開発されていれば、他のコンテナエンジンをサポートできます。
BOSHはVMまたはコンテナーへのデプロイメントを無差別にサポートしているため、BOSHは一般的な用語「インスタンス」を使用してそれらを指定します。BOSHの「インスタンス」が実際にVMであるかコンテナであるかを選択するのは、CPI次第です。

コンテンツ
1 ワークフロー
2 コンセプト
2.1 リリース 2.2 幹細胞 2.3 BOSHエージェント 2.4 展開
3 主な原則4 歴史 5 建築
5.1 クラウド/プラットフォーム/ OSの互換性
6 展開
7 ガバナンス
8 ユーザー
9 ディストリビューション
10 参考文献
11 外部リンク

ワークフロー
インストールされると、BOSHサーバーはルートファイルシステム(「幹細胞」と呼ばれる)とパッケージ(「リリース」と呼ばれる)のアップロードを受け入れます。BOSHサーバーに特定のソフトウェアシステムをデプロイするために必要なビットがある場合、YAMLデプロイメントマニフェストで説明されているように、続行するように指示できます。次に、BOSHは、カナリアを使用して「インスタンス」(VMまたはコンテナー)を段階的にデプロイし、失敗した構成のデプロイを回避します。
ソフトウェアシステムが展開されると、BOSHはインスタンスを継続的に監視して、障害のあるインスタンスを検出し、欠落しているインスタンスを復活させます。
BOSHデプロイメントマニフェストが変更されると、BOSHは、インスタンスごとに段階的に進行する暗黙の変更をロールアウトすることを受け入れます。これは、BOSHがダウンタイムなしでライブクラスターをアップグレードできることを意味します。
コンセプト編集

リリース
BOSHリリースは、アーカイブファイルまたはgitリポジトリのいずれかです。どちらの場合も、BOSHで展開できるソフトウェアシステムについて説明しています。この目的のために、関連するすべてのバイナリアセット、ソースコード、コンパイルスクリプト、構成可能なプロパティ、起動スクリプト、および構成ファイルのテンプレートをパッケージ化します。
BOSHリリースは「パッケージ」と「ジョブ」で構成されています。大まかに言って、BOSHパッケージは実行可能なものを提供し、BOSHジョブはこれらのものがどのように構成および実行されるかを記述します。
BOSHパッケージには、特定のソフトウェアコンポーネントを構築するために必要なソースコード、バイナリアセット(「ブロブ」と呼ばれる)、およびコンパイルスクリプトが詳しく記載されています。バイナリの「ブロブ」を提供する方法は2つアーカイブファイルとして提供されるBOSHリリースでは、blobが直接含まれています。しかし、gitリポジトリとして提供されるBOSHリリースでは、blobが大きくなると、同じことを行うと問題が発生する傾向がそのため、BOSHリリースでは、参照されたBLOBをフェッチできる「blobstore」の概念が提供されています。ほとんどのBOSHリリースは、パブリックAmazon S3バケットに裏打ちされたブロブストアを使用しますが、BOSHリリースでプライベートまたはローカルの「ブロブストア」を参照する方法は他にも
BOSHパッケージは、アーカイブからファイルを抽出して適切なターゲットディレクトリにコピーするだけの場合でも、常にコンパイルフェーズの対象になります。特定のパッケージをコンパイルするために、BOSHは、パッケージ仕様で宣言されているように、必要なパッケージとblobのみを含むエフェメラルコンパイルインスタンス(VMまたはコンテナー)を生成します。この専用インスタンスでは、BOSHはコンパイルスクリプトを実行し、コンパイル結果をデータベースに封印して、再現可能な展開に安全に使用できるようにします。
一方、BOSHジョブは、構成プロパティ(文書化される可能性があります)、構成ファイルのテンプレート、および起動スクリプトを提供します。BOSHジョブは、1つまたは複数のパッケージを依存関係と呼びます。ジョブもBOSHデータベースに封印されますが、構成ファイルのテンプレートは展開時にレンダリングされ、すべての構成プロパティが解決されます。これらの構成プロパティは通常、IPアドレス、ポート番号、ユーザー名、パスワード、ドメイン名などです。

幹細胞
BOSH幹細胞は、新しいインスタンス(VMまたはコンテナー)を作成するための基本をパッケージ化します。つまり、BOSHは船BOSHエージェントとのコピーと一緒にオペレーティングシステムイメージSTEMCELL MONITインスタンスによってホストされるサービスを管理するために使用され、(「ジョブ」と呼ばれる)を。BOSHエージェントは、BOSHがそのライフサイクル全体を通じてインスタンスと通信するのを支援します。
BOSHの幹細胞の概念は、AmazonのAMIのような仮想マシンイメージに似ていますが、BOSH幹細胞は特定の用途に特化することを意図したものではありません。代わりに、BOSHは、さまざまなオペレーティングシステム(CentOS、Ubuntu、またはWindows)、またはさまざまな基盤となるIaaSプロバイダー(AWSまたはOpenStack)をサポートするためのさまざまな幹細胞のみを提供します。
「幹細胞」という名前は、生物学用語「幹細胞」に由来します。これは、後で多様な細胞型に成長できる未分化細胞を指します。同様に、BOSH幹細胞によって作成されたインスタンスは最初は同じです。
開始後、インスタンスは異なるCPU /メモリ/ストレージ/ネットワークで構成され、異なるソフトウェアパッケージでインストールされます。したがって、同じBOSH幹細胞から構築されたインスタンスは異なる動作をする可能性が

BOSHエージェント
BOSHエージェントは、BOSHがデプロイされたすべてのVMで実行されるサービスです。それは以下を行います:
VMのセットアップ、たとえば、ローカルディスクの構成、接続された(セカンダリ)ディスクの構成とフォーマット、ネットワークの構成
ディレクターからのリクエスト(ping、ジョブ管理リクエストなど)を受け入れます
ジョブの管理:ヘルスの開始、停止、監視

展開
BOSHデプロイメントは基本的にYAMLデプロイメントマニフェストであり、ユーザーは使用するBOSHリリースとBOSH幹細胞、およびジョブをセットアップして同一インスタンスのグループに構成する方法(歴史的に誤った名前の「ジョブ」と後に「インスタンスグループ」の名前を変更)について説明します。 。これらの「インスタンスグループ」内で、BOSHは、すべてのインスタンスが同時にダウンするリスクを最小限に抑えるために、異なるアベイラビリティーゾーンにまたがる同一のインスタンス(VMまたはコンテナー)にまたがることができます。これは、高可用性データベースまたはアプリケーションをデプロイするときに特に役立ちます。
ほとんどの場合、ユーザーはデプロイメントマニフェストを1つの大きなYAMLファイルとして操作しません。代わりに、デプロイメントマニフェストは、保守が容易な小さなファイルに分割されます。これらの個別のファイルは、BOSHサーバーにアップロードされてデプロイされる直前に、spiffやspruceなどのツールによってマージされます。
デプロイメントマニフェストでは、参照されているすべてのリリースのジョブによって宣言されているすべての構成プロパティをカスタマイズできます。異なるジョブは、共通の設定を共有するために、同じ名前の構成プロパティを参照できます。

主な原則
BOSHは、次の方法で最新のリリースエンジニアリングの4つの原則に対処するために意図的に構築されました。
識別可能性
特定のリリースを構成するすべてのソース、ツール、環境、およびその他のコンポーネントを識別できること。「リリース」の概念では、BOSHは、関連するすべてのソースコード、バイナリアセット、構成可能なプロパティ、コンパイルスクリプト、および起動スクリプトをパッケージ化します。これにより、ユーザーは実際に展開されているものとその実行方法を簡単に追跡できます。さらに、BOSHは、デプロイされたインスタンス(VMまたはコンテナー)の基礎となるルートファイルシステムを「幹細胞」と呼ばれる単一のイメージとしてキャプチャする方法を提供します。BOSHリリースとBOSH幹細胞は、UUIDによって識別され、SHA-1チェックサムによって封印されます。
再現性
運用の安定性を保証するために、ソフトウェアシステムのソース、サードパーティコンポーネント、データ、および展開の外部を統合する機能。BOSHツールチェーンは、展開されたシステムを操作するための集中型サーバーを提供します。このサーバーは、ソフトウェアの「リリース」、オペレーティングシステムイメージ(「幹細胞」と呼ばれる)、永続データ、およびシステム構成を保持します。したがって、特定の展開で同じ結果が再現されることが保証されます。
一貫性
ソフトウェアコンポーネントの開発、展開、監査、および説明責任のための安定したフレームワークを提供するという使命。BOSHは、ソフトウェアの「リリース」との一貫性を実現し、ソフトウェアシステムを開発および展開するための一貫したフレームワークをもたらします。さらに、監査と説明責任はBOSHサーバーによって提供されます。これにより、ユーザーは展開されたシステムに加えられた変更を確認および追跡できます。
機敏
ソフトウェアサイクルの生産性に対する最新のソフトウェアエンジニアリングプラクティスの影響、つまり継続的インテグレーションについての継続的な調査。BOSHツールチェーンは、ソフトウェアリリースを自動化された方法で簡単に作成し、複雑な展開システムを簡単なコマンドで更新する方法を提供することにより、ソフトウェアエンジニアリングの現在のベストプラクティス(継続的デリバリーを含む)とうまく統合します。

歴史
管理するために利用できるツールで見つかったアドレス欠点に設計されたクラウドファウンドリーを。Chefは元々使用されていましたが、サーバーのパッケージ化、スピンアップ/ダウンの機能、監視および自己管理機能の制限がありました。元々はCloudFoundry自身のニーズのために開発されましたが、プロジェクトは完全に汎用的になり、Hadoop、RabbitMQ、MySQL、および同様のプラットフォームやアプリケーションソフトウェアなどの他のソフトウェアのオーケストレーションに使用できるようになりました。

建築
BOSHインストールは、異なるVMまたはコンテナーに分割できる可能性のあるいくつかの個別のコンポーネントで構成されています。
Aディレクターサーバーの「頭脳」であります
ディレクターのデータベースで作られた、PostgreSQLのインスタンス、Redisののインスタンスとブロブストアコンパイルされたパッケージとジョブを格納するための
インスタンス(VMまたはコンテナー)のステータスを追跡するヘルスモニター
デプロイされたインスタンスごとに1つずつ、多くのBOSHエージェント
Director、Health Monitor、およびデプロイされたすべてのBOSHエージェントを接続するためのNATSメッセージバス
CPIいくつかの特定のAPIに準拠するだけで実行可能バイナリである(クラウドプロバイダインタフェース)、
BOSH管理環境は通常、VMにデプロイされたDirectorを中心にしています。

BOSHアーキテクチャ

クラウド/プラットフォーム/ OSの互換性
BOSHは、CPI(Cloud Provider Interface)と呼ばれる抽象化を介して基盤となるIaaSレイヤーに接続します。アマゾンウェブサービス、特定のOpenStackバージョン、vSphere、vCloudで利用可能なCPIがGoogle Compute Engine、Microsoft Azure、CloudStackには、コミュニティが管理するCPIがいくつか存在します。

展開
BOSHはBOSHリリースとして展開できます。これにより、初心者にとって「鶏が先か卵が先か」という驚きが生まれる可能性が
BOSHリリースを展開できるソフトウェアはBOSHサーバーだけではありません。VM、Dockerコンテナー、またはベアメタルサーバーにBOSHをデプロイできるBOSHプロビジョナープロジェクトがこのコンポーネントは、BOSH-liteを実行するVagrantボックスを作成するBOSHパッカープロビジョナーによって使用されます。これは、ほとんどのユーザーがBOSHを学習するときに依存するものです。

ガバナンス
サブコンポーネントたらクラウドファウンドリー、BOSHは、任意の分散ソフトウェアの導入を目指していることを、今、別のオープンソースプロジェクトです。BOSHはによって管理されているクラウドファウンドリー財団。BOSHへのほぼすべての貢献はPivotalによって行われます。

ユーザー
Pivotalは、BOSHを使用して、Pivo​​tal Cloud Foundry(PCF)内のCloud Foundryと、CloudFoundryのすべてのPivotalDataServicesをオーケストレーションします。BOSHおよびPCFの発表されたパブリックユーザーには、Axel Springer、Corelogic、IBM、Monsanto、Philips、SAP、およびSwisscomが含まれます。

ディストリビューション
BOSHはスタンドアロン製品として商業的に配布されこれは、Pivotal Cloud Foundry、IBM Bluemix、およびHP Helion Developer Platformの一部として含まれており、Cloud Credo、Stark&Wayne、Gstackなどによって商業的に使用およびサポートされています。

参考文献
^ 「リリース-cloudfoundry / bosh」。
–GitHub経由。
^ 「ライセンスファイル」。
–GitHub経由。
^ 「アナウンス:BOSH forWindows-cf-dev-メーリングリストアーカイブ」。Lists.cloudfoundry.org。
^ 画像ソース

外部リンク
公式サイト
 “

admin

Share
Published by
admin

Recent Posts

バーアム

Bar'am その他の使用法に…

2日 ago

Baqʽaʼ

Baq%CA%BDa%CA%B…

2日 ago

誘西鎮

Baq%C3%AAn_Town…

2日 ago

バチェン郡

Baq%C3%AAn_Coun…

2日 ago

バキアプレトリバー

Baqui%C3%A1_Pre…

2日 ago

Baquirivu-Guaçu川

Baquirivu-Gua%C…

2日 ago