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.1k
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
プロダクトオーナーの視座から見た信頼性とオブザーバビリティ / Reliability and Observability from the Perspective of a Product Owner
yoshiyoshifujii
1
1.5k
プロダクトオーナーがFour Keys + 信頼性に思うところ / Product Owners Think of Four Keys + Reliability
yoshiyoshifujii
0
500
Recapping Chatwork Scala Journey - ScalaMatsuri2023
yoshiyoshifujii
0
2.7k
ここ数ヶ月でAkkaを勉強した方法について紹介 / I have studied Akka in the past few months
yoshiyoshifujii
1
270
コードをどまんなかに据えたモデリング-Scala版 / Modeling with code in the middle-Scala version
yoshiyoshifujii
0
130
Chatworkのドメインをモデリングした / Modeling Chatwork domain
yoshiyoshifujii
0
840
サマーインターンシップ2019で学生とDDDなScala開発に取り組んだ / Working on DDD and Scala development with students at Summer Internship 2019
yoshiyoshifujii
2
4.1k
Clean Architecture in Practice @ScalaMatsuri2019
yoshiyoshifujii
9
4k
実践 Clean Architecture
yoshiyoshifujii
13
10k
Other Decks in Design
See All in Design
富山デザイン勉強会_ワンランク上に見せるデザインのコツ.pdf
keita_yoshikawa
0
150
急成長中のWINTICKETにおける ちいさくはじめるライティング改善 / winticket-writing
cyberagentdevelopers
PRO
1
280
2024/11/25 ReDesigner Online Meetup 会社紹介
cybozuinsideout
PRO
0
380
ENEOS社事例|アプリ事業を加速させるデザイナーの取り組み / dx-eneos-design
cyberagentdevelopers
PRO
1
860
12年続くB2DサービスとUXデザイン / UX Design keeps B2D service alive over 12 years
tnj
0
280
portfolio2025_kanakoohata
kanako106
0
680
AIネイティブな時代におけるUXデザインの在り方とは
kuni29
0
1.2k
私たちは、世界とデザインの〝次の一歩〟を、どこへ向けるか。
tkhr_kws
2
280
政策広報実践講座_講演資料ダイジェスト2
capitolthink
0
130
Museum Heist
allykae
0
140
マルチプロダクトにおけるデザイナーの挑戦-デザイン初め新年会2025
u_ri_ta
1
150
東急URBAN HACKSのデザイナーって何やってるの? 〜Designer Night #1〜 組織横断のデザインの 取り組みについて
sig
1
270
Featured
See All Featured
Gamification - CAS2011
davidbonilla
80
5.1k
A Tale of Four Properties
chriscoyier
158
23k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Code Reviewing Like a Champion
maltzj
521
39k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
9
440
Why Our Code Smells
bkeepers
PRO
336
57k
Practical Orchestrator
shlominoach
186
10k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Optimizing for Happiness
mojombo
376
70k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
330
Scaling GitHub
holman
459
140k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
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ٕज़બɺ༷ʑͳٕज़ͷΈ߹Θͤɻϊϋ ͨΊΔɻ