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
Backlog における Kubernetes の取り組み / Kubernetes's ap...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
株式会社ヌーラボ
PRO
March 08, 2019
Technology
1.2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Backlog における Kubernetes の取り組み / Kubernetes's approach in Backlog
2019/3/8 ヌーラボ 福岡本社で行われたGeeks Who Drinkでの発表資料です。
株式会社ヌーラボ
PRO
March 08, 2019
More Decks by 株式会社ヌーラボ
See All by 株式会社ヌーラボ
配布資料_ヌーラボの情シスがおすすめする_問い合わせ対応を削減するBacklog活用術.pdf
nulabinc
PRO
0
63
Bits Agent Builder の⼊⾨と活⽤事例
nulabinc
PRO
0
2.2k
Getting Started with Bits Agent Builder: Real-World Use Cases
nulabinc
PRO
0
75
The_Evolution_of_Bits_AI_SRE.pdf
nulabinc
PRO
0
370
進化するBits AI SREと私と組織
nulabinc
PRO
4
1.1k
実践 Datadog MCP Server
nulabinc
PRO
4
920
全社横断PjM⽀援チーム “PEaS”の取り組みと プロジェクトマネジメント でのAI活⽤について
nulabinc
PRO
0
230
Datadog の RBAC のすべて
nulabinc
PRO
4
920
Datadog Live Tokyo 2025登壇資料
nulabinc
PRO
0
210
Other Decks in Technology
See All in Technology
PdMをやめて、 "プロダクトビルダー"という 働き方に変えました / PdM to Product Builder
shikichee
2
700
全社に広がるMCPサーバーを、 どう安全に管理するか MCPass開発の舞台裏
mtpooh
3
280
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
250
PM領域でのAI Agentの活用
lycorptech_jp
PRO
0
270
AIで開発は速くなったのに、なぜ現場は楽にならないのか 〜あなたの組織のボトルネックを突き止めるワークショップ〜
jacopen
1
260
Webとヘルスデータ
yukukotani
0
170
本番に近いテストをもっと手軽に - Postmanで広がるAPIテストの世界 / Expanding the World of API Testing with Postman
yokawasa
1
250
多層防御と最⼩権限で実現する、安全なAIエージェント設計パターン
lycorptech_jp
PRO
0
170
動画配信アプリでの Engage SDK 導入 — TVer Android が Play ストアにコンテンツを届けるまで
techtver
PRO
0
100
Beyond the Hype: Practical AI for Your Oracle Database with MCP
thatjeffsmith
1
240
V8コントリビュート超入門
riyaamemiya
0
130
多摩川(.dev)ランニング入門 / Tamagawa.dev#3
fujiwara3
3
340
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
How to make the Groovebox
asonas
2
2.4k
Why Our Code Smells
bkeepers
PRO
340
58k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.8k
Agile that works and the tools we love
rasmusluckow
331
22k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
470
Facilitating Awesome Meetings
lara
57
7.1k
Designing Experiences People Love
moore
143
24k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
690
Google's AI Overviews - The New Search
badams
0
1.6k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
510
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
490
Transcript
Backlog における Kubernetes の取り組み Yuki YOSHIIWA Geeks Who Drink in
Fukuoka Front End Edition 2
Yuki YOSHIIWA a.k.a. iwa Web Frontend Engineer @ Nulab Inc.
React, TypeScript がだいすき! スイスがすきなので Scala がすき! ≡ もすきです! わんこだいすき! これは若かりし時の我が仔
突然ですが、
Backlog は UX 向上にゼンリョク! 速くて使いやすい、新しい UI を作っています React, TypeScript
Scala (Akka HTTP, Play なし) GraphQL, WebSocket Kubernetes UX を最大化するためインフラレベルから見直し どうなるかはヒミツ
なんでやるの?
現世代 Backlog の課題
運用つらい問題 国内・海外に複数の環境 現在8 環境 サーバー台数は200 台+ 伸びるリリース時間…
いくつか対策はしている 今回は割愛 詳しくは SRE チームに
運用つらい問題 サービスいっぱい Issue, Wiki, Git, File, ... これからも増える予定
サービスが増えることで、 運用コストが跳ね上がるの は避けたい
サービス増でつらくならないように いくつか Dockerize ECS で動かしている ステートレスな設計 リリース簡単で速い!
今後はコンテナーベースに していきたい
Kubernetes
Kubernetes とは Google が社内で培ってき たコンテナー運用にまつわ る知見を元に設計・開発し た、オープンソースのコン テナーオーケストレーショ ンシステム →Google
がやってきたこ とを一般化したもの
Kubernetes とは Cluster Master Node kubeapiserver Node Node scheduler controller
manager etcd kubectl kubelet kubeproxy container runtime Pod containers
Kubernetes とは オーケストレーション ( コ ンテナーの構成・設定) は yaml で管理する
yaml を正とする運用 (single source of truth) レビューがやりやすい
Kubernetes とは ほとんどの関心事を yaml に落とし込める 接続先などの設定 スケーリングの閾値
アップデート時の動作 Infrastructure as Code の 極致と言えるのでは
Kubernetes とは やりすぎた例 VM を管理 K8s を管理
データセンターを管理 独自のリソース定義を作る ことで、割となんでもでき るカスタマイズ性
Kubernetes とは 耐障害性が非常に高い 優れたスケジューラ 死活監視 セルフヒーリング ホスト/
コンテナーが落ち てもすぐに復旧する!
Cacoo も使っている!
EKS 、キミにきめた!
EKS とは AWS が提供するマネージ ド Kubernetes サービス 面倒ごとから解放される
クラスターの管理 アップデート Outofbox で AWS のサ ービスと統合されている
EKS とは Cluster Master Node kubeapiserver Node Node scheduler controller
manager etcd kubectl kubelet kubeproxy container runtime Pod containers
EKS とは Cluster Master Node kubeapiserver Node Node scheduler controller
manager etcd kubectl kubelet kubeproxy container runtime Pod containers API Server など K8s の 根幹となる機能を提供
EKS とは Cluster Master Node kubeapiserver Node Node scheduler controller
manager etcd kubectl kubelet kubeproxy container runtime Pod containers API Server など K8s の 根幹となる機能を提供 落ちたらまずい 部分を運用しな くていい安心感 アップデートを 自動でやってく れる嬉しい!
EKS とは Cluster Master Node kubeapiserver Node Node scheduler controller
manager etcd kubectl kubelet kubeproxy container runtime Pod containers API の認証・認可に IAM Role を使える
EKS とは Cluster Master Node kubeapiserver Node Node scheduler controller
manager etcd kubectl kubelet kubeproxy container runtime Pod containers Node には EKS に最適 化された AMI を使用 Node のスケーリング には Auto Scaling Group を使用
EKS とは Cluster Master Node kubeapiserver Node Node scheduler controller
manager etcd kubectl kubelet kubeproxy container runtime Pod containers Node には EKS に最適 化された AMI を使用 Node のスケーリング には Auto Scaling Group を使用 信頼と実績のあ る Auto Scaling Group !
なんで EKS ? Cacoo は自分でクラスターを作っていなかった? Cacoo チームからつらいところを聞いていた アップデートなど…
マネージド K8s が良いという話は聞いていた GKE, AKS は検討しなかった? AWS を利用しているので EKS にした ハイブリッドクラウドはコスト面で厳しい
実際にあった話
実際にあった話 Critical! 早く対応しない といかん! K8s 初の深刻な セキュリティ インシデント
実際にあった話 CVE20181002105 という、特殊なリクエストを行 うことで権限昇格することができる、危険性の高い 脆弱性が見つかる K8s 本体をアップデートしないといけない 本体のアップデートはやることが多く非常に面倒
実際にあった話 EKS の対応のタイムライン 2018/12/04 02:01 JST: K8s チームがアナウンス
2018/12/04 13:28 JST: 問い合わせ 2018/12/04 17:07 JST: AWS から対応中と返事 2018/12/05 17:58 JST: 対応完了の知らせ この間、コマンドを叩くことも、画面からぽちぽち することもなく、アップデート完了
実際にあった話 EKS の対応のタイムライン 2018/12/04 02:01 JST: K8s チームがアナウンス
2018/12/04 13:28 JST: 問い合わせ 2018/12/04 17:07 JST: AWS から対応中と返事 2018/12/05 17:58 JST: 対応完了の知らせ この間、コマンドを叩くことも、画面からぽちぽち することもなく、アップデート完了 マネージド 最高!
Backlog における EKS の構成管理
Backlog のアーキテクチャ
Backlog のアーキテクチャ Internet nginx web api git svn MySQL Redis
log
Backlog のアーキテクチャ Internet nginx web api git svn MySQL Redis
log Master kubeapiserver Node Pod New UX Service
Backlog のアーキテクチャ Internet nginx web api git svn MySQL Redis
log Master kubeapiserver Node Pod New UX Service 既存 VPC 内に K8s の Node を配置している
Backlog のアーキテクチャ Internet nginx web api git svn MySQL Redis
log Master kubeapiserver Node Pod New UX Service インターネットからの アクセスは、nginx → K8s から作成した ELB と流れる
Backlog のアーキテクチャ Internet nginx web api git svn MySQL Redis
log Master kubeapiserver Node Pod New UX Service DB などにはコンテナー から直接アクセス
EKS の構成管理
Terraform Terraform を利用 Backlog で実績アリ 既存と組み合わせやすい eksctl は検討したが、マ
ッチしなかったので除外
Terraform 管理対象 IAM Role Network (Subnet, etc)
EKS Cluster Node Auto Scaling Group
Terraform Terraform で Node の AMI を変更しても Node が入 れ替わらない…
→Terraform では Auto Scaling Group を変更して もローリングアップデートがかからないことがわか った どうするか
Terraform + CloudFormation +
Terraform 管理対象 IAM Role Network (Subnet, etc)
EKS Cluster 主に K8s の Master や、 ネットワーク周りを管理し ている
CloudFormation (CFn) AWS 公式 EKS Node のテ ンプレートを利用 Node
の面倒を引き受け CFn を利用することで Auto Scaling Group 更新 時にローリングアップデー トがかかるように!
Terraform + CloudFormation 定常業務が terraform apply で済むようになった
Terraform + CloudFormation terraform apply するとローリングアップデートが かかるため、ダウンタイムなしに 更新できる
とても嬉しい! Amazon Linux 2 のセキュリ ティインシデントが… ↓ AMI を変更して terraform
apply
とても嬉しい! K8s のセキュリティインシデ ントで AMI 入れ替えないと… ↓ AMI を変更して terraform
apply
とても嬉しい! K8s のバージョンアップしたい! ↓ 該当のバージョン用の AMI に変更して terraform apply
とても嬉しい! terraform apply するだけなので とても楽になった
まとめ
まとめ ・Kubernetes (K8s) はとても良いです ・マネージド K8s はすぐに使えて運用も楽です ・EKS を terraform
で作るときは CloudFormation を terraform で作るようにしましょう… ・フロントエンドに疲れた方は Kubernetes やってみ ませんか?
ヌーラボに興味がある方はこちら!