GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

jpetazzo

container.training – コンテナに関するトレーニング、チュートリアル、ワークショップのためのスライドとコードサンプル

投稿日:

コンテナに関するトレーニング、チュートリアル、ワークショップのためのスライドとコードサンプル。 http://container.training/

コンテナトレーニング

このレポジトリ(旧orchestration-workshop )には、Docker、コンテナ、オーケストレーションのテーマに関するさまざまなワークショップ、チュートリアル、トレーニングセッションに使用される資料(スライド、スクリプト、デモアプリケーション、およびその他のコードサンプル)が含まれています。

現時点では、以下が含まれます:

  • ドッカーとコンテナの紹介、
  • Docker Swarmによるコンテナオーケストレーション、
  • Kubernetesとのコンテナオーケストレーション。

これらの資料は、以下の原則に基づいて設計されています。

  • 彼らは、Docker、コンテナ、または特定のプログラミング言語に関する事前の知識はほとんど持っていません。
  • 彼らは教室の設定(インストラクター付き)で、または自宅で自習することができます。
  • 彼らは実践的です。つまり、簡単に再現できる例と演習がたくさん含まれています。
  • お互いの上に構築された章の概念を徐々に導入しています。

あなたが資料を探しているなら、今読んでいるのをやめて、利用可能なすべてのスライドデッキをホストするhttp://container.training/に行くことができます。

このドキュメントの残りの部分では、このリポジトリの構造と、独自のチュートリアルの配信(または作成)の方法について説明します。

なぜ単一のリポジトリですか?

これらの資料はすべて、共通のものがいくつかあるので、単一のリポジトリに集められています。

利用可能なコースは何ですか?

Docker入門は、最初の “Docker Fundamentals”トレーニング資料に基づいています。 詳細については、 jpetazzo / intro-to-dockerを参照してください。 このリポジトリのバージョンは、Markdown公開パイプラインに適合しています。 それはまだ維持されていますが、しばらくしてマイナーな更新を受け取るだけです。

Docker Swarm (以前は “Orchestration Workshop”と呼ばれていました)とのコンテナオーケストレーションは、2015年6月にJérômePetazzoniによって作成されたワークショップです。その後、継続的に更新され、改善され、多くの作家から貢献を受けました。 それは積極的に維持されています。

Kubernetesとのコンテナオーケストレーションは、 2017年10月にJérômePetazzoniによって作成され、他のいくつかの貢献者からの助けとフィードバックがあります。 それは積極的に維持されています。

リポジトリ構造

  • ビン
    • 今のところ安全に無視できるいくつかのヘルパースクリプト。
  • ドッカーコイン
    • オーケストレーションワークショップ全体で使用されるデモアプリケーション。
  • efkelkpromsnap
    • オーケストレーションワークショップの後半で使用されるログおよびメトリックスタック。
  • prepare-localprepare-machine
    • ローカル環境の作成を自動化するスクリプトの提供。 これらは、彼らが働くことをテスト/チェックするために何らかの援助を用いることができる。
  • prepare-vms
    • 学生用のAWSインスタンスの作成を自動化するためのスクリプト。 これらは日常的に使用され、積極的に維持されています。
  • スライド
    • すべてのスライド! それらはMarkdownファイルからカスタムのPythonスクリプトでアセンブルされ、 gnab / remarkを使ってレンダリングされます。 このディレクトリで詳細を確認してください。
  • スタック
    • 少数のComposeファイル(バージョン3)により、複雑なアプリケーションスタックを簡単に展開できます。

コース構成

(これは、オーケストレーションワークショップにのみ適用されます)。

このワークショップでは、マイクロサービスアーキテクチャに基づいて構築されたデモアプリケーション「DockerCoins」を紹介します。 まず、Docker Composeを使用して単一ノード上で実行します。 次に、我々はそれをスケールする必要があるふりをし、我々はクラスタ上でアプリケーションを展開し、スケーリングするためにオーケストレーター(SwarmKitまたはKubernetes)を使用します。

オーケストレーターの概念について説明します。 SwarmKitでは、docker docker swarm initdocker swarm joinクラスタを設定しました。 Kubernetesの場合は、あらかじめ設定されたクラスタを使用します。

次に、スケーリング、ロードバランシング、アップデート、グローバルサービス、またはデーモンセットといっ​​た、より高度な概念について説明します。

ロギング、メトリック、秘密、ネットワーク暗号化など、多くの高度なオプションの章があります。

内容は非常にモジュラー的です.YAMLマニフェストに従ってまとめられた多数のMarkdownファイルで内容が分かれています。 これにより、異なるワークショップ間でコンテンツを非常に簡単に再利用することができます。

DockerCoins

サンプルアプリケーションはdockercoinsディレクトリにあります。 オーケストレーションのさまざまな概念を説明するために、すべての章で使用されています。

それを実際に見るには:

  • cd dockercoins && docker-compose up -d
  • これはすべてのサービスを構築して開始します
  • ウェブUIはポート8000​​で利用可能になります

ワークショップの実行

これらのワークショップの1つを自分でお届けしたい場合は、このセクションをお勧めします。

*このセクションは、私がなくてもこのワークショップを提供する勇気を持っている最初の人物の一人であったBret Fisherによって、ほとんど寄付されました。 ありがとうブレット! 🍻

ジェローム。*

ワークショップの計画の一般的なタイムライン

  • フォークレポを行い、スライドを走り抜けて、さまざまなdockercoinsレポを理解し、多くのコンテナのフルスターンモードクラスタに到達するための手順を理解してください。 最初のいくつかのスライドと最後のスライドを更新し、あなたの情報で最小限に抑えます。
  • あなたのdocsディレクトリはGitHub Pagesを使うことができます。
  • このワークショップでは、学生一人あたり5台のサーバーが必要です。 生徒1人につきわずか2台のサーバーで逃げることができますが、収容するにはスライドデッキを変更する必要があります。 より多くのサーバー=もっと楽しい。
  • 20人以上の学生がいる場合は、問題のある人を助けるための助手(TA)を雇うようにしてください。そうすれば、sshなどの人を助けるワークショップをやめる必要はありません。
  • AWSは生徒機を生成するための最もテストされたプロセスです。 prepare-vmsでは、EC2インスタンスを作成したり、ドッカーをインストールしたり、画像をprepare-vms 、「カード」を印刷して各生徒の座席にIPとユーザー名/パスワードを設定するスクリプトを見つけることができます。
  • AWSスクリプトをテストする:ワークショップの1週間前に必要なすべてのサーバーを作成してテストしください(数分間)。 クラスに最も近い地域でAWSの制限値に達する可能性があります。サポートチケットでAWSに制限値を引き上げるには数日かかることがあります。
  • あなたのワークショップ用のhttps://gitter.imチャットルームを作成し、スライドをURLで更新してください。 ワークショップ中にTAを監視するのにも役立ちます。 前/後に質問に答えるために使用することができます。通常、「質問をメールしてください」というより良い回答として機能します。
  • あなたが先に学生にメールを送ることができるなら、彼らがどのようにSSHを取得し、SSHが動作することをテストするべきかを言及してください。 彼らがssh github.comssh github.comしてpermission denied (publickey) ssh github.comすることができれば、SSHは正常にインストールされており、ブロックされていないことを知っています。 SSHとブラウザはクラスに必要なものです。
  • 通常、ワークショップの前日または午前にサーバーを作成し、ワークショップの後の残りの日にそれらを残します。 数百のサーバーを作成する場合は、これらのすべてのworkshopctlコマンドを、作成するインスタンスと同じ地域にある専用インスタンスから実行したいと考えています。 あなたが貧しいインターネットを利用している場合は、この方法ではるかに高速です。 また、自分用に2組のサーバーを作成し、ワークショップでは1組を使用し、2台目はバックアップです。
  • 生徒のために「カード」を印刷する必要があることを忘れないでください。そのため、インスタンスを作成して印刷する必要があります。

間違っていたこと

  • 事前にAWSインスタンスを作成しておいて、地域の制限を超え、サポートを待って制限を延ばすのに十分な時間を計画していませんでした。 🙁
  • ワークショップでは、学生に技術的な問題があります。 sshの動作、ロックダウンされたコンピュータ、ホストファイアウォールなどを取得できない
  • 恐ろしいwifi、またはsshポートTCP / 22がネットワーク上で開いていない! wifiが嫌な場合は、UDP経由でSSHを処理するMOSH https://mosh.orgを使用してみてください TMUXはまた、サーバーから切断された場合にあなたの場所を失うのを防ぎます。 https://tmux.github.io
  • 「カード」を印刷して、IPを引き渡すことを忘れてしまってはいけません。
  • 楽しんで、あなたの学生に焦点を当て忘れて!

VMの作成

prepare-vms/workshopctlは、インスタンスの設定に必要なものを最大限にprepare-vms/workshopctlするスクリプトです。 ツールとスクリプトに関するすべての情報については、 prepare-vms / README.mdを参照してください。

異なるワークショップ期間のコンテンツ

すべてのスライドで、このワークショップは1日中です。 短いタイムラインで配信する必要がある場合は、何を切り捨てるかに関するいくつかの推奨事項があります。 あなたは---???と置き換えることができます スライドを隠すでしょう。 または、それらをそこに残して、タイトルに(EXTRA CREDIT)ようなものを追加して、生徒はまだコンテンツを見ることができますが、プレゼンテーション中にスキップすることも知っています。

3時間バージョン

  • デバッグツールの時間を制限してください。 「第1章:ボトルネックの特定」
  • Composeの時間を制限し、30分でSwarm Modeを構築してみましょう
  • 第3章、集中型ロギングとELKのほとんどをスキップする
  • 第4章のほとんどをスキップしますが、可能であればステートフルなサービスとDABを維持してください
  • DABが何であるかを言及してください。しかし、あなたが時間を使い果たした場合に備えてこの部分をオプションにしてください

2時間バージョン

  • 上記をすべてスキップし、
  • トラブルシューティングツールをスキップして、デバッガドッカーの話の弧を一斉にスキップしてください。 シングルホストからマルチホスト、マルチコンテナへの移行に集中してください。
  • イントロとDocker Composeで最初の目標は30分、dockercoopsはどれか1つのノードで取得しています。
  • 次の60-75分は、サーバ間のスウォームモードサービスでドッカーコインを取得しています。 大きな勝利。
  • 最後の15〜30分は、ステートフルサービス、DABファイル、および質問用です。

既成の画像

DockerCoinsデモアプリケーションの4つのコンポーネント( dockercoins/hasher:v0.1dockercoins/rng:v0.1dockercoins/webui:v0.1 、およびdockercoins/worker:v0.1事前構築されたイメージがあります。 これらはこのリポジトリのコードに対応しています。

デモの目的で3つの変種があります:

  • dockercoins/rng:v0.2が壊れている(サーバーが起動しなくなる)
  • dockercoins/webui:v0.2はY軸に大きなフォントを持ち、青色ではなく緑色のグラフを表示します。
  • dockercoins/worker:v0.2v0.1より11倍遅いです。

過去のイベント

創業以来、このワークショップは何十回も何千人もの人々に配布され、絶え間なく進化してきました。 これは、最初に配信された短い歴史です。 このリポジトリの「タグ」も参照してください。これらはすべてこのワークショップの連続した繰り返しに対応しています。 過去のバージョンのワークショップに参加した場合は、これらのタグを使用して、その後変更された内容を確認することができます。

  • QCON、ニューヨーク市(2015年6月)
  • KCDC、カンザスシティ(2015年6月)
  • JDEV、ボルドー(2015年7月)
  • OSCON、ポートランド(2015年7月)
  • StrangeLoop、セントルイス(2015年9月)
  • LISA、ワシントンDC(2015年11月)
  • SCALE、Pasadena(2016年1月)
  • ゼニカ、パリ(2016、2月)
  • コンテナ・ソリューションズ、アムステルダム(2016年2月)
  • …そしてはるかに!

問題? バグ? 質問ですか?

バグがあり、それを修正できる場合:PRを提出してください。 あなたが本当にMVPであるので、私があなたに感謝してくれることを私が知っていることを確認してください。

バグがあり、それを修正することはできませんが、それを再現できる場合:再現方法を説明する問題を提出してください。

バグがあり、それを再現することさえできない場合:申し訳ありません。 たぶん、だいたいですね。 私たちはそれが再生可能になるまで、それに取り組むことはできません。

“教えてください!”

これらのワークショップの1つに参加し、あなたのチームまたは組織が同様のワークショップに参加したい場合は、 http://container.training/で予定されているイベントのリストを見ることができます。

また、これらの資料を自分のワークショップを実行するために、チームのために、または会議や会議で再利用することもできます。 その場合、 KubeCon 2018 EuropeのBridget Kromhoutのトークを見て、このようなワークショップをどのように実行するかを正確に説明することができます。

最後に、経験豊富な講演者で、その内容をよく知っていて、会議や企業でこれらのワークショップを実施できる人物に連絡することもできます。

  • Gmailのドットコムでジェロームドットのpetazzoni
  • bretfisherドットコムでbret

(あなたがそのようなワークショップを喜んで提供できる場合は、PRを提出してあなたの名前をそのリストに追加してください!)

ありがとうございました!







-jpetazzo
-, , , , , , , , , , ,

執筆者: