教えると学ぶ -Cloud Native Technology-

教えると学ぶ -Cloud Native Technology-

OSC 2020 Online/Fall の資料です。

7bcf6f29a0b9a348fe422a31a4f44752?s=128

cyberblack28

October 23, 2020
Tweet

Transcript

  1. OSC2020 Online/Fall 2020.10.23 CNBF(Cloud Native Bright Future) Yutaka Ichikawa 教えると学ぶ

    ~ Cloud Native Technology ~
  2. Certification & Community CKA CKAD KCM100 2018 2019 #CNDT2020 Name:

    Yutaka Ichikawa Twitter/GitHub/Qiita: cyberblack28 Hatena Blog: https://cyberblack28.hatenablog.com/ Slides: https://speakerdeck.com/cyberblack28 Job Educational Solution Architect / Technical Educator Developer Advocate / Technical Evangelist Infrastructure Engineer / Frontend Engineer Profile #cnbfmeetup Cloud Native Bright Future
  3. AP Communications Co., Ltd Let’s Start Cloud Native

  4. • What’s CNBF • Myself • Learn Cloud Native Technology

    • Teach Cloud Native Technology • Summary • Information Agenda
  5. What’s CNBF

  6. クラウドネイティブで、企業情報システムに 明るい未来を切り開くMeetup Cloud Native Bright Future(CNBF)とは? これからクラウドネイティブに取り組みたい企業と、クラウドネイティ ブの先進企業の交流によって、中⽴に、企業情報システムが新たな段階 に踏み出すことを⽀援するコミュニティです。 Promotion

    Movie http://bit.ly/CNBF-Promotion
  7. CNBF Community Members Masaya Aoyama Isao Shimizu Makoto Hasegawa Yutaka

    Ichikawa Maho Takara Daiki Hayakawa
  8. Myself

  9. Myself 日々この3つの調和を目指して活動しています 極める = エンジニアとして技術を極める 伝える = エバンジェリスト・アドボケートとして技術を提唱する 教える =

    技術教育者として技術を教える 極める、伝える、教えるの調和
  10. Myself 「極める、伝える、教える」 の根底にあるもの

  11. Myself それは、「学び」

  12. Myself エンジニアとして技術を極められない... 自身が学ばないと 技 術 を 提 唱 で き

    な い ... 技 術 を 教 え ら れ な い ...
  13. Myself 「学び」をどうしているか?

  14. Myself 「何から始めて良いのかわからない」 へのアプローチ

  15. Learn Cloud Native Technology

  16. Learn Cloud Native Technology Books ここ数年にかけてDocker/Kubernetesに関連する書籍が多数出版されました。 DockerとKubernetesを合わせて学ぶことができます。

  17. Learn Cloud Native Technology Books Kubernetesの詳細を学ぶことができます。

  18. Learn Cloud Native Technology Books クラウドネイティブアプリケーションを支える技術としてのDocker/Kubernetesから関 連する技術まで、これからのエコシステムについて学ぶことができます。

  19. Learn Cloud Native Technology Books Docker/Kubernetes上で稼働させるアプリケーションを プロダクションで利用するにはどうするべきかを学ぶことができます。

  20. Learn Cloud Native Technology Web Informations Docker/Kubernetesの公式サイトでは、最新の情報や公式ドキュメントがあります。 https://kubernetes.io/ https://www.docker.com/

  21. Learn Cloud Native Technology Web Training 無料でブラウザさえあればハンズオントレーニングを利用できます。 Docker/KubernetesだけでなくたくさんのCloud Native技術コンテンツがあります。 https://www.katacoda.com/

  22. Learn Cloud Native Technology Conference & Event 技術カンファレンスや技術コミュニティ主催のイベントに参加することで キャッチアップできます。 #CNDT2020

    #KubeCon #CloudNativeCon #k8sjp KubeFest tokyo
  23. Learn Cloud Native Technology Seminar & Training 有料/無料含め、Cloud Native Technologyのセミナーやトレーニングを

    利用して学ぶことができます。 Docker Kubernetes
  24. Learn Cloud Native Technology Contribute Cloud Native TechnologyはOSSがベースとなっているため ソースコードを読むことで勉強となり、修正をプルリクエストして貢献もできます。 海外のエンジニアともSlackなどで交流できます。

    ソースコードは敷居が高い場合があるかもしれません。 公式ドキュメントの翻訳でコントリビュートにチャレンジもできます。
  25. Learn Cloud Native Technology Writing 個人ブログ、QiitaなどのWeb執筆、zenn、技術書典などで自主的に書籍を執筆する ことで学びを得ることができます。

  26. Learn Cloud Native Technology SNS Twitter、FacebookなどでCloud Native Technologyのインフルエンサーや情報源とな るアカウントをフォローして情報をキャッチアップすることから学びに繋がります。

  27. Learn Cloud Native Technology Certificates 資格取得を目指して学ぶのも一つです。 CKA CKAD CKS New!

  28. Learn Cloud Native Technology Main business & Side business 本業の仕事で個人またはチームで試行錯誤しながら、

    副業で自分よりも優れた人たちと共に学ぶのも一つです。
  29. Learn Cloud Native Technology Community 技術コミュニティのミートアップに参加または登壇することで学ぶことができます。 運営メンバーになることで人脈も広がります。

  30. Myself コミュニティついて深堀

  31. Learn Cloud Native Technology クラウドネイティブの状況は、 パブリッククラウドが騒がれ始めた時に似ています。 クラウドの時代にはコミュニティがエンジニアの成長を支えていくのではないか Publickey 2014.2.21 このクラウドをクラウドネイティブに置き換えると当てはまります。

  32. Learn Cloud Native Technology クラウドネイティブ関連技術は、社内や仕事を通して学べる範囲を超えてます!! • 会社の上司が、こうした新技術を包括的に 教えてくれますか? • クラウドネイティブにおける

    DevOps,IoT,Machine Learningなど、多岐 にわたる分野を教えられる人はいますか? • 「できます、やります、頑張ります!」 に限界がありませんか?
  33. Learn Cloud Native Technology 実際の声 “社内に一人でも最新の技術をキャッチアップして、実践して、反映 できる人がいれば良いのですが、現状のIT企業、特に中小企業や最 新技術とは縁遠い部署などでは、最新技術のキャッチアップや技術 取得、社内育成において困難な状況にあります。”

  34. Learn Cloud Native Technology コミュニティがエンジニアの成長のための大事な場所に クラウドネイティブ時代の様々な技術を学ぶために社外へ出て行 き、情報収集、情報発信、情報共有を実践してスキルアップや社内 にフィードバックして育成を計る。 • 国内外カンファレンス

    • ミートアップ • 勉強会/もくもく会 • セミナー/トレーニング • コミュニティ運営 • 技術書籍 • Web情報/トレーニング • コントリビュート/Slack • 技術ブログ/執筆 • SNS イベントへの参加 情報収集、発信、共有
  35. Learn Cloud Native Technology Cloud Native Technology’s Community #k8sjp #dockertokyo

    #rancherjp #paasjp #cndjp #k8sinternal #k8snovice #cloudnativejp #envoytokyo #prometheustokyo #japanrook #openshiftjp
  36. Learn Cloud Native Technology 参加者のメリット • 最新技術、事例等のキャッチアップ • 人とのつながり •

    社内フィードバックからの育成 参加者のデメリット • レベルが高すぎて、ついていけない
  37. Learn Cloud Native Technology 一部の声 “最新の技術をどんどん取り入れて、実践している人達の話は参考にな りますが、レベルが高くてついていけない。結局何から始めてよいのか 分からない。” “入門者向けのハンズオン勉強会は、入りやすく、有識者に質問や相談 することができるので非常にありがたい。自分のスキルアップだけでな

    く、社内へのフィードバック、育成への良いきっかけとなる。”
  38. Learn Cloud Native Technology Docker 入門ハンズオン勉強会 札幌、東京、名古屋、 大阪、京都、神戸、 広島、岡山、福岡、沖縄 全29回

    1年 約400人 無料 #kujiraya
  39. Learn Cloud Native Technology 心の奥底にある声 “できる人に教わりたい、 学びたい、一緒にやりたい”

  40. Teach Cloud Native Technology

  41. Teach Cloud Native Technology 学んで身に着けた技術を どう教えるか、どう教えてきたか?

  42. Teach Cloud Native Technology もちろん、 教えることで学ぶこともあります

  43. Teach Cloud Native Technology 技術面だけではなく、 教え方も考えなければならない

  44. Teach Cloud Native Technology 伝えるから教える

  45. Teach Cloud Native Technology 座学とハンズオン

  46. Teach Cloud Native Technology 1. 主催者がPC、環境、教材もすべて準備 a. 受講者にとっては良いが、主催者としては準備労力とコストが発生 2. 受講者にPCも環境セットアップも準備してもらう(教材は主催者)

    a. 主催者にとって準備労力やコストは抑えられるが、受講者のPC環境差異に よるトラブル率が高まる b. 受講者としては準備労力とコストが発生 ハンズオン環境ってどうしてます?
  47. Teach Cloud Native Technology 1. 受講者にクラウド(有料/無料)のアカウントを準備してもらう a. ノートPC(Win/Mac不問)にブラウザだけで、環境差異のトラブルが生じにくい b. 受講者の準備作業はクラウドのアカウント作成

    c. 主催者の準備労力とコストを削減 d. クラウドベースの教材にすることで、受講後も同じ環境で復習できる 2. Google Cloud Platform(GCP)、Microsoft AzureのCloud Shellが便利 a. 受講者の事前準備におけるツールのインストールが不要になる b. 全てコマンド操作に集約できる ハンズオン環境はクラウド利用
  48. Teach Cloud Native Technology 1. スライド a. 図を多く、文字少なめで簡潔が理想! b. コマンド結果を載せる場合は、説明が必要な場合に!

    2. ハンズオン用テキスト a. 手打ちではオペミスによる誤作動率があがります b. 復習の利便性向上 c. コピー&ペースト用のテキストとコマンド結果表示も掲載しておくと良い d. 「クリップボードにコピー」ボタンを用意をオススメ! e. どこで?⇒GitHub、GitLab、Qiita、ブログサービスなど 教材はどうしてます?
  49. Teach Cloud Native Technology 1. 座学とハンズオンの組み合わせ 2. ハンズオンのパターン a. 受講者と一緒に行う

    b. 一定時間を設けて受講者に実習、実習後に解説 3. ハンズオンの前に必ず全体説明 4. ハンズオン中に何をやっているか見失わないようにする トレーニングの流れはどうしてます?
  50. Teach Cloud Native Technology 初級講座で Docker/Kubernetesのつまずくポイント

  51. Teach Cloud Native Technology 1. 仮想マシンとコンテナの違い 2. 仮想マシンイメージとコンテナイメージ(イメージとコンテナ含む)の違い 3. DockerとContainerRuntimeの関係性

    4. Kubernetesってそもそも何? 5. コンテナアプリケーション開発の全体像って? Q&Aでもよく質問されます
  52. Teach Cloud Native Technology 仮想マシンとコンテナの違い Virtual Machine Hypervisor Hardware Kernel

    Library Application Virtual Machine Kernel Library Application Conainer Container Engine Hardware Kernel Library Application Container Library Application 各仮想マシンでカーネルが稼働、隔離性が高いが、 起動が遅く(数分)オーバヘッドが大きい カーネルを共有しているため、隔離性は低いが、 起動が高速(数秒)でオーバヘッドが小さい 仮想マシンは個別のカーネル利用、コンテナはホストのカーネルを共有
  53. Virtual Machine Teach Cloud Native Technology 仮想マシンイメージとコンテナイメージの違い Application OS/Library Hypervisor

    Hardware 仮想マシンイメージがベンダー製品特有 の形式で容量も重く可搬性も低い 仮想マシンイメージ
  54. Teach Cloud Native Technology コンテナイメージ 1.ビルド(Build) OS/Library Application OS/Library Container

    Image Build • OS/ライブラリとアプリケーションをパッケージイメージ化 • イメージはこれまでの仮想マシンイメージに比べるとはるかに軽いのでポータビリティ性が高い 2.シップ(Ship) • イメージをレジストリに保存して共有 OS/Library Container Image OS/Library Image Registry OS/Library Push Pull Image Share/Ship
  55. Teach Cloud Native Technology 3.ラン(Run) OS/Library Container Image • イメージを基にコンテナを起動します。

    Run OS/Library Container OS/Library Container コンテナープラットフォーム上でイメージからコンテナを起動して、アプリケーションを稼働させます。 イメージもプラットフォームも特定ベンダー技術に依存しないため、ベンダーロックインもありません。 Container Platform
  56. Teach Cloud Native Technology DockerとContainer Runtimeの関係性 コンテナを実際に作るのはDockerではなく、Container Runtimeです。 Docker Docker

    Client containerd runC Linux cgroups Namespaces Union Filesystem Network Low-level Container Runtime High-level Container Runtime OCI(Open Container Initiative) CRI(Container Runtime Interface) kubelet Container
  57. Teach Cloud Native Technology docker CLI dockerd Containerd runC Low-level

    Container Runtime High-level Container Runtime Docker Engine Client Side Server Side 構成要素 説明 docker CLI コマンドラインインターフェースとしてDockerコマンドを提供します。 dockerd イメージ、ファイルシステム、ネットワークの管理、REST APIの提供するDockerの本体。Mobyとも呼ばれています。 containerd CNCF(CloudNativeComputingFoundation)にホストされているcontainerdは、Dockerのハイレベルコンテナーランタイムとしてコンテナーのラ イフサイクルを担います。KubernetesではCRI(Container Runtime Interface)プラグインに対応してPod用のNICやベースとなるpauseコンテ ナーを作成します。 runC OCI(Open Container Initiative)にホストされているrunCは、Dockerのローレベルコンテナーランタイムとしてシステムリソースの隔離で namespace、制限でcgroups、セキュリティでAppArmor・SELinux・seccomp等、ホストカーネルの機能を利用してコンテナーを作成します。
  58. Teach Cloud Native Technology そもそもKubernetesとは? BareMetal Virtual Machine Kubernetesは分散処理基盤 Kubernetes

    Container
  59. Image Repositry Teach Cloud Native Technology コンテナアプリケーション開発の全体像って? OS/Library OS/Library OS/Library

    Container OS/Library Container Container Platform BareMetal Virtual Machine IaaS Developer Code Repository CI/CD Pipeline Build Ship Run コンテナープラットフォーム へのデプロイ CIパイプラインによる テスト、ビルド、イメージプッシュ イメージ共有 コンテナーの可搬性(Portability)とスピード(Agility)を持ち合わせ、 品質および生産性の高いアプリケーション開発を実現 Infrastructure Engineer Operator Code Dockerfile manifest
  60. Image Repositry Teach Cloud Native Technology OS/Library OS/Library OS/Library Container

    OS/Library Container Container Platform BareMetal Virtual Machine IaaS Developer Code Repository CI/CD Pipeline Build Ship Run コンテナープラットフォーム へのデプロイ CIパイプラインによる テスト、ビルド、イメージプッシュ イメージ共有 傾向として、CDをGitで管理するGitOps手法が取り入られ始めています。 Infrastructure Engineer Operator Config Repository Pull Request GitOps Operator CD Change manifest Change code manifest Code Dockerfile
  61. Summary

  62. Teach Cloud Native Technology 学ぶと教えるは表裏一体、 継続することが大切です!

  63. Information

  64. CNBF Next Online Meetup 2020.11.11(Wed) 詳細は近日公開!! https://cnbfmeetup.connpass.com/

  65. Thank you !!