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.3k
【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
200
ECサイト向け決済機能の開発で学んだ外部決済サービスの活用ポイント
k1style
1
1.6k
開発チームリーダーとしてやってきたことのふりかえり
k1style
0
1.2k
外部決済サービスを利用する上での脆弱ポイントと対策 / Vulnerable points and countermeasures for using external payment services
k1style
0
1.6k
外部決済サービスを利用した開発の反省と改善 #devio2021 / Introspection and Improvement of Development with External Payment Services
k1style
0
1.5k
Developers.IO 2020 Connect Day5 ECサイトの決済システムを作るなら知っておきたいこと / Developers.IO 2020 Connect Day5 Payment Development Flow With E-commerce Site
k1style
0
4.4k
サーバーレスアーキテクチャでサクッと作るアイマスbot
k1style
1
920
私が考えるAWSを使ったアイマスHack
k1style
1
970
Other Decks in Technology
See All in Technology
株式会社ログラス − エンジニア向け会社説明資料 / Loglass Comapany Deck for Engineer
loglass2019
3
28k
AWS reInvent 2024 関西組 事前勉強会
shinyayamada
0
130
使えそうで使われないCloudHSM
maikamibayashi
1
250
Commitment vs Harrisonism - Keynote for Scrum Niseko 2024
miholovesq
6
1.4k
【技術書典17】OpenFOAM(自宅で極める流体解析)2次元円柱まわりの流れ
kamakiri1225
0
250
신뢰할 수 있는 AI 검색 엔진을 만들기 위한 Liner의 여정
huffon
0
450
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.7k
IDOLY PRIDEのバックエンドリーダーになって2年半取り組んできたこと / idoly-pride-knowledge
cyberagentdevelopers
PRO
2
110
Fargateを使った研修の話
takesection
0
150
Gradle: The Build System That Loves To Hate You
aurimas
2
170
AWS CodePipelineでコンテナアプリをデプロイした際に、古いイメージを自動で削除する
smt7174
1
130
Vueで Webコンポーネントを作って Reactで使う / 20241030-cloudsign-vuefes_after_night
bengo4com
4
2.5k
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
43
13k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
7
160
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
We Have a Design System, Now What?
morganepeng
50
7.2k
Measuring & Analyzing Core Web Vitals
bluesmoon
2
51
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
14
2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
328
21k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
Ruby is Unlike a Banana
tanoku
96
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