Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mackerelの200週連続リリースの舞台裏とこれから / DevsumiKansai2018

Mackerelの200週連続リリースの舞台裏とこれから / DevsumiKansai2018

デブサミ関西登壇資料

KASUYA, Daisuke

September 28, 2018
Tweet

More Decks by KASUYA, Daisuke

Other Decks in Technology

Transcript

  1. Mackerel ▸ 2013೥11݄ʹ࠷ॳͷίϛοτ ▸ 2014೥5݄8೔ βϦϦʔε ▸ 2014೥9݄17೔ ਖ਼ࣜϦϦʔε ▸

    2014೥11݄1೔ daiksyೖࣾ ▸ 2016೥6݄10೔ 100ि࿈ଓϦϦʔε ▸ 2018೥7݄2೔ 200ि࿈ଓϦϦʔε Mackerelͷ200ि࿈ଓϦϦʔεͷ෣୆ཪͱ͜Ε͔Β
  2. ▸ Mackerel͸ͱͯ΋ϛχϚϜͳঢ়ଶ͔Βελʔτͨ͠ ▸ Slack௨஌ -> ਖ਼ࣜϦϦʔεͷ2िؒޙ ▸ αʔϏεϝτϦοΫͷ؂ࢹ -> ਖ਼ࣜϦϦʔεͷ3ϲ݄ޙ

    ▸ ࠓͰ͸౰ͨΓલͷػೳͷ΄ͱΜͲ͸ະ࣮૷ͷঢ়ଶͰελʔτ ͳͥʁ Mackerelͷ200ि࿈ଓϦϦʔεͷ෣୆ཪͱ͜Ε͔Β
  3. Mackerel ͷϦϦʔεࠂ஌ର৅ൣғ ▸ mackerelຊମ ▸ WebγεςϜ ▸ ֎ܗ؂ࢹ, AWS, AzureͳͲͷΫϩʔϥ

    ▸ ҟৗݕ஌ίϯϙʔωϯτ ▸ ͸ͯͳࣾ಺ʹͯ։ൃ Mackerelͷ200ि࿈ଓϦϦʔεͷ෣୆ཪͱ͜Ε͔Β
  4. ▸ OSS ▸ mackerel-agent ▸ mackerel-agent-plugins ▸ go-check-plugins ▸ mkr

    (CLIπʔϧ) ▸ ͸ͯͳࣾ಺Ͱͷ։ൃ + ϢʔβʔʹΑΔίϯτϦϏϡʔτ ▸ OSSͷΈͷϦϦʔε͸200࿈ଓϦϦʔεதʹ໿30ճ΄Ͳ Mackerel ͷϦϦʔεࠂ஌ର৅ൣғ Mackerelͷ200ि࿈ଓϦϦʔεͷ෣୆ཪͱ͜Ε͔Β
  5. ▸ ϓϩμΫτΦʔφʔ ▸ σΟϨΫλʔ ← ΅͘͸͜͜ ▸ ΤϯδχΞ ▸ σβΠφ

    ▸ CRE ▸ ຋༁ ։ൃνʔϜͷମ੍ Mackerelͷ200ि࿈ଓϦϦʔεͷ෣୆ཪͱ͜Ε͔Β
  6. ▸ ΤϯδχΞ ▸ 5 ~ 8໊ (಺1໊͕ςοΫϦʔυʣ ▸ σβΠφ ▸

    1ʙ2໊ ։ൃνʔϜͷମ੍ Mackerelͷ200ि࿈ଓϦϦʔεͷ෣୆ཪͱ͜Ε͔Β
  7. ▸ ि࣍౰൪ (ϩʔςʔγϣϯ) ▸ ϦϦʔε୲౰ (Ր) ▸ ϦϦʔε୲౰ (໦) ▸

    αϙʔτ୲౰ ▸ OSS܎ ։ൃνʔϜͷମ੍ Mackerelͷ200ि࿈ଓϦϦʔεͷ෣୆ཪͱ͜Ε͔Β
  8. ▸ ि࣍౰൪ (ϩʔςʔγϣϯ) ▸ ϦϦʔε୲౰ ▸ ϦϦʔε࡞ۀͷओ୲౰ ▸ αϙʔτ୲౰ ▸

    Ϣʔβʔ͔Βͷ͓໰͍߹Θͤͷٕज़ௐࠪΛ୲౰ ▸ OSS܎ ▸ Ϣʔβʔ͔Βͷmackerel-agentͳͲ΁ͷPull Request, IssueΛݟΔ୲౰ ։ൃνʔϜͷମ੍ Mackerelͷ200ि࿈ଓϦϦʔεͷ෣୆ཪͱ͜Ε͔Β
  9. ▸ staging؀ڥͰͷಈ࡞֬ೝ ▸ ֤छϝτϦοΫɾΤϥʔϩάͳͲͷ؍࡯ ▸ ຊ൪؀ڥʹσϓϩΠ ▸ ຊ൪؀ڥͰͷಈ࡞֬ೝ ▸ ֤छϝτϦοΫͷ؍࡯ɾΤϥʔϩάͳͲͷ؍࡯

    ▸ ҟৗ͕͋Ε͹ϩʔϧόοΫ͢Δ ▸ શମͷॴཁ࣌ؒ͸2࣌ؒ΄Ͳ ϦϦʔεखॱ Mackerelͷ200ि࿈ଓϦϦʔεͷ෣୆ཪͱ͜Ε͔Β
  10. ▸ 2िؒεϓϦϯτͷεΫϥϜܗࣜ(มଇత) ▸ εϓϦϯτܭը ▸ ։ൃ ▸ Րɾ໦ʹఆظϦϦʔε ▸ ݄༵೔ʹࠂ஌

    ▸ 2िؒͷ࠷ޙͷ༵ۚ೔ʹৼΓฦΓ ։ൃͷϦζϜ Mackerelͷ200ि࿈ଓϦϦʔεͷ෣୆ཪͱ͜Ε͔Β
  11. ▸ ௕ظλεΫ ▸ ։ൃʹ௕͍ظؒΛཁ͢Δ։ൃλεΫ (਺ϲ݄~1೥) ▸ ࠷ۙͩͱҟৗݕ஌ػೳ, ίϯςφରԠͳͲ͕͜Εʹ֘౰ ▸ ओ୲౰ΤϯδχΞΛΞαΠϯ͠ɺϓϩδΣΫτԽ

    ▸ ௕ظλεΫ΋ࡉ͔͍୯ҐͰϓϧϦΫΤετ͕࡞ΒΕͯɺຖिϚʔδ & ϦϦʔ ε͞Ε͍ͯ·͢ ▸ ୹ظλεΫ ▸ 1εϓϦϯτ಺(਺೔)Ͱ։ൃ͕ऴΘΔλεΫ ܭը ʢ։ൃλεΫͷ෼ྨʣ Mackerelͷ200ि࿈ଓϦϦʔεͷ෣୆ཪͱ͜Ε͔Β
  12. ▸ εϓϦϯτܭըձͷલ೔ʹ࣮ࢪ ▸ ։ൃͷਐḿঢ়گΛ֬ೝ͠ɺ࣍ͷεϓϦϯτόοΫϩάʹͳʹ Λ΍Δ͔ΛϓϩμΫτΦʔφʔ, σΟϨΫλʔ, CRE, ςοΫ ϦʔυͰ૬ஊ͢Δ ▸

    εϓϦϯτظؒதʹɺͳʹΛϢʔβʔࠂ஌͢Δ͔ΛܾΊΔ ▸ ௕ظλεΫͷਐḿΛ֬ೝͭͭ͠ɺεϓϦϯτόοΫϩάʹ୹ ظλεΫΛೖΕ͍ͯ͘ ܭը ʢόοΫϩάάϧʔϛϯάʣ Mackerelͷ200ि࿈ଓϦϦʔεͷ෣୆ཪͱ͜Ε͔Β
  13. ▸ ݄: ΞαΠϯ͞Ε͍ͯΔ௕ظλεΫΛਐΊΔ ▸ Ր: ޕલ: ϦϦʔε౰൪, ޕޙ: ௕ظλεΫΛਐΊΔ ▸

    ਫ: ޕલ: ৽ϝϯόʔͱϖΞϓϩ, ޕޙ: ௕ظλεΫΛਐΊΔ ▸ ໦: དྷिࠂ஌༧ఆͷ୹ظλεΫΛਐΊΔ ▸ ۚ: ޕલ: 1࣌ؒ΄ͲͰऴΘΓͦ͏ͳόάमਖ਼Λ΍Δ, ޕޙ: ։ൃ ݴޠͷόʔδϣϯΞοϓʹνϟϨϯδͯ͠ΈΔ ͱ͋ΔΤϯδχΞͷ1िؒͷ༷ࢠ Mackerelͷ200ि࿈ଓϦϦʔεͷ෣୆ཪͱ͜Ε͔Β
  14. ▸ ຖिࠂ஌ΛνʔϜͷ࠷ॏཁίϛοτϝϯτͱҐஔ͚ͮɺνʔϜશһ͕ͦ ΕΛ໨ࢦͯ͠ຖ೔࢓ࣄΛ͢Δ ▸ ͍͟ͱ͍͏ͱ͖ʹඋ͑ͯɺ1೔, 2೔͘Β͍Ͱ࣮૷Ͱ͖ͦ͏ͳ༏ઌ౓͕ͦ Ε΄Ͳߴ͘ͳ͍λεΫΛ͍͔ͭ͘ετοΫ͓ͯ͘͠ ▸ ίϛϡχςΟͷखॿ͚ΊͪΌͪ͘Ό͋Γ͕͍ͨͰ͢… (OSS΁ͷίϯτ

    ϦϏϡʔτ) ▸ ͚ͩ͜͜ͷ࿩ɺ࣮૷͸ऴΘ͍ͬͯΔ͚Ͳདྷिͷωλ͕ͳ͍͔Β·ͩϦϦʔ ε͠ͳ͍Ͱ͓͜͏ɺͱ͍͏͜ͱ΋ͯ͠·ͨ͠ʢ࡞Γஔ͖ͱݺΜͰ͍ͨ ຖिϦϦʔεΛܧଓ͢Δίπ Mackerelͷ200ि࿈ଓϦϦʔεͷ෣୆ཪͱ͜Ε͔Β
  15. ▸ ଍ճΓͷվળ͕΍Γ΍͘͢ͳͬͨ ▸ Playframework, Scala, sbtͷόʔδϣϯ͕Ұؾʹ৽͘͠ͳͬ ͨ ▸ νʔϜʹ·ͩຖिϦϦʔεͷهԱ͕࢒͍ͬͯΔͷͰɺεϐʔυ ײΛҡ࣋ͭͭ͠ࠊΛਾ͑ͨ։ൃ͕Ͱ͖Δ

    ▸ 1८ͯ͠ʮຖिϦϦʔεΛ΍Βͳ͍ͷ͕౰ͨΓલʯʹͳͬͨͱ ͖ʹͲ͏ͳΔ͔ͳʁ ຖिϦϦʔεΛऴ͑ͯΈͯ Mackerelͷ200ि࿈ଓϦϦʔεͷ෣୆ཪͱ͜Ε͔Β