Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
クラウドネイティブ アプリケーション概論
Search
Nao_Saino
April 08, 2022
Technology
0
140
クラウドネイティブ アプリケーション概論
Nao_Saino
April 08, 2022
Tweet
Share
More Decks by Nao_Saino
See All by Nao_Saino
結局requestsとlimitsはどう設定すればいいのか
nao_saino
1
620
Other Decks in Technology
See All in Technology
LINEヤフーのフロントエンド組織・体制の紹介【24年12月】
lycorp_recruit_jp
0
550
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
320
DUSt3R, MASt3R, MASt3R-SfM にみる3D基盤モデル
spatial_ai_network
2
230
UI State設計とテスト方針
rmakiyama
3
780
サイボウズフロントエンドエキスパートチームについて / FrontendExpert Team
cybozuinsideout
PRO
5
38k
10個のフィルタをAXI4-Streamでつなげてみた
marsee101
0
180
AWS re:Invent 2024 ふりかえり勉強会
yhana
0
390
Server-Side Engineer of LINE Sukimani
lycorp_recruit_jp
0
340
TSKaigi 2024 の登壇から広がったコミュニティ活動について
tsukuha
0
160
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
300
Oracle Cloud Infrastructure:2024年12月度サービス・アップデート
oracle4engineer
PRO
1
250
クレカ・銀行連携機能における “状態”との向き合い方 / SmartBank Engineer LT Event
smartbank
2
100
Featured
See All Featured
A better future with KSS
kneath
238
17k
Optimizing for Happiness
mojombo
376
70k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
Adopting Sorbet at Scale
ufuk
73
9.1k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Why Our Code Smells
bkeepers
PRO
335
57k
Transcript
クラウドネイティブ アプリケーション概論 仮想マシン コンテナ サーバレス
- 「クラウドネイティブ」という言葉は、徹底的なクラウドの利活用によるビジネス価値の 提供を意図する。弊社もこれを志向している。 - そもそも、なんでクラウドを使うとビジネス価値に繋がるのかというと、開発者が物理 サーバの開発保守運用コストから開放されることで、プロダクトの差別化に繋がるビ ジネスロジックの開発に注力できるようになるからである。 - 一方でパブリッククラウドを使う者にとってそれは、クラウド事業者への依存度を高め ることとのトレードオフでもあり適切な責任分界の設定が望ましい。
- 一言にクラウドといえどIaaS, CaaS, PaaS, FaaS, SaaSなどクラウド事業者の管理範 囲に応じて、様々な種類のサービスが存在する。 - クラウド利用を前提としたアプリ開発にはどのような選択肢があり、開発者がどんな 恩恵を受けることができるかについて、今回はその一般論をまとめた。 今日のお話(最初から文字が多い)
要するにこの図の話 https://www.devopsplatform.co.uk/blogs/cloud-services
キーワード - クラウドネイティブ - オンプレミスとクラウド - 物理マシンと仮想マシン - ハイパバイザ型仮想化とコンテナ型仮想化 -
マイクロサービスとコンテナオーケストレーション - サーバレス - IaaS, CaaS, PaaS, FaaS, SaaS
1. 「クラウドネイティブ」とは? 2. 仮想マシンからコンテナへ 3. サーバレスとは 目次
「クラウドネイティブ」 とは?
クラウドネイティブとは、 回復性、管理力、および可観測性のある疎結合システムを 堅牢な自動化と組み合わせることで、 インパクトのある変更を最小限の労力で頻繁かつ予測どおりに行う設計思想 「クラウドネイティブ」とは? https://github.com/cncf/toc/blob/main/DEFINITION.md#%E6%97%A5%E6%9C%AC%E8%AA%9E%E7%89%88 CNCFの定義によれば、、、 「ネイティブ」という言葉通り、 クラウドの利用は当たり前の前提として、「どう活用するのが最適か」に重点を置いた言葉。
パブリッククラウドのメリット - パブリッククラウド = GCPやAWSなどクラウド事業者が提供するクラウド https://aws.amazon.com/jp/cloud/
https://www.devopsplatform.co.uk/blogs/cloud-services IaaS CaaS PaaS FaaS SaaS EC2 EKS Beanstalk Lambda
Athena など GCE GKE GAE Cloud Functions BigQuery など 仮想マシン コンテナオーケスト レーション アプリケーション開 発のプラットフォー ム サーバレス開発環境 を提供するサービス 独立した機能を持 つサービス
バックエンドの構造
IaaS - ハードウェアを抽象化。 - いわゆるクラウド仮想マシン(VM) - クラウド上にすぐ立てられるサーバ。 - 数分で起動できる。 -
オートスケールもできるが、リソース的にはやや大きい 単位での抽象化。 - GCE, EC2が代表例。
弊社にもかつてVM時代があった。
仮想マシンから コンテナへ
- コンテナはOSの仮想化をしない点で従来 の仮想化と異なり,「迅速な起動」と「高い 可搬性」を可能に。 - 数分(VM)→数秒でのデプロイ。 - Linuxがあればどこでも動く(Docker)。 - 環境依存度の低さと、高速起動を両立。
- リソース的にもVMより小さな単位での仮 想化を可能に。 「仮想マシン(VM)」と「コンテナ」 https://psc-smartwork.com/topics/2021/08/162.html
クラウドネイティブの鍵を握る「コンテナ」 - 迅速な起動→k8sのオートスケール、セルフヒーリングへの応用。 - 高可搬性→コンテナを軸とした高速で再現性のあるCI/CDパイプラインの構築。 - VMに比べリソース効率が向上。 - 機能ごとにアプリケーションを分割するマイクロサービス構成との相性も良い。
- コンテナアプリのプラットフォーム - コンテナオーケストレーションのデファクトであるk8sを、 クラウド事業者の用意する環境で実行できるマネージド k8sが主な例。 - GKE, EKSが代表例。 CaaS
サーバの抽象化が進むと - 物理マシン→VM→コンテナ - 「サーバの抽象化が進む」 = 「クラウド事業者に委託する部分が増える」ほど開発者 の管理する範囲は減りビジネスロジックに注力できるとされる。 - 一方で「クラウド事業者への依存が高まる」「低いレイヤ部分の拡張性が失われる」
こととのトレードオフ。 - コンテナよりもさらに一段抽象化を進めたのが「サーバレス」
サーバレスとは
サーバレスとは https://www.slideshare.net/AmazonWebServicesJapan/202107-aws-black-belt-online-seminar-con350/11
サーバレスとは - サーバの存在を意識することなくシステムを構築できるサービスの総称。 - サーバ構築保守運用はクラウド事業者が行い、開発者はプログラムの部分にだ け注力することができるのがメリット。 - ◦aaSとはまた別の区分の言葉。 - AWS
Fargate(サーバレスコンテナ)、AWS Lambda(FaaS)などが代表例。 https://blog.qbist.co.jp/?p=2654
FaaS(Function as a Service) - 開発者はアプリケーションのコードだけ書く。 - インフラのことはほぼ考えなくていい。 - 関数単位でアプリを分割し、その組み合わせでサービス
を構成する。 - 関数の実行時間中のみ課金が生じる。 - AWS Lamda, GCP CloudFunctionsが代表例。
https://www.devopsplatform.co.uk/blogs/cloud-services IaaS CaaS PaaS FaaS SaaS EC2 EKS Beanstalk Lambda
Athena など GCE GKE GAE Cloud Functions BigQuery など 仮想マシン コンテナオーケスト レーション アプリケーション開 発のプラットフォー ム サーバレス開発環境 を提供するサービス 独立した機能を持 つサービス
まとめ - パブリッククラウドの提供するサービスには、その責任範囲に応じて様々な種類 がある。 - 弊社はIaaS (GCE) → CaaS (GKE)を辿ってきた。
- パブリッククラウドの利用により開発者は様々な恩恵を受けられるが、一方で拡 張性やクラウド事業者への依存とのトレードオフでもある。
みなさんに質問 - オンプレや仮想マシンでの開発のことを知らないので、クラウドのメリットを感じた 実体験などあればお願いします。
有益なリンク - コンテナ技術概要 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 -