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
20年ものの巨大プロダクトをKubernetesに移行している話/Garoon on Kube...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yuichi Sugiyama
PRO
September 25, 2022
Technology
570
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20年ものの巨大プロダクトをKubernetesに移行している話/Garoon on Kubernetes
Yuichi Sugiyama
PRO
September 25, 2022
More Decks by Yuichi Sugiyama
See All by Yuichi Sugiyama
20年以上続く PHP 大規模プロダクトを Kubernetes へ ── クラウド基盤刷新プロジェクトの4年間
oogfranz
PRO
0
450
サイボウズ と Garoon と The PHP Foundation と 私 / Cybozu and Garoon and The PHP Foundation and me
oogfranz
PRO
1
610
可能な限り確実にmkdirを成功させるには / Make mkdir
oogfranz
PRO
0
750
サイボウズ #Garoon 開発チームの 「 完成度低いの歓迎LT大会 」 PHPerKaigi出張版 / Low quality LT in PHPerKaigi 2023
oogfranz
PRO
0
770
20年ものの巨大プロダクトをKubernetesに移行している話 後日談/Garoon on Kubernetes after talk
oogfranz
PRO
0
650
PHPアプリケーションだってモニタリングしたい / Monitoring PHP application
oogfranz
PRO
1
680
効果的な静的解析の CI導入パターンを求めて / Great static analysis with CI
oogfranz
PRO
3
4.1k
Dev-meets-Ops
oogfranz
PRO
1
1.1k
GitHub力の低い僕でも、 OSSコントリビュートできたワケ / GitHub Power
oogfranz
PRO
1
680
Other Decks in Technology
See All in Technology
EUDIWの枠組みを出発点に民間エコシステムの在り方を考える(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
340
1000⼈規模のClaude Enterprise運⽤を「Oktaのグループ」と「Slack」に集約する
sansantech
PRO
0
490
500名弱規模の組織のPythonプロジェクト(dbt) をどう管理するか?
hiracky16
0
360
わたしが知り合いゼロの勉強会に 行けるようになるまで
r5ni4
2
830
DMMブックスのNext.js化を加速させるAI活用 / Migrating DMM Books to Next.js with AI
kentarom
0
150
AIエージェントのためのデータ設計
daiz21
0
520
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
dbt と Snowflake と tag
kevinrobot34
2
290
サーバー常駐型の 簡易障害調査AI エージェントを作ってみた話
masayoshi
1
290
現場の暗黙知を継承するAIエージェント — 対話から生まれる長期記憶と Skills
atsukish
0
130
markdown-poster Introduction
kazamori
0
390
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
Featured
See All Featured
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
310
For a Future-Friendly Web
brad_frost
183
10k
Documentation Writing (for coders)
carmenintech
77
5.5k
Code Reviewing Like a Champion
maltzj
528
40k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
530
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
The browser strikes back
jonoalderson
0
1.6k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Transcript
20ͷͷڊେϓϩμΫτΛ KubernetesʹҠߦ͍ͯ͠Δ αΠϘζגࣜձࣾ Garoon։ൃ ਿࢁ ༞Ұ PHP Conference 2022 εϙϯαʔLT
#phpcon #phpcon2022
5͡Όݴ͍͍ͨ͜ͱݴ͍Εͳ͍ʂ
PHP ConferenceޙஊͰৄ͘͠͠·͢ʂ https://cybozu.connpass.com/event/259333/
PHP ConferenceޙஊͰৄ͘͠͠·͢ʂ https://cybozu.connpass.com/event/259333/ 1)1ରԠͱLTҠߦ ྆ํσΟʔϓʹ͓͠͠·͢ʂ
͔͜͜Βຊฤ
Whoami • ਿࢁ ༞Ұ @oogFranz • େاۀ͚άϧʔϓΣΞGaroon(Ψϧʔϯ) ࡞ͬͯΔ • ෳۀδϟζϛϡʔδγϟϯ
• MASHݭָஂɺFried Banana CabinɺϒϧʔάϥεˑϙϦε
αΠϘζ Garoon • େاۀ͚ͷάϧʔϓΣΞ • ࡢʢ9/24ʣ͕ϦϦʔε20पʂ • PHPͱMySQLͰಈ͘ • ύοέʔδ൛ͱΫϥυ൛͕͋Δ
αΠϘζ Garoon • େاۀ͚ͷάϧʔϓΣΞ • ࡢʢ9/24ʣ͕ϦϦʔε20पʂ • PHPͱMySQLͰಈ͘ • ύοέʔδ൛ͱΫϥυ൛͕͋Δ
ΫϥυΠϯϑϥج൫৽ϓϩδΣΫτ Neco • εέʔϥϏϦςΟϝϯςφϏϦςΟͷ͔Βελʔτ • VMϕʔεͷߏ͔Βίϯςφϕʔεͷߏʹ৽ • Kubernetes(K8s)ΛίΞٕज़ʹਾ͍͑ͯΔ • ج൫ଆͷ։ൃ2018։࢝ɻ2021ʹҰ୴ྃʂ
• https://blog.cybozu.io/entry/ever-lasting-neco
ΫϥυΠϯϑϥج൫৽ϓϩδΣΫτ Neco • εέʔϥϏϦςΟϝϯςφϏϦςΟͷ͔Βελʔτ • VMϕʔεͷߏ͔Βίϯςφϕʔεͷߏʹ৽ • Kubernetes(K8s)ΛίΞٕज़ʹਾ͍͑ͯΔ • ج൫ଆͷ։ൃ2018։࢝ɻ2021ʹҰ୴ྃʂ
• https://blog.cybozu.io/entry/ever-lasting-neco (BSPPOͷҠߦ͕ࠓ͔Βελʔτʂ
ΫϥυΠϯϑϥج൫৽ϓϩδΣΫτ Neco • εέʔϥϏϦςΟϝϯςφϏϦςΟͷ͔Βελʔτ • VMϕʔεͷߏ͔Βίϯςφϕʔεͷߏʹ৽ • Kubernetes(K8s)ΛίΞٕज़ʹਾ͍͑ͯΔ • ج൫ଆͷ։ൃ2018։࢝ɻ2021ʹҰ୴ྃʂ
• https://blog.cybozu.io/entry/ever-lasting-neco (BSPPOͷҠߦ͕ࠓ͔Βελʔτʂ ྃඪʂ
͕͜͜େม৽Ϋϥυج൫ʢNecoʣҠߦ • ίϯςφ͙͢ࢮ͵ʂVMϕʔε͔ΒͷϚΠϯυγϑτ • ΦϨΦϨϑϨʔϜϫʔΫ͍ͭͯདྷΕΔ͔ʁ͜ͷมߋͷεϐʔυʹ • ։ൃͱӡ༻ͷڥքઢେҠಈ • ݱ࣮ VS
ཧɻ ༷ܾΊͷ͠͞ɻ • Πϯϑϥࣝ0͔ΒͷNecoҠߦνʔϜ࡞Γ
͕͜͜େม৽Ϋϥυج൫ʢNecoʣҠߦ • ίϯςφ͙͢ࢮ͵ʂVMϕʔε͔ΒͷϚΠϯυγϑτ • ΦϨΦϨϑϨʔϜϫʔΫ͍ͭͯདྷΕΔ͔ʁ͜ͷมߋͷεϐʔυʹ • ։ൃͱӡ༻ͷڥքઢେҠಈ • ݱ࣮ VS
ཧɻ ༷ܾΊͷ͠͞ɻ • Πϯϑϥࣝ0͔ΒͷNecoҠߦνʔϜ࡞Γ ࠓ͜Ε͚ͩ͢Α
Garoon Pods ίϯςφ͙͢ࢮ͵ʂ Garoon αʔϏε "1 $POUBJOFS /HJOY $POUBJOFS
/HJOY $POUBJOFS "1 $POUBJOFS /HJOY $POUBJOFS "1 $POUBJOFS ΞΫηεࢄ
Garoon Pods ίϯςφ͙͢ࢮ͵ʂ Garoon αʔϏε "1 $POUBJOFS /HJOY $POUBJOFS
/HJOY $POUBJOFS "1 $POUBJOFS /HJOY $POUBJOFS "1 $POUBJOFS ❌ ❌ ͍ͣΕ͔ͷίϯςφ 1PEʹ͕͋ͬͨΒ
Garoon Pods ίϯςφ͙͢ࢮ͵ʂ Garoon αʔϏε "1 $POUBJOFS /HJOY $POUBJOFS
/HJOY $POUBJOFS "1 $POUBJOFS /HJOY $POUBJOFS "1 $POUBJOFS ❌ ❌ ͍ͣΕ͔ͷίϯςφ 1PEʹ͕͋ͬͨΒ /HJOY $POUBJOFS "1 $POUBJOFS /HJOY $POUBJOFS "1 $POUBJOFS ͷ1PEΛऔΓআ͖ ৽͘͠1PEΛ࡞͢Δ
ίϯςφ͙͢ࢮ͵ʂ • VMجຊམͱͤͳ͍ɻམͪͨΒ͙͢ʹͰ෮چͤ͞Δɻ • ίϯςφͰ͕ى͖ͨΒ͙͢ʹམͱͯ͠ɺ৽͍͠ͷΛ࡞Δɻ • ͜ΕʹΑΓߴՄ༻ੑͱεέʔϧΞτ͕࣮ݱՄೳ • ࣮ࡍʹίϯςφ͕੬͙ͯ͘͢ࢮ͵ɺͱ͍͏ΑΓ
ίϯςφ͕͍ͭࢮΜͰྑ͍લఏͰઃܭ͠Α͏ɺ ͱݴ͏͓ɻ
ίϯςφ͙͢ࢮ͵ʂ • VMجຊམͱͤͳ͍ɻམͪͨΒ͙͢ʹͰ෮چͤ͞Δɻ • ίϯςφͰ͕ى͖ͨΒ͙͢ʹམͱͯ͠ɺ৽͍͠ͷΛ࡞Δɻ • ͜ΕʹΑΓߴՄ༻ੑͱεέʔϧΞτ͕࣮ݱՄೳ • ࣮ࡍʹίϯςφ͕੬͙ͯ͘͢ࢮ͵ɺͱ͍͏ΑΓ
ίϯςφ͕͍ͭࢮΜͰྑ͍લఏͰઃܭ͠Α͏ɺ ͱݴ͏͓ɻ ύοέʔδͰ࢝·ͬͨ(BSPPOʹͦͷલఏ͕ͳ͍
Garoon Pods ୯ʹίϯςφԽ͢Δͱɺίϯςφ͕ঢ়ଶΛ࣋ͭ Garoon αʔϏε "1 $POUBJOFS /HJOY $POUBJOFS
/HJOY $POUBJOFS "1 $POUBJOFS /HJOY $POUBJOFS "1 $POUBJOFS ϑΝΠϧΞοϓϩʔυ ϩάϑΝΠϧ Ωϟογϡ
Garoon Pods ୯ʹίϯςφԽ͢Δͱɺίϯςφ͕ঢ়ଶΛ࣋ͭ Garoon αʔϏε "1 $POUBJOFS /HJOY $POUBJOFS
/HJOY $POUBJOFS "1 $POUBJOFS /HJOY $POUBJOFS "1 $POUBJOFS ϑΝΠϧΞοϓϩʔυ ϩάϑΝΠϧ Ωϟογϡ ❌ ❌ 1PE͕ෆ༻ҙʹམͪΔͱɺಓ࿈ΕͰ͍Ζ͍Ζফ͑ͯ͠·͏ ❌ ❌
͕͜͜େม৽Ϋϥυج൫ʢNecoʣҠߦ • ίϯςφ͙͢ࢮ͵ʂVMϕʔε͔ΒͷϚΠϯυγϑτ • ΦϨΦϨϑϨʔϜϫʔΫ͍ͭͯདྷΕΔ͔ʁ͜ͷมߋͷεϐʔυʹ • ։ൃͱӡ༻ͷڥքઢେҠಈ • ݱ࣮ VS
ཧɻ ༷ܾΊͷ͠͞ɻ • Πϯϑϥࣝ0͔ΒͷNecoҠߦνʔϜ࡞Γ
͕͜͜େม৽Ϋϥυج൫ʢNecoʣҠߦ • ίϯςφ͙͢ࢮ͵ʂVMϕʔε͔ΒͷϚΠϯυγϑτ • ΦϨΦϨϑϨʔϜϫʔΫ͍ͭͯདྷΕΔ͔ʁ͜ͷมߋͷεϐʔυʹ • ։ൃͱӡ༻ͷڥքઢେҠಈ • ݱ࣮ VS
ཧɻ ༷ܾΊͷ͠͞ɻ • Πϯϑϥࣝ0͔ΒͷNecoҠߦνʔϜ࡞Γ ΓޙஊͰ͠·͢ʂ
ޙஊͰ͠ΌΓ͍ͨ͜ͱ • ͕͜͜େม৽Ϋϥυج൫ʢNecoʣҠߦ • ͜ͷͰऔΓΜͰ͖ͨɺվળ͕͍͍ײ͡ʹޮ ͍ͯΔͧʂ • ։ൃͱӡ༻ɺΈͳ͞ΜͲ͏·Θͯ͠·͔͢ʁ
ޙஊͰ͠ΌΓ͍ͨ͜ͱ • ͕͜͜େม৽Ϋϥυج൫ʢNecoʣҠߦ