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
Microservices Architectureに取り組んでみえたこと
Search
yoshiyoshifujii
June 24, 2017
Design
3
4.2k
Microservices Architectureに取り組んでみえたこと
KANJAVA PARTY 2017
https://kanjava.connpass.com/event/56152/
yoshiyoshifujii
June 24, 2017
Tweet
Share
More Decks by yoshiyoshifujii
See All by yoshiyoshifujii
技術的負債に立ち向かう、 ひとりから始めるチームづくり / From One to Team: Building Momentum Against Technical Debt
yoshiyoshifujii
1
220
DMMを支える決済基盤の技術的負債にどう立ち向かうか / Addressing Technical Debt in Payment Infrastructure
yoshiyoshifujii
5
930
技術的負債と戦略的に戦わざるを得ない場合のオブザーバビリティ活用術 / Leveraging Observability When Strategically Dealing with Technical Debt
yoshiyoshifujii
1
260
プロダクトオーナーの視座から見た信頼性とオブザーバビリティ / Reliability and Observability from the Perspective of a Product Owner
yoshiyoshifujii
2
1.7k
プロダクトオーナーがFour Keys + 信頼性に思うところ / Product Owners Think of Four Keys + Reliability
yoshiyoshifujii
0
590
Recapping Chatwork Scala Journey - ScalaMatsuri2023
yoshiyoshifujii
0
2.9k
ここ数ヶ月でAkkaを勉強した方法について紹介 / I have studied Akka in the past few months
yoshiyoshifujii
1
300
コードをどまんなかに据えたモデリング-Scala版 / Modeling with code in the middle-Scala version
yoshiyoshifujii
0
150
Chatworkのドメインをモデリングした / Modeling Chatwork domain
yoshiyoshifujii
0
910
Other Decks in Design
See All in Design
Memory Man v3 (WIP)
storybychad
PRO
0
2.6k
ブランドパーソナリティ言語化における生成AI活用の実際
h0sa
0
300
21 Ways to Call American Airlines Customer Care Full Guide USA
americanhub
0
210
Goodpatch Tour💙 / We are hiring!
goodpatch
31
890k
“ブロック”で作る、WordPress制作フロー変革のすすめ
koots2021
4
2k
新卒の目から見たサイボウズのデザイン組織
ryota5884
0
190
ChatGPT、Gemini、Claude は、なぜ似たようなUIを採用しているのか?
fuwarisprit
3
1.4k
FigmaのFigmaファイルから学ぶTips & Tricks
hilokifigma
0
690
事例で学ぶ!今日から使えるWebサービスUI改善ポイント
ncdc
0
280
プロジェクト内でデザイナーができること 日経電子版アプリ機能開発「For You」#nikkei_tech_talk
nikkei_engineer_recruiting
8
4.6k
そのUIコンポーネント、これから先も使えますか?―Headless UI,Open UI,グローバルデザインシステム
sakito
2
1.9k
Portfolio 齋藤明敏 Hiroyuki Saito
crearedesign
0
110
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
960
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
890
Raft: Consensus for Rubyists
vanstee
139
7.1k
The Cult of Friendly URLs
andyhume
79
6.6k
Facilitating Awesome Meetings
lara
56
6.6k
GraphQLとの向き合い方2022年版
quramy
49
14k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Designing for humans not robots
tammielis
254
25k
Done Done
chrislema
185
16k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
For a Future-Friendly Web
brad_frost
180
9.9k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Transcript
.JDSPTFSWJDFT"SDIJUFDUVSFʹ औΓΜͰΈ͑ͨ͜ͱ 4BU !ZPTIJZPTIJGVKJJ
ؔδϟόͷΈͳ͞Μ͜Μʹͪ w:PTIJUBLB'VKJJ !ZPTIJZPTIJGVKJJ w4PGUXBSF&OHJOFFS w4DBMB+BWB1ZUIPO 5ZQFTDSJQU w4DBMBؔ4VNNJU4UB⒎
None
None
None
ି͠ग़͠Ͱ͖Δ෦ w ηϛφʔϗʔϧ ໊ w ձٞࣨ ໊͔Β໊ w
ΧϑΣεϖʔε ໊ w ϏΞόογϡͳͲͷ࠙ձ։࠵ՄೳͰ͢ʂ
None
None
None
ຊ
wࠓ͓͢Δ͜ͱ wࢲ͕࠷ۙɺ.JDSPTFSWJDFTʹऔΓΜͰ͔ͬͨ͜ͱ w.JDSPTFSWJDFT"SDIJUFDUVSF w%%% w"HJMF4DSVN%FW0QT w41"3&45GVM4FSWFSMFTT"SDIJUFDUVSF w͠ͳ͍͜ͱ wͦΕͧΕͷਂ͍આ໌
.JDSPTFSWJDFTΛ ͓͞Β͍͓͖ͯ͠·͠ΐ͏
.JDSPTFSWJDFTͭͷಛ αʔϏεΛ௨ͨ͡ίϯϙʔωϯ τԽ ϏδωεߦೳྗʹؔΘΓ ৫͕ཧ͞ΕΔ͜ͱ ϓϩδΣΫτͰͳ͘ϓϩμΫ τ
ݡ͍ TNBSU ΤϯυϙΠϯτͱ ࢄ౷࣏ ࢄσʔλཧ ΠϯϑϥࣗಈԽ োͷͨΊͷઃܭ ਐԽతͳઃܭ ླ༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢܦ#1/FYU*$5બॻʣ ,JOEMFͷҐஔ/P ܦ#1,JOEMF൛
ෳαʔϏεͰߏ w ͭͷΞϓϦέʔγϣϯΛΑΓখ͞ ͳ୯ҐͷʮαʔϏεʯͷΈ߹Θ ͤͰߏ͢Δख๏ w ͦΕͧΕͷαʔϏεݸผͷϓϩ ηεͰಈ࡞ w "1*Λ௨ͯ͡)551ͳͲͷඪ४తͳ
ϓϩτίϧͰ࿈ܞ ླ༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢܦ#1/FYU*$5બॻʣ ,JOEMFͷҐஔਤ ܦ#1,JOEMF൛
αʔϏε͝ͱͷϥΠϑαΠΫϧ wϞϊϦγοΫ Ұຕؠ ͩͱӨڹ ௐࠪʹ͕͔͔࣌ؒΔ wӨڹൣғαʔϏε෦ʹด͡ Δ w࣮ࡍɺͦΜͳ୯७Ͱͳ͍ wαʔϏεͷׂ͕ॏཁͰɺ͍͔ ʹӨڹൣғΛαʔϏε෦ʹཹ
ΊΔ͔ ླ༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢܦ#1/FYU*$5બॻʣ ,JOEMFͷҐஔਤ ܦ#1,JOEMF൛
ૄ݁߹ͳαʔϏε࿈ܞ wૄ݁߹ͷදʮΩϡʔʯΛ ༻͍ͨ࿈ܞ wαʔϏεಉ͕࢜࿈ܞͤͣ ʹࡁΉ wαʔϏεͷμϯλΠϜΛ ؾʹ͠ͳͯ͘ྑ͍ w࿈ܞઌαʔϏεͷੑೳྼԽ ླ༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢܦ#1/FYU*$5બॻʣ
,JOEMFͷҐஔਤ ܦ#1,JOEMF൛
σʔλϕʔεαʔϏε͝ͱʹ wैདྷγεςϜɺͭͷΞ ϓϦʹͭͷσʔλϕʔε wσʔλϕʔεڞ༗ੑೳ ͕ʹ wࢄσʔλϕʔε߹ ੑ͕ʹ ླ༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢܦ#1/FYU*$5બॻʣ ,JOEMFͷҐஔਤ
ܦ#1,JOEMF൛
αʔϏεߏཧ wαʔόʔߏஙखଓ͖Λ ίʔυԽ w%PDLFS wΫϥυಛ༗ͷ͠͞ ླ༤հ$MPVE'JSTU"SDIJUFDUVSFઃܭΨΠυʢܦ#1/FYU*$5બॻʣ ,JOEMFͷҐஔਤ ܦ#1,JOEMF൛
ࠓͷ͋͐͡Μͩ wαʔϏεͷίϯϙʔωϯτԽ w৫ӡӦ wٕज़తͳબ
ࠓͷ͋͐͡Μͩ wαʔϏεͷίϯϙʔωϯτԽ w৫ӡӦ wٕज़తͳબ
υϝΠϯۦಈઃܭ wୈ෦ઓུతઃܭ ୈষϞσϧͷ߹ੑ Λҡ࣋͢Δ wڥք͚ͮΒΕͨίϯςΩ ετΛѲ͢Δ wγεςϜ͕ѻ͏υϝΠϯ Λཧղ͠దʹڥքΛઃ ܭ͢Δ &SJD&WBOTυϝΠϯۦಈઃܭʢᠳӭࣾʣ
1ਤ ᠳӭࣾ
υϝΠϯۦಈઃܭ w࠷ॳ͔ͬΒᘳΛࢦ͞ͳ͍ wίΞυϝΠϯʹண͢Δ w͋ͳͨͷγεςϜͷίΞͲ͜Ͱ͔͢ʁ
ϢϏΩλεݴޠ w%PNBJO&YQBSUͱͷର wϞϊɾίτΛൈ͖ग़͢ wϢϏΩλεݴޠͱͯ͠ه͢Δ
ܧଓతͳ౷߹ wҰͰऴΘΒͳ͍ wίʔυͷ'#Λ׆͔͢ wސ٬ͷ'#Λ׆͔͢
ίϯςΩετϚοϓΛඳ͘ wγεςϜʹ͍ͭͯίϛϡχέʔγϣϯ͢Δͱ͖ʹ ඞͣͦʹஔ͍ͯ֬ೝ͢Δ wίϯςΩετؒͷґଘੑଟॏΛ໌֬ʹ͢Δ
ґଘͷύλʔϯ wڞ༗Χʔωϧ wސ٬ڞ༗ऀͷ։ൃνʔϜ w͍ΘΏΔQVCTVC w͍ͬΆ͏͕ఆ͍ٛͯͬ͠Ά͏͕ड͚ͱΔ wૄ݁߹Ͱྑ͍
ґଘͷύλʔϯ wҰํతͰͳ͘ཁΛग़͍͍ͯ͠ wίϯςΩετؒͰѻ͏ݴޠ͕ҟͳͬͨͱͯ͠ɺ ίϛϡχέʔγϣϯͷϑΥʔϚοτΛผ్ఆٛ͢Δ w$+BWB w1ZUIPO4DBMB wϑΥʔϚοτΛ4XBHHFSͰݻఆ
ґଘͷύλʔϯ wॱԠऀ wެ։ϗεταʔϏε wผʑͷಓ wίϯςΩετͷதͰผͷϢϏΩλεݴޠΛఆٛͯ͠ྑ͍ wϞσϧߏಉ͡Ͱͳͯ͘ྑ͍ w͏ͪͷίϯςΩετͰ͜͏ݺΜͰΔ͚ͲͶɻ ͦͬͪͰԿͯݺΜͰΔͷ͔ΒΜ͚Ͳ
ґଘͷύλʔϯ wഊࢭ wϨΨγʔͳϞσϧΛͲ͏ͯ͠͏ͱ͖ wΠέͯͳ໊͍শΛϢϏΩλεݴޠʹม͢Δ wچདྷόʔδϣϯΛ࣋ͬͯΔίϯςΩετͰ༗ޮ
ࠓͷ͋͐͡Μͩ wαʔϏεͷίϯϙʔωϯτԽ w৫ӡӦ wٕज़తͳબ
"HJMF wϓϩδΣΫτͰߟ͑ͣϓϩμΫτͰߟ͑Δ wઓུΛऔΔ wਐԽΛલఏͱͨ͠࠷దԽ wʮ͍·͜ΕͰྑ͍ʯͬͱ͍ͬͨஅ
εΫϥϜ wΧϯόϯͱͷ͔͚͋Θͤ wνʔϜຖͷਐḿΛݟ͑Δ Խ w/FYVTΨΠυ wେنεΫϥϜ։ൃͷ֎ ࠎ֨
νʔϜͷͭ͘Γ͔ͨ wίϯςΩετϚοϓʹै͏ wίϯςΩετͷཻόϥόϥ wνʔϜϏϧσΟϯάʹɺ.BOBHFNFOUͷ πʔϧ͕͑Δ
None
None
None
νʔϜʹΑͬͯ߹͍ʹ͕ࠩͰΔ wνʔϜΛൺֱͯ͠จ۟ΛݴΘͳ͍ wѻ͏ίϯςΩετ͕ҧ͏ͷͰҟͳͬͯવ wνʔϜੜ w৺ཧత҆શੑɺͪΐͬͱͨ͜͠ͱͰࣦͳΘΕΔ
%FW0QT wνʔϜͷ͕伴 w͍͖ͳΓͰ͖ͳ͍ w$%$*ڥΛ͑Δ w+FOLJOT wDPODPVSTFDJ
%FW0QT wϒϥϯνӡ༻νʔϜʹͤΔ wNBTUFSʹQVTI㱺νʔϜςετڥͷߏங wUBHΛΔ㱺νʔϜؒ݁߹ςετڥͷߏங wνʔϜؒ݁߹ςετڥͰͷςετ%POF㱺 1SPEVDUJPOڥߏங
%FW0QT w7BMVF4USFBN.BQQJOH wՁΛಧ͚Δ·Ͱͷఔ wৗʹϑϩʔΛચ࿅͢Δ wεϓϦϯτΛ;Γ͔͑Γચ࿅͠%FW0QTʹۙ͘
$POXBZͷ๏ଇ wγεςϜͷߏɺͦͷγεςϜΛઃܭ͢Δ৫ͷߏʹ ࣅΔ wνʔϜͷϝϯόʔ͕ߟ͑ͯઃܭ͢ΔΜ͔ͩΒͦΓΌͦʔͩ wٯʹڧ੍͠ͳ͍ੈք͕େࣄ w֎͔ΒઃܭΛڧཁ͢Δͱɺ৫͕มΘΔ w͍͍໘ѱ͍໘
ࠓͷ͋͐͡Μͩ wαʔϏεͷίϯϙʔωϯτԽ w৫ӡӦ wٕज़తͳબ
41" w4JOHMF1BHF"QQMJDBUJPO w.JDSPTFSWJDFTͰߏ͞ΕΔγεςϜͷϑϩϯτΤϯυ ʹ࠷ద w41"ͷϞδϡʔϧɺίϯςΩετΛԣஅͯͭ͠ʹͳΔ w༷ʑͳίϯςΩετ͕ࠞͬͨͭ͡ͷϞδϡʔϧ wNFSHFͱDPOqJDUආ͚ΒΕͳ͍
3&45GVM wݪଇ౿ऻ͢Δ͕ɺݫີʹ͠ͳ͍ w4XBHHFSͰ"1*Λެ։ wνʔϜؒͷձɺ4XBHHFSΛ༻͍Δ
4FSWFSMFTT"SDIJUFDUVSF w4DBMB.BUTVSJ w4FSWFSMFTT "SDIJUFDUVSFΛ 4DBMBͰͬͯΈͨ Λ͠·ͨ͠
Amazon API Gateway client AWS Lambda Amazon S3 Amazon DynamoDB
Amazon Kinesis AWS Lambda AWS Lambda Amazon Elasticsearch Service Context + Token Principal + Policy Policy is cached Denied 403 Allowed Auth function Consumers function System diagrams
4FSWFSMFTT"SDIJUFDUVSF w͍Ͳ͜ΖΛબͿ wίϯςΩετΛ·Δ͝ͱ4FSWFSMFTTʹ͢Δ͜ͱԽ w3%#ͷ߹ɺDPOOFDUJPO͕ރׇ w71$ىಈʹͳΓɺ&/* &MBTUJD/FUXPSL *OUFSGBDF ͷ࡞ʹඵ
4FSWFSMFTT"SDIJUFDUVSF w%%%ͱͷ૬ੑ͍͍ w4DBMBͱͷ૬ੑ͍͍ wTCUͷNVMUJQSPKFDUΛ׆༻ͯ͠KBSͷαΠζΛඞ ཁ࠷খݶʹ
4FSWFSMFTT"SDIJUFDUVSF wϨΠϠʔͷґଘϞσϧ w4FSWFSMFTT"SDIJUFDUVSF ɺWFOEPSMPDLJOલఏͷΞ ʔΩςΫνϟ w%%%ͱΈ߹Θͤͯ࡞Δ͜ͱ ͕Ͱ͖ΕɺίΞͳϏδωε ϩδοΫ͕ϩοΫΠϯ͞Εͳ ͍
"QQMJDBUJPO *OGSBTUSVDUVSF %PNBJO "1* WFOEPSMPDLJO
4FSWFSMFTT"SDIJUFDUVSF wϕετͳ8FC"QQMJDBUJPOͷߏஙύλʔϯΛମݧ ֶͯ͠Δ wଞͷ8FC"QQMJDBUJPOΛߏஙɾઃܭ͢Δࡍʹɺ ʮ͋Ε ͋ͬͪͩͱͰ͖ͯΔΑ ʯͱϑΟʔυόο ΫͰ͖Δ
%BUB4UPSBHFͷબ wϢʔεέʔεʹԠͯ͡ %BUB4UPSBHFΛબ ͢Δ w$PNNBOEͱ2VFSZͰ ҟͳΔετϨʔδબ Մೳ 4 LFZWBMVF %ZOBNP
%# ٯҾ͖͕ඞཁ Ұཡऔಘ 3%# 3FMBUJPOBMNPEFM͕ ඞཁ &MBTUJD 4FBSDI ߴͳશจݕࡧ͕ඞ ཁ
ඇಉظϝοηʔδϯάύλʔϯ wϢʔεέʔεʹԠͯ͡ϝοη ʔδϯάͷύλʔϯ͕͋Δ w,BGLBΛಋೖ͢ΔͱɺͥΜ Ϳ͜Ε͍͚ͬͯΔ͔ wͱ͍͑ɺίετ͕େʹ ͳΔ͔͠Εͳ͍ wۜͷؙͳ͍ ରൺ
αʔϏε උߟ 424 / ,JOFTJT ੍͋Γ "QBDIF ,BGLB ηϧϑϚω δϝϯτ
$234 ॻ͖ࠐΈ ಡΈࠐΈ σʔλͷ߹ੑͷҡ࣋ σʔλͷݕࡧͱநग़ͷޮԽ ΞτϛοΫͳߋ৽τϥϯβΫγϣϯ ಋग़ ߹ܭͳͲ ͷࢉग़
όʔδϣϯཧ ָ؍తฒߦੑ੍ޚ ָ؍తϩοΫ ෳͷϏϡʔͷఏڙ ॻ͖ࠐΈݖݶͷཧ ߦϨϕϧɺྻϨϕϧͷݖݶཧ $234ͱΠϕϯτιʔγϯάͷ༻๏ɺ·ͨʮ$36%ʹԿ͔Ͱʁʯ IUUQQPTUEDDVTJOHDRSTXJUIFWFOUTPVSDJOH
$234 w$PNNBOEʹɺ%PNBJOϩδοΫΛ w2VFSZɺݖݶऔಘΛߟྀ͠ɺݕࡧੑೳʹ༏Εͨऔಘϩ δοΫΛ w&WFOU4PVSDJOHͱͷ૬ੑ͕ྑ͍ wج൫ͷߏஙɺͦΕͳΓͷίετ͕͔͔Δ w෦తʹ࠾༻͠ɺঃʑʹ֦େ͍ͯ͘͠ͷ͕ྑ͍
IUUQXXXPVBS[ZDPNBGFXNZUITBCPVUDRST
ڞ௨ॲཧͷ෦Խ w.BWFOͰKBSΛڞ༗ w4DBMBͷTCUศར w+BWBͱ͔ͦͷଞͱൺֱͨ͠Θ͚͡Όͳ͍ wNVMUJQSPKFDU wґଘͷํੑΛཧ͍͢͠ wEFQFOET0O wMJCSBSZ%FQFOEFODJFT
ϦΞΫςΟϒએݴ wଈԠੑ 3FTQPOTJWF wোੑ 3FTJMJFOU wྗੑ &MBTUJD
wϝοηʔδۦಈ .FTTBHF%SJWFO
ଈԠੑ wγεςϜՄೳͳݶΓ͢Έ͔ʹԠ͢Δ w͕ૉૣ͘ݕग़͞ΕޮՌతʹରॲͰ͖Δ wਝͰ͔ͭҰ؏ͨ͠Ԡ࣌ؒΛఏڙ͢Δ͜ͱʹओ ؟Λஔ͘
োੑ wγεςϜোʹ໘ͯ͠ଈԠੑΛอͪଓ͚Δ wোੑΛ࣋ͨͳ͍γεςϜো͕ى͖Δͱଈ ԠੑΛࣦ͏ wোੑɺϨϓϦέʔγϣϯɺ෧͡ࠐΊɺִɺ ͦͯ͠ҕৡʹΑ࣮ͬͯݱ
ྗੑ wγεςϜϫʔΫϩʔυ͕มಈͯ͠ଈԠੑΛอ ͪଓ͚Δ wγεςϜͷதʹڝ߹͢Δॴத৺తͳϘτϧωο Ϋ͕ଘࡏ͠ͳ͍Α͏ʹઃܭ wγϟʔσΟϯάͨ͠ΓϨϓϦέʔγϣϯͨ͠ίϯ ϙʔωϯτؒʹೖྗΛࢄͤ͞Δ
ϝοηʔδۦಈ wϦΞΫςΟϒγεςϜඇಉظͳϝοηʔδύο γϯάʹґͬͯίϯϙʔωϯτؒͷڥքΛཱ֬ wૄ݁߹ੑɺִੑɺҐஔಁաੑΛอূ͢Δͱڞʹɺ ΤϥʔΛϝοηʔδͱͯ͠ҕৡ w໌ࣔతͳϝοηʔδύογϯάෛՙͷཧͱ ྗੑΛՄೳ
ϝοηʔδۦಈ wγεςϜʹϝοηʔδΩϡʔΛ࡞ͯ͠ࢹ͠ɺ ඞཁͳΒόοΫϓϨογϟʔΛద༻͢Δ͜ͱͰϑ ϩʔ੍ޚ͕Մೳ wϊϯϒϩοΩϯά௨৴ʹΑΓɺड৴ଆΞΫςΟ ϒ࣌ͷΈϦιʔεΛফඅͰ͖ΔͷͰγεςϜͷΦʔ όϔουΛ੍
ϊϯϒϩοΩϯά w"DUPSϞσϧΛ׆༻ͨ͠γεςϜ w"LLB IUUQBLLBJP w"LLB)551ɺ"LLB4USFBNTͰ3&45GVMͳ8FC"1*α ʔόʔͱɺඇಉظॲཧΛߏஙՄೳ w$MVTUFSɺ4IBSEJOHɺ1FSTJTUFODFݕ౼ w"LLB͍͍ͧ
·ͱΊ
·ͱΊ wαʔϏεͷίϯϙʔωϯτԽʹ͓͍ͯɺ%%%ͷڥ ք͚ͮΒΕͨίϯςΩετΛ࠾༻ͨ͠ w৫Խʹ͓͍ͯɺ4DSVNͰ͡Ίͯɺ%FW0QTΛ ࢦ͢ wٕज़બɺ༷ʑͳٕज़ͷΈ߹Θͤɻϊϋ ͨΊΔɻ