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
Mackerelの200週連続リリースの舞台裏とこれから / DevsumiKansai2018
Search
KASUYA, Daisuke
September 28, 2018
Technology
2
3.2k
Mackerelの200週連続リリースの舞台裏とこれから / DevsumiKansai2018
デブサミ関西登壇資料
KASUYA, Daisuke
September 28, 2018
Tweet
Share
More Decks by KASUYA, Daisuke
See All by KASUYA, Daisuke
エンジニアリングマネージャーの成長の道筋とキャリア / Developers Summit 2025 KANSAI
daiksy
7
5k
はてなの開発20年史と DevOpsの歩み / DevOpsDays Tokyo 2025 Keynote
daiksy
6
3.7k
わたしがEMとして入社した「最初の100日」の過ごし方 / EMConfJp2025
daiksy
22
13k
はてなのチーム開発一巡り / Hatena Engineer Seminar 30
daiksy
0
860
ふりかえりカンファレンスLT/Get Wild
daiksy
0
2k
スクラムマスターの採用事情 / scrum fest fukuoka 2023
daiksy
1
3k
スクラムのスケールとチームトポロジー / Scaled Scrum and Team Topologies
daiksy
1
1.5k
Scrum@Scaleの理論と実装 / RSGT2022
daiksy
2
11k
リモートワークに最適なスクラムチームの人数についての仮説 / Kyoto Agile 2021
daiksy
0
290
Other Decks in Technology
See All in Technology
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
550
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
250
usermode linux without MMU - fosdem2026 kernel devroom
thehajime
0
230
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
130
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
2
180
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
150
データ民主化のための LLM 活用状況と課題紹介(IVRy の場合)
wxyzzz
2
700
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
640
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
42k
MCPでつなぐElasticsearchとLLM - 深夜の障害対応を楽にしたい / Bridging Elasticsearch and LLMs with MCP
sashimimochi
0
160
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
190
日本の85%が使う公共SaaSは、どう育ったのか
taketakekaho
1
150
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
910
The browser strikes back
jonoalderson
0
370
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
The Limits of Empathy - UXLibs8
cassininazir
1
210
Designing for Performance
lara
610
70k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
450
Designing for humans not robots
tammielis
254
26k
Faster Mobile Websites
deanohume
310
31k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Code Review Best Practice
trishagee
74
20k
Transcript
Mackerelͷ200ि࿈ଓ ϦϦʔεͷཪͱ͜Ε͔Β 2018-09-28 Developers Summit 2018 Kansai גࣜձࣾͯͳ | പ୩
େี (@daiksy) #devsumiC C-1
Who are you? പ୩ େี(@daiksy) ▸ גࣜձࣾͯͳ. ▸ Mackerel σΟϨΫλʔ
▸ ScalaMatsuri, ScalaؔSummit ▸ ૉਓDJ
Who are you? ஶॻ
https://mackerel.io Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
https://mackerel.io Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
https://mackerel.io Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
https://mackerel.io Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
Mackerel ▸ 201311݄ʹ࠷ॳͷίϛοτ ▸ 20145݄8 βϦϦʔε ▸ 20149݄17 ਖ਼ࣜϦϦʔε ▸
201411݄1 daiksyೖࣾ ▸ 20166݄10 100ि࿈ଓϦϦʔε ▸ 20187݄2 200ि࿈ଓϦϦʔε Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
࿈ଓϦϦʔε #devsumiC C-1
࿈ଓϦϦʔε ▸ ϢʔβʔʹͱͬͯՁͷ͋ΔػೳΛຖिඞͣϦϦʔε͢Δ ▸ όάϑΟοΫεϝϯςφϯεϦϦʔεʮ࿈ଓϦϦʔεʯ ͷఆٛʹؚ·ͳ͍ ▸ ຖि݄༵ʢੲຖि༵ۚʣʹ৽ػೳͷ͓ΒͤΛϒϩάͰ पˍϝʔϦϯάϦετ৴ ▸
ͨͩ࢝͠/ΰʔϧσϯΟʔΫ/͓ຍظؒআ͘ʢզʑ ϗϫΠτاۀͳͷͰ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
࿈ଓϦϦʔε Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
ͳΜͷͨΊʹ࿈ଓϦϦʔε Λ͍ͬͯͨͷ͔ #devsumiC C-1
▸ MackerelͱͯϛχϚϜͳঢ়ଶ͔Βελʔτͨ͠ ▸ Slack௨ -> ਖ਼ࣜϦϦʔεͷ2िؒޙ ▸ αʔϏεϝτϦοΫͷࢹ -> ਖ਼ࣜϦϦʔεͷ3ϲ݄ޙ
▸ ࠓͰͨΓલͷػೳͷ΄ͱΜͲະ࣮ͷঢ়ଶͰελʔτ ͳͥʁ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ ॳػೳ։ൃͷεϐʔυײ͕ސ٬ʹରͯ͠ଋͰ͖Δগͳ ͍ՁͷͻͱͭͰ͋Γɺ༏Ґੑͩͬͨ ▸ ॳ࿈ଓϦϦʔεΛҙ͍ࣝͯ͠ͳ͔͕ͬͨɺ͋Δ࣌͑ͨΒ 50ि࿈ଓϦϦʔεલͩͬͨ ▸ ຖि࿈ଓϦϦʔεΛΞϐʔϧͨ͠ͱ͜Ζɺސ٬֫ಘͷେ͖ͳ ثͱͳͬͨ ▸
·ͣ100िɺ࣍150िͱগͣͭ͠ඪΛ৳ͨ͠ ͳͥʁ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
Ͳ͏ͬͯ ࿈ଓϦϦʔεΛҡ͔࣋ͨ͠ #devsumiC C-1
Mackerel ͷγεςϜߏ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
Mackerel ͷϚΠΫϩαʔϏείϯϙʔωϯτ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
Mackerel ͷϦϦʔεࠂରൣғ ▸ mackerelຊମ ▸ WebγεςϜ ▸ ֎ܗࢹ, AWS, AzureͳͲͷΫϩʔϥ
▸ ҟৗݕίϯϙʔωϯτ ▸ ͯͳࣾʹͯ։ൃ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ OSS ▸ mackerel-agent ▸ mackerel-agent-plugins ▸ go-check-plugins ▸ mkr
(CLIπʔϧ) ▸ ͯͳࣾͰͷ։ൃ + ϢʔβʔʹΑΔίϯτϦϏϡʔτ ▸ OSSͷΈͷϦϦʔε200࿈ଓϦϦʔεதʹ30ճ΄Ͳ Mackerel ͷϦϦʔεࠂରൣғ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ ϓϩμΫτΦʔφʔ ▸ σΟϨΫλʔ ← ΅͘͜͜ ▸ ΤϯδχΞ ▸ σβΠφ
▸ CRE ▸ ༁ ։ൃνʔϜͷମ੍ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ ΤϯδχΞ ▸ 5 ~ 8໊ (1໊͕ςοΫϦʔυʣ ▸ σβΠφ ▸
1ʙ2໊ ։ൃνʔϜͷମ੍ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ ఆظϦϦʔεि2ճ ▸ Րɾ ▸ ϦϦʔε͕ॕલͷ߹ௐ ։ൃνʔϜͷମ੍ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
։ൃνʔϜͷମ੍ stagingڥ PullRequest࡞ & ϨϏϡʔ ࣗಈςετOK -> stagingڥʹࣗಈө ຖिՐɾʹͦͷ࣌ͷstagingڥͱͷ͕ࠩຊ൪ө͞ΕΔ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ ि࣍൪ (ϩʔςʔγϣϯ) ▸ ϦϦʔε୲ (Ր) ▸ ϦϦʔε୲ () ▸
αϙʔτ୲ ▸ OSS ։ൃνʔϜͷମ੍ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ ि࣍൪ (ϩʔςʔγϣϯ) ▸ ϦϦʔε୲ ▸ ϦϦʔε࡞ۀͷओ୲ ▸ αϙʔτ୲ ▸
Ϣʔβʔ͔Βͷ͓͍߹Θͤͷٕज़ௐࠪΛ୲ ▸ OSS ▸ Ϣʔβʔ͔Βͷmackerel-agentͳͲͷPull Request, IssueΛݟΔ୲ ։ൃνʔϜͷମ੍ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
։ൃνʔϜͷମ੍ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ stagingڥͰͷಈ࡞֬ೝ ▸ ֤छϝτϦοΫɾΤϥʔϩάͳͲͷ؍ ▸ ຊ൪ڥʹσϓϩΠ ▸ ຊ൪ڥͰͷಈ࡞֬ೝ ▸ ֤छϝτϦοΫͷ؍ɾΤϥʔϩάͳͲͷ؍
▸ ҟৗ͕͋ΕϩʔϧόοΫ͢Δ ▸ શମͷॴཁ࣌ؒ2࣌ؒ΄Ͳ ϦϦʔεखॱ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ 2िؒεϓϦϯτͷεΫϥϜܗࣜ(มଇత) ▸ εϓϦϯτܭը ▸ ։ൃ ▸ ՐɾʹఆظϦϦʔε ▸ ݄༵ʹࠂ
▸ 2िؒͷ࠷ޙͷ༵ۚʹৼΓฦΓ ։ൃͷϦζϜ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ ϓϩμΫτΦʔφ͕࡞͢ΔதɾظͷϩʔυϚοϓ ▸ 3ͷظϩʔυϚοϓ ▸ ࢛ظ͝ͱͷதظϩʔυϚοϓ ▸ CREʹΑΔϢʔβʔώΞϦϯάɻαϙʔτʹدͤΒΕΔཁ ▸ ΤϯδχΞ͔ΒϘτϜΞοϓͰఏҊ͞ΕΔվળʢΞϓϦέʔγϣ
ϯϑϨʔϜϫʔΫϛυϧΣΞͷόʔδϣϯΞοϓͳͲʣ ܭը ʢ։ൃͷΠϯϓοτʣ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ ظλεΫ ▸ ։ൃʹ͍ظؒΛཁ͢Δ։ൃλεΫ (ϲ݄~1) ▸ ࠷ۙͩͱҟৗݕػೳ, ίϯςφରԠͳͲ͕͜Εʹ֘ ▸ ओ୲ΤϯδχΞΛΞαΠϯ͠ɺϓϩδΣΫτԽ
▸ ظλεΫࡉ͔͍୯ҐͰϓϧϦΫΤετ͕࡞ΒΕͯɺຖिϚʔδ & ϦϦʔ ε͞Ε͍ͯ·͢ ▸ ظλεΫ ▸ 1εϓϦϯτ()Ͱ։ൃ͕ऴΘΔλεΫ ܭը ʢ։ൃλεΫͷྨʣ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ εϓϦϯτܭըձͷલʹ࣮ࢪ ▸ ։ൃͷਐḿঢ়گΛ֬ೝ͠ɺ࣍ͷεϓϦϯτόοΫϩάʹͳʹ ΛΔ͔ΛϓϩμΫτΦʔφʔ, σΟϨΫλʔ, CRE, ςοΫ ϦʔυͰ૬ஊ͢Δ ▸
εϓϦϯτظؒதʹɺͳʹΛϢʔβʔࠂ͢Δ͔ΛܾΊΔ ▸ ظλεΫͷਐḿΛ֬ೝͭͭ͠ɺεϓϦϯτόοΫϩάʹ ظλεΫΛೖΕ͍ͯ͘ ܭը ʢόοΫϩάάϧʔϛϯάʣ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ ݄: ΞαΠϯ͞Ε͍ͯΔظλεΫΛਐΊΔ ▸ Ր: ޕલ: ϦϦʔε൪, ޕޙ: ظλεΫΛਐΊΔ ▸
ਫ: ޕલ: ৽ϝϯόʔͱϖΞϓϩ, ޕޙ: ظλεΫΛਐΊΔ ▸ : དྷिࠂ༧ఆͷظλεΫΛਐΊΔ ▸ ۚ: ޕલ: 1࣌ؒ΄ͲͰऴΘΓͦ͏ͳόάमਖ਼ΛΔ, ޕޙ: ։ൃ ݴޠͷόʔδϣϯΞοϓʹνϟϨϯδͯ͠ΈΔ ͱ͋ΔΤϯδχΞͷ1िؒͷ༷ࢠ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ όοΫϩάʹରͯ͠ΤϯδχΞͷ100%ՔಇΛٻΊͳ͍ ▸ ͍͍ͩͨ20~30%͘Β͍༨ྗ͕ΔΑ͏ʹܭը͢Δ ▸ ٕज़తෛ࠴ͷฦࡁͳͲɺΤϯδχΞ͕ࣗओతʹऔΓΊΔ׆ ಈͷ༨Λ͓ͯ͘͠ ▸ ༨ྗͰ͜ͳͨ͠খ͞ͳλεΫ͕ɺຖिࠂͷ༗༻ͳωλʹͳΔ ͱ͖͋Δ
։ൃܭըͷϙΠϯτ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ ϚΠΫϩϚωδϝϯτઈରͩΊ ▸ ΨνΨνʹܭըͯ͠͠·͏ͱɺ͔͑ͬͯಈ͖͕औΕͳ͘ͳΔ ▸ ࣗͨ͠νʔϜΛ࡞ΔͨΊʹԿΑΓ༨ྗ͕ඞཁ ։ൃܭըͷϙΠϯτ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ ͘։ൃ͍ͯ͠Δͱɺҟಈɾୀ৬ͳͲͰϝϯόʔ͚ͬ͜͏ೖ ΕସΘΔ ▸ ि୯ҐͰϦϦʔεΛܧଓ͍ͯ͠ΔͱɺϝϯόʔೖΕସ͑ʹΑΔ ҡ࣋తͳઓྗͷԼ͚ͬ͜͏ӨڹΛड͚Δ ▸ ޮΑ͘։ൃ͢ΔͨΊʹɺϝϯόʔͷಘखɾෆಘखΛѲͯ͠ ͓͘ͷॏཁ ϝϯόʔͷೖΕସΘΓ
Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
εΩϧϚοϓ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ νʔϜ͕ҡ͖࣋͢εΩϧͷՄࢹԽ ▸ ҟಈୀ৬ʹΑͬͯಛఆͷεΩϧ͕ΒͣʹࣦΘΕΔͱ͍͏͜ ͱ͕ͳ͍ ▸ νʔϜͷεΩϧόϥϯεΛѲ͢Δ͜ͱͰɺޮతͳ։ൃΛܭ ը͢Δ͜ͱ͕Ͱ͖Δ εΩϧϚοϓ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ ຖिࠂΛνʔϜͷ࠷ॏཁίϛοτϝϯτͱҐஔ͚ͮɺνʔϜશһ͕ͦ ΕΛࢦͯ͠ຖࣄΛ͢Δ ▸ ͍͟ͱ͍͏ͱ͖ʹඋ͑ͯɺ1, 2͘Β͍Ͱ࣮Ͱ͖ͦ͏ͳ༏ઌ͕ͦ Ε΄Ͳߴ͘ͳ͍λεΫΛ͍͔ͭ͘ετοΫ͓ͯ͘͠ ▸ ίϛϡχςΟͷखॿ͚ΊͪΌͪ͘Ό͋Γ͕͍ͨͰ͢… (OSSͷίϯτ
ϦϏϡʔτ) ▸ ͚ͩ͜͜ͷɺ࣮ऴΘ͍ͬͯΔ͚Ͳདྷिͷωλ͕ͳ͍͔Β·ͩϦϦʔ ε͠ͳ͍Ͱ͓͜͏ɺͱ͍͏͜ͱͯ͠·ͨ͠ʢ࡞Γஔ͖ͱݺΜͰ͍ͨ ຖिϦϦʔεΛܧଓ͢Δίπ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
200िΛ۠Γʹ ࿈ଓϦϦʔεΛΊ·͢ #devsumiC C-1
▸ ϓϩμΫτͱͯ͠ɺओཁͳػೳ͕ग़ἧͬͨ ▸ ॳϓϩμΫτΦʔφʔͷߏͨ͠ػೳΛ͋Β͔࣮ͨ͠ऴ ͑ͨ ▸ εϐʔυײେ͕ͩɺࠊΛਾ͑ͨػೳ։ൃͷํ͕ސ٬ʹͱͬ ͯେ͖ͳՁʹͳΔϑΣʔζʹདྷͨͱஅ ▸ ελʔτΞοϓظͷऴྃ
ͳͥຖिϦϦʔεΛࢭΊͨͷʁ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
▸ ճΓͷվળ͕Γ͘͢ͳͬͨ ▸ Playframework, Scala, sbtͷόʔδϣϯ͕Ұؾʹ৽͘͠ͳͬ ͨ ▸ νʔϜʹ·ͩຖिϦϦʔεͷهԱ͕͍ͬͯΔͷͰɺεϐʔυ ײΛҡ࣋ͭͭ͠ࠊΛਾ͑ͨ։ൃ͕Ͱ͖Δ
▸ 1८ͯ͠ʮຖिϦϦʔεΛΒͳ͍ͷ͕ͨΓલʯʹͳͬͨͱ ͖ʹͲ͏ͳΔ͔ͳʁ ຖिϦϦʔεΛऴ͑ͯΈͯ Mackerelͷ200ि࿈ଓϦϦʔεͷཪͱ͜Ε͔Β
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ #devsumiC C-1