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
qron: Cloud Native Cron Alternativeの今
Search
aereal
March 19, 2023
2
2.1k
qron: Cloud Native Cron Alternativeの今
@ YAPC Kyoto 2023
aereal
March 19, 2023
Tweet
Share
More Decks by aereal
See All by aereal
How to send distibuted traces to Datadog using build own OpenTelemetry-Lambda distribution
aereal
3
210
好きな技術《コト》で、 生きていく技術 / life with what you like
aereal
5
2.4k
自動作曲入門 / introduction to programatic music composition
aereal
1
530k
はてなブログ タグとCDK / The epic of AWS CDK and Hatena Blog Tag
aereal
3
200k
はてなブログ タグの技術選択 / The technical details of Hatena Blog Tag
aereal
3
200k
ブログサービスのHTTPS化を支えたAWSで作るピタゴラスイッチ / The construction of large scale TLS certificates management system with AWS
aereal
3
400k
AWSではてなブログの常時HTTPS配信をバーンとやる話 / The Epic of migration from HTTP to HTTPS on Hatena Blog with AWS
aereal
14
17k
ScalaとPerlでMicroservices in production / Building microservices with Perl and Scala in production
aereal
0
5.4k
Scalaで自動作曲の練習 / A study of automatic composition in Scala
aereal
1
390k
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
94
How GitHub (no longer) Works
holman
311
140k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
Done Done
chrislema
181
16k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Building Applications with DynamoDB
mza
91
6.1k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
Transcript
RSPO $MPVE/BUJWF $SPO"MUFSOBUJWFͷࠓ !:"1$,ZPUPJEBFSFBM
͓ॻ͖ w RSPOͷհ w ࡞Δ͜ͱʹͳͬͨഎܠ w ͘͠Έ w ͠Β͘ӡ༻ͯ͠ͷ༷ʑͳʬϦΞϧʭ
ࣗݾհ w JEBFSFBM w $MBTTJגࣜձࣾ w ։ൃࢧԉ෦4ZTUFN1MBUGPSNྖҬ w (JU)VCӡ༻ҕһIUUQTUFDIDMBTTJKQFOUSZHJUIVCPQT w
։ൃऀϒϩάฤूIUUQTUFDIDMBTTJKQFOUSZ
എܠ
41P'͔Β ಀΕ͍ͨʂʂʂ
None
None
w 1)1Ͱॻ͔ΕͨσʔϞϯ͕ͨͩͭಈ͍ͯ3%#.4ΛϙʔϦϯά w ΞϓϦέʔγϣϯσʔλ͕ೖΔςʔϒϧڞଘ͢Δ%#ʹΩϡʔΛ࣋ͭ w ΤϯΩϡʔ͢Δࡍʮ͋Δ࣌ࠁʹॲཧ͢Δʯͱ͍ͬͨࢦࣔͰ͖Δ ༧ػೳ w 5IF4DIXBSU[ͷͰ͖ͦ͜ͳ͍ͱݴͬͯ૾Ͱ͖ͨͷ͕ਖ਼ղͰ͢
IUUQTZBQDKBQBOPSHLZPUPUJNFUBCMFIUNMUBML
w 1)1Ͱॻ͔ΕͨσʔϞϯ͕ͨͩͭಈ͍ͯ3%#.4ΛϙʔϦϯά w ΞϓϦέʔγϣϯσʔλ͕ೖΔςʔϒϧڞଘ͢Δ%#ʹΩϡʔΛ࣋ͭ w ΤϯΩϡʔ͢Δࡍʮ͋Δ࣌ࠁʹॲཧ͢Δʯͱ͍ͬͨࢦࣔͰ͖Δ ༧ػೳ w 5IF4DIXBSU[ͷͰ͖ͦ͜ͳ͍ͱݴͬͯ૾Ͱ͖ͨͷ͕ਖ਼ղͰ͢
2ʮͨͩͭʯͷ1)1ϓϩηε͕ ࢮΜͩΒͲ͏ͳΔͷʁ
"͓͠·͍
w 1)1Ͱॻ͔ΕͨσʔϞϯ͕ͨͩͭಈ͍ͯ3%#.4ΛϙʔϦϯά w ΞϓϦέʔγϣϯσʔλ͕ೖΔςʔϒϧڞଘ͢Δ%#ʹΩϡʔΛ࣋ͭ w ΤϯΩϡʔ͢Δࡍʮ͋Δ࣌ࠁʹॲཧ͢Δʯͱ͍ͬͨࢦࣔͰ͖Δ ༧ػೳ w 5IF4DIXBSU[ͷͰ͖ͦ͜ͳ͍ͱݴͬͯ૾Ͱ͖ͨͷ͕ਖ਼ղͰ͢
2໌Β͔ʹ3%#.4͖͡Όͳ͍ ͚Ͳ%#ͷෛՙͬͯେৎͳͷʁ
"େৎ େৎͰͳ͍
w 1)1Ͱॻ͔ΕͨσʔϞϯ͕ͨͩͭಈ͍ͯ3%#.4ΛϙʔϦϯά w ΞϓϦέʔγϣϯσʔλ͕ೖΔςʔϒϧڞଘ͢Δ%#ʹΩϡʔΛ࣋ͭ w ΤϯΩϡʔ͢Δࡍʮ͋Δ࣌ࠁʹॲཧ͢Δʯͱ͍ͬͨࢦࣔͰ͖Δ ༧ػೳ w 5IF4DIXBSU[ͷͰ͖ͦ͜ͳ͍ͱݴͬͯ૾Ͱ͖ͨͷ͕ਖ਼ղͰ͢
2υϝΠϯϩδοΫ͕ 3VCZͰॻ͔Ε͍ͯΔΜͰ͕͢ʜʜ
"େมͰ͢Ͷɻ 1)1Λॻ͍͍ͯͩ͘͞ɻ
ࠔ͍ͬͯͨ͜ͱ w FYBDUMZPODFͷ୲อ͕εέʔϥϏϦςΟͱҾ͖͑ʹͳ͍ͬͯͨ w δϣϒΛॲཧ͢Δϓϩηε͕ܥͷதͰ͚ͨͩͭͩͱ͍͏݅Ͱཱ͍ͤͯͨ͞ w ϓϩηεΛݮΒ͢͜ͱ૿͢͜ͱͰ͖ͳ͍ w ॲཧ͢Δδϣϒ͕૿͑Δ΄Ͳ%#ͷෛՙ͕૿͍ͯ͘͠ઃܭʹͳ͍ͬͯͨ w
ଞͷςʔϒϧʹٴ͠αʔϏεશମʹӨڹ͕ٴͿ w δϣϒͷ࣮Λ1)1Ҏ֎Ͱॻ͚ͳ͍
͜͏͍͏γεςϜ͕΄͍͠ w ༰қʹεέʔϧՄೳͳߏͰ w ڞ༗%#ʹෛՙΛ͔͚ͳ͍ w ҙͷݴޠͰδϣϒΛ࣮Ͱ͖ͯ w ͦͷ্ɺ༧࣮ߦػೳ͕͋Δ
RSPOͷ֓؍
RSPO w δϣϒͷऔΓग़͠༧͞Εͨ࣌ؒʹ࣮ߦ͢ΔͳͲͷδϣϒΩϡʔγεςϜʹٻΊ ΒΕΔػೳΛඋ͑ͨγεςϜ w δϣϒຊମίϯγϡʔϚͱͳΔνʔϜͰҙʹ࣮Ͱ͖Δ w ΠϯλʔϑΣʔε)551"1*ʹ͢Δ͜ͱͰݴޠඇґଘʹ w ͱͱલ৬ͷಉ྅ͱࡶஊϨϕϧͰ͍ͯͨ͠ίϯηϓτΛ͔ͨͪʹͨ͠ͷ
w $MBTTJגࣜձࣾͰӡ༻͍ͯ͠ΔγεςϜʹESPOͱ͍͏໊લΛ༩͑ͨ w IUUQTUFDIDMBTTJKQFOUSZESPOUIFDMPVEOBUJWFDSPO
RSPOͷ֤ίϯϙʔωϯτղઆ
None
w 'BDBEF w +PC&YFDVUPS w +PC4DIFEVMFS w &OEQPJOU%BUBTUPSF w +PC%BUBTUPSF
w +PC3FTFSWBUJPO%BUBTUPSF w 8PSLFS,JDLFS w 8PSLFS&OEQPJOU
w 'BDBEF w +PC&YFDVUPS w +PC4DIFEVMFS w &OEQPJOU%BUBTUPSF w +PC%BUBTUPSF
w +PC3FTFSWBUJPO%BUBTUPSF w 8PSLFS,JDLFS w 8PSLFS&OEQPJOU
None
'BDBEF w δϣϒͷొͳͲίϯγϡʔϚͷϦΫΤετΛड͚͚Δ w ޙड़͢Δ֤ίϯϙʔωϯτΛదʹݺͼग़͢ w (PͰॻ͔Εͨγϯϓϧͳ8FCΞϓϦέʔγϣϯ w "NB[PO&$4Ͱϗετ͞ΕΔ
'BDBEF w 1045FOEQPJOUT w XPSLFSFOEQPJOUͷొ w 1045FOEQPJOUTJEKPCT w XPSLFSFOEQPJOUʹδϣϒΛೖ w
1045SFTFSWBUJPOTXJMM3VO"U&QPDI w XJMM3VO"U&QPDIʹδϣϒΛ༧͢Δ
w 'BDBEF w +PC&YFDVUPS w +PC4DIFEVMFS w &OEQPJOU%BUBTUPSF w +PC%BUBTUPSF
w +PC3FTFSWBUJPO%BUBTUPSF w 8PSLFS,JDLFS w 8PSLFS&OEQPJOU
None
+PC&YFDVUPS w +PC%BUBTUPSF͔ΒϖΠϩʔυΛऔΓग़͠8PSLFS,JDLFSʹ࣮ͯ͠ߦ͢Δ w δϣϒͷഉଞ੍ޚ͜ͷίϯϙʔωϯτ͕Λ୲͏ w ॲཧΛ࢝·Δͱ+PC%BUBTUPSFʹʮ࣮ߦதͰ͋Δʯͱ͍͏ϚʔΫ͚Λ͠ w 8PSLFS,JDLFSΛݺͼग़͠ w
ॲཧ͕ऴྃͨ͠Βʮ࣮ߦྃͨ͠ʯͱ͍͏ϚʔΫ͚Λ͢Δ w ࣮ମ"844UFQ'VODUJPOT
w 'BDBEF w +PC&YFDVUPS w +PC4DIFEVMFS w &OEQPJOU%BUBTUPSF w +PC%BUBTUPSF
w +PC3FTFSWBUJPO%BUBTUPSF w 8PSLFS,JDLFS w 8PSLFS&OEQPJOU
None
+PC4DIFEVMFS w ఆظతʹىಈ͠+PC3FTFSWBUJPO%BUBTUPSF͔Β༧͞Εͨδϣϒ*%ΛऔΓ ग़͠ɺ+PC&YFDVUPSΛݺͼग़͢ w ࣮ମ"84$MPVE8BUDI&WFOUTͱ"844UFQ'VODUJPOT w .BQTUBUFΛͬͯฒྻʹ+PC&YFDVUPSΛݺͿ
w 'BDBEF w +PC&YFDVUPS w +PC4DIFEVMFS w &OEQPJOU%BUBTUPSF w +PC%BUBTUPSF
w +PC3FTFSWBUJPO%BUBTUPSF w 8PSLFS,JDLFS w 8PSLFS&OEQPJOU
None
%BUBTUPSF w ࣮ମ%ZOBNP%# w &OEQPJOU8PSLFS&OEQPJOUͷ63-Λอଘ͢Δ w +PCδϣϒͷϖΠϩʔυͱ࣮ߦঢ়ଶΛอଘ͢Δ w લड़ͷ௨Γഉଞ੍ޚʹΘΕΔ w
+PC3FTFSWBUJPOະདྷͷ͋Δ࣌ࠁʹ༧͞ΕͨδϣϒΛอଘ͢Δ
w 'BDBEF w +PC&YFDVUPS w +PC4DIFEVMFS w &OEQPJOU%BUBTUPSF w +PC%BUBTUPSF
w +PC3FTFSWBUJPO%BUBTUPSF w 8PSLFS,JDLFS w 8PSLFS&OEQPJOU
None
8PSLFS,JDLFS w +PC&YFDVUPS͔Βݺͼग़͞Εͯ8PSLFS&OEQPJOUʹ༩͑ΒΕͨϖΠϩʔυ Λ)5511045ͰૹΔ w దͳϦτϥΠͳͲΛڬΈ൱Λه͢Δ w ࣮ମ(PͰॻ͔Εͨ"84-BNCEBؔ
w 'BDBEF w +PC&YFDVUPS w +PC4DIFEVMFS w &OEQPJOU%BUBTUPSF w +PC%BUBTUPSF
w +PC3FTFSWBUJPO%BUBTUPSF w 8PSLFS,JDLFS w 8PSLFS&OEQPJOU
None
8PSLFS&OEQPJOU w ݫີʹRSPOͷܥ෦ʹ͍ͳ͍͚Ͳհ w ίϯγϡʔϚνʔϜ͕֤ࣗͰ࣮͢ΔδϣϒΛ࣮ࡍʹߦ͏)551ΤϯυϙΠϯ τ w 8PSLFS&OEQPJOUʹRSPO͕ٻΊΔͷ͋Β͔͡Ί0QFO"1*༷Ͱ߹ҙͨ͠ )551ϦΫΤετɾϨεϙϯεͷܗࣜͷΈ w
࣮ʹΘΕΔݴޠϑϨʔϜϫʔΫҰΘͳ͍
ഉଞ੍ޚ w 4UFQ'VODUJPOT͔Β%ZOBNP%#ͷ"1*Λݺͼग़ͤΔ w ͖݅ࣜͭͷ61%"5&ͰϩοΫΛͱΔ w 4UFQ'VODUJPOT֤TUBUFͷࣦഊΛิͰ͖ΔͷͰɺ Τϥʔ͕ى͖ͨΒهͯ͠ॲཧΛܧଓɺͳͲ͕༰қ w
͠εςʔτϚγϯͰิͰ͖ͳ͍Τϥʔ͕ൃੜͯ͠δϣϒͷঢ়ଶ %ZOBNP%#ʹΔ w ϩοΫΛऔͬͨ··ʹͳ͍ͬͯΕ։์ͯ͋͛͠ΕΑ͍
UPDATE IsExecuting = true IF IsExecuting =
false
None
RSPOΛӡ༻ͯ͠Έͯ
ӡ༻ͯ͠ΈͯΘ͔ͬͨ͜ͱ w 😇ωετͨ͠େྔͷ4UFQ'VODUJPOTͷঢ়ଶཤྺ͕ίϯιʔϧͰදࣔͰ͖ͳ͍ όά w 😇0QFO"1*ඍົ w 👍$MPVE8BUDI&WFOUTͷൃՐλΠϛϯάͷ༳Β͗ҙ֎ͱগͳ͍ w
😇ϝϯςφΛ૿͢ͷ͍ͨΜ
ωετͨ͠εςʔτϚγϯͷݺͼग़͠ w 4UFQ'VODUJPOT͞ΒʹผͷεςʔτϚγϯΛݺͼग़͢͜ͱ͕Ͱ͖Δ w ͭͷεςʔτϚγϯͷ࣮ߦ͋ͨΓͷঢ়ଶભҠ্͕ݶ͕͋Δ w ӽ͑ΔͱΤϥʔʹͳΔ w ผͷεςʔτϚγϯΛݺͼग़͢ςΫެࣜυΩϡϝϯτͰհ͞Ε͍ͯΔ w
IUUQTEPDTBXTBNB[PODPNTUFQGVODUJPOTMBUFTUEHCQIJTUPSZMJNJUIUNM
ωετͨ͠େྔͷ4UFQ'VODUJPOTͷঢ়ଶཤྺ͕ίϯιʔϧͰදࣔͰ͖ͳ͍ w ʜʜ͕ωετͯ͠ঢ়ଶભҠ͕૿͑ΔͱṖͷΤϥʔ͕ग़Δ w ωετͨ͠εςʔτϚγϯͷͿΜؚΊΔͱભҠ্ݶͷ ݅Λӽ͑ͯ ͍Δ w αϙʔτʹ͍߹Θ͚ͤͨͲղܾ͍ͯ͠ͳ͍ w
όάͳͷ͔ʜʜ
0QFO"1*ඍົ w εΩʔϚʹै͍ͬͯΔ͜ͱΛݫ֨ʹอূͯ͘͠Εͯ։ൃମݧྑ͍πʔϧνΣΠϯΛݟ͚ͭ ΒΕ͍ͯͳ͍ w (P 1)1 3VCZͰͦΕͧΕ΄͍͠ w ʮݫ֨ʹʯNFBOTεΩʔϚʹै͍ͬͯͳ͍ϦΫΤετϨεϙϯεͩͬͨΒͨͩͪʹ
࣮ߦ࣌ྫ֎Λ͛ΔͳͲڧ͍ϑΟʔυόοΫΛىͯ͘͜͠ΕΔ w (PΉ͚ʹͪΐͬͱͨ͠ϥΠϒϥϦΛ࡞͚ͬͨΕͲ w IUUQTHJUIVCDPNBFSFBMHPPQFOBQJWBMJEBUJPONJEEMFXBSF w ͦͦεΩʔϚΛॻ͘ͷ͕ͩΔ͍ʜʜ
0QFO"1*ඍົ w ͰଞʹԿ͕ྑ͍͔ w (SBQI2- w γεςϜؒ௨৴ͰΫΤϦͷΈཱͯͱׂ͔͕ʹ߹Θͳ͍͔Μ͕͢͡Δ w
3VCZ1)1ͩͱ(SBQI2-αʔόαΠυͷϥΠϒϥϦॆ࣮͍ͯ͠Δ͚ͲΫϥΠΞϯτͦ͏ Ͱͳ͍ͱ͍͏ҹ w H31$ w ϓϩτίϧྑ͍͚Ͳʜʜ w 1SPUPDPM#V ff FSTΛॻ͖ͨ͘ͳ͍
$MPVE8BUDI&WFOUTͷൃՐλΠϛϯά w ΘΓͱ҆ఆ͍ͯͯ͠Α͍ w υΩϡϝϯτͰʮࢦఆͨ࣌͠ࠁҎ߱ͱ͍͏͜ͱ͔͠อূ͠ͳ͍Α ΕΔ͜ ͱΛఆͯ͠Ͷ ʯͱॻ͍ͯ͋Δ w ʜʜ͕ɺΘΓͱࢦఆ࣌ࠁ͔ΒඵҎͷΕͰࡁΜͰ͍Δ
w ͪΖΜอূ͞Ε͍ͯΔΘ͚Ͱͳ͍ͷͰґଘ͢Δ͜ͱ·͘͠ͳ͍ w ͱ͍͍͑উखͱͯ͠ຬͰ͖ΔϨϕϧ
ϝϯςφΛ૿͢ͷ͕͍ͨΜ w ϝϯςφϯε͍ͯ͠Δͷ΄΅ࣗͻͱΓ w ڵຯΛ࣋ͬͯ͘Ε͍ͯΔࣾͰͪΒ΄Βฉ͕͘ʜʜ w ͍͠ͱࢥΘΕ͍ͯΔ w (P
w IUUQTUFDIDMBTTJKQFOUSZ@ w ࢄγεςϜ w "84ͷαʔϏεΛͨ͘͞ΜΈ߹Θ͍ͤͯΔ
࠷ޙʹॏཁͳ͜ͱ
Քಈ։͔࢝Β ϝδϟʔΠϯγσϯτͳ͘ݩؾʹಈ͍͍ͯΔ
·ͱΊ w "84ͷαʔϏεΛΈ߹Θͤͯεέʔϧ͢ΔDSPOସΛߏஙͨ͠ w ࣗવքʹFYBDUMZPODF࡞ΕΔ w ಈ͔࣮ͯ͠༻ʹΔ͜ͱΘ͔ͬͨ w ઃܭͨ࣌͠ʹ૾Ͱ͖ͳ͔ͬͨେখ༷ʑͳ௧ΈΛΕͨ
GJO