シェフとは? –構成管理に使用されるツール



What is Chefに関するこのブログは、Chefブログシリーズの最初のブログです。構成管理と、Chefがユースケースを使用してそれを実現する方法について説明します。

Chefは構成管理に使用されるツールであり、密接に競合しています 傀儡 。このブログでは、Chefとは何か、構成管理、およびChefがユースケースを使用して構成管理を実現する方法について説明します。

シェフとは?

Chefは、インフラストラクチャをコードとして定義する方法を提供する自動化ツールです。コードとしてのインフラストラクチャ(IAC)とは、手動プロセスを使用するのではなく、コードを記述してインフラストラクチャを管理する(インフラストラクチャを自動化する)ことを意味します。プログラム可能なインフラストラクチャとも呼ばれます。 Chefは、システム構成の記述に純粋なRubyのドメイン固有言語(DSL)を使用します。以下は、インフラストラクチャのサイズに関係なく、Chefによって実行される自動化のタイプです。





  • インフラストラクチャ構成
  • アプリケーションの展開
  • 構成はネットワーク全体で管理されます

お気に入り 傀儡 Chefがクライアントサーバーアーキテクチャを持っていても、マスタースレーブアーキテクチャを持っています。しかし、ChefにはWorkstationと呼ばれる追加のコンポーネントがあります。ワークステーションについては、次のブログで説明します。次の図を参照してください。

グーグルデータサイエンティストのインタビューの質問

Chef vsPuppet-シェフとは-Edureka



Chefでは、ノードはサーバーの構成で動的に更新されます。これは プル構成 つまり、ノードに構成をプッシュするためにChefサーバーでコマンドを1つでも実行する必要はありません。ノードは、サーバーに存在する構成で自動的に更新されます。私の次のブログ Chefチュートリアル ChefアーキテクチャとすべてのChefコンポーネントについて詳しく説明します。

それでは、シェフの人気の背後にある理由を見てみましょう。

シェフとは–シェフの主要な指標

  • Chefは、AIX、RHEL / CentOS、FreeBSD、OS X、Solaris、Microsoft Windows、Ubuntuなどの複数のプラットフォームをサポートしています。追加のクライアントプラットフォームには、Arch Linux、Debian、Fedoraが含まれます。
  • Chefは、Internap、Amazon EC2、Google Cloud Platform、OpenStack、SoftLayer、Microsoft Azure、Rackspaceなどのクラウドベースのプラットフォームと統合して、新しいマシンを自動的にプロビジョニングおよび構成できます。
  • Chefは、アクティブでスマートかつ急成長しているコミュニティサポートを提供しています。
  • Chefの成熟度と柔軟性により、Mozilla、Expedia、Facebook、HP Public Cloud、Prezi、Xero、Ancestry.com、Rackspace、Get Satisfaction、IGN、Marshall University、Socrata、University of Minnesota、WhartonSchoolなどの巨人によって使用されています。ペンシルベニア大学、ボノボス、スプランク、シティ、デュエディル、ディズニー、チーズバーガーの。

FacebookのプロダクションエンジニアであるPhilDibowitzによると



「インフラストラクチャについて一般的に見ている規模には、サーバーの数、それらのシステム全体のさまざまな構成の量、およびそれらの構成を維持するために必要な人数の3つの側面があります。 Chefは、ワークフローを変更することなく、スケールのダイナミクスに対応できる柔軟性を備えた自動化ソリューションを提供しました。」

間違いなく、Chefは最も有名な構成管理ツールの1つであり、緊密に競合しています。 傀儡 。ただし、「Chefとは」を深く掘り下げる前に、構成管理とは何か、なぜそれが重要なのかを最初に説明するのは公正なことです。

構成管理

心配しないでください。このブログには構成管理の厳密な定義はありません:)

このように構成管理を理解しましょう。数百のシステムの上にソフトウェアを展開する必要があるとします。このソフトウェアは、オペレーティングシステムまたはコードの場合もあれば、既存のソフトウェアのアップデートの場合もあります。このタスクは手動で実行できますが、明日になる可能性があるため、このタスクを一晩で完了する必要がある場合はどうなりますか ビッグビリオンデー 会社またはいくつかの販売 M または セール 渋滞が予想されるなど。これを手動で行うことができたとしても、大切な日に複数のエラーが発生する可能性が高くなります。何百ものシステムで更新したソフトウェアが機能しない場合、どのようにして以前の安定バージョンに戻すことができますか?このタスクを手動で実行できますか? AFコースではありません!

Javaのawtとは

この問題を解決するために、構成管理が導入されました。 Chef、Puppetなどの構成管理ツールを使用することで、このタスクを自動化できます。 1つの集中サーバーで構成を指定するだけで、すべてのノードが構成されます。プロジェクト管理と監査の目的で、システム状態の正確な履歴レコードにアクセスできます。したがって、基本的には、中央サーバーで構成を1回指定し、それを数千のノードに複製する必要があります。構成管理は、非常に構造化された簡単な方法で以下のタスクを実行するのに役立ちます。

  • 要件が変更されたときに変更するコンポーネントを把握する。
  • 前回の実装以降に要件が変更されたため、実装をやり直します。
  • 新しいが欠陥のあるバージョンに交換した場合は、コンポーネントの以前のバージョンに戻します。
  • 交換するはずのコンポーネントを正確に特定できなかったため、間違ったコンポーネントを交換しました。

NYSEが構成管理の助けを借りて何百万ドルも節約した方法については、Puppetに関する私のブログを参照してください。

構成を管理するには、プッシュ構成とプル構成の2つの方法があります。

  • プル構成: このタイプの構成管理では、ノードは集中サーバーを定期的にポーリングして更新を確認します。これらのノードは動的に構成されているため、基本的には集中型サーバーから構成をプルしています。プル構成は、Chef、Puppetなどのツールで使用されます。
  • プッシュ構成: このタイプの構成管理では、集中サーバーが構成をノードにプッシュします。プル構成とは異なり、ノードを構成するために集中サーバーで実行する必要がある特定のコマンドがあります。プッシュ構成は、Ansibleなどのツールで使用されます。

Puppetチュートリアルブログで構成管理のさまざまなコンポーネントを学ぶ

Chefが構成管理をどのように実現するかを説明することにより、「Chefとは」を理解するというこの探求を先に進める正しい時期です。

Chefとは–Chefによる構成管理

Chefとは何かを理解しました。次に、Chefがユースケースを使用して構成管理を実現する方法について説明します。ガネットは、上場しているアメリカのメディア持株会社です。毎日の総発行部数で測定すると、米国最大の新聞社です。

Gannettの従来の導入ワークフローは、複数のハンドオフと手動テストが特徴でした。このプロセスで彼らが直面した問題は何かを見てみましょう。

  • 正確で再現性のあるビルドを維持することは困難でした。
  • 多くのビルドの失敗があり、テストはしばしば間違った環境で実行されていました。
  • 展開とプロビジョニングの時間は、数日から数週間の範囲である可能性があります。
  • 運用チームは、クラウドまたは開発環境にアクセスできませんでした。
  • すべてのグループが独自のツールセットを使用しており、資金調達やセキュリティに対する説明責任はありませんでした。アプリケーションが実際にいくらかかるかは誰も知りませんでした。セキュリティには、ソフトウェアスタックを監査する方法がありませんでした。

ガネットは変更の準備ができていました。開発者は、アプリケーションを迅速にデプロイしたいと考えていました。運用では、繰り返し可能な方法で構築および展開できる安定したインフラストラクチャが必要でした。財務部門は、アプリケーションの実際のコストを知りたがっていました。セキュリティは、すべてのスタックを表示および監査し、変更を追跡できるようにすることを望んでいました。

Gannettは、サービスとしてのクラウドが多くの利点を提供すると考えました。開発者は標準化されたリソースにアクセスできました。クラウドのコンピューティングオンデマンドモデルにより、ピーク時のトラフィックの処理が容易になり、ハンドオフが最小限に抑えられました。

Chefを使用すると、インフラストラクチャをオンデマンドで動的にプロビジョニングおよびプロビジョニング解除して、使用量とトラフィックのピークに対応できます。これにより、ダウンタイムのリスクをほとんど伴わずに、新しいサービスと機能をより頻繁に展開および更新できます。 Chefを使用すると、クラウドが提供するすべての柔軟性とコスト削減を活用できます。

GannettのChefによって実行された機能を見てみましょう。

  • Gannettは、本番環境を模倣する開発環境向けのVPC(仮想プライベートクラウド)の構築を開始しました。彼らがすでに使用していたツールはどれも適切ではありませんでした。しかし、彼らはChefがクラウドとLinuxとWindowsの両方の環境でうまく機能することを発見しました。彼らはChefを使用して、本番環境に完全に一致する開発環境を構築しました。
  • アプリケーションをVPCに移行するには、Chefでプロビジョニングしてデプロイする必要がありました。
  • セキュリティは早い段階で関与し、Chefへのアクセスとシステムセキュリティ標準の維持のための必須の制御を管理します。

今こそ、このプロセスの結果を理解するときです。

Javaクラスのインスタンスデータ
  • Gannettの導入は、より迅速で信頼性の高いものになりました。 Chefを使用した後、数分かかったアプリケーションのプロビジョニングとデプロイ。
  • すべての新しいアプリケーションは、Chefを使用してクラウドにデプロイされました。これらのアプリケーションは、本番環境にデプロイされたのと同じ方法ですべての環境にデプロイされました。また、各環境でテストが行​​われたため、展開は信頼できました。
  • すべてのインフラストラクチャはコードとして扱われ、発生した変更の可視性が大幅に向上します。開発、運用、セキュリティ、財務のすべてがこれから恩恵を受けました。

「後 シェフとは 」私の次のブログ、つまり Chefチュートリアル Chefのアーキテクチャとそのコンポーネントに焦点を当てています。 Chefを使用してApache2をデプロイする方法についても説明しました。

このブログを「 シェフとは 」関連、 チェックアウト 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。 Edureka DevOps認定トレーニングコースは、学習者がSDLCの複数のステップを自動化するためのPuppet、Jenkins、Nagios、GITなどのさまざまなDevOpsプロセスとツールに関する専門知識を習得するのに役立ちます。