SlideShare a Scribd company logo
1 of 46
エンプラに Kubernetes を
導入してみて分かった
4つの Lessons Learned
September 24th,
OPENSHIFT.RUN 2020,
Daiki Kawanuma
本セッションは個人の見解であり、 所属組織の立場、戦略、意見を代表するものではありません。
また、技術的な内容にも言及しますが、正確性を保証するものではありません。
免責事項
エンタープライズにおける Kubernetes 導入あるある
Kubernetes 導入のモチベーション
• リソースの抽象化
Declarative Configuration
• 自己回復性
Self Healing
• 自動スケーリング
Auto Scaling
https://www.datadoghq.com/ja/container-report/
ビジネスのアジリティーを高めること
Kubernetes の本質的な価値
For instance, average container
lifetimes exceed 30 days in 3 percent
of Kubernetes environments.
エンタープライズにおける主要なモチベーション
• コスト削減(インフラの集約性)
• 可搬性、柔軟性のある基盤を選択し将来へ投資
コンテナを避け続けるのがリスクになるのも事実
• 世界レベルで標準化されている
• 時代の流れとして逆らえない
• 巨人の肩に乗る
• “ソリューション要件がコンテナ” ← 間違ってはいない
エンタープライズにおける Kubernetes 導入あるある
コンテナ・ Kubernetes に期待を掛ける営業側
Azure AKS
GCP GKE
VMware Tanzu
Kubernetes Grid
on AWS
on Azure
on GCP
on IBM Cloud
IPI & UPI
Kubernetes 戦国時代
• 選択肢として Kubernetes が選ばれやすいのは事実
• 営業としても、お客様にとって価値あるものだと信じている
on Premise
エンタープライズにおける Kubernetes 導入あるある
その結果発生する”絵空事の” Kubernetes 導入
べき論はわかってます…
営業の目指した価値を体現するのが現場
たとえアンチパターンでも成功に導かなければいけない使命
絵空事をなんとか、現実の世界に落とし込んでみせよう
※絵空事:絵は実際の物とは違って誇張され美化されて描かれているものであること
Win, Win
Kubernetesは
素晴らしいんやな
Kubernetesは
素晴らしいんです
現場的に厳しい戦いになることは
往々にしてある
『あなたにKubernetesは必要ですか?』
『多分あなたにKubernetesは必要ない』
『Kubernetes の導入時に考えるべきこと』
エンタープライズにおける Kubernetes 導入あるある
段階的な Cloud Native 化への道
• ネガティブな表現をしたが、現実問題として一息に Cloud Native 化など不可能
• 許容される変更量、リスク量は限られている
Kubernetes を導入して既成事実を作ってから徐々に文化を変えていくのもまた道
Kubernetes Driven で Cloud Native Journey を歩み出す
自己紹介
Daiki Kawanuma
Associate Architect,
Red Hat Certified Specialist,
AWS Certified Solution Architect
所属
役割 レガシーアプリを適切にモダナイゼーションする
働き方
半年から数年程度でお客様を渡り歩く “遊撃隊“ のような働き方
お客様 A社
お客様付きSE
API化案件
お客様 B社
お客様付きSE
新規構築
案件
お客様 C社
お客様付きSE
更改案件
弊部門
時間(半年〜数年で移動)
• 構想策定
• API
• Kubernetes/OpenShift 等
IBM Japan, Cloud Application Services, Modernization Strategy
お客様事例
金融系のお客様
サーバー間取引顧客
ブラウザ顧客
バックエンドシステム
ランクAシステム
法人顧客
従業員
• 約20年の歴史を持つオンプレミスのシステム
• 高可用性/低レイテンシが求められるランクAのミッションクリティカルシステム
• Kubernetes(ICP) で本番稼動中
更
改
サーバー間取引顧客
ブラウザ顧客
バックエンドシステム
ランクAシステム
法人顧客
従業員
お客様事例
 完全にOSと統合、Immutable
 自動化オペレータで高度な自動化
 シームレスにKubernetesをデプロイ
 完全に自動化されたインストール
 ワンクリックでアップデート
 クラウドリソースを自動スケーリング
金融系のお客様
OpenShift=Enterprise Kubernetes プラットフォーム への移行をご検討中
本セッションのスコープ
Cloud Native 化を進めるアプローチ
Top Down, Bottom UP の両面からのアプローチが不可欠
営業
啓蒙
啓蒙
啓蒙
Bottom UP
Top Down
本セッションのスコープ
開発部門・SIer ビジネス部門・お客様
マネジメント
(意思決定者)
現場
指示
相談
RFP
相談
AGENDA
• Lessons Learned 1:コストとスケール
• Lessons Learned 2:現行運用との兼ね合い
• Lessons Learned 3:モダナイゼーションへの道
• Lessons Learned 4:チーム
• まとめ
Lessons Learned 1:コストとスケール
Lessons Learned 1:コストとスケール
立ちはだかる税金の高さ
• 4 vCPU
• 16GB Memory
Master Nodes Infra Nodes
× 3ノード
• 2 vCPU
• 16GB Memory
× 3ノード
Worker Nodes
Kubernetes “を”動かすのに必要なリソース=税金
18 vCPU, 96GB Memory 72vCPU, 110GB Memory
× 40
Pod
※今回の案件においては Datadog 等の SaaS を使う選択肢も無かった
使い方によっては税金が高くみえてしまう(特にインフラの集約性に着目した場合)
今回は税金を払うモチベーションはあまりないので、できるだけ節税したい
Lessons Learned 1:コストとスケール
立ちはだかる税金の高さ
• 4 vCPU
• 16GB Memory
Master Nodes Infra Nodes
× 3ノード
• 2 vCPU
• 16GB Memory
× 3ノード
Worker Nodes
× 40
Pod
削れない 槍玉に挙がるのはここ
トラディショナルな方法でもできるんじゃないの?
直近は要らないんじゃない?
今後 Kubernetes をやっていくなら必須なのだが…
だが、今を乗り切る方法もあると言えばある
Lessons Learned 1:コストとスケール
立ちはだかる税金の高さ
実際に、Kubernetes では泣く泣く削りました
Master Nodes Infra Nodes Worker Nodes
Promtail
開発環境
ステージング/
本番環境
Shell
kubectl get pod
kubectl top podLocal PV
軽量な PLG を
選択
Grafana は非常に便利だった。
何かが起こったとき(障害・負荷試験等)に状態の推移をグラフィカルに見られるのは良い
また、ログを各ホストサーバーへ取得しにいくのはやはり面倒だった。
Lessons Learned 1:コストとスケール
立ちはだかる税金の高さ
OpenShift では Infra Node の導入を検討中
Master Nodes Infra Nodes Worker Nodes
開発環境
ステージング/
本番環境
• Red Hat のサポートが付く EFK を選択
(ただし運用のコアとはしない 後述)
• Prometheus/Grafana はコアコンポーネントとして実質必須
Lessons Learned 1:コストとスケール
立ちはだかる税金の高さ
Lessons Learned
• Master や Infra の税金に勝るある程度の規模の Worker ノードにしたい(マルチテナントも有効)
• とは言え、最初からでかいクラスターから始めるのは難しい場合が多い
• 将来像と合わせて投資ということにする
• TCO で比較する
• 現行のコストと比較する
• 当たり前だが、ロギングやモニタリングのコンポーネントを入れないと後で辛くなる
• システムとしての重要性に加え、ビジネス面でも価値を訴求したい
デイリーアクティブユーザー 都道府県別アクセス数成約率 OS /ブラウザ別アクセス数
最近の個人的疑問
EFK が特に重い
EFK vs. PLG
https://www.cncf.io/blog/2020/07/27/logging-in-kubernetes-efk-vs-plg-
stack/
将来的に OpenShift に PLG の採用はあるのか?
Lessons Learned 1:コストとスケール
スケーラビリティに制限のあるオンプレ環境
基本的にHWを自由に増減させることはできなかった
• ギリギリのリソースでやりくりする場合が多くなる
• Requests を調整して押し込めるしかない Infra Node #1 Requests CPU: 98%(定常時は30%程のCPU使用率)
• Alertmanager は監視のコアコンポーネントとして用いる
• 運用上クリティカルになるものは減らせない
コアコンポーネントも減らせない
サービスレベルで Requests を決める
• サービスレベルは気にしない
(運用のコアコンポーネントにはしない)
• まずは導入したい(入れることに意義)
Lessons Learned 1:コストとスケール
スケーラビリティに制限のあるオンプレ環境
リソースの調達には時間が掛かる
• リソース追加には決済が伴うので、おいそれとリソース追加はできない
• リソース見積もりをある程度精緻に行う必要がある
• Core / Memory は Hardware Requirements として記載あり
• OpenShift の場合 CR にデフォルト値として設定されている
• ストレージ容量見積もりの手法
• アプリケーションログは現行をベースにサイジング
• Elasticsearch は INDEX を張る関係上、ログ容量の3~5倍で見積もり
• コアコンポーネントのログ/メトリクス量は検証クラスターで確認
検証クラスター(UPI)@
問題はストレージ容量の見積もり
Lessons Learned 1:コストとスケール
スケーラビリティに制限のあるオンプレ環境
Lessons Learned
• 大前提として、余裕のあるリソース確保には尽力したい
• そうは言っても確保が難しい場合もあるかもしれない
• サービスレベルを決める
• Requests / Limits を駆使する
• スケーラビリティに制限があるなら、尚更 PoC の重要性は高まる
• リソース見積もりは実際に動かしてみることが一番
• PoC をして Feasibility を見極める(リソース見積もりに限らず重要)
Lessons Learned 2:現行運用との兼ね合い
Lessons Learned 2:現行運用との兼ね合い
現行運用ソフトウェアとのインテグレーション
現行運用
SW(master)
• プロセス監視
• メトリクス監視
• ログ監視
現行の運用方式
システムA
現行運用
SW(agent)
現行運用
SW(agent)
現行運用
SW(agent)
システムB
・・・
システムN
Kubernetesだけ
別のシステム監視とはいかないな
※許容されるリスク量・変更量の話も関係する
現行運用
SW(agent)
現行運用
SW(agent)
• 統合監視基盤で運用を行っている
Lessons Learned 2:現行運用との兼ね合い
現行運用ソフトウェアとのインテグレーション
ソリューション(プロセス監視・メトリクス監視)
Alertmanager
Endpoint
現行運用
SW(agent)
現行運用
SW(master)
運管サーバー
アプリケーション Pod, コアコンポーネント Pod
カスタム Pod
Master, Infra, Worker Nodes
Lessons Learned 2:現行運用との兼ね合い
現行運用ソフトウェアとのインテグレーション
ソリューション(ログ監視)
現行運用
SW(agent)
現行運用
SW(agent)
現行運用
SW(agent)
現行運用
SW(agent)
現行運用
SW(agent)
現行運用
SW(agent)
現行運用
SW(master)
アプリケーション Pod
Red Hat
Enterprise Linux
Worker Nodes
• Worker Node には RHEL を採用
Lessons Learned 2:現行運用との兼ね合い
運用文化とのせめぎ合い(インターネット接続)
オンプレ環境はインターネット接続不可
お客様DC
• オンプレ環境は基本的にインターネット接続不可
• 対象システムでインターネット接続を行った実績はなし
OpenShift 4 のインストール方法
1. 直接接続方式
2. プロキシー接続方式
3. オフライン方式
ヤバイ、辛いという
前評判を聞いた
https://rheb.hatenablog.com/entry/openshift42-proxy-upi
絶対に通さないと辛い
通さないといけない前提で話をもっていく
Lessons Learned 2:現行運用との兼ね合い
運用文化とのせめぎ合い(インターネット接続)
プロキシー接続方式
registry.redhat.io
*.quay.io
sso.redhat.com
cloud.redhat.com
mirror.openshift.com
*.cloudfront.net
quay-registry.s3.amazonaws.com
api.openshift.com
art-rhcos-ci.s3.amazonaws.com
nginx.org
OpenShift 4 のファイアウォール設定
• 当然 FQDN です。ありがとうございます。
• FQDN指定が可能なFWを選択する必要があった
Lessons Learned 2:現行運用との兼ね合い
運用文化とのせめぎ合い(インターネット接続)
実際の穴あけドタバタ劇
僕 お客様 セキュリティ統括
FW申請書
• 月末締め
• 翌月末穴あけ実施
統合FW 担当者
穴あけ
『穴あけまでに実質2ヶ月程度掛かる』
registry.redhat.io
*.quay.io
sso.redhat.com
cert-api.access.redhat.com
api.access.redhat.com
infogw.api.openshift.com
https://cloud.redhat.com/api/ingress
mirror.openshift.com
storage.googleapis.com/openshift-release
*.apps.<cluster_name>.<base_domain>
quay-registry.s3.amazonaws.com
api.openshift.com
art-rhcos-ci.s3.amazonaws.com
api.openshift.com
cloud.redhat.com/openshift
FW申請書
いざ、インストール!
ERROR xxx xxxxxx
ERROR xxx xxxxxx
ERROR xxx xxxxxx
ERROR xxx xxxxxx
ERROR xxx xxxxxx
失敗!!!
Lessons Learned 2:現行運用との兼ね合い
運用文化とのせめぎ合い(インターネット接続)
実際の穴あけドタバタ劇
registry.redhat.io
*.quay.io quay.io
sso.redhat.com
2ヶ月のロスタイム
今度は失敗するわけにはいかない…
お家 N/W
MacBook Pro
Proxy
サーバ
OCP
master #1-
3
OCP master
#1-3
OCP infra
#1-2
OCP infra
#1-2
OCP
worker #1-
3
OCP worker
#1-3
Red Hat
Servers
Broadband
Router
Firewall
以下の通信以外は拒否する様に設定
• DNS
• HTTP
• HTTPS
拒否 された通信をログに出力し、下記の各
OCPサーバーから Proxy を経由しない通信 (≠
HTTP(s) の通信) の有無を洗い出す
HTTP(S)の
ログを取る
自分の MacBook Pro で検証
Lessons Learned 2:現行運用との兼ね合い
運用文化とのせめぎ合い(インターネット接続)
registry.redhat.io
*.quay.io
sso.redhat.com
cloud.redhat.com
mirror.openshift.com
*.cloudfront.net
quay-registry.s3.amazonaws.com
api.openshift.com
art-rhcos-ci.s3.amazonaws.com
nginx.org
quay.io
infogw.api.openshift.com
cdn.redhat.com
storage.googleapis.com
subscription.rhsm.redhat.com
結果の申請書
• 開発・構築時の留意事項
• 現行のネットワーク文化がある場合は要注意
• リードタイムを短くする努力をするか、2,3回失敗しても大丈夫なスケジュール的余裕を持つべき
• 今後の保守に向けて
• マイナーバージョンアップグレードで接続先が増減することは容易に想像できる
• アップグレード失敗時の対策として最低限、FWのログ取得は必須
• 合わせて、よりスピーディーなワークフローへの改善にも努力したい
Lessons Learned
Lessons Learned 3:モダナイゼーションへの道
Lessons Learned 3:モダナイゼーションへの道
アプリモダナイゼーション
The Twelve-Factor App を指針の1つとする
概要 説明 方針
1. コードベース バージョン管理されている1つのコードベースと複数のデプロイ 対応済
更改前からSubversionを利用
複雑化したアプリケーションを整理する余地はまだまだ存在する
2. 依存関係 依存関係を明示的に宣言し分離する 対応済
更改前からMavenを利用
DockerfileによりOSレベルの依存関係まで明示的になった
3. 設定 設定を環境変数に格納する 対応 環境設定用XMLファイルから環境変数に置換
4. バックエンドサービス バックエンドサービスをアタッチされたリソースとして扱う 対応なし
バックエンドが変更できないため
特にGWと呼ばれるキューイングサービスとは密結合している(独自実装を多く含む)
5. ビルド、リリース、実行 ビルド、リリース、実行の3つのステージを厳密に分離する 対応済 コンテナの可搬性により、ステージの分離がより厳密になった
6. プロセス アプリケーションを1つもしくは複数のステートレスなプロセスとして実行する 対応なし
アプリケーション改修のコストが非常に大きいため
バックエンドが変更できないため
7. ポートバインディング ポートバインディングを通してサービスを公開する 対応
アプリケーションサーバーを含むコンテナイメージ とKubernetesのServiceの機能によってプ
ロセス間の通信を制御する
8. 並行性 プロセスモデルによってスケールアウトする 対応(一部)
アプリケーションを細かいプロセスに分離する、ただしマイクロサービス化はしない
一部アプリケーションのみ Deployment によるスケールアウトが可能になった
9. 廃棄容易性 高速な起動とグレースフルシャットダウンで堅牢性を最大化する 対応(一部)
コンテナ化によってプロセスの軽量化を実施(主にミドルウェア)
アプリ的なグレースフルシャットダウンには非対応
10. 開発/本番一致 開発、ステージング、本番環境をできるだけ一致させた状態を保つ 対応(一部)
時間のギャップ:本番環境への適用に要する時間が2時間から1時間に減少
人材のギャップ:一部あり
ツールのギャップ:コンテナ により開発環境でも容易になったが、GWに課題あり
11. ログ ログをイベントストリームとして扱う 対応なし ロギングコンポーネントの不採用およびロギング機能の変更負荷により断念
12. 管理プロセス 管理タスクを1回限りのプロセスとして実行する 対応(一部)
管理スクリプトの一部はコンテナイメージ内に同梱されコンテナ内で実行されるが、
手動実行の運用手順も残っている
Lessons Learned 3:モダナイゼーションへの道
Git 移行と Single Source of Truth
Subversion から Git へ
• 約20年間 Subversion で運用されてきた環境を段階的に Git へ移行
• コンテナ/Kubernetes 周りから Git 化を始める
• 様々なツールが Git を前提に作られている
• GitOps をしたい!
• スキルフルな要員が集まりやすいので Git 移行の障壁が小さい
Single Source of Truth
• 動かすために何をすればいいか分からない
• ドキュメントもどこにあるか分からない
• コンテナや Kubernetes により IasC, CasC が非常にやりやすくなった
• YAML や Dockerfile が設計書そのもの
• あとはその設計に至るまでの AD(Architecture Decision) がわかれば良い
Excel 設計書 + Redmine Wiki
Subversion で管理されている
ソースコード全体
今回 Git 移行のスコープとした
コンテナ・Kubernetes 周りは全体の 2.4%
まだまだ先は長いが、何事も小さな一歩から
脱却したい
ソースコード + Markdown
Lessons Learned 3:モダナイゼーションへの道
本当に必要な CI/CD
• Kubernetes の早いライフサイクルに対応する必要がある
(3ヶ月ごとのマイナーバージョンリリース、半年ごとのアップグレードの必要性)
• 今までのN年塩漬けとは全く異なる考え方が必要になる
• 本当に必要な CI/CD ってなんだっけ?
• テストを自動化しましたが CI/CD じゃないないよね?
• 目的とゴールを再確認しよう
【目的】
• 何らかの変更があってもサービスに影響が無いことを確認する
【ゴール】
• リリース・クライテリアを決める
• それをできるだけ素早く簡易に実行できるようにする
(自動化が絶対の手段とは限らない)
何らかの
変更
リリース・クライテリア
・ xxx
・ xxx
・ xxx
何かしらの自動化
簡易な手動実行
リリース
https://access.redhat.com/ja/support/policy/updates/openshi
ft
OpenShift のライフサイクル
Lessons Learned 3:モダナイゼーションへの道
本当に必要な CI/CD
• どのレイヤーまでをスコープとするか
Host OS
Orchestration
Container Container Container Container
Container Runtime
Automated Operations
Manifest Manifest
Package Manager
Cluster / Application/ Developer Services
マニフェスト〜アプリケーションの機能確認は当然やるでしょう
各種 Operator や Prometheus 等の Cluster Service はどうしよう
性能や可用性等の非機能確認はどうしよう
非機能どこまでやろう?
インフラの CI やる?
• どこまで自動化/パイプライン化するか
ソースコード取得 ビルド 単体テスト パッケージ コンテナビルド 結合テスト アーティファクト登録 ステージングデプロイ パフォーマンステスト等
Lessons Learned 3:モダナイゼーションへの道
Git 移行と Single Source of Truth
Lessons Learned
本当に必要な CI/CD
• 技術よりは仕組みやプロセスといったメタなことが障壁になりやすい
• 活発に議論できるメンバーを3人以上集めたい
• 現行の仕組みに詳しい人を巻き込むことも重要
• まずは「やってみる、やって見せる」ということが重要に感じる
• 内容が良ければ、「一緒にやりたい」と言ってくれる人が現れる
• Tool Driven でも大いに結構
• 導入してみると案外上手く動き出すってこともある
メタな議論にも直地点を付ける(自戒)
Lessons Learned 4:チーム
Lessons Learned 4:チーム
Kubernetes に適応したチームつくり
OpenShift のサポート期間
• マイナーバージョンのサポート期間は約9カ月
• アップグレード期間も考慮すると半年ごとのアップグレード作業が必要
スーパーマンが一人は居ないと厳しい
(本当は複数人ほしい)
• 作りきったら終わりではない(≠塩漬
け)
• 継続的な保守が不可欠
https://access.redhat.com/ja/support/policy/updates/openshi
ft
Lessons Learned 4:チーム
Kubernetes に適応したチームつくり
お客様付きSEへのスキトラ
お客様付きSE
• 基本的なコマンド操作は習得済み( kubectl get pod 等)
• Kubernetes の仕組みはまだ理解不十分
僕
• 障害解析ができる
• リリースノートが読める
• 人に教えられる
お客様付きSE
お客様付きSEのみで Kubernetes の保守を回せることが理想
Lessons Learned 4:チーム
Kubernetes に適応したチームつくり
OpenShift スキル獲得
https://www.redhat.com/ja/services/training/do288-red-hat-
openshift-development-i-containerizing-applications
1. Red Hat OpenShift Development I: Containerizing Applications 2. 週1回程度のスキトラ
SA Role
Role
Binding
Lessons Learned 4:チーム
Kubernetes に適応したチームつくり
OpenShift スキル獲得
3. Operator ハンズオン
https://github.com/Daiki-Kawanuma/kubernetes-operator-handson
• OpenShift の設定は基本的に CR の適用で行われる
• Operator の概念の理解が不可欠
『最小構成』の
なんちゃって Operator
4. 社内勉強会の企画
• 最終的には Kubernetes を『教える側』になってほしいという期待
• 人に教えるには3倍の理解が必要
若手(1〜3年目)への勉強会を企画中
Kubernetes に適応したチームつくり
Lessons Learned 4:チーム
Lessons Learned
2. いきなり全部を教えすぎない
いきなり全部並べられても分かるわけがない
相手の知識レベルに合わせて“教え過ぎない”ことを意識する
勉強したい人が自分のレベルが分からない・その人のレベルにあったコンテンツが無いのが辛い
そもそもDockerの良い点や動かし方がわかっていない時にいきなりK8sの概念を聞いてもよくわからな
い
コンテナに限らずそれぞれの人のレベルに合わせた説明やコンテンツは需要があるのかなと思う
1. ユースケースで刺す
概念や機能を教えても腹落ちしづらい(Kubernetes のジャズ的な性質)
ユースケースに刺して機能を教えていく
一緒にハンズオンやりながら説明していただけたのはめちゃくちゃ良い
あとは実際に動かせる環境が準備されているというのも良い
3. 自分の作業過程や情報源をオープンにする
考え方や思考過程を目に見えるところに置いておく
気づいてもらう工夫をする
何を知っているべきか、何ができればいいのかがわからない
欲しいのは結果を導くための途中経過
4. 手を動かさせる、自分でやらせる
手を動かさないと始まらない
運用引き継ぎフェーズで一挙にスキトラは絶対に機能しないのでやめた方が良い
• 本番稼動中だが、今のところコンテナ起因の障害は0
• お客様のモチベーションであったインフラコストは集約は達成できた
• 既存運用方式とのインテグレーションも問題なく実施できた
• Lift & Shift の “Lift” を成功裏に実施できた
まとめ
で、実際に Kubernetes 導入どうだったの?
サービス目線
• リリース作業に要する時間が2時間から1時間に短縮できた
• Kubernetes のリソースの集約化/抽象化という側面も開発の効率化に寄与した
開発目線
あるべき姿を定義しておけばあとはk8sが色々やってくれるというのは便利ですよね
あとリソースの種類とかがわかっていればどこに定義が書いてあるかとかも探しやすいのがいいなと思います
エンプラど真ん中のシステムに Kubernetes を導入したが、ちゃんと運用できてる
• ビジネスアジリティを求めるのか
• 運用の自動化を求めるのか
• 開発生産性の向上を求めるのか…etc
まとめ
コンテナ化第二章に向けて
今後、どんな Shift を描くか、Kubernetes に何を求めるのか
• ビジネスアジリティの話をすると、今回削減できたのは全体のごく一部でしかない
• 本当に効果を上げようと思ったら、改善できる箇所がまだまだ沢山ある
やはり組織・文化と向き合うことは避けられない
リリースまでに要する時間
今回の Kubernetes 導入で
削減できた時間
• チーム全体のスキルアップが必須だが、まずは一人目のスーパーマンの育成が急務
• とは言え、一人のスーパーマンに頼っていてはスケールしないので、スケールする仕組み作りが組織として必要
これから本格的に始まる Day2 Operation, Kubernetes を保守する辛みと向き合う
まとめ
コンテナ化第二章に向けて
Kubernetes を活かすも殺すも今後次第
お客様と共に、全方位でやっていき
EOF
Special Thanks
• Satoshi Doi
• Yusuke Urakawa
• Hiromitsu Iwata
• Kensuke Shigyo
ご清聴ありがとうございました。

More Related Content

What's hot

コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門Kohei Tokunaga
 
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)NTT DATA Technology & Innovation
 
無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろう無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろうakira6592
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話JustSystems Corporation
 
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyYahoo!デベロッパーネットワーク
 
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決オラクルエンジニア通信
 
cluster-monitoringで困ったこと学んだこと
cluster-monitoringで困ったこと学んだことcluster-monitoringで困ったこと学んだこと
cluster-monitoringで困ったこと学んだことSachiho Wakita
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjugYahoo!デベロッパーネットワーク
 
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48Preferred Networks
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
データベース屋がHyperledger Fabricを検証してみた
データベース屋がHyperledger Fabricを検証してみたデータベース屋がHyperledger Fabricを検証してみた
データベース屋がHyperledger Fabricを検証してみたHyperleger Tokyo Meetup
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with KarateTakanori Suzuki
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
IETF111 RATS: Remote Attestation ProcedureS 報告
IETF111 RATS: Remote Attestation ProcedureS 報告IETF111 RATS: Remote Attestation ProcedureS 報告
IETF111 RATS: Remote Attestation ProcedureS 報告Kuniyasu Suzaki
 
Azure ADとIdentity管理
Azure ADとIdentity管理Azure ADとIdentity管理
Azure ADとIdentity管理Naohiro Fujie
 
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)NTT DATA Technology & Innovation
 

What's hot (20)

分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門コンテナ未経験新人が学ぶコンテナ技術入門
コンテナ未経験新人が学ぶコンテナ技術入門
 
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
 
無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろう無料で仮想Junos環境を手元に作ろう
無料で仮想Junos環境を手元に作ろう
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudyネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
ネットワークの自動化・監視の取り組みについて #netopscoding #npstudy
 
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
 
cluster-monitoringで困ったこと学んだこと
cluster-monitoringで困ったこと学んだことcluster-monitoringで困ったこと学んだこと
cluster-monitoringで困ったこと学んだこと
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
データベース屋がHyperledger Fabricを検証してみた
データベース屋がHyperledger Fabricを検証してみたデータベース屋がHyperledger Fabricを検証してみた
データベース屋がHyperledger Fabricを検証してみた
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
IETF111 RATS: Remote Attestation ProcedureS 報告
IETF111 RATS: Remote Attestation ProcedureS 報告IETF111 RATS: Remote Attestation ProcedureS 報告
IETF111 RATS: Remote Attestation ProcedureS 報告
 
Azure ADとIdentity管理
Azure ADとIdentity管理Azure ADとIdentity管理
Azure ADとIdentity管理
 
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
 

Similar to エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned

Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tkKubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tkwhywaita
 
Tech Dojo 02/09 IBM Japan CSM
Tech Dojo 02/09 IBM Japan CSMTech Dojo 02/09 IBM Japan CSM
Tech Dojo 02/09 IBM Japan CSM勇 黒沢
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーToru Makabe
 
CyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallengeCyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallengewhywaita
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)NTT DATA Technology & Innovation
 
Singularity Containers for Enterprise Use
Singularity Containers for Enterprise UseSingularity Containers for Enterprise Use
Singularity Containers for Enterprise UseAtsutoHashimoto
 
Kubernetesバックアップの 5大ベストプラクティス紹介版
Kubernetesバックアップの 5大ベストプラクティス紹介版Kubernetesバックアップの 5大ベストプラクティス紹介版
Kubernetesバックアップの 5大ベストプラクティス紹介版株式会社クライム
 
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとはKoto Shigeru
 
インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門Masahito Zembutsu
 
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションKubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションTakashi Kanai
 
Kubernetes 初心者の僕からの JKD 参加報告
Kubernetes 初心者の僕からの JKD 参加報告Kubernetes 初心者の僕からの JKD 参加報告
Kubernetes 初心者の僕からの JKD 参加報告Kentaro NOMURA
 
Infra: Kubernetes and GKE, Network
Infra: Kubernetes and GKE, NetworkInfra: Kubernetes and GKE, Network
Infra: Kubernetes and GKE, NetworkKuma Arakawa
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Masahito Zembutsu
 
Japan Container Day 2018
Japan Container Day 2018Japan Container Day 2018
Japan Container Day 2018Yoshio Terada
 
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」Nobuyuki Tamaoki
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Masahito Zembutsu
 
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜Daiki Kawanuma
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
オブジェクトストレージのユースケース (Cloudweek2014 講演資料)
オブジェクトストレージのユースケース (Cloudweek2014 講演資料)オブジェクトストレージのユースケース (Cloudweek2014 講演資料)
オブジェクトストレージのユースケース (Cloudweek2014 講演資料)CLOUDIAN KK
 
20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術Preferred Networks
 

Similar to エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned (20)

Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tkKubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
Kubernetesの良さを活かして開発・運用!Cloud Native入門 / An introductory Cloud Native #osc19tk
 
Tech Dojo 02/09 IBM Japan CSM
Tech Dojo 02/09 IBM Japan CSMTech Dojo 02/09 IBM Japan CSM
Tech Dojo 02/09 IBM Japan CSM
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
CyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallengeCyberAgentのインフラについて メディア事業編 #catechchallenge
CyberAgentのインフラについて メディア事業編 #catechchallenge
 
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
入門 Kubeflow ~Kubernetesで機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)
 
Singularity Containers for Enterprise Use
Singularity Containers for Enterprise UseSingularity Containers for Enterprise Use
Singularity Containers for Enterprise Use
 
Kubernetesバックアップの 5大ベストプラクティス紹介版
Kubernetesバックアップの 5大ベストプラクティス紹介版Kubernetesバックアップの 5大ベストプラクティス紹介版
Kubernetesバックアップの 5大ベストプラクティス紹介版
 
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
[OracleCodeTokyo2019] Kubernetesで実現する運用自動化の新しいアプローチとは
 
インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門インフラエンジニアのためのRancherを使ったDocker運用入門
インフラエンジニアのためのRancherを使ったDocker運用入門
 
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container ClusterオーケストレーションKubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
Kubernetes、Flannel、CNIでWindows Container Clusterオーケストレーション
 
Kubernetes 初心者の僕からの JKD 参加報告
Kubernetes 初心者の僕からの JKD 参加報告Kubernetes 初心者の僕からの JKD 参加報告
Kubernetes 初心者の僕からの JKD 参加報告
 
Infra: Kubernetes and GKE, Network
Infra: Kubernetes and GKE, NetworkInfra: Kubernetes and GKE, Network
Infra: Kubernetes and GKE, Network
 
Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理Docker入門 - 基礎編 いまから始めるDocker管理
Docker入門 - 基礎編 いまから始めるDocker管理
 
Japan Container Day 2018
Japan Container Day 2018Japan Container Day 2018
Japan Container Day 2018
 
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
OpenStack最新動向と構築のポイント - EMC様セミナー 「あなたのビジネスを高速化! OpenStackが実現する戦略的なクラウドインフラ」
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
SI現場のテスト自動化への挑戦〜フルコンテナ構成のCI/CD環境〜
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
オブジェクトストレージのユースケース (Cloudweek2014 講演資料)
オブジェクトストレージのユースケース (Cloudweek2014 講演資料)オブジェクトストレージのユースケース (Cloudweek2014 講演資料)
オブジェクトストレージのユースケース (Cloudweek2014 講演資料)
 
20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術20180729 Preferred Networksの機械学習クラスタを支える技術
20180729 Preferred Networksの機械学習クラスタを支える技術
 

Recently uploaded

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Recently uploaded (9)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned

  • 1. エンプラに Kubernetes を 導入してみて分かった 4つの Lessons Learned September 24th, OPENSHIFT.RUN 2020, Daiki Kawanuma
  • 3. エンタープライズにおける Kubernetes 導入あるある Kubernetes 導入のモチベーション • リソースの抽象化 Declarative Configuration • 自己回復性 Self Healing • 自動スケーリング Auto Scaling https://www.datadoghq.com/ja/container-report/ ビジネスのアジリティーを高めること Kubernetes の本質的な価値 For instance, average container lifetimes exceed 30 days in 3 percent of Kubernetes environments. エンタープライズにおける主要なモチベーション • コスト削減(インフラの集約性) • 可搬性、柔軟性のある基盤を選択し将来へ投資 コンテナを避け続けるのがリスクになるのも事実 • 世界レベルで標準化されている • 時代の流れとして逆らえない • 巨人の肩に乗る • “ソリューション要件がコンテナ” ← 間違ってはいない
  • 4. エンタープライズにおける Kubernetes 導入あるある コンテナ・ Kubernetes に期待を掛ける営業側 Azure AKS GCP GKE VMware Tanzu Kubernetes Grid on AWS on Azure on GCP on IBM Cloud IPI & UPI Kubernetes 戦国時代 • 選択肢として Kubernetes が選ばれやすいのは事実 • 営業としても、お客様にとって価値あるものだと信じている on Premise
  • 5. エンタープライズにおける Kubernetes 導入あるある その結果発生する”絵空事の” Kubernetes 導入 べき論はわかってます… 営業の目指した価値を体現するのが現場 たとえアンチパターンでも成功に導かなければいけない使命 絵空事をなんとか、現実の世界に落とし込んでみせよう ※絵空事:絵は実際の物とは違って誇張され美化されて描かれているものであること Win, Win Kubernetesは 素晴らしいんやな Kubernetesは 素晴らしいんです 現場的に厳しい戦いになることは 往々にしてある 『あなたにKubernetesは必要ですか?』 『多分あなたにKubernetesは必要ない』 『Kubernetes の導入時に考えるべきこと』
  • 6. エンタープライズにおける Kubernetes 導入あるある 段階的な Cloud Native 化への道 • ネガティブな表現をしたが、現実問題として一息に Cloud Native 化など不可能 • 許容される変更量、リスク量は限られている Kubernetes を導入して既成事実を作ってから徐々に文化を変えていくのもまた道 Kubernetes Driven で Cloud Native Journey を歩み出す
  • 7. 自己紹介 Daiki Kawanuma Associate Architect, Red Hat Certified Specialist, AWS Certified Solution Architect 所属 役割 レガシーアプリを適切にモダナイゼーションする 働き方 半年から数年程度でお客様を渡り歩く “遊撃隊“ のような働き方 お客様 A社 お客様付きSE API化案件 お客様 B社 お客様付きSE 新規構築 案件 お客様 C社 お客様付きSE 更改案件 弊部門 時間(半年〜数年で移動) • 構想策定 • API • Kubernetes/OpenShift 等 IBM Japan, Cloud Application Services, Modernization Strategy
  • 9. お客様事例  完全にOSと統合、Immutable  自動化オペレータで高度な自動化  シームレスにKubernetesをデプロイ  完全に自動化されたインストール  ワンクリックでアップデート  クラウドリソースを自動スケーリング 金融系のお客様 OpenShift=Enterprise Kubernetes プラットフォーム への移行をご検討中
  • 10. 本セッションのスコープ Cloud Native 化を進めるアプローチ Top Down, Bottom UP の両面からのアプローチが不可欠 営業 啓蒙 啓蒙 啓蒙 Bottom UP Top Down 本セッションのスコープ 開発部門・SIer ビジネス部門・お客様 マネジメント (意思決定者) 現場 指示 相談 RFP 相談
  • 11. AGENDA • Lessons Learned 1:コストとスケール • Lessons Learned 2:現行運用との兼ね合い • Lessons Learned 3:モダナイゼーションへの道 • Lessons Learned 4:チーム • まとめ
  • 13. Lessons Learned 1:コストとスケール 立ちはだかる税金の高さ • 4 vCPU • 16GB Memory Master Nodes Infra Nodes × 3ノード • 2 vCPU • 16GB Memory × 3ノード Worker Nodes Kubernetes “を”動かすのに必要なリソース=税金 18 vCPU, 96GB Memory 72vCPU, 110GB Memory × 40 Pod ※今回の案件においては Datadog 等の SaaS を使う選択肢も無かった 使い方によっては税金が高くみえてしまう(特にインフラの集約性に着目した場合) 今回は税金を払うモチベーションはあまりないので、できるだけ節税したい
  • 14. Lessons Learned 1:コストとスケール 立ちはだかる税金の高さ • 4 vCPU • 16GB Memory Master Nodes Infra Nodes × 3ノード • 2 vCPU • 16GB Memory × 3ノード Worker Nodes × 40 Pod 削れない 槍玉に挙がるのはここ トラディショナルな方法でもできるんじゃないの? 直近は要らないんじゃない? 今後 Kubernetes をやっていくなら必須なのだが… だが、今を乗り切る方法もあると言えばある
  • 15. Lessons Learned 1:コストとスケール 立ちはだかる税金の高さ 実際に、Kubernetes では泣く泣く削りました Master Nodes Infra Nodes Worker Nodes Promtail 開発環境 ステージング/ 本番環境 Shell kubectl get pod kubectl top podLocal PV 軽量な PLG を 選択 Grafana は非常に便利だった。 何かが起こったとき(障害・負荷試験等)に状態の推移をグラフィカルに見られるのは良い また、ログを各ホストサーバーへ取得しにいくのはやはり面倒だった。
  • 16. Lessons Learned 1:コストとスケール 立ちはだかる税金の高さ OpenShift では Infra Node の導入を検討中 Master Nodes Infra Nodes Worker Nodes 開発環境 ステージング/ 本番環境 • Red Hat のサポートが付く EFK を選択 (ただし運用のコアとはしない 後述) • Prometheus/Grafana はコアコンポーネントとして実質必須
  • 17. Lessons Learned 1:コストとスケール 立ちはだかる税金の高さ Lessons Learned • Master や Infra の税金に勝るある程度の規模の Worker ノードにしたい(マルチテナントも有効) • とは言え、最初からでかいクラスターから始めるのは難しい場合が多い • 将来像と合わせて投資ということにする • TCO で比較する • 現行のコストと比較する • 当たり前だが、ロギングやモニタリングのコンポーネントを入れないと後で辛くなる • システムとしての重要性に加え、ビジネス面でも価値を訴求したい デイリーアクティブユーザー 都道府県別アクセス数成約率 OS /ブラウザ別アクセス数
  • 18. 最近の個人的疑問 EFK が特に重い EFK vs. PLG https://www.cncf.io/blog/2020/07/27/logging-in-kubernetes-efk-vs-plg- stack/ 将来的に OpenShift に PLG の採用はあるのか?
  • 19. Lessons Learned 1:コストとスケール スケーラビリティに制限のあるオンプレ環境 基本的にHWを自由に増減させることはできなかった • ギリギリのリソースでやりくりする場合が多くなる • Requests を調整して押し込めるしかない Infra Node #1 Requests CPU: 98%(定常時は30%程のCPU使用率) • Alertmanager は監視のコアコンポーネントとして用いる • 運用上クリティカルになるものは減らせない コアコンポーネントも減らせない サービスレベルで Requests を決める • サービスレベルは気にしない (運用のコアコンポーネントにはしない) • まずは導入したい(入れることに意義)
  • 20. Lessons Learned 1:コストとスケール スケーラビリティに制限のあるオンプレ環境 リソースの調達には時間が掛かる • リソース追加には決済が伴うので、おいそれとリソース追加はできない • リソース見積もりをある程度精緻に行う必要がある • Core / Memory は Hardware Requirements として記載あり • OpenShift の場合 CR にデフォルト値として設定されている • ストレージ容量見積もりの手法 • アプリケーションログは現行をベースにサイジング • Elasticsearch は INDEX を張る関係上、ログ容量の3~5倍で見積もり • コアコンポーネントのログ/メトリクス量は検証クラスターで確認 検証クラスター(UPI)@ 問題はストレージ容量の見積もり
  • 21. Lessons Learned 1:コストとスケール スケーラビリティに制限のあるオンプレ環境 Lessons Learned • 大前提として、余裕のあるリソース確保には尽力したい • そうは言っても確保が難しい場合もあるかもしれない • サービスレベルを決める • Requests / Limits を駆使する • スケーラビリティに制限があるなら、尚更 PoC の重要性は高まる • リソース見積もりは実際に動かしてみることが一番 • PoC をして Feasibility を見極める(リソース見積もりに限らず重要)
  • 23. Lessons Learned 2:現行運用との兼ね合い 現行運用ソフトウェアとのインテグレーション 現行運用 SW(master) • プロセス監視 • メトリクス監視 • ログ監視 現行の運用方式 システムA 現行運用 SW(agent) 現行運用 SW(agent) 現行運用 SW(agent) システムB ・・・ システムN Kubernetesだけ 別のシステム監視とはいかないな ※許容されるリスク量・変更量の話も関係する 現行運用 SW(agent) 現行運用 SW(agent) • 統合監視基盤で運用を行っている
  • 26. Lessons Learned 2:現行運用との兼ね合い 運用文化とのせめぎ合い(インターネット接続) オンプレ環境はインターネット接続不可 お客様DC • オンプレ環境は基本的にインターネット接続不可 • 対象システムでインターネット接続を行った実績はなし OpenShift 4 のインストール方法 1. 直接接続方式 2. プロキシー接続方式 3. オフライン方式 ヤバイ、辛いという 前評判を聞いた https://rheb.hatenablog.com/entry/openshift42-proxy-upi 絶対に通さないと辛い 通さないといけない前提で話をもっていく
  • 28. Lessons Learned 2:現行運用との兼ね合い 運用文化とのせめぎ合い(インターネット接続) 実際の穴あけドタバタ劇 僕 お客様 セキュリティ統括 FW申請書 • 月末締め • 翌月末穴あけ実施 統合FW 担当者 穴あけ 『穴あけまでに実質2ヶ月程度掛かる』 registry.redhat.io *.quay.io sso.redhat.com cert-api.access.redhat.com api.access.redhat.com infogw.api.openshift.com https://cloud.redhat.com/api/ingress mirror.openshift.com storage.googleapis.com/openshift-release *.apps.<cluster_name>.<base_domain> quay-registry.s3.amazonaws.com api.openshift.com art-rhcos-ci.s3.amazonaws.com api.openshift.com cloud.redhat.com/openshift FW申請書 いざ、インストール! ERROR xxx xxxxxx ERROR xxx xxxxxx ERROR xxx xxxxxx ERROR xxx xxxxxx ERROR xxx xxxxxx 失敗!!!
  • 29. Lessons Learned 2:現行運用との兼ね合い 運用文化とのせめぎ合い(インターネット接続) 実際の穴あけドタバタ劇 registry.redhat.io *.quay.io quay.io sso.redhat.com 2ヶ月のロスタイム 今度は失敗するわけにはいかない… お家 N/W MacBook Pro Proxy サーバ OCP master #1- 3 OCP master #1-3 OCP infra #1-2 OCP infra #1-2 OCP worker #1- 3 OCP worker #1-3 Red Hat Servers Broadband Router Firewall 以下の通信以外は拒否する様に設定 • DNS • HTTP • HTTPS 拒否 された通信をログに出力し、下記の各 OCPサーバーから Proxy を経由しない通信 (≠ HTTP(s) の通信) の有無を洗い出す HTTP(S)の ログを取る 自分の MacBook Pro で検証
  • 30. Lessons Learned 2:現行運用との兼ね合い 運用文化とのせめぎ合い(インターネット接続) registry.redhat.io *.quay.io sso.redhat.com cloud.redhat.com mirror.openshift.com *.cloudfront.net quay-registry.s3.amazonaws.com api.openshift.com art-rhcos-ci.s3.amazonaws.com nginx.org quay.io infogw.api.openshift.com cdn.redhat.com storage.googleapis.com subscription.rhsm.redhat.com 結果の申請書 • 開発・構築時の留意事項 • 現行のネットワーク文化がある場合は要注意 • リードタイムを短くする努力をするか、2,3回失敗しても大丈夫なスケジュール的余裕を持つべき • 今後の保守に向けて • マイナーバージョンアップグレードで接続先が増減することは容易に想像できる • アップグレード失敗時の対策として最低限、FWのログ取得は必須 • 合わせて、よりスピーディーなワークフローへの改善にも努力したい Lessons Learned
  • 32. Lessons Learned 3:モダナイゼーションへの道 アプリモダナイゼーション The Twelve-Factor App を指針の1つとする 概要 説明 方針 1. コードベース バージョン管理されている1つのコードベースと複数のデプロイ 対応済 更改前からSubversionを利用 複雑化したアプリケーションを整理する余地はまだまだ存在する 2. 依存関係 依存関係を明示的に宣言し分離する 対応済 更改前からMavenを利用 DockerfileによりOSレベルの依存関係まで明示的になった 3. 設定 設定を環境変数に格納する 対応 環境設定用XMLファイルから環境変数に置換 4. バックエンドサービス バックエンドサービスをアタッチされたリソースとして扱う 対応なし バックエンドが変更できないため 特にGWと呼ばれるキューイングサービスとは密結合している(独自実装を多く含む) 5. ビルド、リリース、実行 ビルド、リリース、実行の3つのステージを厳密に分離する 対応済 コンテナの可搬性により、ステージの分離がより厳密になった 6. プロセス アプリケーションを1つもしくは複数のステートレスなプロセスとして実行する 対応なし アプリケーション改修のコストが非常に大きいため バックエンドが変更できないため 7. ポートバインディング ポートバインディングを通してサービスを公開する 対応 アプリケーションサーバーを含むコンテナイメージ とKubernetesのServiceの機能によってプ ロセス間の通信を制御する 8. 並行性 プロセスモデルによってスケールアウトする 対応(一部) アプリケーションを細かいプロセスに分離する、ただしマイクロサービス化はしない 一部アプリケーションのみ Deployment によるスケールアウトが可能になった 9. 廃棄容易性 高速な起動とグレースフルシャットダウンで堅牢性を最大化する 対応(一部) コンテナ化によってプロセスの軽量化を実施(主にミドルウェア) アプリ的なグレースフルシャットダウンには非対応 10. 開発/本番一致 開発、ステージング、本番環境をできるだけ一致させた状態を保つ 対応(一部) 時間のギャップ:本番環境への適用に要する時間が2時間から1時間に減少 人材のギャップ:一部あり ツールのギャップ:コンテナ により開発環境でも容易になったが、GWに課題あり 11. ログ ログをイベントストリームとして扱う 対応なし ロギングコンポーネントの不採用およびロギング機能の変更負荷により断念 12. 管理プロセス 管理タスクを1回限りのプロセスとして実行する 対応(一部) 管理スクリプトの一部はコンテナイメージ内に同梱されコンテナ内で実行されるが、 手動実行の運用手順も残っている
  • 33. Lessons Learned 3:モダナイゼーションへの道 Git 移行と Single Source of Truth Subversion から Git へ • 約20年間 Subversion で運用されてきた環境を段階的に Git へ移行 • コンテナ/Kubernetes 周りから Git 化を始める • 様々なツールが Git を前提に作られている • GitOps をしたい! • スキルフルな要員が集まりやすいので Git 移行の障壁が小さい Single Source of Truth • 動かすために何をすればいいか分からない • ドキュメントもどこにあるか分からない • コンテナや Kubernetes により IasC, CasC が非常にやりやすくなった • YAML や Dockerfile が設計書そのもの • あとはその設計に至るまでの AD(Architecture Decision) がわかれば良い Excel 設計書 + Redmine Wiki Subversion で管理されている ソースコード全体 今回 Git 移行のスコープとした コンテナ・Kubernetes 周りは全体の 2.4% まだまだ先は長いが、何事も小さな一歩から 脱却したい ソースコード + Markdown
  • 34. Lessons Learned 3:モダナイゼーションへの道 本当に必要な CI/CD • Kubernetes の早いライフサイクルに対応する必要がある (3ヶ月ごとのマイナーバージョンリリース、半年ごとのアップグレードの必要性) • 今までのN年塩漬けとは全く異なる考え方が必要になる • 本当に必要な CI/CD ってなんだっけ? • テストを自動化しましたが CI/CD じゃないないよね? • 目的とゴールを再確認しよう 【目的】 • 何らかの変更があってもサービスに影響が無いことを確認する 【ゴール】 • リリース・クライテリアを決める • それをできるだけ素早く簡易に実行できるようにする (自動化が絶対の手段とは限らない) 何らかの 変更 リリース・クライテリア ・ xxx ・ xxx ・ xxx 何かしらの自動化 簡易な手動実行 リリース https://access.redhat.com/ja/support/policy/updates/openshi ft OpenShift のライフサイクル
  • 35. Lessons Learned 3:モダナイゼーションへの道 本当に必要な CI/CD • どのレイヤーまでをスコープとするか Host OS Orchestration Container Container Container Container Container Runtime Automated Operations Manifest Manifest Package Manager Cluster / Application/ Developer Services マニフェスト〜アプリケーションの機能確認は当然やるでしょう 各種 Operator や Prometheus 等の Cluster Service はどうしよう 性能や可用性等の非機能確認はどうしよう 非機能どこまでやろう? インフラの CI やる? • どこまで自動化/パイプライン化するか ソースコード取得 ビルド 単体テスト パッケージ コンテナビルド 結合テスト アーティファクト登録 ステージングデプロイ パフォーマンステスト等
  • 36. Lessons Learned 3:モダナイゼーションへの道 Git 移行と Single Source of Truth Lessons Learned 本当に必要な CI/CD • 技術よりは仕組みやプロセスといったメタなことが障壁になりやすい • 活発に議論できるメンバーを3人以上集めたい • 現行の仕組みに詳しい人を巻き込むことも重要 • まずは「やってみる、やって見せる」ということが重要に感じる • 内容が良ければ、「一緒にやりたい」と言ってくれる人が現れる • Tool Driven でも大いに結構 • 導入してみると案外上手く動き出すってこともある メタな議論にも直地点を付ける(自戒)
  • 38. Lessons Learned 4:チーム Kubernetes に適応したチームつくり OpenShift のサポート期間 • マイナーバージョンのサポート期間は約9カ月 • アップグレード期間も考慮すると半年ごとのアップグレード作業が必要 スーパーマンが一人は居ないと厳しい (本当は複数人ほしい) • 作りきったら終わりではない(≠塩漬 け) • 継続的な保守が不可欠 https://access.redhat.com/ja/support/policy/updates/openshi ft
  • 39. Lessons Learned 4:チーム Kubernetes に適応したチームつくり お客様付きSEへのスキトラ お客様付きSE • 基本的なコマンド操作は習得済み( kubectl get pod 等) • Kubernetes の仕組みはまだ理解不十分 僕 • 障害解析ができる • リリースノートが読める • 人に教えられる お客様付きSE お客様付きSEのみで Kubernetes の保守を回せることが理想
  • 40. Lessons Learned 4:チーム Kubernetes に適応したチームつくり OpenShift スキル獲得 https://www.redhat.com/ja/services/training/do288-red-hat- openshift-development-i-containerizing-applications 1. Red Hat OpenShift Development I: Containerizing Applications 2. 週1回程度のスキトラ SA Role Role Binding
  • 41. Lessons Learned 4:チーム Kubernetes に適応したチームつくり OpenShift スキル獲得 3. Operator ハンズオン https://github.com/Daiki-Kawanuma/kubernetes-operator-handson • OpenShift の設定は基本的に CR の適用で行われる • Operator の概念の理解が不可欠 『最小構成』の なんちゃって Operator 4. 社内勉強会の企画 • 最終的には Kubernetes を『教える側』になってほしいという期待 • 人に教えるには3倍の理解が必要 若手(1〜3年目)への勉強会を企画中
  • 42. Kubernetes に適応したチームつくり Lessons Learned 4:チーム Lessons Learned 2. いきなり全部を教えすぎない いきなり全部並べられても分かるわけがない 相手の知識レベルに合わせて“教え過ぎない”ことを意識する 勉強したい人が自分のレベルが分からない・その人のレベルにあったコンテンツが無いのが辛い そもそもDockerの良い点や動かし方がわかっていない時にいきなりK8sの概念を聞いてもよくわからな い コンテナに限らずそれぞれの人のレベルに合わせた説明やコンテンツは需要があるのかなと思う 1. ユースケースで刺す 概念や機能を教えても腹落ちしづらい(Kubernetes のジャズ的な性質) ユースケースに刺して機能を教えていく 一緒にハンズオンやりながら説明していただけたのはめちゃくちゃ良い あとは実際に動かせる環境が準備されているというのも良い 3. 自分の作業過程や情報源をオープンにする 考え方や思考過程を目に見えるところに置いておく 気づいてもらう工夫をする 何を知っているべきか、何ができればいいのかがわからない 欲しいのは結果を導くための途中経過 4. 手を動かさせる、自分でやらせる 手を動かさないと始まらない 運用引き継ぎフェーズで一挙にスキトラは絶対に機能しないのでやめた方が良い
  • 43. • 本番稼動中だが、今のところコンテナ起因の障害は0 • お客様のモチベーションであったインフラコストは集約は達成できた • 既存運用方式とのインテグレーションも問題なく実施できた • Lift & Shift の “Lift” を成功裏に実施できた まとめ で、実際に Kubernetes 導入どうだったの? サービス目線 • リリース作業に要する時間が2時間から1時間に短縮できた • Kubernetes のリソースの集約化/抽象化という側面も開発の効率化に寄与した 開発目線 あるべき姿を定義しておけばあとはk8sが色々やってくれるというのは便利ですよね あとリソースの種類とかがわかっていればどこに定義が書いてあるかとかも探しやすいのがいいなと思います エンプラど真ん中のシステムに Kubernetes を導入したが、ちゃんと運用できてる
  • 44. • ビジネスアジリティを求めるのか • 運用の自動化を求めるのか • 開発生産性の向上を求めるのか…etc まとめ コンテナ化第二章に向けて 今後、どんな Shift を描くか、Kubernetes に何を求めるのか • ビジネスアジリティの話をすると、今回削減できたのは全体のごく一部でしかない • 本当に効果を上げようと思ったら、改善できる箇所がまだまだ沢山ある やはり組織・文化と向き合うことは避けられない リリースまでに要する時間 今回の Kubernetes 導入で 削減できた時間 • チーム全体のスキルアップが必須だが、まずは一人目のスーパーマンの育成が急務 • とは言え、一人のスーパーマンに頼っていてはスケールしないので、スケールする仕組み作りが組織として必要 これから本格的に始まる Day2 Operation, Kubernetes を保守する辛みと向き合う
  • 46. EOF Special Thanks • Satoshi Doi • Yusuke Urakawa • Hiromitsu Iwata • Kensuke Shigyo ご清聴ありがとうございました。

Editor's Notes

  1. ・聴講者に触れる Kubernetes導入のモチベーション ・まずK8sの本質的な価値
  2. エンハンス
  3. エンハンス
  4. エンハンス
  5. エンハンス
  6. 3つの方式 Alertmanager のエンドポイントを叩く Prometheus のエンドポイントを叩く Grafana のエンドポイントを叩く 1.Pros ・Prometheus が稼働していれば良く、Grafana はダウンしていても良い ・拡張性が高い、後からの他のメトリクスを監視対象にすることが容易 ・PrometheusへのAlert定義がGrafanaに比較すると面倒。Alertが正しく設定されているかビジュアルに確認できない
  7. Pross ・個別だとスループットが下がる ・障害時の影響範囲が小さい ・アプリごとに Fluentd の設定をカスタマイズしやすい Cons ・リソース(特にメモリ)を食う
  8. ・運用文化(この中でピックアップをしますよの小話)  ・インターネット疎通  ・本番ルーム作業  ・セキュリティ(意味あるなしではなく)  ・本番昇格作業  ・災対
  9. 今回はとにかく入れるんだ 運用文化を変える暇は無いんだ Kubernetes Driven で文化を変えてやる
  10. エンハンス
  11. DXを支えるテクノロジーとエンタープライズ