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
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
7.8k
ポストコロナ時代の SaaS におけるコスト削減の意義
izzii
1
190
TableauLangchainとは何か?
cielo1985
1
140
Claude Code に プロジェクト管理やらせたみた
unson
7
4.8k
American airlines ®️ USA Contact Numbers: Complete 2025 Support Guide
airhelpsupport
0
390
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
10
130k
助けて! XからWaylandに移行しないと新しいGNOMEが使えなくなっちゃう 2025-07-12
nobutomurata
2
120
freeeのアクセシビリティの現在地 / freee's Current Position on Accessibility
ymrl
2
250
〜『世界中の家族のこころのインフラ』を目指して”次の10年”へ〜 SREが導いたグローバルサービスの信頼性向上戦略とその舞台裏 / Towards the Next Decade: Enhancing Global Service Reliability
kohbis
2
840
[SRE NEXT] ARR150億円_エンジニア140名_27チーム_17プロダクトから始めるSLO.pdf
satos
3
1.5k
衛星運用をソフトウェアエンジニアに依頼したときにできあがるもの
sankichi92
1
210
Lakebaseを使ったAIエージェントを実装してみる
kameitomohiro
0
160
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
740
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Designing Experiences People Love
moore
142
24k
For a Future-Friendly Web
brad_frost
179
9.8k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Automating Front-end Workflow
addyosmani
1370
200k
Faster Mobile Websites
deanohume
307
31k
GitHub's CSS Performance
jonrohan
1031
460k
GraphQLとの向き合い方2022年版
quramy
49
14k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
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