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
Kubernetes in Startup ~UbieのインフラをKubernetesに乗せた話~
Search
sakajunquality
December 03, 2018
Technology
1
1.3k
Kubernetes in Startup ~UbieのインフラをKubernetesに乗せた話~
Kubernetes in Startup ~UbieのインフラをKubernetesに乗せた話~
Japan Container Days v18.12 MeetUp
sakajunquality
December 03, 2018
Tweet
Share
More Decks by sakajunquality
See All by sakajunquality
DevFest Tokyo 2023: Google Cloudでチームで安全にデプロイをする
sakajunquality
10
1.9k
Cloud Spanner Monitoring 入門 / Cloud Spanner Monitoring Introduction
sakajunquality
1
1.4k
GKE Overview March 2021: Introducing Autopilot
sakajunquality
1
860
Introduction to Cloud Run 2021
sakajunquality
3
1.6k
Building Reliable Distributed Systems on GCP
sakajunquality
1
260
Istio 1.5 Updates
sakajunquality
4
2k
GCP 101: Getting Started through Cloud Run
sakajunquality
6
3.7k
Seeking Observability, Getting Started with Service Mesh
sakajunquality
0
160
Fastly Yamagoya Meetup: Leveraging Cloud Portability with Fastly
sakajunquality
0
16k
Other Decks in Technology
See All in Technology
コンパウンド組織のCRE #cre_meetup
layerx
PRO
0
150
それでも私が品質保証プロセスを作り続ける理由 #テストラジオ / Why I still continue to create QA process
pineapplecandy
0
150
HonoとJSXを使って管理画面をサクッと型安全に作ろう
diggymo
0
150
クラウドとリアルの融合により、製造業はどう変わるのか?〜クラスメソッドの製造業への取組と共に〜
hamadakoji
0
260
Claude Codeを駆使した初めてのiOSアプリ開発 ~ゼロから3週間でグローバルハッカソンで入賞するまで~
oikon48
10
5.2k
エンタメとAIのための3Dパラレルワールド構築(GPU UNITE 2025 特別講演)
pfn
PRO
0
620
事業開発におけるDify活用事例
kentarofujii
4
1.2k
AIエージェント入門 〜基礎からMCP・A2Aまで〜
shukob
0
130
NLPコロキウム20251022_超効率化への挑戦: LLM 1bit量子化のロードマップ
yumaichikawa
1
160
生成AI時代のセキュアコーディングとDevSecOps
yuriemori
0
140
AIフル活用で挑む!空間アプリ開発のリアル
taat
0
130
ソフトウェアエンジニアの生成AI活用と、これから
lycorptech_jp
PRO
0
780
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
340
57k
KATA
mclloyd
PRO
32
15k
Navigating Team Friction
lara
190
15k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
Keith and Marios Guide to Fast Websites
keithpitt
411
23k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Practical Orchestrator
shlominoach
190
11k
The Cult of Friendly URLs
andyhume
79
6.6k
Bash Introduction
62gerente
615
210k
We Have a Design System, Now What?
morganepeng
53
7.8k
Transcript
Kubernetes in Startup ~UbieのインフラをKubernetesに乗せた話~ Japan Container Days v18.12 MeetUp @sakajunquality
- Google Developers Expert - Software Engineer @ Ubie Inc.
- やってること #infrastructure #docker #kubernetes - 好きなこと #coffee #beer About @sakajunquality
About Ubie - 医療スタートアップ - 創業約1年半 - エンジニア 6名 -
内インフラ: 1
Today’s Agenda - PaaSから Kubernetes に移行した話 - Kubernetes 移行で苦労した話 -
Kubernetes 移行後苦労した話
PaaS から Kubernetes に移行した 話
Why Kubernetes? - すでに複数のサービスが動いている、今後もサービスが増える予定 - GCPにはマネージドのKubernetesがある - 個人的に好き
- フロント1つ + 複数のバックエンドが稼働 - バックエンドは、Ruby on Rails から Kotlin
w/ Spring Boot に移行中 Services in Ubie
- フロント1つ + 複数のバックエンドが稼働 - さらにサービスは増える予定 Services in Ubie
GCP - Heroku から GCP に移行することが決まっていた - セキュリティやマネージドサービスなどの理由 - GKE
- マネージド Kubernetes - CI / CDもマネージド - マネージド Istio など今後も期待
個人的に好き - 個人的には結構重要だと思う
移行 - 移行 - 新しいバックエンドのサービスの稼働 - 既存のサービスの移行 - スケジュール -
2018年10月にUbie入社 - 2018年11月頭に移行完了 - (本当は10月中に終わらせたかった )
PaaS から Kubernetes に載せ替えて - リソースが効率化された - Compute / Memory
/ Disk - サービス間の通信で無駄に外に行くことがなくなった - インターナルなサービスで通信 - 体感速度も上がった! - プロセスの監視もしっかりできるようになった - デプロイフローも GitOps で統一できた
GitOpsの話はシアトルで!
Kubernetes is Great!
Kubernetes 移行で苦労した話
Kubernetes 移行で苦労した話 - Dockernize・環境変数 - なぜか動かないのでデバッグ - Kubernetes 自体
Dockernize - そもそものDocker化されていなかった
Dockernize - そもそものDocker化されていなかった - → Docker化してもらった
Dockernize - そもそものDocker化されていなかった - → Docker化してもらった - → いざ動かしたら動かないw
環境変数 - 環境変数がコード化されていない - heroku config すればOK - 本番・ステージで微妙に違ったり・・・
環境変数 - 環境変数がコード化されていない - heroku config すればOK - 本番・ステージで微妙に違ったり・・・ -
→ 泥臭く精査(いらないもの消したり)
なぜか動かないのでデバッグ - コンテナにtcpdump入れてリクエストを見てみたり・・・ - kubectl exec をひたすら繰り返す
Kubernetes 自体が難しい - アプリケーション開発者には Kubernetes は意識させたくない - が、すぐにそこまで作り込めないので触って貰う必要がある
外部でやったハンズオンを社内でやったり https://github.com/sakajunquality/gke-getting-started
Kubernetes is Difficult!
- 場合によっては、Kubernetes で動かすところまでたどり着くのも難しい - 慣れてないと、Kubernetes 自体難しい Kubernetes is Difficult!
Kubernetes 移行後苦労した話
Kubernetes 移行後苦労してる話
Kubernetes 移行後苦労してる話 - ジョブの実行 - Podがevicted - デプロイの通知 - namespaceの区切り方ミス
ジョブの実行 - DBマイグレーションなどの定常的なジョブ - → デプロイのパイプラインに組み込む - → 問題なし
ジョブの実行 - 順序を気にするようなアドホックのコマンドを実行する - → batch/v1のJob? - → kubectl exec?
- どう自動化に組み込むか? - リッチなCI用意する?
Podがevicted - Podの一覧を見るとevictedになっている - 割り当てたディスクを使い果たす - → アプリケーションのバグだったの修正 - 割り当てたメモリを使い果たす
- → 調査中
デプロイの通知 - ローリングアップデートの通知がわかりにくい - 単純に作ればいいが、時間が取れていない・・
- RubyからKotlinへの書き換えをしているので、言語でnamespaceを区切った - → RBACのことを考えると、組織の発展を考えた区切り方にしたほうが良かった namespaceの区切り方
Kubernetes is Hard!
Kubernetes is Hard! - 本番運用し始めてから気づくことも - 運用の大変なところはコンテナにしてもそうじゃなくても変わらないところが大き い - どう自動化するかとか
Kubernetes is still Great?
- オーケストレーションとしてよくできていると思う - アプリケーション開発者に意識させない用にするには、結構作り込みがいる気 がする - ただし作り込めば、新しいサービスを増やす際も共通の基盤として使える Kubernetes is still
Great?
Kubernetes in startup? - リソースが限られているので、作り込みが甘いのは多少しょうがない - Kubernetes を使って実現したい世界をアプリケーション開発者に共有し、協力 を得る
Conclusion
Conclusion - Kubernetes is Great! - Kubernetes is Difficult! -
Kubernetes is Hard! - Kubernetes is Great!
Thank you