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
510
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.7k
CloudNative Nagoya Code of conduct
dayamaguchi1
0
40
Dockerインストール後の設定をしよう/Set up after installing Docker
dayamaguchi1
2
660
ITエンジニアが学ぶ「ティール組織」概要 / IT Engineer learns "Teal organization" summary
dayamaguchi1
2
230
Rancherから始めるCloud Native Journey / Start with Rancher Cloud Native Journey
dayamaguchi1
0
350
Other Decks in Technology
See All in Technology
AWS Media Services 最新サービスアップデート 2024
eijikominami
0
200
OTelCol_TailSampling_and_SpanMetrics
gumamon
1
200
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
4
230
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
130
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
480
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
950
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
160
SSMRunbook作成の勘所_20241120
koichiotomo
3
160
Incident Response Practices: Waroom's Features and Future Challenges
rrreeeyyy
0
160
飲食店データの分析事例とそれを支えるデータ基盤
kimujun
0
160
Engineer Career Talk
lycorp_recruit_jp
0
190
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
900
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Embracing the Ebb and Flow
colly
84
4.5k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
A Philosophy of Restraint
colly
203
16k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
430
BBQ
matthewcrist
85
9.3k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
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人でも上な状態にできたら最高です
お し ま い