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.4k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Kubernetes in Startup ~UbieのインフラをKubernetesに乗せた話~
Kubernetes in Startup ~UbieのインフラをKubernetesに乗せた話~
Japan Container Days v18.12 MeetUp
sakajunquality
December 03, 2018
More Decks by sakajunquality
See All by sakajunquality
AIと共生する開発者プラットフォーム:バクラクのモノレポ×マイクロサービス基盤
sakajunquality
2
4.4k
DevFest Tokyo 2023: Google Cloudでチームで安全にデプロイをする
sakajunquality
10
2k
Cloud Spanner Monitoring 入門 / Cloud Spanner Monitoring Introduction
sakajunquality
1
1.5k
GKE Overview March 2021: Introducing Autopilot
sakajunquality
1
920
Introduction to Cloud Run 2021
sakajunquality
3
1.7k
Building Reliable Distributed Systems on GCP
sakajunquality
1
320
Istio 1.5 Updates
sakajunquality
4
2.1k
GCP 101: Getting Started through Cloud Run
sakajunquality
6
3.9k
Seeking Observability, Getting Started with Service Mesh
sakajunquality
0
210
Other Decks in Technology
See All in Technology
データエンジニアリングとドメイン駆動設計
masuda220
PRO
14
2.3k
“それは自分の仕事じゃない"を越えて行け
yuukiyo
1
510
非定型なドキュメントを効率よくリファクタする 〜えぇ!?仕様書27本の移行が1日で終わったって!?〜
subroh0508
2
600
凡エンジニアがこの先生きのこるためには。〜TypeScript完全に理解したい〜
alchemy1115
2
400
なぜ、あなたのAPIは使われないのか? AX時代の設計原則、ガードレール、運用体制
yokawasa
1
190
設計レビューとAIハーネスで向き合う AIが生み出した新しいボトルネックの対処法 / Design Reviews and AI Harnesses Against New Bottlenecks Created by AI
nstock
3
400
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
240
Amazon Quick 入門!
ysuzuki
2
120
全社でのソフトウェアサプライチェーン攻撃対策をやってみた with Takumi Guard
z63d
0
210
大量データに対しても、生成AIを用いてリーズナブルにデータ加工をしたい!Databricksのai_queryについて調べてみた
kamoshika
1
270
AI時代のYAGNI:「爆速で無駄になった機能」からの学び / 20260720 Naoki Takahashi
shift_evolve
PRO
3
500
AI時代のPlaywright活用(システムテストを自動化する ー 実行エンジンにPla ywrightを選んだ理由)
ynisqa1988
2
910
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
150
The Pragmatic Product Professional
lauravandoore
37
7.4k
Side Projects
sachag
455
43k
Building Adaptive Systems
keathley
44
3.1k
A Soul's Torment
seathinner
6
3.1k
Six Lessons from altMBA
skipperchong
29
4.3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Site-Speed That Sticks
csswizardry
13
1.3k
Automating Front-end Workflow
addyosmani
1370
210k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
400
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