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
【EC/CRM基盤開発】 prismatix事業部 Devチーム(サーバーサイドエンジニア)の...
Search
Keiichi Nomura
December 09, 2022
Technology
0
1.4k
【EC/CRM基盤開発】 prismatix事業部 Devチーム(サーバーサイドエンジニア)の紹介 / Prismatix server side engineer job introduction
EC/CRM に特化したAPIプラットフォームを提供する prismatix 開発・運用の仕事内容について、主にサーバーサイドエンジニアの視点で紹介をさせていただきます。
Keiichi Nomura
December 09, 2022
Tweet
Share
More Decks by Keiichi Nomura
See All by Keiichi Nomura
チーム開発のふりかえり2024 #devio2024
k1style
0
320
ECサイト向け決済機能の開発で学んだ外部決済サービスの活用ポイント
k1style
1
2k
開発チームリーダーとしてやってきたことのふりかえり
k1style
0
1.4k
外部決済サービスを利用する上での脆弱ポイントと対策 / Vulnerable points and countermeasures for using external payment services
k1style
0
1.8k
外部決済サービスを利用した開発の反省と改善 #devio2021 / Introspection and Improvement of Development with External Payment Services
k1style
0
1.7k
Developers.IO 2020 Connect Day5 ECサイトの決済システムを作るなら知っておきたいこと / Developers.IO 2020 Connect Day5 Payment Development Flow With E-commerce Site
k1style
0
4.6k
サーバーレスアーキテクチャでサクッと作るアイマスbot
k1style
1
980
私が考えるAWSを使ったアイマスHack
k1style
1
1.1k
Other Decks in Technology
See All in Technology
落ちる 落ちるよ サーバーは落ちる
suehiromasatoshi
0
150
Webアプリケーションにオブザーバビリティを実装するRust入門ガイド
nwiizo
6
740
新アイテムをどう使っていくか?みんなであーだこーだ言ってみよう / 20250911-rpi-jam-tokyo
akkiesoft
0
160
Flutterでキャッチしないエラーはどこに行く
taiju59
0
220
Firestore → Spanner 移行 を成功させた段階的移行プロセス
athug
1
440
Codeful Serverless / 一人運用でもやり抜く力
_kensh
7
370
企業の生成AIガバナンスにおけるエージェントとセキュリティ
lycorptech_jp
PRO
2
160
おやつは300円まで!の最適化を模索してみた
techtekt
PRO
0
290
allow_retry と Arel.sql / allow_retry and Arel.sql
euglena1215
1
160
自作JSエンジンに推しプロポーザルを実装したい!
sajikix
1
170
S3アクセス制御の設計ポイント
tommy0124
3
190
roppongirb_20250911
igaiga
1
200
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
A Modern Web Designer's Workflow
chriscoyier
696
190k
Code Review Best Practice
trishagee
70
19k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Done Done
chrislema
185
16k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Transcript
prismatixࣄۀ෦ͷ։ൃʹ͍ͭͯհ 2022/09/27 prismatixࣄۀ෦ ଜܒҰ
ࣗݾհ ଜ ܒҰ Ϋϥεϝιου prismatix ࣄۀ෦ prismatix จ/ܾࡁαʔϏε୲
ࠓճ͓͢Δ͜ͱ • prismatix ࣄۀ෦ͷ͝հ • prismatix ͷٕज़ελοΫ • prismatix
ΛͲͷΑ͏ʹ։ൃ͍ͯ͠Δ͔ • prismatix ͷ։ൃͰମݧͰ͖Δ͜ͱ • ࢲ͕ײ͡Δ prismatix ։ൃͷ՝ • Ұॹʹ՝ղܾʹऔΓΜͰ͘ΕΔํʹདྷͯ΄͍͠ʂ
prismatixͱʁ
QSJTNBUJYͱʁ https://prismatix.jp/ • EC / CRMಛԽܕϓϥοτϑΥʔϜ • ΫϥεϝιουͷB2BࣗࣾαʔϏε •
ΤϯήʔδϝϯτίϚʔε • ܕίϯαϧςΟϯά
&$$3.ಛԽܕϓϥοτϑΥʔϜ Λ͑Δ൚༻"1*Λඋ͓͑ͯΓɺ֤اۀಠࣗͷ&$αΠτɺ$3.ͷߏங ͕Մೳ
QSJTNBUJYࣄۀ෦ͱʁ prismatix ͷ։ൃɾӡӦΛ͢Δ෦ॺ ʮprismatix ࣄۀ෦ʯ
QSJTNBUJYࣄۀ෦ͷνʔϜߏ https://dev.classmethod.jp/articles/pz-team-structure/ • Dev • Kiban • SRE •
CS (Customer Support) • ৽نϓϩμΫτ։ൃ • ςϯϓϨʔτ։ൃ • SI (System Integration) • ίϯαϧɾϚʔέɾӦۀ • ۀվળ • γε • ૯ • Ϙʔυ
QSJTNBUJYࣄۀ෦ͷνʔϜߏ https://dev.classmethod.jp/articles/pz-team-structure/ • Dev • Kiban • SRE •
CS (Customer Support) • ৽نϓϩμΫτ։ൃ • ςϯϓϨʔτ։ൃ • SI (System Integration) • ίϯαϧɾϚʔέɾӦۀ • ۀվળ • γε • ૯ • Ϙʔυ ຊDevνʔϜͷ͕த৺
prismatix ͷٕज़ελοΫ
QSJTNBUJYͷΞʔΩςΫνϟ • γϯάϧςφϯτ • ඞཁʹԠ͓ͯ͡٬༷ʹಠཱͨ͠ෳͷڥΛఏڙ • ϚΠΫϩαʔϏε • αʔϏεࢦΞʔΩςΫνϟ
(SOA) ʹج͍ͯɺෳͷαʔϏείϯϙʔωϯ τΛఏڙ • API ͷίϛϡχέʔγϣϯύλʔϯ • HTTPϝοηʔδϯάɺPub-Subϝοηʔδϯά • ετϨʔδʹେྔͷϦΫΤετσʔλΛஔ্ͨ͠Ͱ࣮ࢪ͢Δඇಉظॲཧʹ ରԠ
QSJTNBUJYͷٕज़ελοΫ ɹɹ+BWB ɹɹ4QSJOH#PPU ɹɹEPDLFS ɹɹ&MBTUJDTFBSDI ɹɹ(JU)VC ɹɹ$JSDMF$* ɹɹ*OUFMMJ+*%&" &$4
'BSHBUF 3%4 %ZOBNP%# &MBTUJ$BDIF ,JOFTJT 424 4/4 $MPVE8BUDI Development Infrastructure Monitoring / Noti fi cation
prismatix ͷ։ൃͷྲྀΕ
։ൃͷਐΊํ • 2िؒεϓϦϯτͷΞδϟΠϧ։ൃ • ࠷2िؒͰ৽όʔδϣϯΛϦϦʔε • શମͷཁPBL(ϓϩμΫτόοΫϩά)Ͱཧ • ཁҰͭҰͭΛPBI(ϓϩμΫτόοΫϩάΞΠςϜ)ͱͯ͠ν
έοτԽ • PBIͷ༰͔Βɺઃܭʙςετɾސ٬͚υΩϡϝϯτ࡞ ͳͲඞཁͳ࡞ۀΛνʔϜͰٞ͠ղ
։ൃͷਐΊํ
։ൃελΠϧ wϦϞʔτϫʔΫओମ w౦ژɾࡳຈɾԬΛத৺ʹɺ༷ʑͳॴͰۈ w4MBDL(PPHMF.FFUΛϑϧ׆༻ͯ͠ίϛϡχέʔγϣϯΛऔ Δ wφϨοδ/PUJPO શࣾ FTBJP ෦
Λར༻ͯ͠ڞ༗
prismatix ͷ։ൃͰମݧͰ͖Δ͜ͱ
QSJTNBUJYͷ։ൃͰମݧͰ͖Δ͜ͱ • ECɾCRMʹඞཁͳػೳཁ͕͔Δ • prismatix ͷػೳΛͲͷΑ͏ʹͬͯΒ͍ͬͯΔ͔ • ސ٬͔ΒͲͷΑ͏ͳػೳ͕ඞཁͱ͞Ε͍ͯΔͷ͔ •
ఏڙ͢Δ֤αʔϏεʹؔ࿈͢Δۀࣝ • ೝূɾೝՄ(OIDC,OAuth2) • ձһɺɺࡏݿɺจɺܾࡁɾɾɾ
QSJTNBUJYͷ։ൃͰମݧͰ͖Δ͜ͱ • APIϓϥοτϑΥʔϜ։ൃͷྲྀΕ͕͔Δ • ͓٬༷ͷཁ͔ΒͲͷΑ͏ͳػೳ͕ඞཁͱͳΔ͔Λཧ͠ɺઃ ܭ͢Δ • prismatix Λར༻͢ΔϑϩϯτΤϯυγεςϜɺprismatix
͕ ར༻͢Δ֎෦αʔϏεަ͑ͨγφϦΦɺॲཧϑϩʔͷઃܭ • API ͷར༻ݖݶϦΫΤετɾϨεϙϯεΠϯλʔϑΣʔεͷఆ ٛ • ඞཁͱͳΔ DB AWS ϦιʔεͳͲΛఆٛ
QSJTNBUJYͷ։ൃͰମݧͰ͖Δ͜ͱ • Java(Spring Boot) Λར༻࣮ͨ͠ɾςετ • ϑΥʔϚολ੩తίʔυղੳΛར༻࣮ͨ͠ϧʔϧͷ౷Ұ • ࣮ͱ߹Θͤͯςετॻ͘ʢϢχοτςετ౷߹ςετ
• ސ٬͚υΩϡϝϯτΛ࣮ͱ߹Θͤͯ࡞ • markdown + Mkdocs Λར༻ͨ͠υΩϡϝϯςʔγϣϯ • Swagger Ͱ API ΠϯλʔϑΣʔεΛެ։
• CircleCIΛར༻ͨࣗ͠ಈςετɾϏϧυ • ίʔυղੳςετͳͲΛࣗಈ࣮ߦɻ͕͋Ε։ൃऀʹ௨ • ͳ͚ΕDockerΠϝʔδυΩϡϝϯτͷϦϦʔε·Ͱ࣮ ࢪ QSJTNBUJYͷ։ൃͰମݧͰ͖Δ͜ͱ
QSJTNBUJYͷ։ൃͰମݧͰ͖Δ͜ͱ • ϚΠΫϩαʔϏεΞʔΩςΫνϟΛѻ͏্Ͱͷ։ൃͷצॴ • จαʔϏεˠܾࡁαʔϏεΛݺͿͳͲෳαʔϏεΛ࿈ܞ͢ Δ߹ͷઃܭ • ଞͷαʔϏεͷॲཧ͕ޭ͍ͯ͠ΔͷʹࣗͷαʔϏεͰॲ ཧࣦഊͨ͠߹ɺଞͷαʔϏεͷεςʔλεิਖ਼͠ͳ͚Ε
͍͚ͳ͍ʢิਖ਼τϥϯβΫγϣϯʣ • ଞͷαʔϏεͷεςʔλε͕มΘͬͨΠϕϯτΛड͚औΓɺࣗ ͷαʔϏε߹ΘͤͯॲཧΛ͢Δ
• ։ൃʹͱͲ·Βͣɺӡ༻͢Δ্Ͱͷߩݙ • ސ٬ڥͰ࣮ࡍʹͲͷΑ͏ʹΞϓϦέʔγϣϯ͕ར༻͞Ε͍ͯ Δͷ͔ΛΔ • ࢹސ٬͔Βͷ͍߹ΘͤΛड͚ɺސ٬ڥͷঢ়گ֬ೝΛ͢ Δ •
ސ٬ڥͷোར༻ϥΠϒϥϦͷ੬ऑੑ͕͋Δ߹ͳͲ • ΞϓϦέʔγϣϯͷϝτϦΫεϩάͳͲௐࠪ͠ɺରԠࡦΛ ݕ౼ QSJTNBUJYͷ։ൃͰମݧͰ͖Δ͜ͱ
• ར༻͢ΔAWSαʔϏεͷ͍ॴ͕ʹͭ͘ • ECS + Fargate Λج൫ͱͨ͠αʔϏεӡ༻ • SNS,
SQS Λར༻ͨ͠ Pub - Sub ϝοηʔδϯά • CloudWatch, S3 + Athena Λར༻ͨ͠ϝτϦΫεɺϩάͳͲͷ ௐࠪ QSJTNBUJYͷ։ൃͰମݧͰ͖Δ͜ͱ
• ϑϧϦϞʔτϫʔΫɾϑϨοΫε • Ոఉͷ͜ͱϓϥΠϕʔτͷ༻ࣄ͜ͳͭͭ͠ࣄ͕Ͱ͖Δ • νʔϜͷίϛϡχέʔγϣϯ͕׆ൃ • νϟοτɾϏσΦձٞͳͲͰੵۃతʹରΛॏͶΔ •
φϨοδڞ༗ੵۃతʹߦ͍ɺνʔϜ։ൃʹߩݙͰ͖Δ QSJTNBUJYͷ։ൃͰମݧͰ͖Δ͜ͱ
ࢲ͕ײ͡Δ։ൃͷ՝
ࢲ͕ײ͡Δ։ൃͷ՝ • ՁΛಧ͚ΒΕΔͷʹɺ࣮ݱ͢Δʹқ͕ߴ͍ͷ͕ଟ͍ • ݱঢ়ͷ࣮͔Βͷมߋ༰қੑ͕͍ • ݹ͔͘Βӡ༻͢ΔαʔϏεಛʹ͜ͷ͕͋Δ • Ͳ͜ʹӨڹ͕͋Δͷ͔ௐࠪʹ࣌ؒΛཁ͢
ࢲ͕ײ͡Δ։ൃͷ՝ • prismatix ༷ʹؔ͢Δ͍߹Θ͕ͤଟ͍ • υΩϡϝϯτʹΓ͍ͨใ͕ཏͰ͖͍ͯΔ͔ʁ • ͲͷΑ͏ͳ༷Ͱ͋Εސ٬͕ར༻͍͔͢͠ʁ •
ސ٬ڥͷࢹͰग़ͨΞϥʔτΛௐͨ݁Ռͳ͍έʔε͕ ଟ͍ • Өڹ͋Δ༰ͳͷ͔͕͔ΔΑ͏ʹɺΞϥʔτϩάͷग़ྗํ ๏ͳͲӡ༻ʹؔΘΔՕॴͷվળݕ౼ • ސ٬ڥͷௐࠪʹͨΔɺຊདྷ༧ఆ͢Δ։ൃʹӨڹ͢Δ
՝ղܾʹ͚ͯ • ՝ೝࣝ͠ɺվળʹ͚ͯಈ͍͍ͯΔ • ςετͷਐΊํΛվળ • εϓϦϯτϓϩδΣΫτ͝ͱͷ;Γ͔͑Γ • ސ٬ސ٬ڥʹؔΘΔνʔϜͱͷίϥϘϨʔγϣϯɺͳͲ
• Ұॹʹ՝ղܾʹߩݙͯ͘͠ΕΔํɺprismatix ΛΑΓྑ͘͠ ͯ͘ΕΔํ͕͍Δͱ৺ڧ͍
·ͱΊ
·ͱΊ wQSJTNBUJYࣄۀ෦Ͱɺ&$$3.ʹಛԽͨ͠"1*ϓϥοτϑΥʔ ϜͱίϯαϧςΟϯάαʔϏεΛఏڙ͠·͢ w%FWνʔϜͰ"1*ϓϥοτϑΥʔϜͷ։ൃɾӡ༻Λ୲͍·͢ w&$$3.ͷۀࣝɺϚΠΫϩαʔϏεͷ։ൃࣝͳͲʹͭ͘ ͜ͱ͕ଟ͍Ͱ͢ wҰॹʹࠓͷ՝ʹऔΓΈɺQSJTNBUJYΛΑΓྑͯ͘͘͠ΕΔํ Λ͓͍ͪͯ͠·͢
None