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
150
クラウドネイティブ アプリケーション概論
Nao_Saino
April 08, 2022
Tweet
Share
More Decks by Nao_Saino
See All by Nao_Saino
結局requestsとlimitsはどう設定すればいいのか
nao_saino
1
690
Other Decks in Technology
See All in Technology
大「個人開発サービス」時代に僕たちはどう生きるか
sotarok
20
10k
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
190
機械学習を扱うプラットフォーム開発と運用事例
lycorptech_jp
PRO
0
560
AIをプライベートや業務で使ってみよう!効果的な認定資格の活かし方
fukazawashun
0
100
「その開発、認知負荷高すぎませんか?」Platform Engineeringで始める開発者体験カイゼン術
sansantech
PRO
2
110
いま注目のAIエージェントを作ってみよう
supermarimobros
0
340
ブロックテーマ時代における、テーマの CSS について考える Toro_Unit / 2025.09.13 @ Shinshu WordPress Meetup
torounit
0
130
【NoMapsTECH 2025】AI Edge Computing Workshop
akit37
0
220
5分でカオスエンジニアリングを分かった気になろう
pandayumi
0
250
【実演版】カンファレンス登壇者・スタッフにこそ知ってほしいマイクの使い方 / 大吉祥寺.pm 2025
arthur1
1
890
プラットフォーム転換期におけるGitHub Copilot活用〜Coding agentがそれを加速するか〜 / Leveraging GitHub Copilot During Platform Transition Periods
aeonpeople
1
210
OCI Oracle Database Services新機能アップデート(2025/06-2025/08)
oracle4engineer
PRO
0
170
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
How GitHub (no longer) Works
holman
315
140k
Large-scale JavaScript Application Architecture
addyosmani
513
110k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Git: the NoSQL Database
bkeepers
PRO
431
66k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Automating Front-end Workflow
addyosmani
1370
200k
Code Review Best Practice
trishagee
71
19k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
113
20k
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 -