Cloud Nativeとは?
~Cloud Native Sendai #01~
2019/4/26
株式会社SRIA(エスリア)
山本誠樹 a.k.a 世界のやまさ
Microsoft MVP for Microsoft Azure 2014 –
Jun 2019
@nnasaki
質問:
Docker 知っている人?
使っている人?
2
質問:
Kubernetes 知っている人?
使っている人?
3
質問:
マイクロサービス知っている人?
使っている人?
4
質問:
全部使っている人は
Cloud Native?
5
Cloud Native とは?
6
© 2018 Cloud Native Computing Foundation7
コンテナ クラウド
ネイティブ
仮想化からクラウド・ネイティブへ
From Virtualization to Cloud Native
• クラウド・ネイティブ・コンピューティングはオープンソースのソフト
ウェアを積み重ね、次のために用います:
– アプリケーションをマイクロサービス(microservices)に分割し、
– 各パーツ自身をコンテナにパッケージし、
– リソース利用を最適化するために、動的に統合/オーケスト
レート(orchestrate)する
オープン
ソース
IaaS
PaaS
オープン
ソース
PaaS
仮想化
2000 2001 2006 2009 2010 2011
非仮想化
ハードウェア
2013 2015
IaaS
https://github.com/cncf/presentations/blob/master/japanese
良い資料あります
8
https://speakerdeck.com/jacopen/fei-biip-mou-cloud-nativefalseshi-jie
CNCF Cloud Native Definition v1.0
クラウドネイティブ技術は、パブリッククラウド、プライベートクラウド、ハイブリッ
ドクラウドなどの近代的でダイナミックな環境において、スケーラブルなアプリケー
ションを構築および実行するための能力を組織にもたらします。 このアプローチの代表
例に、コンテナ、サービスメッシュ、マイクロサービス、イミューダブルインフラスト
ラクチャ、および宣言型APIがあります。
これらの手法により、回復性、管理力、および可観測性のある疎結合システムが実現し
ます。 これらを堅牢な自動化と組み合わせることで、エンジニアはインパクトのある変
更を最小限の労力で頻繁かつ予測どおりに行うことができます。
Cloud Native Computing Foundationは、オープンソースでベンダー中立プロジェクトの
エコシステムを育成・維持して、このパラダイムの採用を促進したいと考えてます。 私
たちは最先端のパターンを民主化し、これらのイノベーションを誰もが利用できるよう
にします。
9
https://github.com/cncf/toc/blob/master/DEFINITION.md
長いので3つに分けてみます
ここに全部書いてある
10
CNCF Cloud Native Definition v1.0
1/3
クラウドネイティブ技術は、
パブリッククラウド、
プライベートクラウド、
ハイブリッドクラウドなどの
近代的でダイナミックな環境において、
スケーラブルなアプリケーションを
構築および実行するための能力を
組織にもたらします。
このアプローチの代表例に、
コンテナ、
サービスメッシュ、
マイクロサービス、
イミューダブルインフラストラクチャ、
および宣言型APIがあります。
11
https://github.com/cncf/toc/blob/master/DEFINITION.md
クラウド
ココにないも
のでも良い
CNCF Cloud Native Definition v1.0
2/3
これらの手法により、
回復性、
管理力、
および可観測性のある
疎結合システムが実現します。
これらを堅牢な自動化と組み合わせることで、
エンジニアはインパクトのある変更を
最小限の労力で
頻繁かつ予測どおりに
行うことができます。
12
理想的
自動化必須
楽になる
https://github.com/cncf/toc/blob/master/DEFINITION.md
CNCF Cloud Native Definition v1.0
3/3
Cloud Native Computing Foundationは、
オープンソースでベンダー中立プロジェクトのエコシステムを
育成・維持して、
このパラダイムの採用を促進したいと考えてます。
私たちは最先端のパターンを民主化し、
これらのイノベーションを誰もが利用できるようにします。
13
CNCF
みんな嫌いなベンダーロックインを避ける
https://github.com/cncf/toc/blob/master/DEFINITION.md
なんとなくわかりましたか?
14
質問:
Cloud Nativeは誰のためか?
15
エンジニアのためにある!
16
とは言うものの…
17
なんとなく漂う
「俺(私)には関係ない」感
コンテナ?なにそれおいしいの?
Dockerなんて使ったことないし、
Virtual Box で十分。新しいの覚えるの面倒
クラウドクラウドいうけどさ
なんか高いし
VPSで十分
常駐先じゃ…
インターネットにすらつながらない閉鎖環境
GitHubはアクセス制限される
GitHubはつながるけど、ダウンロード先のS3がアクセス制限
18
良い資料あります
19
https://www.slideshare.net/ToruMakabe/essentials-of-container
コンテナー is カレー
20
https://www.slideshare.net/ToruMakabe/essentials-of-container
DEMO
21
とりあえず
コンテナが
便利そうなことはわかった
22
そこから
Cloud Native
にたどり着くには?
23
良い資料あります
Cloud Native Trail Map
トレイルマップ
クラウドネイティブなシス
テムに向かうための道筋を
10ステップで解説
コンテナ化、CI/CD、オーケ
ストレーションなどなど
24
https://l.cncf.io
これも分解してみましょう
25
まずは必須の4つ
1. CONTAINERIZATION
コンテナ化
2. CI/CD
継続的インテグレーション/継続的デリバリー
3. ORCHESTRATION & APPLICATION DEFINITION
Kubernetes
4. OBSERVABILITY & ANALYSIS
モニタリング、ロギング、トレーシング
Prometheus
fluentd
26
ここ重要
4. OBSERVABILITY & ANALYSISが
なぜ重要か?
アプリケーションの健全性をモニタリングする
解析用のログをトレースする
いちいちSSHで入ってログをgrepしない
そもそもスケールアウトしていると複数コンテナ(Pod)が立ち上がっ
ており、どこで問題が起きているかが人間にはわからない
100コンテナそれぞれにSSHでログインしてgrepしたいですか?
27
だれのためのCloud Native?
CNCF Cloud Native Definition を思い出して!
CNCF Cloud Native Definition v1.0
2/3
これらの手法により、
回復性、
管理力、
および可観測性のある
疎結合システムが実現します。
これらを堅牢な自動化と組み合わせることで、
エンジニアはインパクトのある変更を
最小限の労力で
頻繁かつ予測どおりに
行うことができます。
28
理想的
自動化必須
楽になる
https://github.com/cncf/toc/blob/master/DEFINITION.md
再掲
ここまでは割とすぐ出来ます
既存のアプリをクラウドにリフトアンドシフト
コンテナ化
CI/CDで自動ビルド&デプロイ
Kubernetesなどで運用
テキストに吐き出していたログを一元管理化
29
概要はわかった。
具体的にどうすれば?
30
良い資料あります
31
https://docs.microsoft.com/ja-jp/dotnet/standard/modernize-with-azure-and-containers/
残り6つは割愛します
サービスメッシュだったりマイクロサービスが前提
特に 7. DISTRIBUTED DATABASE &STORAGE
個人的に Kubernetes 上でデータベースやストレージを動かすのは否
定的
Twelve-Factor Appに従うと良いと思います
https://12factor.net/ja/
具体的にはどういうこと?
32
Twelve-Factor App?
33
良い資料あります
34
https://www.slideshare.net/decode2017/ac06-12-factor-app-on-kubernetes-on-azure
12個も大変そう。。。
さっきのトレイルマップも10個あったのに
35
とりあえずやってみよう
I. コードベース
ざっくりいうと、ソースコード管
理しましょう
なんとなく出来そうじゃないで
すか?
36
わかった。わかったけど。
Cloud Nativeってさ
事例あるの?
来たな事例厨
37
Netflix
ほぼ100%AWSユーザーだった
Google クラウドに移行しようとしている(らしい)
これはベンダーニュートラルなクラウドネイティブなアーキテ
クチャだから可能
38
https://thinkit.co.jp/article/14089
CNCF Cloud Native Definition v1.0
3/3
Cloud Native Computing Foundationは、
オープンソースでベンダー中立プロジェクトのエコシステムを
育成・維持して、
このパラダイムの採用を促進したいと考えてます。
私たちは最先端のパターンを民主化し、
これらのイノベーションを誰もが利用できるようにします。
39
CNCF
みんな嫌いなベンダーロックインを避ける
https://github.com/cncf/toc/blob/master/DEFINITION.md
再掲
そういえば
サーバーレスは
クラウドネイティブなの?
40
いい質問ですね~
41
良い資料あります
Serverless vs. Other Cloud Native Technologies
Keep in mind that no single approach is a silver bullet for all cloud-
native development and deployment challenges.
すべてのクラウドネイティブの開発およびデプロイメントの課題を
解決できる銀の弾丸となる唯一の方法はありません。
Conclusion
サーバーレスアーキテクチャーは、クラウドネイティブワークロー
ドにエキサイティングな新しい展開オプションを提供します
ただし、サーバーレステクノロジはすべての場合に最適というわけ
ではないため、適切な場合は慎重に検討する必要があります
42
https://github.com/cncf/wg-serverless/tree/master/whitepapers/serverless-overview
CNCF Cloud Native Definition v1.0
1/3
クラウドネイティブ技術は、
パブリッククラウド、
プライベートクラウド、
ハイブリッドクラウドなどの
近代的でダイナミックな環境において、
スケーラブルなアプリケーションを
構築および実行するための能力を
組織にもたらします。
このアプローチの代表例に、
コンテナ、
サービスメッシュ、
マイクロサービス、
イミューダブルインフラストラクチャ、
および宣言型APIがあります。
43
https://github.com/cncf/toc/blob/master/DEFINITION.md
クラウド
ココにないも
のでも良い
再掲
そういえば
Kubernetes
運用大変って聞いたよ
44
こんな記事が話題になりました
この例のように、オンプレで動かすならば同意
Kubernetesを一から全部自前で運用するのは非常に大変
45
https://yakst.com/ja/posts/5455
そこでAzureですよ
Kubernetesの面倒なマスターノード管理をAzureでやってくれ
るので楽
Azure App Service の Web App for Containers が超便利
46
https://www.slideshare.net/ToruMakabe/essentials-of-container
DEMO
Azure Web Apps for Containers
https://azure.microsoft.com/ja-jp/services/app-
service/containers/
47
まずは必須の4つ
1. CONTAINERIZATION
コンテナ化
2. CI/CD
継続的インテグレーション/継続的デリバリー
3. ORCHESTRATION & APPLICATION DEFINITION
Kubernetes
4. OBSERVABILITY & ANALYSIS
モニタリング、ロギング、トレーシング
Prometheus
fluentd
48
ここ重要
再掲
Azure Monitor
すべてのログを集約する
インフラもアプリケーションも
アラートも可能
各言語に対応
49https://docs.microsoft.com/ja-jp/azure/azure-monitor/
まとめ
Cloud Nativeに至るまでの歴史
CNCF Cloud Native Definition v1.0
コンテナー is カレー
Cloud Native Trail Map
サーバーレス
50
良いCloud Nativeライフを!
51
52
Creating with you

Cloud Nativeとは?