Slide 1

Slide 1 text

クラウドネイティブ アプリケーション概論 仮想マシン コンテナ サーバレス

Slide 2

Slide 2 text

- 「クラウドネイティブ」という言葉は、徹底的なクラウドの利活用によるビジネス価値の 提供を意図する。弊社もこれを志向している。 - そもそも、なんでクラウドを使うとビジネス価値に繋がるのかというと、開発者が物理 サーバの開発保守運用コストから開放されることで、プロダクトの差別化に繋がるビ ジネスロジックの開発に注力できるようになるからである。 - 一方でパブリッククラウドを使う者にとってそれは、クラウド事業者への依存度を高め ることとのトレードオフでもあり適切な責任分界の設定が望ましい。 - 一言にクラウドといえどIaaS, CaaS, PaaS, FaaS, SaaSなどクラウド事業者の管理範 囲に応じて、様々な種類のサービスが存在する。 - クラウド利用を前提としたアプリ開発にはどのような選択肢があり、開発者がどんな 恩恵を受けることができるかについて、今回はその一般論をまとめた。 今日のお話(最初から文字が多い)

Slide 3

Slide 3 text

要するにこの図の話 https://www.devopsplatform.co.uk/blogs/cloud-services

Slide 4

Slide 4 text

キーワード - クラウドネイティブ - オンプレミスとクラウド - 物理マシンと仮想マシン - ハイパバイザ型仮想化とコンテナ型仮想化 - マイクロサービスとコンテナオーケストレーション - サーバレス - IaaS, CaaS, PaaS, FaaS, SaaS

Slide 5

Slide 5 text

1. 「クラウドネイティブ」とは? 2. 仮想マシンからコンテナへ 3. サーバレスとは 目次

Slide 6

Slide 6 text

「クラウドネイティブ」 とは?

Slide 7

Slide 7 text

クラウドネイティブとは、     回復性、管理力、および可観測性のある疎結合システムを     堅牢な自動化と組み合わせることで、     インパクトのある変更を最小限の労力で頻繁かつ予測どおりに行う設計思想  「クラウドネイティブ」とは? https://github.com/cncf/toc/blob/main/DEFINITION.md#%E6%97%A5%E6%9C%AC%E8%AA%9E%E7%89%88 CNCFの定義によれば、、、 「ネイティブ」という言葉通り、 クラウドの利用は当たり前の前提として、「どう活用するのが最適か」に重点を置いた言葉。

Slide 8

Slide 8 text

パブリッククラウドのメリット - パブリッククラウド = GCPやAWSなどクラウド事業者が提供するクラウド https://aws.amazon.com/jp/cloud/

Slide 9

Slide 9 text

https://www.devopsplatform.co.uk/blogs/cloud-services IaaS CaaS PaaS FaaS SaaS EC2 EKS Beanstalk Lambda Athena など GCE GKE GAE Cloud Functions BigQuery など 仮想マシン コンテナオーケスト レーション アプリケーション開 発のプラットフォー ム サーバレス開発環境 を提供するサービス 独立した機能を持 つサービス

Slide 10

Slide 10 text

バックエンドの構造

Slide 11

Slide 11 text

IaaS - ハードウェアを抽象化。 - いわゆるクラウド仮想マシン(VM) - クラウド上にすぐ立てられるサーバ。 - 数分で起動できる。 - オートスケールもできるが、リソース的にはやや大きい 単位での抽象化。 - GCE, EC2が代表例。

Slide 12

Slide 12 text

弊社にもかつてVM時代があった。

Slide 13

Slide 13 text

仮想マシンから コンテナへ

Slide 14

Slide 14 text

- コンテナはOSの仮想化をしない点で従来 の仮想化と異なり,「迅速な起動」と「高い 可搬性」を可能に。 - 数分(VM)→数秒でのデプロイ。 - Linuxがあればどこでも動く(Docker)。 - 環境依存度の低さと、高速起動を両立。 - リソース的にもVMより小さな単位での仮 想化を可能に。 「仮想マシン(VM)」と「コンテナ」 https://psc-smartwork.com/topics/2021/08/162.html

Slide 15

Slide 15 text

クラウドネイティブの鍵を握る「コンテナ」 - 迅速な起動→k8sのオートスケール、セルフヒーリングへの応用。 - 高可搬性→コンテナを軸とした高速で再現性のあるCI/CDパイプラインの構築。 - VMに比べリソース効率が向上。 - 機能ごとにアプリケーションを分割するマイクロサービス構成との相性も良い。

Slide 16

Slide 16 text

- コンテナアプリのプラットフォーム - コンテナオーケストレーションのデファクトであるk8sを、 クラウド事業者の用意する環境で実行できるマネージド k8sが主な例。 - GKE, EKSが代表例。 CaaS

Slide 17

Slide 17 text

サーバの抽象化が進むと - 物理マシン→VM→コンテナ - 「サーバの抽象化が進む」 = 「クラウド事業者に委託する部分が増える」ほど開発者 の管理する範囲は減りビジネスロジックに注力できるとされる。 - 一方で「クラウド事業者への依存が高まる」「低いレイヤ部分の拡張性が失われる」 こととのトレードオフ。 - コンテナよりもさらに一段抽象化を進めたのが「サーバレス」

Slide 18

Slide 18 text

サーバレスとは

Slide 19

Slide 19 text

サーバレスとは https://www.slideshare.net/AmazonWebServicesJapan/202107-aws-black-belt-online-seminar-con350/11

Slide 20

Slide 20 text

サーバレスとは - サーバの存在を意識することなくシステムを構築できるサービスの総称。 - サーバ構築保守運用はクラウド事業者が行い、開発者はプログラムの部分にだ け注力することができるのがメリット。 - ○aaSとはまた別の区分の言葉。 - AWS Fargate(サーバレスコンテナ)、AWS Lambda(FaaS)などが代表例。 https://blog.qbist.co.jp/?p=2654

Slide 21

Slide 21 text

FaaS(Function as a Service) - 開発者はアプリケーションのコードだけ書く。 - インフラのことはほぼ考えなくていい。 - 関数単位でアプリを分割し、その組み合わせでサービス を構成する。 - 関数の実行時間中のみ課金が生じる。 - AWS Lamda, GCP CloudFunctionsが代表例。

Slide 22

Slide 22 text

https://www.devopsplatform.co.uk/blogs/cloud-services IaaS CaaS PaaS FaaS SaaS EC2 EKS Beanstalk Lambda Athena など GCE GKE GAE Cloud Functions BigQuery など 仮想マシン コンテナオーケスト レーション アプリケーション開 発のプラットフォー ム サーバレス開発環境 を提供するサービス 独立した機能を持 つサービス

Slide 23

Slide 23 text

まとめ - パブリッククラウドの提供するサービスには、その責任範囲に応じて様々な種類 がある。 - 弊社はIaaS (GCE) → CaaS (GKE)を辿ってきた。 - パブリッククラウドの利用により開発者は様々な恩恵を受けられるが、一方で拡 張性やクラウド事業者への依存とのトレードオフでもある。

Slide 24

Slide 24 text

みなさんに質問 - オンプレや仮想マシンでの開発のことを知らないので、クラウドのメリットを感じた 実体験などあればお願いします。

Slide 25

Slide 25 text

有益なリンク - コンテナ技術概要 https://www.scsk.jp/sp/openshift/about_container.html - 20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda https://www.slideshare.net/AmazonWebServicesJapan/20190402-aws-blac k-belt-online-seminar-lets-dive-deep-into-aws-lambda-part1-part2 -