More Related Content Similar to アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ (20) More from Yusuke Suzuki (20) アーキテクチャの進化から学ぶ、プラットフォームエンジニアリングへのアプローチ12. 補⾜
対応表
11
電⾞の説明 スクラム⽤語 説明
電⾞の運⾏ スプリント 繰り返し続ける作業期間。1ヶ⽉以内の決まった
⻑さ
出発ホーム プロダクトバックログ これからやりたいことを優先順に並べたリスト
の乗客 プロダクトバックログアイテム そのリストの1⾏
電⾞に乗る スプリントプランニング スプリントの開始時に、このスプリントでやる
ことを決めるイベント
電⾞ スプリントバックログ このスプリントで実施するタスクのリスト。
スプリントプランニングでプロダクトバックロ
グからアイテムを移動させてくる
の乗客 スプリントバックログアイテム そのリストの1⾏
18. 参考
クラウド・コンピューティングの定義
17
オンデマンド・ セルフサービス
(On-demand self-service)
ユーザは、各サービスの提供者と直接やりとりすることなく、必要に応じ、⾃動的に、サーバーの稼
働時間やネットワークストレージのようなコンピューティング能⼒を⼀⽅的に設定できる。
幅広いネットワークアクセス
(Broad network access)
コンピューティング能⼒は、ネットワークを通じて利⽤可能で、標準的な仕組みで接続可能であり、
そのことにより、様々なシンおよびシッククライアントプラットフォーム(例えばモバイルフォン、
タブレット、ラップトップ コンピュータ、ワークステーション)からの利⽤を可能とする。
リソースの共⽤
(Resource pooling)
サービスの提供者のコンピューティングリソースは集積され、複数のユーザにマルチテナントモデル
を利⽤して提供される。様々な物理的・仮想的リソースは、ユーザの需要に応じてダイナミックに割
り当てられたり 再割り当てされたりする。物理的な所在場所に制約されないという考え⽅で、ユーザ
は⼀般的に、提供されるリソースの正確な所在地を知ったりコントロールしたりできないが、場合に
よってはより抽象的なレベル (例:国、州、データセンタ)で特定可能である。リソースの例として
は、ストレージ、処理能⼒、メモリ、およびネットワーク帯域が挙げられる。
スピーディな拡張性
(Rapid elasticity)
コンピューティング能⼒は、伸縮⾃在に、場合によっては⾃動で割当ておよび提供が可能で、需要に
応じて即座にスケールアウト/スケールインできる。ユーザにとっては、多くの場合、割当てのため
に利⽤可能な能⼒は無尽蔵で、いつでもどんな量でも調達可能のように⾒える。
サービスが 計測可能であること
(Measured Service)
クラウドシステムは、計測能⼒1を利⽤して、サービスの種類(ストレージ、処理能⼒、帯域、実利⽤
中のユーザアカウント数)に適した管理レベルでリソースの利⽤をコントロールし最適化する。リ
ソースの利⽤状況はモニタされ、コントロールされ、報告される。それにより、サービスの利⽤結果
がユーザにもサービス提供者にも明⽰できる。
1. 通常、従量課⾦(pay-per-use)または従量請求
(charge-per-use)ベースで計算される。
The NIST Definition of Cloud Computing
https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf
⽇本語訳 https://www.ipa.go.jp/files/000025366.pdf
19. Cloud
Cloudがもたらしたもの
• IaC(Infrastructure as Code)
»インフラ構成をコードで表現できる
»アプリケーションだけではなく、稼働環境を含めてサービスそのも
のがコードになる
• PaaS(Platform as a Service)
»インフラだけではなく、ミドルウェアや実⾏環境もサービス
▸スケールだけではなく、機能性もターンキーで利⽤できる
ü クラスタ、⾃動デプロイ
18
29. 補⾜
Microservicesは万能ではない
• GitHubの元CTO Jason Warne⽒
»この10年、アーキテクチャ設計における
最⼤の間違いは「すべてをマイクロサー
ビスにしようとすること」だ
»モノリスからマイクロサービスは以下の
ように連続的だ
»モノリス > アプリ > サービス > マイク
ロサービス
28
https://twitter.com/jasoncwarner/status/1592227285024636928
32. Cloud Native
Cloud Native
• 2015年:Cloud Native Computing Foundation設⽴
»Kubernetes 1.0のリリースと同時に設⽴
»Cloud Native Definition v1.0
▸クラウドネイティブ技術<中略>の代表例に、コンテナ、サービスメッシュ
、マイクロサービス、イミュータブルインフラストラクチャ、および宣⾔型
API
▸回復性、管理⼒、および可観測性のある疎結合システムが実現
▸堅牢な⾃動化と組み合わせることで、エンジニアはインパクトのある変更を
最⼩限の労⼒で頻繁かつ予測どおりに⾏う
31
CNCF Cloud Native Definition v1.0
https://github.com/cncf/toc/blob/main/DEFINITION.md
Cloud Native Computing Foundation
https://www.cncf.io/
33. Cloud Native
Cloud Native Trail Map
» コンテナ化
» CI/CD
» オーケストレーション&アプリ定義
» オブザーバビリティ
» サービスメッシュ
» ポリシー、セキュリティ
» 分散データベース&ストレージ
» ストリーミング&メッセージング
» コンテナレジストリ&ランタイム
» ソフトウェアディストリビューシ
ョン
32
Cloud Native Trail Map
https://raw.githubusercontent.com/cncf/trailmap/master/CNCF_TrailMap_latest.pdf
37. Platform
プラットフォームとは?
• 2018年: Internal Developer Platform (IDP)
36
内部開発者プラットフォーム (IDP) は、運⽤チームによって構成され、開発
者によって使⽤されます。運⽤チームは、どのリソースをどの環境で、また
はどのような要求で起動するかを指定します。また、アプリケーション構成
のベースライン テンプレートを設定し、アクセス許可を管理します。これに
より、環境やリソースのスピンアップなどの定期的なタスクを⾃動化し、標
準を適⽤することでセットアップの保守が容易になります。開発チームは、
構成の変更、デプロイ、スピンによって⾃律性を獲得します
What is an Internal Developer Platform (IDP)? | Internal Developer Platform
https://internaldeveloperplatform.org/what-is-an-internal-developer-platform/