Puppetとは何ですか? –Puppetを使用した構成管理



Puppetとは、Puppetブログシリーズの最初のブログです。ユースケースを使用したPuppet&ConfigurationManagementの必要性について説明します。

今日、構成管理のための最も成熟したツールはPuppetです。しかし、他の構成管理ツールと比較した場合、なぜPuppetがそれほど人気が​​あり、何がユニークなのか疑問に思われるはずです。この「Puppetとは」ブログでは、これらの質問に答えて、あなたがの道を歩むのを手伝います

Puppetとは何ですか?

Puppetは、サーバーの展開、構成、および管理に使用される構成管理ツールです。次の機能を実行します。





  • ホストごとに個別の構成を定義し、必要な構成が適切であり、ホスト上で変更されていないかどうかを継続的にチェックおよび確認します(変更されたPuppetが必要な構成に戻る場合)。
  • マシンの動的なスケールアップとスケールダウン。
  • 構成されたすべてのマシンを制御できるため、一元化された(マスターサーバーまたはリポジトリベースの)変更がすべてのマシンに自動的に伝達されます。

Puppetは、マスターとスレーブがSSLを使用して安全な暗号化チャネルを介して通信するマスタースレーブアーキテクチャを使用します。人形のアーキテクチャは私ので詳細に説明されています Puppetチュートリアル ブログ。

理解を深めるために、Puppetでこのビデオをチェックしてください。



Puppetとは何ですか? | DevOpsトレーニング|エドゥレカ

Puppetとは何かがわかったところで、Puppetの人気の背後にある理由を理解しましょう。

データサイエンスとは何ですか?

Puppetとは–主要な指標

以下は、Puppetに関するいくつかの事実です。



  • 大規模な設置ベース: Puppetは、Google、Red Hat、Siemensなど、スタンフォード大学やハーバード大学ロースクールなどのいくつかの大学を含む世界中の30,000を超える企業で使用されています。 1日あたり平均22の新しい組織が初めてPuppetを使用します。
  • 大規模な開発者ベース: 人形は非常に広く使用されているため、多くの人が人形を開発しています。 Puppetには、コアソースコードに多くの貢献者がいます。
  • 長い商業実績: Puppetは2005年から商用利用されており、継続的に改良されています。非常に大規模なインフラストラクチャ(5,000台以上のマシン)に導入されており、これらのプロジェクトから学んだパフォーマンスとスケーラビリティの教訓は、Puppetの開発に貢献しています。
  • ドキュメンテーション: Puppetには、ユーザーが管理する大規模なwikiがあり、数百ページのドキュメントと、言語とそのリソースタイプの両方に関する包括的なリファレンスがあります。さらに、いくつかのメーリングリストで活発に議論されており、非常に人気のあるIRCチャネルがあるため、Puppetの問題が何であれ、答えを簡単に見つけることができます。
  • プラットフォームのサポート: Puppet Serverは、たとえばCentOS、Microsoft Windows Server、Oracle Enterprise Linuxなどのrubyをサポートする任意のプラットフォームで実行できます。新しいオペレーティングシステムをサポートするだけでなく、比較的古くて古いバージョンのOSおよびRubyでも実行できます。同じように。

Puppetが世界的に大きな需要を持っていることは今や明らかです。しかし、Puppetを深く掘り下げる前に、構成管理とは何か、なぜそれが重要なのかを最初に説明するのは公正なことです。

構成管理

システム管理者は通常、サーバーのインストール、サーバーの構成などの反復的なタスクを実行します。スクリプトを作成することでこのタスクを自動化できますが、大規模なインフラストラクチャで作業している場合は非常に多忙な作業です。

この問題を解決するために、 構成管理 が導入されました。構成管理は、システムが長期にわたってその整合性を維持できるように、変更を体系的に処理する方法です。構成管理(CM)は、システムの現在の設計と構築の状態が既知であり、良好で信頼できるものであり、開発チームの暗黙知に依存しないことを保証します。これにより、プロジェクト管理および監査の目的で、システム状態の正確な履歴レコードにアクセスできます。構成管理は、次の課題を克服しました。

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

ユースケースを通してその重要性を理解しましょう。

私が知っている最良の例は、ニューヨーク証券取引所(NYSE)です。ソフトウェアの「不具合」により、NYSEはほぼ90分間株を取引できませんでした。これは数百万ドルの損失につながりました。新しいソフトウェアをインストールすると問題が発生しました。そのソフトウェアは20の取引端末のうち8つにインストールされ、システムは前夜にテストされました。しかし、午前中は、8つの端末で正常に動作しませんでした。そのため、古いソフトウェアに戻す必要がありました。これはNYSEの構成管理プロセスの失敗であると思われるかもしれませんが、実際には成功でした。適切な構成管理プロセスの結果、NYSEは90分でその状況から回復しました。これはかなり高速でした。問題がもっと長く続いていたら、結果はもっと深刻だっただろう。

NYSEでの構成管理-Puppetとは-Edureka

bufferedreaderはJavaで何をしますか

さて、構成管理の重要性をご存知だと思います。構成管理段階は、DevOpsのバックボーンと見なすことができます。これにより、可能な限り最も安全で信頼性の高い方法で、より頻繁なソフトウェアリリースが可能になります。

次に、Puppetのいくつかのアプリケーションを見てみましょう。

Puppetとは–Puppetのアプリケーション

ケーススタディを使用して、Puppetのアプリケーションを理解しましょう。あなたがポーカー愛好家であるか、オンラインゲームをプレイしたことがあるなら、あなたはZyngaについて聞いたことがあるに違いありません。世界最大のソーシャルゲーム開発者です。 Zyngaのインフラストラクチャは、パブリッククラウドとプライベートデータセンターの両方で数万台のサーバーを使用しています。早い段階で、キックスターターやポストインストールなどの手動プロセスを使用して、数百台のサーバーをオンラインにしていました。

ここで、このプロセスで彼らが直面した問題を確認します。

  • スケーラビリティと一貫性 – Zyngaは驚異的な成長を遂げており、そのインフラストラクチャは業界と歩調を合わせるために必要でした。スクリプトベースのソリューションと手動のアプローチは、彼らのニーズには十分ではありませんでした。
  • ポータブルインフラストラクチャ – Zyngaは、パブリッククラウドインフラストラクチャと独自のデータセンターの両方で一貫した構成管理アプローチを活用する方法を必要としていました。
  • 柔軟性 –さまざまなZyngaゲームプロパティの多様性を考えると、チームが適切なマシンの適切な構成にすばやく一致できることが重要でした。
  • インフラストラクチャインサイト –組織が成熟するにつれて、各マシンのプロパティを視覚化する自動化された方法を持つことがより重要になりました。

同社は、Puppetが登場する前に、自動化されたプロセスの必要性をすぐに理解できるほど賢明でした。 Puppetが組織にどのように貢献しているかを理解しましょう。

  • 回復の速度 –本番運用チームは、適切な構成を適切なボックスに迅速に展開できます。システムが不適切に再構成された場合、Puppetは自動的に最後の安定版に戻します 状態または、システムを手動で迅速に修復するために必要な詳細を提供します。
  • 展開の速度 – Puppetは、運用チームがゲームスタジオにサービスを提供する方法で大幅な時間の節約を実現しました。
  • サーバーの一貫性 – Puppetのモデル駆動型フレームワークにより、一貫した展開が保証されます。による マークストックフォード、生産​​オペレーション担当副社長 、Zynga 「私たちが時間の節約を経験したことは明らかです。 Puppetを使用する利点は、サーバー全体で一貫した構成を毎回短期間で提供できることです。」
  • コラボレーション –モデル駆動型アプローチを採用すると、組織全体で構成を簡単に共有できるため、開発者と運用チームが協力して、新しいサービスの提供が非常に高品質であることを確認できます。 Zyngaのチームの12人以上がPuppetでトレーニングを受けましたこの知識は、チーム全体および個々のゲームスタジオ内の運用チームに広められています。

Puppetブログとは Puppetチュートリアルに関する次のブログにアクセスするには、ここをクリックしてください これには、PuppetアーキテクチャとPuppetのコンポーネントが含まれます。また、Puppetを使用してMySQLとPHPをデプロイする手順についても説明します。 Puppetは、大規模なインフラストラクチャを備えた組織でDevOpsを実現するために最も広く使用されているツールです。

r例による機械学習

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