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
270
ECサイト向け決済機能の開発で学んだ外部決済サービスの活用ポイント
k1style
1
1.8k
開発チームリーダーとしてやってきたことのふりかえり
k1style
0
1.3k
外部決済サービスを利用する上での脆弱ポイントと対策 / Vulnerable points and countermeasures for using external payment services
k1style
0
1.7k
外部決済サービスを利用した開発の反省と改善 #devio2021 / Introspection and Improvement of Development with External Payment Services
k1style
0
1.6k
Developers.IO 2020 Connect Day5 ECサイトの決済システムを作るなら知っておきたいこと / Developers.IO 2020 Connect Day5 Payment Development Flow With E-commerce Site
k1style
0
4.5k
サーバーレスアーキテクチャでサクッと作るアイマスbot
k1style
1
960
私が考えるAWSを使ったアイマスHack
k1style
1
1.1k
Other Decks in Technology
See All in Technology
Cross Data Platforms Meetup LT 20250422
tarotaro0129
1
920
Databricksで完全履修!オールインワンレイクハウスは実在した!
akuwano
0
140
AI駆動で進化する開発プロセス ~クラスメソッドでの実践と成功事例~ / aidd-in-classmethod
tomoki10
1
800
Running JavaScript within Ruby
hmsk
3
430
SnowflakeとDatabricks両方でRAGを構築してみた
kameitomohiro
1
570
Compose におけるパスワード自動入力とパスワード保存
tonionagauzzi
0
190
【Oracle Cloud ウェビナー】ご希望のクラウドでOracle Databaseを実行〜マルチクラウド・ソリューション徹底解説〜
oracle4engineer
PRO
1
140
生成AIのユースケースをとにかく集めてまるっと学ぶ!/ all about generative ai usecases
gakumura
3
360
エンジニアリングで組織のアウトカムを最速で最大化する!
ham0215
1
280
PagerDuty×ポストモーテムで築く障害対応文化/Building a culture of incident response with PagerDuty and postmortems
aeonpeople
3
530
日経電子版 for Android の技術的課題と取り組み(令和最新版)/android-20250423
nikkei_engineer_recruiting
1
610
ガバクラのAWS長期継続割引 ~次の4/1に慌てないために~
hamijay_cloud
1
580
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Speed Design
sergeychernyshev
29
920
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
Building Adaptive Systems
keathley
41
2.5k
How GitHub (no longer) Works
holman
314
140k
Designing for Performance
lara
608
69k
Building Applications with DynamoDB
mza
94
6.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.5k
Site-Speed That Sticks
csswizardry
6
530
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.8k
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