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.4k
プロダクトオーナーがFour Keys + 信頼性に思うところ / Product Owners Think of Four Keys + Reliability
yoshiyoshifujii
0
460
Recapping Chatwork Scala Journey - ScalaMatsuri2023
yoshiyoshifujii
0
2.6k
ここ数ヶ月でAkkaを勉強した方法について紹介 / I have studied Akka in the past few months
yoshiyoshifujii
1
250
コードをどまんなかに据えたモデリング-Scala版 / Modeling with code in the middle-Scala version
yoshiyoshifujii
0
120
Chatworkのドメインをモデリングした / Modeling Chatwork domain
yoshiyoshifujii
0
800
サマーインターンシップ2019で学生とDDDなScala開発に取り組んだ / Working on DDD and Scala development with students at Summer Internship 2019
yoshiyoshifujii
2
4k
Clean Architecture in Practice @ScalaMatsuri2019
yoshiyoshifujii
9
3.9k
実践 Clean Architecture
yoshiyoshifujii
13
10k
Other Decks in Design
See All in Design
FANCL×CA流アプリリニューアルPJ 成功の秘訣とそのプロセス / dx-fancl-renewal
cyberagentdevelopers
PRO
2
360
デザインシステム構築の進め方 基本から実践まで、具体的な手順を徹底解説
ncdc
1
210
ABEMAの進化 – 複雑化したコンテンツ構造とUI改善への道 – / abema-ui-improve
cyberagentdevelopers
PRO
2
410
デザインの専門性を活かしたナレッジマネジメント活動の実践と研究
chiemitaki
0
490
みんなに知って欲しい 視覚過敏のアクセシビリティ
0opacity_
4
830
Slip N Slime - Character Design Ideation
thebogheart
0
310
利用者が離れないUX/UIデザイン 長く使われる業務アプリデザインのポイント
ncdc
3
170
デザインからアプリ実装まで一貫したデザインシステムを構築するベストプラクティス
shuzo
14
6.2k
ビジョン実現を加速させるデザインプログラムマネージャーの視座とキャリア/ Designship2024_Sato
root_recruit
0
180
デザインできるもの、できないもの | Designship 2024 | Yasuhiro Yokota
yasuhiroyokota
2
890
Памятка-раздатка по Карте процесса-опыта, А4
ashapiro
1
420
20240921-図書館の実空間とデジタル資源の接点をデザインする-dtk55-Designing-the-interface-between-the-library's-physical-space-and-digital-resources
majimasachi
0
310
Featured
See All Featured
Scaling GitHub
holman
458
140k
A Tale of Four Properties
chriscoyier
156
23k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
BBQ
matthewcrist
85
9.3k
A better future with KSS
kneath
238
17k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
GitHub's CSS Performance
jonrohan
1030
460k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Into the Great Unknown - MozCon
thekraken
32
1.5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
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ٕज़બɺ༷ʑͳٕज़ͷΈ߹Θͤɻϊϋ ͨΊΔɻ