$30 off During Our Annual Pro Sale. View Details »

qron: Cloud Native Cron Alternativeの今

aereal
March 19, 2023
1.1k

qron: Cloud Native Cron Alternativeの今

@ YAPC Kyoto 2023

aereal

March 19, 2023
Tweet

More Decks by aereal

Transcript

  1. RSPO
    $MPVE/BUJWF
    $SPO"MUFSOBUJWFͷࠓ
    !:"1$,ZPUPJEBFSFBM

    View Slide

  2. ͓඼ॻ͖
    w RSPOͷ঺հ
    w ࡞Δ͜ͱʹͳͬͨഎܠ
    w ͘͠Έ
    w ͠͹Β͘ӡ༻ͯ͠ͷ༷ʑͳʬϦΞϧʭ

    View Slide

  3. ࣗݾ঺հ
    w JEBFSFBM
    w $MBTTJגࣜձࣾ
    w ։ൃࢧԉ෦4ZTUFN1MBUGPSNྖҬ
    w (JU)VCӡ༻ҕһIUUQTUFDIDMBTTJKQFOUSZHJUIVCPQT
    w ։ൃऀϒϩάฤू௕IUUQTUFDIDMBTTJKQFOUSZ

    View Slide

  4. എܠ

    View Slide

  5. 41P'͔Β
    ಀΕ͍ͨʂʂʂ

    View Slide

  6. View Slide

  7. View Slide

  8. w 1)1Ͱॻ͔ΕͨσʔϞϯ͕ͨͩͭಈ͍ͯ3%#.4ΛϙʔϦϯά
    w ΞϓϦέʔγϣϯσʔλ͕ೖΔςʔϒϧ΋ڞଘ͢Δ%#ʹΩϡʔΛ࣋ͭ
    w ΤϯΩϡʔ͢Δࡍʮ͋Δ࣌ࠁʹॲཧ͢Δʯͱ͍ͬͨࢦࣔ΋Ͱ͖Δ ༧໿ػೳ

    w 5IF4DIXBSU[ͷͰ͖ͦ͜ͳ͍ͱݴͬͯ૝૾Ͱ͖ͨ΋ͷ͕ਖ਼ղͰ͢

    View Slide

  9. IUUQTZBQDKBQBOPSHLZPUPUJNFUBCMFIUNMUBML

    View Slide

  10. w 1)1Ͱॻ͔ΕͨσʔϞϯ͕ͨͩͭಈ͍ͯ3%#.4ΛϙʔϦϯά
    w ΞϓϦέʔγϣϯσʔλ͕ೖΔςʔϒϧ΋ڞଘ͢Δ%#ʹΩϡʔΛ࣋ͭ
    w ΤϯΩϡʔ͢Δࡍʮ͋Δ࣌ࠁʹॲཧ͢Δʯͱ͍ͬͨࢦࣔ΋Ͱ͖Δ ༧໿ػೳ

    w 5IF4DIXBSU[ͷͰ͖ͦ͜ͳ͍ͱݴͬͯ૝૾Ͱ͖ͨ΋ͷ͕ਖ਼ղͰ͢

    View Slide

  11. 2ʮͨͩͭʯͷ1)1ϓϩηε͕
    ࢮΜͩΒͲ͏ͳΔͷʁ

    View Slide

  12. "͓͠·͍

    View Slide

  13. w 1)1Ͱॻ͔ΕͨσʔϞϯ͕ͨͩͭಈ͍ͯ3%#.4ΛϙʔϦϯά
    w ΞϓϦέʔγϣϯσʔλ͕ೖΔςʔϒϧ΋ڞଘ͢Δ%#ʹΩϡʔΛ࣋ͭ
    w ΤϯΩϡʔ͢Δࡍʮ͋Δ࣌ࠁʹॲཧ͢Δʯͱ͍ͬͨࢦࣔ΋Ͱ͖Δ ༧໿ػೳ

    w 5IF4DIXBSU[ͷͰ͖ͦ͜ͳ͍ͱݴͬͯ૝૾Ͱ͖ͨ΋ͷ͕ਖ਼ղͰ͢

    View Slide

  14. 2໌Β͔ʹ3%#.4޲͖͡Όͳ͍
    ͚Ͳ%#ͷෛՙͬͯେৎ෉ͳͷʁ

    View Slide

  15. "େৎ෉ େৎ෉Ͱ͸ͳ͍

    View Slide

  16. w 1)1Ͱॻ͔ΕͨσʔϞϯ͕ͨͩͭಈ͍ͯ3%#.4ΛϙʔϦϯά
    w ΞϓϦέʔγϣϯσʔλ͕ೖΔςʔϒϧ΋ڞଘ͢Δ%#ʹΩϡʔΛ࣋ͭ
    w ΤϯΩϡʔ͢Δࡍʮ͋Δ࣌ࠁʹॲཧ͢Δʯͱ͍ͬͨࢦࣔ΋Ͱ͖Δ ༧໿ػೳ

    w 5IF4DIXBSU[ͷͰ͖ͦ͜ͳ͍ͱݴͬͯ૝૾Ͱ͖ͨ΋ͷ͕ਖ਼ղͰ͢

    View Slide

  17. 2υϝΠϯϩδοΫ͕
    3VCZͰॻ͔Ε͍ͯΔΜͰ͕͢ʜʜ

    View Slide

  18. "େมͰ͢Ͷɻ

    1)1Λॻ͍͍ͯͩ͘͞ɻ

    View Slide

  19. ࠔ͍ͬͯͨ͜ͱ
    w FYBDUMZPODFͷ୲อ͕εέʔϥϏϦςΟͱҾ͖׵͑ʹͳ͍ͬͯͨ
    w δϣϒΛॲཧ͢Δϓϩηε͕ܥͷதͰ͚ͨͩͭͩͱ͍͏৚݅Ͱ੒ཱ͍ͤͯͨ͞
    w ϓϩηεΛݮΒ͢͜ͱ΋૿΍͢͜ͱ΋Ͱ͖ͳ͍
    w ॲཧ͢Δδϣϒ͕૿͑Δ΄Ͳ%#ͷෛՙ͕૿͍ͯ͘͠ઃܭʹͳ͍ͬͯͨ
    w ଞͷςʔϒϧʹ΋೾ٴ͠αʔϏεશମʹӨڹ͕ٴͿ
    w δϣϒͷ࣮૷Λ1)1Ҏ֎Ͱॻ͚ͳ͍

    View Slide

  20. ͜͏͍͏γεςϜ͕΄͍͠
    w ༰қʹεέʔϧՄೳͳߏ੒Ͱ
    w ڞ༗%#ʹෛՙΛ͔͚ͳ͍
    w ೚ҙͷݴޠͰδϣϒΛ࣮૷Ͱ͖ͯ
    w ͦͷ্ɺ༧໿࣮ߦػೳ͕͋Δ

    View Slide

  21. RSPOͷ֓؍

    View Slide

  22. RSPO
    w δϣϒͷऔΓग़͠΍༧໿͞Εͨ࣌ؒʹ࣮ߦ͢ΔͳͲͷδϣϒΩϡʔγεςϜʹٻΊ
    ΒΕΔػೳΛඋ͑ͨγεςϜ
    w δϣϒຊମ͸ίϯγϡʔϚͱͳΔνʔϜͰ೚ҙʹ࣮૷Ͱ͖Δ
    w ΠϯλʔϑΣʔε͸)551"1*ʹ͢Δ͜ͱͰݴޠඇґଘʹ
    w ΋ͱ΋ͱલ৬ͷಉ྅ͱࡶஊϨϕϧͰ࿩͍ͯͨ͠ίϯηϓτΛ͔ͨͪʹͨ͠΋ͷ
    w $MBTTJגࣜձࣾͰӡ༻͍ͯ͠ΔγεςϜʹ͸ESPOͱ͍͏໊લΛ༩͑ͨ
    w IUUQTUFDIDMBTTJKQFOUSZESPOUIFDMPVEOBUJWFDSPO

    View Slide

  23. RSPOͷ֤ίϯϙʔωϯτղઆ

    View Slide

  24. View Slide

  25. w 'BDBEF
    w +PC&YFDVUPS
    w +PC4DIFEVMFS
    w &OEQPJOU%BUBTUPSF
    w +PC%BUBTUPSF
    w +PC3FTFSWBUJPO%BUBTUPSF
    w 8PSLFS,JDLFS
    w 8PSLFS&OEQPJOU

    View Slide

  26. w 'BDBEF
    w +PC&YFDVUPS
    w +PC4DIFEVMFS
    w &OEQPJOU%BUBTUPSF
    w +PC%BUBTUPSF
    w +PC3FTFSWBUJPO%BUBTUPSF
    w 8PSLFS,JDLFS
    w 8PSLFS&OEQPJOU

    View Slide

  27. View Slide

  28. 'BDBEF
    w δϣϒͷొ࿥ͳͲίϯγϡʔϚͷϦΫΤετΛड͚෇͚Δ
    w ޙड़͢Δ֤ίϯϙʔωϯτΛద੾ʹݺͼग़͢
    w (PͰॻ͔Εͨγϯϓϧͳ8FCΞϓϦέʔγϣϯ
    w "NB[PO&$4Ͱϗετ͞ΕΔ

    View Slide

  29. 'BDBEF
    w 1045FOEQPJOUT
    w XPSLFSFOEQPJOUͷొ࿥
    w 1045FOEQPJOUTJEKPCT
    w XPSLFSFOEQPJOUʹδϣϒΛ౤ೖ
    w 1045SFTFSWBUJPOTXJMM3VO"U&QPDI
    w XJMM3VO"U&QPDIʹδϣϒΛ༧໿͢Δ

    View Slide

  30. w 'BDBEF
    w +PC&YFDVUPS
    w +PC4DIFEVMFS
    w &OEQPJOU%BUBTUPSF
    w +PC%BUBTUPSF
    w +PC3FTFSWBUJPO%BUBTUPSF
    w 8PSLFS,JDLFS
    w 8PSLFS&OEQPJOU

    View Slide

  31. View Slide

  32. +PC&YFDVUPS
    w +PC%BUBTUPSF͔ΒϖΠϩʔυΛऔΓग़͠8PSLFS,JDLFSʹ౉࣮ͯ͠ߦ͢Δ
    w δϣϒͷഉଞ੍ޚ͸͜ͷίϯϙʔωϯτ͕੹຿Λ୲͏
    w ॲཧΛ࢝·Δͱ+PC%BUBTUPSFʹʮ࣮ߦதͰ͋Δʯͱ͍͏ϚʔΫ෇͚Λ͠
    w 8PSLFS,JDLFSΛݺͼग़͠
    w ॲཧ͕ऴྃͨ͠Βʮ࣮ߦ׬ྃͨ͠ʯͱ͍͏ϚʔΫ෇͚Λ͢Δ
    w ࣮ମ͸"844UFQ'VODUJPOT

    View Slide

  33. w 'BDBEF
    w +PC&YFDVUPS
    w +PC4DIFEVMFS
    w &OEQPJOU%BUBTUPSF
    w +PC%BUBTUPSF
    w +PC3FTFSWBUJPO%BUBTUPSF
    w 8PSLFS,JDLFS
    w 8PSLFS&OEQPJOU

    View Slide

  34. View Slide

  35. +PC4DIFEVMFS
    w ఆظతʹىಈ͠+PC3FTFSWBUJPO%BUBTUPSF͔Β༧໿͞Εͨδϣϒ*%ΛऔΓ
    ग़͠ɺ+PC&YFDVUPSΛݺͼग़͢
    w ࣮ମ͸"84$MPVE8BUDI&WFOUTͱ"844UFQ'VODUJPOT
    w .BQTUBUFΛ࢖ͬͯฒྻʹ+PC&YFDVUPSΛݺͿ

    View Slide

  36. w 'BDBEF
    w +PC&YFDVUPS
    w +PC4DIFEVMFS
    w &OEQPJOU%BUBTUPSF
    w +PC%BUBTUPSF
    w +PC3FTFSWBUJPO%BUBTUPSF
    w 8PSLFS,JDLFS
    w 8PSLFS&OEQPJOU

    View Slide

  37. View Slide

  38. %BUBTUPSF
    w ࣮ମ͸%ZOBNP%#
    w &OEQPJOU͸8PSLFS&OEQPJOUͷ63-Λอଘ͢Δ
    w +PC͸δϣϒͷϖΠϩʔυͱ࣮ߦঢ়ଶΛอଘ͢Δ
    w લड़ͷ௨Γഉଞ੍ޚʹ΋࢖ΘΕΔ
    w +PC3FTFSWBUJPO͸ະདྷͷ͋Δ࣌ࠁʹ༧໿͞ΕͨδϣϒΛอଘ͢Δ

    View Slide

  39. w 'BDBEF
    w +PC&YFDVUPS
    w +PC4DIFEVMFS
    w &OEQPJOU%BUBTUPSF
    w +PC%BUBTUPSF
    w +PC3FTFSWBUJPO%BUBTUPSF
    w 8PSLFS,JDLFS
    w 8PSLFS&OEQPJOU

    View Slide

  40. View Slide

  41. 8PSLFS,JDLFS
    w +PC&YFDVUPS͔Βݺͼग़͞Εͯ8PSLFS&OEQPJOUʹ༩͑ΒΕͨϖΠϩʔυ
    Λ)5511045ͰૹΔ
    w ద੾ͳϦτϥΠͳͲΛڬΈ੒൱Λه࿥͢Δ
    w ࣮ମ͸(PͰॻ͔Εͨ"84-BNCEBؔ਺

    View Slide

  42. w 'BDBEF
    w +PC&YFDVUPS
    w +PC4DIFEVMFS
    w &OEQPJOU%BUBTUPSF
    w +PC%BUBTUPSF
    w +PC3FTFSWBUJPO%BUBTUPSF
    w 8PSLFS,JDLFS
    w 8PSLFS&OEQPJOU

    View Slide

  43. View Slide

  44. 8PSLFS&OEQPJOU
    w ݫີʹ͸RSPOͷܥ಺෦ʹ͸͍ͳ͍͚Ͳ঺հ
    w ίϯγϡʔϚνʔϜ͕֤ࣗͰ࣮૷͢ΔδϣϒΛ࣮ࡍʹߦ͏)551ΤϯυϙΠϯ
    τ
    w 8PSLFS&OEQPJOUʹRSPO͕ٻΊΔͷ͸͋Β͔͡Ί0QFO"1*࢓༷Ͱ߹ҙͨ͠
    )551ϦΫΤετɾϨεϙϯεͷܗࣜͷΈ
    w ࣮૷ʹ࢖ΘΕΔݴޠ΍ϑϨʔϜϫʔΫ͸Ұ੾໰Θͳ͍

    View Slide

  45. ഉଞ੍ޚ
    w 4UFQ'VODUJPOT͔Β௚઀%ZOBNP%#ͷ"1*Λݺͼग़ͤΔ
    w ৚͖݅ࣜͭͷ61%"5&ͰϩοΫΛͱΔ
    w 4UFQ'VODUJPOT͸֤TUBUFͷࣦഊΛิ଍Ͱ͖ΔͷͰɺ

    Τϥʔ͕ى͖ͨΒه࿥ͯ͠ॲཧΛܧଓɺͳͲ͕༰қ
    w ΋͠εςʔτϚγϯͰิ଍Ͱ͖ͳ͍Τϥʔ͕ൃੜͯ͠΋δϣϒͷঢ়ଶ͸
    %ZOBNP%#ʹ࢒Δ
    w ϩοΫΛऔͬͨ··ʹͳ͍ͬͯΕ͹։์ͯ͋͛͠Ε͹Α͍

    View Slide

  46. UPDATE

    IsExecuting = true

    IF

    IsExecuting = false

    View Slide

  47. View Slide

  48. RSPOΛӡ༻ͯ͠Έͯ

    View Slide

  49. ӡ༻ͯ͠ΈͯΘ͔ͬͨ͜ͱ
    w 😇ωετͨ͠େྔͷ4UFQ'VODUJPOTͷঢ়ଶཤྺ͕ίϯιʔϧͰදࣔͰ͖ͳ͍
    όά

    w 😇0QFO"1*͸ඍົ
    w 👍$MPVE8BUDI&WFOUTͷൃՐλΠϛϯάͷ༳Β͗͸ҙ֎ͱগͳ͍
    w 😇ϝϯςφΛ૿΍͢ͷ͸͍ͨ΁Μ

    View Slide

  50. ωετͨ͠εςʔτϚγϯͷݺͼग़͠
    w 4UFQ'VODUJPOT͸͞ΒʹผͷεςʔτϚγϯΛݺͼग़͢͜ͱ͕Ͱ͖Δ
    w ͭͷεςʔτϚγϯͷ࣮ߦ͋ͨΓͷঢ়ଶભҠ਺্͕ݶ͕͋Δ
    w ӽ͑ΔͱΤϥʔʹͳΔ
    w ผͷεςʔτϚγϯΛݺͼग़͢ςΫ͸ެࣜυΩϡϝϯτͰ΋঺հ͞Ε͍ͯΔ
    w IUUQTEPDTBXTBNB[PODPNTUFQGVODUJPOTMBUFTUEHCQIJTUPSZMJNJUIUNM

    View Slide

  51. ωετͨ͠େྔͷ4UFQ'VODUJPOTͷঢ়ଶཤྺ͕ίϯιʔϧͰදࣔͰ͖ͳ͍
    w ʜʜ͕ωετͯ͠ঢ়ଶભҠ͕૿͑ΔͱṖͷΤϥʔ͕ग़Δ
    w ωετͨ͠εςʔτϚγϯͷͿΜ΋ؚΊΔͱભҠ͸্ݶͷ ݅Λӽ͑ͯ
    ͍Δ
    w αϙʔτʹ໰͍߹Θ͚ͤͨͲղܾ͍ͯ͠ͳ͍
    w όάͳͷ͔ʜʜ

    View Slide

  52. 0QFO"1*͸ඍົ
    w εΩʔϚʹै͍ͬͯΔ͜ͱΛݫ֨ʹอূͯ͘͠Εͯ։ൃମݧ΋ྑ͍πʔϧνΣΠϯΛݟ͚ͭ
    ΒΕ͍ͯͳ͍
    w (P 1)1 3VCZͰͦΕͧΕ΄͍͠
    w ʮݫ֨ʹʯNFBOTεΩʔϚʹै͍ͬͯͳ͍ϦΫΤετ΍ϨεϙϯεͩͬͨΒͨͩͪʹ
    ࣮ߦ࣌ྫ֎Λ౤͛ΔͳͲڧ͍ϑΟʔυόοΫΛىͯ͘͜͠ΕΔ
    w (PΉ͚ʹ͸ͪΐͬͱͨ͠ϥΠϒϥϦΛ࡞͚ͬͨΕͲ΋
    w IUUQTHJUIVCDPNBFSFBMHPPQFOBQJWBMJEBUJPONJEEMFXBSF
    w ͦ΋ͦ΋εΩʔϚΛॻ͘ͷ͕ͩΔ͍ʜʜ

    View Slide

  53. 0QFO"1*͸ඍົ
    w Ͱ͸ଞʹԿ͕ྑ͍͔
    w (SBQI2-
    w γεςϜؒ௨৴Ͱ͸ΫΤϦͷ૊Έཱͯͱׂ͔͕ʹ߹Θͳ͍͔Μ͕͢͡Δ
    w 3VCZ΍1)1ͩͱ(SBQI2-αʔόαΠυͷϥΠϒϥϦ͸ॆ࣮͍ͯ͠Δ͚ͲΫϥΠΞϯτ͸ͦ͏
    Ͱ΋ͳ͍ͱ͍͏ҹ৅
    w H31$
    w ϓϩτίϧ͸ྑ͍͚Ͳʜʜ
    w 1SPUPDPM#V
    ff
    FSTΛॻ͖ͨ͘ͳ͍

    View Slide

  54. $MPVE8BUDI&WFOUTͷൃՐλΠϛϯά
    w ΘΓͱ҆ఆ͍ͯͯ͠Α͍
    w υΩϡϝϯτͰ͸ʮࢦఆͨ࣌͠ࠁҎ߱ͱ͍͏͜ͱ͔͠อূ͠ͳ͍Α ஗ΕΔ͜
    ͱΛ૝ఆͯ͠Ͷ
    ʯͱॻ͍ͯ͋Δ
    w ʜʜ͕ɺΘΓͱࢦఆ࣌ࠁ͔ΒඵҎ಺ͷ஗ΕͰࡁΜͰ͍Δ
    w ΋ͪΖΜอূ͞Ε͍ͯΔΘ͚Ͱ͸ͳ͍ͷͰґଘ͢Δ͜ͱ͸๬·͘͠ͳ͍
    w ͱ͸͍͑࢖͍উखͱͯ͠ຬ଍Ͱ͖ΔϨϕϧ

    View Slide

  55. ϝϯςφΛ૿΍͢ͷ͕͍ͨ΁Μ
    w ϝϯςφϯε͍ͯ͠Δͷ͸΄΅ࣗ෼ͻͱΓ
    w ڵຯΛ࣋ͬͯ͘Ε͍ͯΔ੠͸ࣾ಺ͰͪΒ΄Βฉ͕͘ʜʜ
    w ೉͍͠ͱࢥΘΕ͍ͯΔ
    w (P
    w IUUQTUFDIDMBTTJKQFOUSZ@
    w ෼ࢄγεςϜ
    w "84ͷαʔϏεΛͨ͘͞Μ૊Έ߹Θ͍ͤͯΔ

    View Slide

  56. ࠷ޙʹॏཁͳ͜ͱ

    View Slide

  57. Քಈ։͔࢝Β

    ϝδϟʔΠϯγσϯτ΋ͳ͘ݩؾʹಈ͍͍ͯΔ

    View Slide

  58. ·ͱΊ
    w "84ͷαʔϏεΛ૊Έ߹Θͤͯεέʔϧ͢ΔDSPO୅ସΛߏஙͨ͠
    w ࣗવքʹFYBDUMZPODF͸࡞ΕΔ
    w ਺೥ಈ͔࣮ͯ͠༻ʹ଍Δ͜ͱ΋Θ͔ͬͨ
    w ઃܭͨ࣌͠ʹ͸૝૾Ͱ͖ͳ͔ͬͨେখ༷ʑͳ௧ΈΛ஌Εͨ

    View Slide

  59. GJO

    View Slide