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
カラーミーショップのクラウドネイティブに向けた取り組み
Search
takapi86
December 24, 2020
Technology
0
2.3k
カラーミーショップのクラウドネイティブに向けた取り組み
Pepabo Tech Conference #13
https://pepabo.connpass.com/event/197089/
takapi86
December 24, 2020
Tweet
Share
More Decks by takapi86
See All by takapi86
SIerから転職してきて 良かったこと・大変だったこと
takapi86
1
1.1k
pepabo-ec-tech-conference-web-application-firewall
takapi86
3
1.3k
Other Decks in Technology
See All in Technology
データエンジニアがクラシルでやりたいことの現在地
gappy50
3
660
MCPと認可まわりの話 / mcp_and_authorization
convto
2
290
生成AIを活用した野球データ分析 - メジャーリーグ編 / Baseball Analytics for Gen AI
shinyorke
PRO
1
230
Ktor + Google Cloud Tasks/PubSub におけるOTel Messaging計装の実践
sansantech
PRO
1
330
新規事業におけるAIリサーチの活用例
ranxxx
0
170
The Madness of Multiple Gemini CLIs Developing Simultaneously with Jujutsu
gunta
1
2.8k
【CEDEC2025】大規模言語モデルを活用したゲーム内会話パートのスクリプト作成支援への取り組み
cygames
PRO
1
310
AIに全任せしないコーディングとマネジメント思考
kikuchikakeru
0
270
ecspressoの設計思想に至る道 / sekkeinight2025
fujiwara3
12
2.1k
機械学習を「社会実装」するということ 2025年夏版 / Social Implementation of Machine Learning July 2025 Version
moepy_stats
1
1.4k
生成AIによる情報システムへのインパクト
taka_aki
1
200
CSPヘッダー導入で実現するWebサイトの多層防御:今すぐ試せる設定例と運用知見
llamakko
1
260
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
For a Future-Friendly Web
brad_frost
179
9.8k
Agile that works and the tools we love
rasmusluckow
329
21k
Embracing the Ebb and Flow
colly
86
4.8k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1k
Music & Morning Musume
bryan
46
6.7k
How to Ace a Technical Interview
jacobian
278
23k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Faster Mobile Websites
deanohume
308
31k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.5k
Transcript
1 Χϥʔϛʔγϣοϓͷ ΫϥυωΠςΟϒʹ͚ͨ औΓΈ ECࣄۀ෦ Χϥʔϛʔγϣοϓ αʔϏεج൫νʔϜɹ∁ڮ༤ل
2 2 ࣗݾհ • ໊લ: ∁ڮ༤ل • Twitter: @takapi86 •
ॴଐ: GMOϖύϘ ECࣄۀ෦ Χϥʔϛʔγϣοϓάϧʔϓ αʔϏεج൫νʔϜ • WebΞϓϦέʔγϣϯΤϯδχΞ • ۀͰ͍ͬͯΔ͜ͱ ◦ ϨΨγʔڥͷվળ ◦ ηΩϡϦςΟڧԽ
3 3 ࠓ͓͢Δ͜ͱ ΧϥʔϛʔγϣοϓͷΫϥυωΠςΟϒʹ͚ͨऔΓΈ • લύʔτ ◦ Մ༻ੑΛ্ͤ͞ΔͨΊͷऔΓΈɺShopSetΞʔΩς Ϋνϟʹ͍ͭͯ •
ޙύʔτ ◦ Kubernetesಋೖࣄྫ ϝʔϧϚΨδϯ৴Φϓγϣϯ
4 4 Χϥʔϛʔγϣοϓͷհ ຊؾͰωοτϏδωεΛ࢝Ί͍ͨํ͚ͷ ωοτγϣοϓ࡞αʔϏε
5 Մ༻ੑΛ্ͤ͞ΔͨΊͷऔΓΈɺShopSetΞʔΩς Ϋνϟʹ͍ͭͯ 5
6 6 boost2020 ϓϩδΣΫτ͕ൃʂʂ • ৽ܕίϩφՒʹ͓͍ͯɺωοτγϣοϐϯάͷར༻ऀ͕ٸ૿ ◦ ECͷαʔϏεʹର͢Δظײߴ·͍ͬͯΔ⬆⬆ • ຊதͷ͍Λ͢Δࣄۀऀ͕ͳΊΒ͔ʹΧϥʔϛʔγϣοϓ
Λ׆༻ͨ͠ΦϯϥΠϯࣄۀܗଶ(EC)ʹDX͢Δ͜ͱΛՃͤ͞ ΔͨΊͷऔΓΈ ◦ ϓϩϞʔγϣϯϨϕϧͷ্ ◦ γεςϜϨϕϧͷ্ ࣛࣇౡݶఆͰTVCM์ө͞Ε·ͨ͠ʂ
7 7 γεςϜϦΞʔΩςΫνϟ • boost2020ͷऔΓΈͷҰͭ • ओʹՄ༻ੑ্ͷνϟϨϯδ • νʔϜମ੍ ◦
ΠϯϑϥΤϯδχΞ2໊ ◦ ΞϓϦέʔγϣϯΤϯδχΞ1໊
8 8 ͳͥՄ༻ੑ্͍͔ͤͨ͞ʁ ৽ܕίϩφՒʹ͓͍ͯɺΧϥʔϛʔγϣοϓͷళฮͰങ͍Λ ͢ΔϢʔβ͕ٸ૿ ◦ τϥϑΟοΫ૿େ ◦ ηʔϧͳͲͷΞΫηεूத =>
ΞΫηεԆɺγϣοϓӾཡෆՄͳͲͷӨڹ͕ൃੜ
9 ୈ1ஈରԠʢݱࡏͷߏʣ NyahʢϓϥΠϕʔτOpenStackڥʣ্ͷΠϯελϯεʹɺ ֤ϩʔϧͷΞϓϦέʔγϣϯ͕σϓϩΠ͞Ε͍ͯΔ ؋A ؋B γϣοϓϖʔδ Χʔτϖʔδ API ϩʔυόϥϯα
ϩʔυόϥϯα ؋A ؋B γϣοϓϖʔδ Χʔτϖʔδ API ϩʔυόϥϯα ϩʔυόϥϯα ຊ൪ڥ ຊ൪ڥ ʢख࡞ۀͰߏஙʣ 9
10 ShopSet Χʔτϖʔδ γϣοϓϖʔδ API Ϧόʔε ϓϩΩγ LB https://hoge.shop-pro.jp 10
ShopSetΞʔΩςΫνϟ k8s Cluster k8s Cluster ShopSet ShopSet ShopSet ShopSet
11 11 ShopSetΞʔΩςΫνϟ ଞʹɾɾɾ • Ϧιʔε੍ݶ • ΫϥελؒεέδϡʔϦϯά • σϓϩΠ
• ΧφϦΞϦϦʔε ͳͲͷΈʹ͍ͭͯઃܭΛਐΊ͍ͯ·͢ɻ
12 ShopSetҎ֎ͷϩʔϧͷKubernetesҠߦ ShopSetҎ֎ͷϩʔϧঃʑʹKubernetesҠߦΛਐΊ͍ͯ· ͢ɻ ޙͪ͜Βͷಋೖࣄྫʹ͍͓ͭͯ͠·͢ɻ 12
13 Kubernetesͷಋೖࣄྫ ϝʔϧϚΨδϯ৴Φϓγϣϯʹ͍ͭͯ 13
14 ϝʔϧϚΨδϯ৴ΦϓγϣϯͷKubernetesಋೖ • ߏங४උ ◦ 20209݄ʙ11݄ʢଞPJฒߦͰߦ͍ͭͭ࡞ۀʣ • ϦϦʔε ◦ ஈ֊తͳϦϦʔε12/14શʹҠߦ͕ྃʂʂ
14
15 ͳͥKubernetesʹҠઃͨ͠ͷ͔ ͖͔͚ͬ • CentOS6ͷηΩϡϦςΟαϙʔτ͕202011݄ʹऴྃ • ϝʔϧϚΨδϯ৴ΦϓγϣϯΛઃఆ͢ΔͨΊͷཧϖʔ δαʔόOS͕ɺCentOS6ͰՔಇ͍ͯͨͨ͠Ίόʔδϣϯ Ξοϓ͕ඞཁͩͬͨ 15
16 ͳʹҠઃͨ͠ͷ͔ ͦͷଞͷཧ༝ • ٕज़తʹνϟϨϯδ͍͢͠ڥͩͬͨ ◦ ػೳ͕ϝʔϧςϯϓϨʔτͷ࡞ɺΞυϨεாͷ࡞ɺ৴༧ ͱগͳ͍ ◦ ΞΫηεՄೳͳϢʔβଞͷϩʔϧʹൺݶΒΕ͍ͯΔ
• PuppetϚχϑΣετ͕ϝϯςφϯε͞Εͳ͘ͳͬͯ͠·͍ɺखಈͰ ϥΠϒϥϦͷΞοϓσʔτͳͲΛߦ͍ͬͯͨ ◦ ʢଞͷϩʔϧͪΌΜͱϝϯςφϯε͞Εͯ·͢ʣ • ։ൃڥ͢ͰʹDockerͰಈ͘Α͏ʹͳ͍ͬͯͨ 16
17 ͜ΕKubernetesνϟϯεͰʁ ϊϋΛੵ͢Δʹྑ͍ػձʂ Ϣʔβ͕৮ΔϩʔϧͷKubernetesԽୈ1ஈͱͯ͠νϟϨϯδ͠·ͨ͠ʂ ʢ˞Ұ෦ͷAPIಋೖࡁΈͰͨ͠ʣ ϦΞʔΩςΫνϟνʔϜ • ΠϯϑϥΤϯδχΞ 2໊ •
ΞϓϦέʔγϣϯΤϯδχΞ 1໊ ↑ ͜͜ʹࠞͥͯΒͬͨ 17
18 ߏ • OS: CentOS6 ◦ => CentOS7 • ݴޠ:
PHP ◦ => มߋͳ͠ • Webαʔό: ApacheʢPHPϞδϡʔϧʣ ◦ => Nginx + PHP-FPM • NyahʢࣾͷϓϥΠϕʔτΫϥυʣͷΠϯελϯε ◦ =>ɹShopSetΫϥελ(Kubernetes) 18
19 ͍Ζ͍Ζ՝͕ग़͖ͯͨ • ϩάͲ͏͢Δʁ • ΤϥʔͷτϥοΩϯάʁ • ίϯςφͷࢹʁ • ηΩϡϦςΟେৎʁʁ
• ύϑΥʔϚϯεେৎʁʁ • ͳ͔ͥPodΓସ͑࣌ʹμϯλΠϜ͕ൃੜ͢Δʂ • σϓϩΠʁ ɾɾɾͳͲͳͲ 19
20 Կ͔՝ؾ͍ͮͨ͜ͱ͕ग़ͨΒ͙͢ϦΞʔΩςΫνϟνʔϜʹ૬ஊ • ຖ༦ํࡶஊ෦ʢGoogle Meetʣʹू·Δ࣌ؒΛऔ͍ͬͯ ΔͷͰɺͦ͜Ͱࠔ͍ͬͯΔ͜ͱΛ૬ஊ ◦ ૬ஊ->શһͰҰؾʹղܾͱ͍͏ྑ͍αΠΫϧ͕ճͤͨ ◦ ShopSetͷߏஙʹྑ͍ӨڹΛ༩͑ΒΕͨ
20
21 ൃੜͨ͠՝Λڠྗͯ͠ย͚͍ͯͬͨ 21 • ϩά ◦ => Fluentdܦ༝ͰBigQueryʹอଘʢStdOutͷ༰Cloud Loggingʣ •
ΤϥʔτϥοΩϯά ◦ => Sentryͷಋೖ • ίϯςφࢹ ◦ => Mackerel Agentͷಋೖ • ίϯςφηΩϡϦςΟ ◦ => ΞϓϦέʔγϣϯίϯςφηΩϡϦςΟΨΠυʢNIST࡞ɺ༁मIPAʣΛνΣοΫ • PodΓସ͑࣌ͷμϯλΠϜ ◦ => ReadinessProbeɺpreStopͷௐ • ύϑΥʔϚϯε ◦ => ଟΊʹϦιʔεΛऔͬͯϦϦʔεޙௐ
22 σϓϩΠʢShopSetผͷํࣜʣ 22 ։ൃऀ ϝϧϚΨ AppϦϙδτϦ K8sϚχϑΣετ ϦϙδτϦ ࣾ Docker
Resisty K8s Argo CDʹͯϚχϑΣετΛద༻ CI/CDʹͯɺϚʔδɾΠϝʔδͷϓογϡ ΞϓϦέʔγϣϯ Nginx, PHP-FPM K8sΫϥελ Merge Push Pull ߋ৽ͨ͠ΠϝʔδΛ͏Α͏ʹɺ ϚχϑΣετͷΠϝʔδλάΛߋ৽
23 ͦͯ͠ϦϦʔε 23 ͜ͷΑ͏ͳऔΓΈΛߦ͏͜ͱͰɺ1݅োΛൃੜͤͣ͞ແ ࣄϦϦʔε͢Δ͜ͱ͕Ͱ͖·ͨ͠
24 ·ͱΊ • ΧϥʔϛʔγϣοϓͰɺՄ༻ੑ্ͷͨΊͷࢪࡦͱ͠ ͯɺShopSetΞʔΩςΫνϟͷಋೖΛਐΊ͍ͯ·͢ɻ • KubernetesಋೖͷࡍɺεϞʔϧελʔτͯ͠ಋೖࣄྫΛ ࡞͍ͬͯ͘ͱɺϦεΫΛ࠷খݶʹ͑ϊϋΛཷΊΒΕ Δ •
͜͏͍ͬͨऔΓΈΛҰॹʹਐΊͯߦ͚ΔؒΛืूͯ͠ ͍·͢ʂ 24