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
CloudNativeをなぜ実践するのか? / Why practive CloudNative
Search
Daichi Yamaguchi
July 30, 2019
Technology
1
530
CloudNativeをなぜ実践するのか? / Why practive CloudNative
Daichi Yamaguchi
July 30, 2019
Tweet
Share
More Decks by Daichi Yamaguchi
See All by Daichi Yamaguchi
他作Playbookを実行することになって読みにくかった話
dayamaguchi1
3
1.8k
CloudNative Nagoya Code of conduct
dayamaguchi1
0
43
Dockerインストール後の設定をしよう/Set up after installing Docker
dayamaguchi1
2
700
ITエンジニアが学ぶ「ティール組織」概要 / IT Engineer learns "Teal organization" summary
dayamaguchi1
2
230
Rancherから始めるCloud Native Journey / Start with Rancher Cloud Native Journey
dayamaguchi1
0
360
Other Decks in Technology
See All in Technology
開発者のための FinOps/FinOps for Engineers
oracle4engineer
PRO
2
260
20250304_赤煉瓦倉庫_DeepSeek_Deep_Dive
hiouchiy
2
130
LayerXにおけるAI活用事例とその裏側(2025年2月) バクラクの目指す “業務の自動運転” の例 / layerx-ai-deim2025
yuya4
1
570
Ruby on Railsで持続可能な開発を行うために取り組んでいること
am1157154
3
160
Exadata Database Service on Cloud@Customer セキュリティ、ネットワーク、および管理について
oracle4engineer
PRO
2
1.6k
Amazon Aurora のバージョンアップ手法について
smt7174
2
190
JAWS FESTA 2024「バスロケ」GPS×サーバーレスの開発と運用の舞台裏/jawsfesta2024-bus-gps-serverless
ma2shita
3
340
スクラムというコンフォートゾーンから抜け出そう!プロジェクト全体に目を向けるインセプションデッキ / Inception Deck for seeing the whole project
takaking22
3
150
開発組織を進化させる!AWSで実践するチームトポロジー
iwamot
2
540
事業を差別化する技術を生み出す技術
pyama86
2
520
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
19k
EDRの検知の仕組みと検知回避について
chayakonanaika
12
5.3k
Featured
See All Featured
Statistics for Hackers
jakevdp
797
220k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
GraphQLとの向き合い方2022年版
quramy
44
14k
What's in a price? How to price your products and services
michaelherold
244
12k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Automating Front-end Workflow
addyosmani
1369
200k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
580
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Raft: Consensus for Rubyists
vanstee
137
6.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Transcript
Cloud Nativeを なぜ 実践するのか? CloudNative Nagoya #2 2019/7/30 山口 大地
自己紹介 氏名:山口 大地(@dayamaguchi1) 所属会社:株式会社エイチームライフスタイル [担当] ・AWSインフラ全般 [その他] ・名古屋のIT界隈を盛り上げていきたい人
資料は後で公開します
今日は理想論ばかり話します 現実的には・・・ とネガティブにならず、 ワクワクを忘れずに!
CloudNative なんもわからん CloudNative わかってきた 本日のテーマ ※ネットスラング的な意味ではなく、文字通 りの意味で捉えてください
ゴール やりたくなってきた!
まずはまとめから • IT の驚異的な進化に立ち向かうため、必要になっていく • CloudNative が今後の IT における標準的な立ち位置になる •
CloudNative やりたいけど、やっぱり色々と辛いこともある ◦ 新技術であり、新しく覚える事が多い ◦ 既存技術の理解も必要 ◦ アップデート早すぎ • 大きな可能性があり、既にパラダイムシフトが発生している
そもそもCloudNativeって何?
CloudNativeという単語を鵜呑みすると・・・ Cloud (事業者) Native (生まれたもの)だから、 IaaS 事業者の VirtualMachine を使ってれば、 CloudNative
だよ ね!!!!!!
CloudNativeという単語を鵜呑みすると・・・ Cloud (事業者) Native (生まれたもの)だから、 IaaS 事業者の VirtualMachine を使ってれば、クラウドだよ ね!!!!!!
そんなわけない
CNCF (Cloud Native Computing Foundation) 定義 スケーラブルなアプリケーションを構 築および実行する能力を組織にもた らす
回復性(Resilient) 管理力(Manageable) 可観測性(Observable) 堅牢な自動化 (robust automation) インパクトのある変更を最小限労力での頻度(high-impuct changes frequently) かつ
予測通り(predictably) に実行できる https://github.com/cncf/toc/blob/master/DEFINITION.md
CNCFによる定義の要点 • 代表的な技術として、コンテナ、マイクロサービス、イミュータブルインフラス トラクチャ、宣言型 API があげられる ◦ イミュータブルインフラストラクチャ=構築してから変更を加えられないインフラ (変更したいなら作り直す) ◦
宣言的 API =どういう状態が正常かを定義し、常にその状態を保つ ▪ 構築するための方法を書くのではなく、どういう状態にしたいかという目的 を書く手法
CNCF TrailMap Cloud Native Journey https://github.com/cncf/trailmap
CloudNative登場前についておさらい
物理サーバを用意する(オンプレミス)
物理サーバを用意する(オンプレミス) サーバをどこに置く?自社ビル?他社 DC? どこに搭載する?ラックはおける?重量は? 電源は?分電盤ある? コンセント形状は?UPSは? ネットワークは?機器ある?ポート数は? サーバのパーツ構成は?スペックは? 可用性は? 商流は?どこから買う?
保守契約はどうする?
物理サーバを用意する(オンプレミス) サーバをどこに置く?自社ビル?他社 DC? どこに搭載する?ラックはおける?重量は? 電源は?分電盤ある? コンセント形状は?UPSは? ネットワークは?機器ある?ポート数は? サーバのパーツ構成は?スペックは? 可用性は? 商流は?どこから買う?
保守契約はどうする? スムーズに決定できても、月単位で納品待ち 時間的コストが大きすぎる
使いたいときに使いたいだけの リソースを データセンター管理からの解放 ↓ IaaS事業者を使おう!
IaaS事業者を利用する
IaaS事業者を利用する IaaS事業者が撤退したらどうする? オンプレに戻せる?別事業者に切り替えれる? OSのEOL対応は? 採用したパッケージの脆弱性対応は? 実行環境が多様すぎて把握できない デプロイは相変わらず煩雑なまま
IaaS事業者を利用する IaaS事業者が撤退したらどうする? オンプレに戻せる?別事業者に切り替えれる? OSのEOL対応は? 採用したパッケージの脆弱性対応は? 実行環境が多様すぎて把握できない デプロイは相変わらず煩雑なまま 物理環境からは解放されても、 OSより上は変わっていない
IaaS事業者を利用する IaaS事業者が撤退したらどうする? オンプレに戻せる?別事業者に切り替えれる? OSのEOL対応は? 採用したパッケージの脆弱性対応は? 実行環境が多様すぎて把握できない デプロイは相変わらず煩雑なまま 物理環境からは解放されても、 OSより上は変わっていない IaaS固有の管理オブジェクトが増大
マネージドサービスってどう管理するの? 管理対象、増えてない? Microservice使えば解決する?
Q: マネージドサービス使えば?
A: 性能やコストやチューニング機能やSLA が満たせれば使ってるよ!
IaaS事業者を利用するだけでは、 OSの恩恵(≒呪縛)から、 逃れられない
だから、CloudNativeを実践したい
CloudNativeの実践によって変わること 物理環境 ハイパーバイザ OS ミドルウェア アプリケーション オンプレミス 物理環境 ハイパーバイザ OS
ミドルウェア アプリケーション IaaS
CloudNativeの実践によって変わること 物理環境 ハイパーバイザ OS ミドルウェア アプリケーション オンプレミス 物理環境 ハイパーバイザ OS
ミドルウェア アプリケーション IaaS 物理環境 ハイパーバイザ OS ミドルウェア アプリケーション CloudNative コンテナ オーケストレータ コ ン テ ナ
CloudNativeの実践によって変わること 物理環境 ハイパーバイザ OS ミドルウェア アプリケーション オンプレミス 物理環境 ハイパーバイザ OS
ミドルウェア アプリケーション IaaS 物理環境 ハイパーバイザ OS ミドルウェア アプリケーション CloudNative コンテナ オーケストレータ コ ン テ ナ コンテナオーケストレータ(k8s)が共通なら、 下の階層を問わない パラダイムシフトが発生している ※データを代表に、まだまだ検討しなければならないポイントはあります
Kubernetesという共通点があるから、 Kubernetesには可搬性がある
Kubernetesの登場によって、 抽象度レイヤーが1UPした
では、改めて
CloudNativeを実践して、 本当に実現したいことは何か?
「より早くサービスを顧客に提供する」 仮に上記をミッションに据えた場合、 デプロイの高速化が必要になる
Non CloudNativeな構成だと • 変更による影響が把握できず、変更前に調査が必要 ◦ Non predictably • ミュータブルな状態であり変更管理が出来ず、 OS
再構築時の再現性が難 しい ◦ Non Imutable Infrastructure • プロセスダウンした障害に対して、対応が手動オペレーション ◦ Non resilient • OS やマネージドサービス間の通信連携が把握できず、変更した際に予想 外の問題が生じてしまう ◦ Non observable
Non CloudNativeな構成だと • 変更による影響が把握できず、変更前に調査が必要( Non predictably ) • ミュータブルな状態であり変更管理が出来ず、 OS
再構築時の再現性が難 しい( Non Imutable Infrastructure ) • プロセスダウンした障害に対して、対応が手動オペレーション( Non resilient ) • OS やマネージドサービス間の通信連携が把握できず、変更した際に予想 外の問題が生じてしまう( Non observable ) これらの課題を解決し、 ミッションを完遂する この思想こそが、 CloudNativeのコアであると 私は考えます
具体的にCloudNativeにすることで得られる恩恵 • オンプレ、クラウド問わず、 Kubernetes という共通のプラットフォームでアプリ ケーションを動かせる • yaml ファイルで定義化されたインフラストラクチャは、常にイミュータブル性 を保持できる
• サービスメッシュによるトラフィック制御やトレース、可視化による可観測性の 取得 • 宣言的 API によるコンテナ停止時の自動回復
具体的にCloudNativeにすることで得られる恩恵 • オンプレ、クラウド問わず、 Kubernetes という共通のプラットフォームでアプリ ケーションを動かせる • yaml ファイルで定義化されたインフラストラクチャは、常にイミュータブル性 を保持できる
• サービスメッシュによるトラフィック制御やトレース、可視化による可観測性の 取得 • 宣言的 API によるコンテナ停止時の自動回復 ワクワクしませんか?
キラキラしすぎたので、辛い話もする
辛いこと • オンプレ→ IaaS へ移管の場合、 OS より上の領域は変わらない ◦ スキルをそのままスライドできる領域が大きく、学習コストが低い ▪
もちろん IaaS 固有の学習は追加で必要 • この状態で Docker や Kubernetes が登場すると・・・ ◦ 定義ファイルの記述方法を新しく学ぶ ◦ Kubernetes オブジェクトで何ができるか理解するため、新しく学ぶ ◦ アプリケーションのステートレス化 → 学習コスト大 & アプリケーションの設計変更が必須
まだまだ続くよ、辛いこと • Kubernetes を理解する上で、 Linux の理解は避けて通れない ◦ 今までよりももっと理解していく必要がある ◦ マネージド
Kubernetes を利用すればある程度は軽減可能 • サービスメッシュやるなら TCP/IP への理解も必要 • ましてや Kubernetes を取り巻く大量のエコシステム群まで考えると・・・ ◦ 数多ある CI/CD 、 Monitoring 、 Service Mesh 、 Distributed DB のツール群 ◦ どれが自組織にとって最適なツールか、判断できるのか?
辛い
それでも 辛くても やる
辛くてもやる理由 • デジタルトランスフォーメーションにより、破壊的イノベーションは随所 に発生している • 自分が所属する組織がいつまで存続しているのか、誰も保証できない ◦ それにも関わらず・・・ ▪ デプロイするのに
1 日・・・ ▪ 脆弱性対策するためにパッチ適用するのに1週間・・・ ▪ OS や M/W の EOL 対応するのに 1 ヶ月・・・
辛くてもやる理由 • デジタルトランスフォーメーションにより、破壊的イノベーションは随所 に発生している • 自分が所属する組織がいつまで存続しているのか、誰も保証できない ◦ それにも関わらず・・・ ▪ デプロイするのに
1 日・・・ ▪ 脆弱性対策するためにパッチ適用するのに1週間・・・ ▪ OS や M/W の EOL 対応するのに 1 ヶ月・・・ やめたいですよね?
CloudNativeを実現できると • 組織にとって ◦ より早くサービスを利用者に提供でき、競合他社と差別化できる • エンジニアにとって ◦ OS レイヤーより1歩上に前進した、新技術を学ぶ楽しさ
◦ もはや「流行り」「ブーム」ではない、成熟されてきた技術を取得す ることでの、エンジニアとしての市場価値向上
勘違いしてはいけないこと • 全て CloudNative 化する必要はない ◦ 変更が少ないアプリケーションは恩恵が少ない ▪ 例えば社内インフラ。停止しても影響の少ないシステムなど ◦
CPU 、メモリといったリソースを大量消費するもの ▪ 集約率に影響する • モノリシック=悪ではない ◦ 向き不向きがあるだけ ◦ モノリシック以外の選択肢として CloudNative が出てきたと捉える
9.2% [ITmedia] 国内で Docker コンテナを本番利用している企業は 9.2 %、 コンテナオーケストレーションツールは Kubernetes がデファクト
https://www.itmedia.co.jp/news/articles/1907/22/news087.html
まだまだこれからです
始めよう。CloudNative
まとめ • IT の驚異的な進化に立ち向かうために、必要になっていく • 今後の IT インフラにおける標準的な立ち位置になる • CloudNative
やりたいけど、やっぱり色々と辛いこともある ◦ 新技術であり、新しく覚える事が多い ◦ 既存技術の理解も必要( Linux,N/W,M/W ) ◦ アップデート早すぎ • 大きな可能性があり、既にパラダイムシフトが発生している
辛い < ワクワク 1人でも上な状態にできたら最高です
お し ま い