Kubernetes in Startup ~UbieのインフラをKubernetesに乗せた話~
by
sakajunquality
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Kubernetes in Startup ~UbieのインフラをKubernetesに乗せた話~ Japan Container Days v18.12 MeetUp @sakajunquality
Slide 2
Slide 2 text
- Google Developers Expert - Software Engineer @ Ubie Inc. - やってること #infrastructure #docker #kubernetes - 好きなこと #coffee #beer About @sakajunquality
Slide 3
Slide 3 text
About Ubie - 医療スタートアップ - 創業約1年半 - エンジニア 6名 - 内インフラ: 1
Slide 4
Slide 4 text
Today’s Agenda - PaaSから Kubernetes に移行した話 - Kubernetes 移行で苦労した話 - Kubernetes 移行後苦労した話
Slide 5
Slide 5 text
PaaS から Kubernetes に移行した 話
Slide 6
Slide 6 text
Why Kubernetes? - すでに複数のサービスが動いている、今後もサービスが増える予定 - GCPにはマネージドのKubernetesがある - 個人的に好き
Slide 7
Slide 7 text
- フロント1つ + 複数のバックエンドが稼働 - バックエンドは、Ruby on Rails から Kotlin w/ Spring Boot に移行中 Services in Ubie
Slide 8
Slide 8 text
- フロント1つ + 複数のバックエンドが稼働 - さらにサービスは増える予定 Services in Ubie
Slide 9
Slide 9 text
GCP - Heroku から GCP に移行することが決まっていた - セキュリティやマネージドサービスなどの理由 - GKE - マネージド Kubernetes - CI / CDもマネージド - マネージド Istio など今後も期待
Slide 10
Slide 10 text
個人的に好き - 個人的には結構重要だと思う
Slide 11
Slide 11 text
移行 - 移行 - 新しいバックエンドのサービスの稼働 - 既存のサービスの移行 - スケジュール - 2018年10月にUbie入社 - 2018年11月頭に移行完了 - (本当は10月中に終わらせたかった )
Slide 12
Slide 12 text
PaaS から Kubernetes に載せ替えて - リソースが効率化された - Compute / Memory / Disk - サービス間の通信で無駄に外に行くことがなくなった - インターナルなサービスで通信 - 体感速度も上がった! - プロセスの監視もしっかりできるようになった - デプロイフローも GitOps で統一できた
Slide 13
Slide 13 text
GitOpsの話はシアトルで!
Slide 14
Slide 14 text
Kubernetes is Great!
Slide 15
Slide 15 text
Kubernetes 移行で苦労した話
Slide 16
Slide 16 text
Kubernetes 移行で苦労した話 - Dockernize・環境変数 - なぜか動かないのでデバッグ - Kubernetes 自体
Slide 17
Slide 17 text
Dockernize - そもそものDocker化されていなかった
Slide 18
Slide 18 text
Dockernize - そもそものDocker化されていなかった - → Docker化してもらった
Slide 19
Slide 19 text
Dockernize - そもそものDocker化されていなかった - → Docker化してもらった - → いざ動かしたら動かないw
Slide 20
Slide 20 text
環境変数 - 環境変数がコード化されていない - heroku config すればOK - 本番・ステージで微妙に違ったり・・・
Slide 21
Slide 21 text
環境変数 - 環境変数がコード化されていない - heroku config すればOK - 本番・ステージで微妙に違ったり・・・ - → 泥臭く精査(いらないもの消したり)
Slide 22
Slide 22 text
なぜか動かないのでデバッグ - コンテナにtcpdump入れてリクエストを見てみたり・・・ - kubectl exec をひたすら繰り返す
Slide 23
Slide 23 text
Kubernetes 自体が難しい - アプリケーション開発者には Kubernetes は意識させたくない - が、すぐにそこまで作り込めないので触って貰う必要がある
Slide 24
Slide 24 text
外部でやったハンズオンを社内でやったり https://github.com/sakajunquality/gke-getting-started
Slide 25
Slide 25 text
Kubernetes is Difficult!
Slide 26
Slide 26 text
- 場合によっては、Kubernetes で動かすところまでたどり着くのも難しい - 慣れてないと、Kubernetes 自体難しい Kubernetes is Difficult!
Slide 27
Slide 27 text
Kubernetes 移行後苦労した話
Slide 28
Slide 28 text
Kubernetes 移行後苦労してる話
Slide 29
Slide 29 text
Kubernetes 移行後苦労してる話 - ジョブの実行 - Podがevicted - デプロイの通知 - namespaceの区切り方ミス
Slide 30
Slide 30 text
ジョブの実行 - DBマイグレーションなどの定常的なジョブ - → デプロイのパイプラインに組み込む - → 問題なし
Slide 31
Slide 31 text
ジョブの実行 - 順序を気にするようなアドホックのコマンドを実行する - → batch/v1のJob? - → kubectl exec? - どう自動化に組み込むか? - リッチなCI用意する?
Slide 32
Slide 32 text
Podがevicted - Podの一覧を見るとevictedになっている - 割り当てたディスクを使い果たす - → アプリケーションのバグだったの修正 - 割り当てたメモリを使い果たす - → 調査中
Slide 33
Slide 33 text
デプロイの通知 - ローリングアップデートの通知がわかりにくい - 単純に作ればいいが、時間が取れていない・・
Slide 34
Slide 34 text
- RubyからKotlinへの書き換えをしているので、言語でnamespaceを区切った - → RBACのことを考えると、組織の発展を考えた区切り方にしたほうが良かった namespaceの区切り方
Slide 35
Slide 35 text
Kubernetes is Hard!
Slide 36
Slide 36 text
Kubernetes is Hard! - 本番運用し始めてから気づくことも - 運用の大変なところはコンテナにしてもそうじゃなくても変わらないところが大き い - どう自動化するかとか
Slide 37
Slide 37 text
Kubernetes is still Great?
Slide 38
Slide 38 text
- オーケストレーションとしてよくできていると思う - アプリケーション開発者に意識させない用にするには、結構作り込みがいる気 がする - ただし作り込めば、新しいサービスを増やす際も共通の基盤として使える Kubernetes is still Great?
Slide 39
Slide 39 text
Kubernetes in startup? - リソースが限られているので、作り込みが甘いのは多少しょうがない - Kubernetes を使って実現したい世界をアプリケーション開発者に共有し、協力 を得る
Slide 40
Slide 40 text
Conclusion
Slide 41
Slide 41 text
Conclusion - Kubernetes is Great! - Kubernetes is Difficult! - Kubernetes is Hard! - Kubernetes is Great!
Slide 42
Slide 42 text
Thank you