Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

CNCF Updates 2019 Winter version and Knative

1,660 views

Published on

Red Hat on Cloud Day における発表資料です(2019年1月10日)。

Published in: Software
  • Be the first to comment

CNCF Updates 2019 Winter version and Knative

  1. 1. CNCF Updates 2019 Winter version and Knative Masahito Zembutsu @zembutsu SAKURA Internet Inc. Jan 10, 2019 Red Hat on Cloud Day
  2. 2. • CNCF ( Cloud Native Computing Foundation ) とは、 ベンダ中立の立場でオープンソースのエコシステムを促進する団体 • 2018年はプロジェクトのいくつかが Graduate (誰でも利用できる状態) に移行- Kubernetes(3月)、Prometheus(8月)、Envoy(11月) • Knative とは、最新のサーバレス・ワークロードを構築・展開・管理する ための、Kubernetes 基盤のプラットフォーム。
  3. 3. Cloud Native Computing Foundation 3
  4. 4. © 2018 Cloud Native Computing Foundation4 ※ https://github.com/cncf/presentations からの引用 コンテナ クラウド ネイティブ 仮想化からクラウド・ネイティブへ From Virtualization to Cloud Native オープン ソース IaaS Paa S オープン ソース PaaS 仮想化 2000 2001 2006 2009 2010 2011 非仮想化 ハードウェア 2013 2015 IaaS • クラウド・ネイティブ・コンピューティングはオープンソースのソフト ウェアを積み重ね、次のために用います: – アプリケーションをマイクロサービス(microservices)に分割し、 – 各パーツ自身をコンテナにパッケージし、 – リソース利用を最適化するために、動的に統合および オーケストレート(orchestrate)する
  5. 5. Cloud Native Computing Foundation (CNCF) 5【参考】 CNCF About https://www.cncf.io/about/faq/ 2000年設立。Linuxを中心としたオープンソースの エコシステムを築くため、コンピュータ業界を中心に 自動車業界など、50以上のサブプロジェクトを持つ。 幅広く業界との調整や標準化のために努める非営利 団体。 ベンダロックイン無くクラウドを移動できるように  コンテナ化  動的なオーケストレーション  マイクロサービス指向 オープンソースのソフトウェアを積み重ねて: アプリケーションやプロセス等の各パートをコンテナ内に パッケージ化し、再利用性、透明性、、リソースを分離 コンテナを活発にスケジュールし、 リソース利用率の最適化を管理 アプリケーションをマイクロサービスに分割し、 全体的な敏捷性(agility)とメンテナンス性を極めて向上 プロジェクトを支援2015年設立
  6. 6. CNCF • https://www.cncf.io 6
  7. 7. CNCF Cloud Native Definition v1.0 • Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach. • These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil. • The Cloud Native Computing Foundation seeks to drive adoption of this paradigm by fostering and sustaining an ecosystem of open source, vendor-neutral projects. We democratize state- of-the-art patterns to make these innovations accessible for everyone. 7https://github.com/cncf/toc/blob/master/DEFINITION.md (2018-06-11) クラウド・ネイティブ技術は、組織に対して 様々に移り変わる環境で構築・実行できる ようにする。宣言型APIの手法を用いる。 技術により、柔軟性があり、管理および管 理可能な疎結合のシステムを実現する。 技術者は最低限の作業で、定期的な変更 や予測が可能になる。 CNCFはベンダ中立の立場でオープン ソースのエコシステムを育成する。 誰もがイノベーションにアクセスできるよ う、最先端のパターンを民主化する。
  8. 8. 従来のオーケストレーション 8【参考】 https://www.slideshare.net/Docker/container-orchestration-from-theory-to-practice/7 クラスタ 一方通行
  9. 9. 宣言型サービス・モデルのオーケストレーション 9 Declarative service model 【参考】 https://www.slideshare.net/Docker/container-orchestration-from-theory-to-practice/7 OD クラスタ Δ S D = 期待状態 O = オーケストレータ S = 状態 Δ = 状態から期待状態への収束 フィードバック  レプリカ作成  グローバル・サービス 並列 遅延 変更可能
  10. 10. 10 Orchestration ( ( ) Scheduling Cluster Management 複数のホスト・システム上を横 断するアプリケーションをス ケール(拡大・縮小)できる機能 ※コンテナに依存しない • Marathon, chronos • Docker swarm • Deis • fleet • Apache Mesos • DCOS (Mesosphere) • Kubernetes • Docker Engine (swarm mode) + Docker Compose • Rancher • Nomad 設定ファイルをベースに サービスを定義・維持 計算資源の抽象化
  11. 11. Cloud Native Trail Map • https://github.com/cncf/trailmap • どのように Cloud Native を実現するか 道筋を示している • 1,2,3 は必須 • 4からは必要に応じて 11
  12. 12. 1. コンテナ化 • Docker コンテナで一般的に行う • あらゆる大きさのアプリケーションと依存関係(エ ミュレータ上で実行する PDP-11 のコードですら) をコンテナ化できる • 時間がたてば、適切なアプリケーション分割を求 めるようになり、次世代の機能をマイクロサービス として書くでしょう 12
  13. 13. 2. CI/CD • 継続的インテグレーション/継続的デリバリ (CI/CD)をセットアップすると、ソースコードに対 する変更の結果、自動的に新しいコンテナが構 築、テストされ、定期的にテスト環境に展開する だけでなく、本番環境にすら展開する。 • ロールアウト、ロールバック、テストを自動的に行 うようセットアップする。 13
  14. 14. 3. オーケストレーション • Kubernetes は業界トップのオーケストレーション・ ソリューションです。 • 認証 Kubernetes ディストリビューション、対応 (Hosted)プラットフォーム、インストーラーから 選択すべきです。 14
  15. 15. Cloud Native Trail Map • https://github.com/cncf/trailmap • どのように Cloud Native を実現するか 道筋を示している • 1,2,3 は必須 • 4からは必要に応じて 15
  16. 16. Cloud Native 参照アーキテクチャ Networking Provisioning Runtime Orchestration & Management Application Definition / Development Compute Storage マイクロサービス・パターン 分散オーケストレーションと管理 コンテナ化 インフラ ※ CNCFプロジェクトが定義する範囲外 【参考】 https://github.com/cncf/presentations/blob/master/2016-software-circus/what-is-cloud-native/what-is-cloud-native.pdf 16
  17. 17. © 2018 Cloud Native Computing Foundation17 インタラクティブなランドスケープは l.cncf.io をご覧ください
  18. 18. Cloud Native Landscape https://l.cncf.io
  19. 19. © 2018 Cloud Native Computing Foundation19
  20. 20. CNCF Updates 2019 Winter Version 20
  21. 21. CNCFのプロジェクト成熟度 21
  22. 22. CNCFがホストするプロジェクト 22
  23. 23. Knative 23
  24. 24. Knative - https://github.com/knative 24 • 最新のサーバレス・ワークロードを 構築・展開・管理するための、 Kubernetes 基盤のプラットフォーム Kubernetes-based platform to build, deploy, and manager modern serverless workloads • Google Cloud Next 2018 で発表 2018-06-24 • Google, Pivotal, IBM, Red Hat, SAP • 最新のサーバレス・ワークロードを 構築・展開・管理するための、 Kubernetes 基盤のプラットフォーム Kubernetes-based platform to build, deploy, and manager modern serverless workloads https://github.com/knative/docs
  25. 25. Cloud Native 参照アーキテクチャ Networking Provisioning Runtime Orchestration & Management Application Definition / Development Compute Storage マイクロサービス・パターン 分散オーケストレーションと管理 コンテナ化 インフラ ※ CNCFプロジェクトが定義する範囲外 【参考】 https://github.com/cncf/presentations/blob/master/2016-software-circus/what-is-cloud-native/what-is-cloud-native.pdf 25
  26. 26. Knative アーキテクチャ 26 Knative Istio Kuberneteskubectl 機能 FEATURE 構築 Build サービス Serving イベント Events • ルーティング • バージョン管理 • スケーリング https://github.com/knative/serving Kubernetes-based, scale-to-zero, request-driven compute • テンプレート • カスタムソース https://github.com/knative/build A Kubernetes-native Build resource • パイプライン • トリガ https://github.com/knative/eventing Open source specification and implementation of Knative event binding and delivery API
  27. 27. そもそも、どうしてServerless的アプローチなのか? • 物理マシンじゃだめなんですか? • VMじゃだめなんですか? • クラウドじゃだめなんですか? • コンテナじゃだめなんですか? • Kubernetesじゃだめなんですか? 27 ソフトウェア(アプリケーション)の実行環境を分けながら 効率的に計算資源を使いたい、という歴史的経緯
  28. 28. 28 物理サーバだけの時代 とある物理サーバ 故障すると大変 CPU メモリ ディスク 調達・管理コストの課題 基本、ハードウェア固定 オペレーティングシステム ミドルウェアやライブラリA B C アプリ 1 リソース有効活用のしづらさ
  29. 29. 29 仮想化技術の時代 とある仮想サーバA とある仮想サーバB とある仮想サーバC OS ミドルウェア アプリケーション OS ミドルウェア アプリケーション OS ミドルウェア アプリケーション 時間 リ ソ ー ス 使 用 率 時間 時間 サーバが増減できるよ、やったね! アプリケーション アプリケーション アプリケーション うーん、この無駄
  30. 30. 30 思い描く理想 サーバ1台で3台分の仕事ができるよ、やったね!
  31. 31. 31 分かっちゃいるけど どうするんだこれ? • クラスタを効率的に管理するには? • システムの冗長性を担保するには? • スケールアップ・スケールダウンを 簡単にするには? とある管理者の 憂鬱
  32. 32. 32 とある仮想サーバA とある仮想サーバB とある仮想サーバC OS OS OS 時間 リ ソ ー ス 使 用 率 時間 時間 効率的に使えるよ、やったね! スケジューラの出番 何か、のスケジューラ アプリ アプリアプリ アプリ アプリアプリアプリ アプリ 動くアプリが増えるね!! アプリ
  33. 33. 33 分かっちゃいるけど どうするんだこれ? その2 • アプリケーションのセットアップ・削除を 簡単に行うには? • スケールアップ・スケールダウンを 簡単にするには? とある管理者の 憂鬱
  34. 34. 34
  35. 35. 35 時間 時間 時間 Knative Istio Kubernetes 機能 FEATURE 構築 Build サービス Serving イベント Events
  36. 36. setup • 事前準備 • /etc/kubernetes/manifests/kube-apiserver.yaml 「 - --enable-admission-plugins=NodeRestriction,MutatingAdmissionWebhook」 • それから https://github.com/knative/docs/blob/master/install/README.md • kubectl apply --filename https://github.com/knative/serving/releases/download/v0.2.2/istio-crds.yaml && ¥ • kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.2.2/third_party/istio-1.0.2/istio.yaml • kubectl label namespace default istio-injection=enabled • kubectl apply --filename https://github.com/knative/serving/releases/download/v0.2.2/release.yaml • kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.2.2/third_party/config/build/release.yaml • ドキュメント・サンプル • https://github.com/knative/docs 36
  37. 37. https://github.com/knative/docs Kubernetes-based platform to build, deploy, and manage modern serverless workloads 37
  38. 38. ちなみに 38
  39. 39. ソフトウェアや サービス開発の 前提が変わる • パッケージ販売モデルの終 焉と、終わりなき開発・改善 • オーバーシューティング (出典)ソフトウェアビジネスの未来、前川徹、2011年
  40. 40. キーワード 40 Robotic Process Automation ロボティック・プロセス・ オートメーション Serverless FaaS (Function as a Service) サービス・アプリケーション層 計算資源の基盤・プラットフォーム層  サーバレス・コンピューティングはアプリケーションを構築・実行 するための概念を言及するもので、サーバ管理は扱わない。 →アプリケーションの洗練されたデプロイ・モデル(方式)  サーバレス・コンピューティングとは、コードを実行するために サーバを持たないのを意味するのではないし、運用エンジニア が不要になるのも意味しない。 →開発者はビジネスロジックに応じたアプリケーションを書くの に集中でき、運用担当者はビジネスにクリティカルなタスクに 集中できる。  ロボティック・プロセス・オートメーション(Robotic Process Automation, RPA)とは、認知技術(ルールエ ンジン・機械学習・人工知能等)を活用した、主にホワイト カラー業務の効率化・自動化の取組みである。  人間の補完として業務を遂行できることから、仮想知的労 働者(Digital Labor)とも言われている。また、デスクトッ プ作業のみに絞ったものをロボティック・デスクトップ・ オートメーションと呼び、RPAと区別することもある。 コーディングが不要 サーバの管理が不要
  41. 41. まとめ 41
  42. 42. まとめ • CNCF ( Cloud Native Computing Foundation ) とは、 ベンダ中立の立場でオープンソースのエコシステムを促進する団体。 • 2018年はプロジェクトのいくつかが Graduate (誰でも利用できる状態) に移行- Kubernetes(3月)、Prometheus(8月)、Envoy(11月) • Knative とは、最新のサーバレス・ワークロードを構築・展開・管理する ための、Kubernetes 基盤のプラットフォーム。 42
  43. 43. Q&A • 何か気になるところはありますか? • Twitter: @zembutsu • 過去のスライド: https://slideshare.net/zembutsu 43

×