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
TimeFuzeアーキテクチャ構想 / The concept of TimeFuze Arc...
Search
Yuuki Tsubouchi (yuuk1)
December 23, 2017
Research
1
9.7k
TimeFuzeアーキテクチャ構想 / The concept of TimeFuze Architecture
第1回ウェブシステムアーキテクチャ(WSA)研究会@京都
Yuuki Tsubouchi (yuuk1)
December 23, 2017
Tweet
Share
More Decks by Yuuki Tsubouchi (yuuk1)
See All by Yuuki Tsubouchi (yuuk1)
博士学位論文予備審査 / Scaling Telemetry Workloads in Cloud Applications: Techniques for Instrumentation, Storage, and Mining
yuukit
1
1.7k
MetricSifter:クラウドアプリケーションにおける故障箇所特定の効率化のための多変量時系列データの特徴量削減 / FIT 2024
yuukit
2
180
工学としてのSRE再訪 / Revisiting SRE as Engineering
yuukit
19
12k
Cloudless Computingの論文紹介
yuukit
2
470
#SRE論文紹介 Detection is Better Than Cure: A Cloud Incidents Perspective V. Ganatra et. al., ESEC/FSE’23
yuukit
3
1.7k
エンジニアのためのSRE論文への招待 / Introduction to SRE Papers for Engineers
yuukit
2
11k
博士課程での研究まとめ 2023年1月版 / Summary of my research in the PhD course
yuukit
1
280
AI時代に向けたクラウドにおける信頼性エンジニアリングの未来構想 / DICOMO2022 6A-1
yuukit
7
3k
AIOps研究録―SREのための システム障害の自動原因診断 / SRE NEXT 2022
yuukit
10
12k
Other Decks in Research
See All in Research
[ECCV2024読み会] 衛星画像からの地上画像生成
elith
1
1k
Weekly AI Agents News! 9月号 プロダクト/ニュースのアーカイブ
masatoto
2
200
地理空間情報と自然言語処理:「地球の歩き方旅行記データセット」の高付加価値化を通じて
hiroki13
1
180
コミュニティドライブプロジェクト
smartfukushilab1
0
170
医療支援AI開発における臨床と情報学の連携を円滑に進めるために
moda0
0
150
打率7割を実現する、プロダクトディスカバリーの7つの極意(pmconf2024)
geshi0820
0
280
CUNY DHI_Lightning Talks_2024
digitalfellow
0
400
Kim Townend Studio X Viral Moment BookTok Webinar
kimlovesstuff
PRO
0
100
Global Evidence Summit (GES) 参加報告
daimoriwaki
0
230
サーブレシーブ成功率は勝敗に影響するか?
vball_panda
0
510
Weekly AI Agents News! 11月号 プロダクト/ニュースのアーカイブ
masatoto
0
290
ダイナミックプライシング とその実例
skmr2348
3
580
Featured
See All Featured
Practical Orchestrator
shlominoach
186
10k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
A Tale of Four Properties
chriscoyier
158
23k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Being A Developer After 40
akosma
89
590k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
11
940
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
Transcript
TimeFuzeΞʔΩςΫνϟߏ ͯͳ id:y_uuki / @y_uuk1 2017/12/23 ୈ1ճΣϒγεςϜΞʔΩςΫνϟ(WSA)ݚڀձ@ژ ॲཧͱσʔλͱλΠϚʔΛҰମԽͨ͠σʔλύΠϓϥΠϯ
id:y_uuki / @y_uuk1 Yuuki TSUBOUCHI https://yuuk.io/ ͯͳͷΣϒΦϖϨʔγϣϯΤϯδχΞ WSAݚڀձ ཧࣄ?෭ࠪ?
TimeFuze?
࣌ݶ৴ Time Fuze
ىരஔ+Րༀ+λΠϚʔ
ॲཧ+σʔλ+λΠϚʔ
TimeFuze ΞʔΩςΫνϟ
͘͡ 1. എܠͱత 2. TimeFuzeΞʔΩςΫνϟ 3. ߟ 4. Ή͢ͼ
1. എܠͱత
WebαʔϏεͷσʔλॲཧཁٻͷෳࡶԽ • ϦΫΤετʹରͯ͠HTMLͷϨεϙϯεΛฦ٫͢ΔҎ֎ ͷϫʔΫϩʔυͷଟ༷Խ͕ਐΜͰ͍Δ • ੑೳಛੑͷҟͳΔσʔλετΞͷซ༻ɺػցֶशʹΑ Δ࣌ؒपظͰͷେنͳσʔλॲཧΛٻΊΒΕ͍ͯΔ • εέʔϧ͍ͤ͢͞σʔλύΠϓϥΠϯॲཧ͕ඞཁ
ҰൠͷσʔλύΠϓϥΠϯ DataSource Data Destination όονॲཧ λΠϜεέδϡʔϥʔ ىಈ
ҰൠͷσʔλύΠϓϥΠϯͷ՝ • σʔλྔ૿େʹ͋ΘͤͨεέʔϦϯάӡ༻ͷ͠͞ • όονॲཧ్தͷΤϥʔॲཧͷ͠͞ • λΠϜεέδϡʔϥͦͷͷͷӡ༻ͷࡶ͞ • ࣮ߦසઃఆͷॊೈੑͷ͞
σʔλ λΠϚʔ σʔλͱॲཧͱλΠϚʔͷҰମԽϞσϧͷఏҊ ॲཧ DataSource σʔλ λΠϚʔ ॲཧ DataDestination
ҰൠͷσʔλύΠϓϥΠϯͷ՝ͷղܾ • σʔλྔ૿େʹ͋ΘͤͨεέʔϦϯάӡ༻ͷ͠͞ • ࠷ॳ͔ΒฒߦॲཧΛલఏͱͨ͠ΞʔΩςΫνϟͰղܾ • όονॲཧ్தͷΤϥʔॲཧͷ͠͞ • όονॲཧͰͳ͘Ϩίʔυ୯ҐͰδϣϒఆٛͰղܾ •
λΠϜεέδϡʔϥͦͷͷͷӡ༻ͷࡶ͞ • σʔλετΞͷTTLʹΑΓεέδϡʔϥϗετ͕ෆཁ • ࣮ߦසઃఆͷॊೈੑͷ͞ • λΠϚʔઃఆͷཻΛϨίʔυ୯ҐͰઃఆ͢Δ͜ͱͰղܾ
http://blog.yuuk.io/entry/the-rebuild-of-tsdb-on-cloud
֊ܕσʔλετΞߏͷ࣌ܥྻσʔλϕʔε ΠϯϝϞϦ DB ΦϯσΟεΫ DB ΦϒδΣΫτ ετϨʔδ ৽ ݹ ߴ
҆
֊ܕσʔλετΞͷ͍͠ͱ͜Ζͱղܾ • σʔλετΞؒͷσʔλҠಈύΠϓϥΠϯͷεέʔϥϏ ϦςΟ • ಛఆͷϨίʔυͷΈɺσʔλετΞҠಈλΠϛϯάΛ੍ ޚ͢Δ • ͜ΕΒΛTimeFuzeΞʔΩςΫνϟʹΑΓղܾ •
DynamoDBͷTTLͱLambda TriggerʹΑΔ࣮
ͦͷଞͷTimeFuzeͷద༻ΞϓϦέʔγϣϯྫ • ࣌ܥྻσʔλҟৗݕͷֶशϞσϧͷఆظߋ৽ • Ϛϧνςφϯτڥʹ͓͚ΔେنͳSSL/TLSূ໌ॻߋ ৽
2. TimeFuzeΞʔΩςΫνϟ
1. insert DataSource record Data TTL DataDestination Trigger Other API/DataStore
record 2. expire 3. insert or update
TimeFuzeͷϝϦοτ • ฒߦॲཧΛલఏͱͨ͠ΞʔΩςΫνϟͰ͋Δ͜ͱ • Τϥʔ͔Βͷճ෮ॲཧ͕༰қͰ͋Δ͜ͱ • λΠϜεέδϡʔϥͱόονॲཧͷͨΊͷϗετ͘͠ Ϋϥελͷߏஙɾӡ༻͕ෆཁͰ͋Δ͜ͱ • Ϩίʔυ୯ҐλΠϚʔʹΑΓɺδϣϒͷ࣮ߦසΛϨίʔ
υ୯ҐͰௐՄೳͰ͋Δ͜ͱ
AWSʹΑΔ࣮
DynamoDB TTL + Lambda Trigger • DynamoDB: ϑϧϚωʔδυܕͷNoSQLσʔλϕʔε αʔϏεɻTTLΛαϙʔτ͍ͯ͠Δɻ •
Lambda: ΠϕϯτൃՐΛܖػʹFunctionΛݺͼग़ͤΔ • DynamoDB্ͷϨίʔυʹର͢ΔTTLظݶΕΠϕϯτ ΛܖػʹɺLambda FunctionΛτϦΨʔͱ࣮ͯ͠ߦ
1. insert DynamoDB record Data TTL DynamoDB,S3,… Lambda Other API/DataStore
record 2. expire 3. insert or update
ΦϯϓϨϛεڥͰͷ࣮
Redis Keyspace௨ + ϝοηʔδΩϡʔ • RedisͷKeyspace௨ػೳʹΑΓTTLΠϕϯτΛߪಡͰ͖ Δ • ͨͩ͠ɺ҆શͳτϦΨʔॲཧͷͨΊʹɺߪಡͨ͠Πϕϯ τΛϝοηʔδΩϡʔʹΑΓӬଓԽ͢Δඞཁ͕͋Δ
• ݴޠΘͣར༻͍͢͠ϝοηʔδΩϡʔͱͯ͠ Fireworq͕͋Δ
TimeFuzeͷ ۩ମతͳΞϓϦέʔγϣϯ ͷద༻
࣌ܥྻσʔλͷҟৗݕ • ऩूͨ͠ϝτϦοΫܥྻʹରͯ͠ɺֶशϞσϧΛߏங • ৽نϝτϦοΫͷରԠͷͨΊϞσϧΛఆظతʹߋ৽͢Δ • ଞͷσʔλετΞʹҠಈ͢ΔΘ͚Ͱͳ͘ɺDataSource ͱDataDestinationಉҰͷσʔλετΞΛར༻ • ֶ֤शϞσϧͷϨίʔυʹTTLΛઃఆ͠ɺTriggerͰֶश
ॲཧޙɺϞσϧΛߋ৽͢Δ
1. insert DataSource record Metric TTL Trigger ࣌ܥྻ σʔλϕʔε 2.
expire 3. update ֶशॲཧ
େنSSL/TLSূ໌ॻཧ • ϒϩάαʔϏεͳͲͰେྔͷSSL/TLSূ໌ॻΛཧ͠ɺ ϲ݄͝ͱʹߋ৽͢Δέʔε • ূ໌ॻΛσʔλϕʔεʹ֨ೲ͠ಈతऔಘ͢ΔΞʔΩςΫ νϟΛલఏͱ͢Δ • ֤υϝΠϯʹର͢Δূ໌ॻϨίʔυʹTTLΛઃఆ͠ɺ Trigger͕ূ໌ॻΛ࠶औಘ͠ɺDataDestination্ॻ͖
1. insert DataSource record ূ໌ॻ TTL Trigger Let’s Encrypt 2.
expire 3. update ূ໌ॻ ߋ৽ॲཧ
3. ߟ
TimeFuzeͷσϝϦοτ • ΞʔΩςΫνϟϨϕϧ • DataSource্ͷෳͷϨίʔυΛϚʔδ͢ΔॲཧΛͮ͠Β͍ • ࣮Ϩϕϧ • Ұ࣌తʹϨίʔυ͕আ͞ΕΔͨΊɺσʔλͷҰ؏ੑͷ ͕ඞཁ
• TTLظݶ͔Βআॲཧ։࢝·ͰͷσΟϨΠ͕࣌ؒϕετΤ ϑΥʔτͳͨΊɺִ࣌ؒؒ
TimeFuzeͷσϝϦοτղܾҊ • TTLΛར༻ͤͣɺTime to EventػೳΛσʔλετΞʹ ΈࠐΉ • Time to Eventػೳઃఆͨ࣌͠ࠁΛܦաͨ͠Πϕϯτ
ͷΈΛൃߦ͠ɺϨίʔυআ͠ͳ͍
4. Ή͢ͼ
Ή͢ͼ • εέʔϧ͍ͤ͢͞σʔλύΠϓϥΠϯΞʔΩςΫνϟ͕ WebαʔϏε։ൃʹٻΊΒΕ͍ͯΔ • ୯ҰͷλΠϜεέδϡʔϥʔʹΑΔσʔλύΠϓϥΠϯͷ ՝ΛɺσʔλͱॲཧͱλΠϚʔͷҰମԽʹΑΓղܾ͢Δ ख๏ΛఏҊͨ͠ • ࣮ͷʹΑΓɺݱஈ֊Ͱ࣮ӡ༻͢ΔͨΊʹΞϓϦέʔ
γϣϯͷ͕ඞཁͱͳΔ
ࠓޙͷऔΓΈ • طଘͷఆظσʔλύΠϓϥΠϯͷ՝ΛαʔϕΠ͠ཧ • طଘσʔλετΞ࣮ͷTTLσΟϨΠ࣌ؒͷௐࠪ • طଘͷσʔλετΞͷTime to EventͷΈࠐΈ
ࣗੑͷ͋ΔσʔλॲཧͷՄೳੑ • VM => ίϯςφ, ίϯςφ => εϨου • σʔλϕʔε
=> ςʔϒϧ, ςʔϒϧ => σʔλϨίʔυ
SRE/ΦϖϨʔγϣϯΤϯδχΞͷઓ • TimeFuzeͷΑ͏ͳσʔλॲཧΞʔΩςΫνϟΛࣄʹ͍ͯ͠ͳ͍ • ۙͰ͍ͬͯΔ͜ͱɺΠϯϑϥετϥΫνϟࣗମͷมߋΛ࠷ େԽ͢Δࣄ • ج൫ͷந͕͕͋ΔʹͭΕɺSREͷࣄ͕ΑΓࣄۀʹۙ͘ͳ͍ͬͯ͘ • ࣄۀʹ͍ۙ΄ͲɺநԽ͕͘͠ͳΓج൫Ͱٵऩͮ͠Β͘ͳΔ
• ෳͷσʔλετΞΛ͏·͘׆༻ͨ͠ΓɺෳͷϫʔΫϩʔυΛ͏· ͍͍ͯ͘͘͞ΞʔΩςΫνϟʹؔ৺͕͋Δ