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
2.9k
Mackerelの200週連続リリースの舞台裏とこれから / DevsumiKansai2018
デブサミ関西登壇資料
KASUYA, Daisuke
September 28, 2018
Tweet
Share
More Decks by KASUYA, Daisuke
See All by KASUYA, Daisuke
わたしがEMとして入社した「最初の100日」の過ごし方 / EMConfJp2025
daiksy
14
4.9k
はてなのチーム開発一巡り / Hatena Engineer Seminar 30
daiksy
0
660
ふりかえりカンファレンスLT/Get Wild
daiksy
0
1.8k
スクラムマスターの採用事情 / scrum fest fukuoka 2023
daiksy
0
2.7k
スクラムのスケールとチームトポロジー / Scaled Scrum and Team Topologies
daiksy
1
1.3k
Scrum@Scaleの理論と実装 / RSGT2022
daiksy
2
10k
リモートワークに最適なスクラムチームの人数についての仮説 / Kyoto Agile 2021
daiksy
0
250
スクラムを軸に据えた キャリア戦略 / Scrum Fest Osaka 2021
daiksy
2
7k
インフラ障害対応演習LT版 / evacuation drill of systems
daiksy
1
750
Other Decks in Technology
See All in Technology
AI Agent時代なのでAWSのLLMs.txtが欲しい!
watany
2
220
EMConf JP 2025 懇親会LT / EMConf JP 2025 social gathering
sugamasao
2
190
脳波を用いた嗜好マッチングシステム
hokkey621
0
280
Raycast Favorites × Script Command で実現するお手軽情報チェック
smasato
1
140
株式会社Awarefy(アウェアファイ)会社説明資料 / Awarefy-Company-Deck
awarefy
3
11k
急成長する企業で作った、エンジニアが輝ける制度/ 20250227 Rinto Ikenoue
shift_evolve
0
120
スキルだけでは満たせない、 “組織全体に”なじむオンボーディング/Onboarding that fits “throughout the organization” and cannot be satisfied by skills alone
bitkey
0
170
手を動かしてレベルアップしよう!
maruto
0
200
30→150人のエンジニア組織拡大に伴うアジャイル文化を醸成する役割と取り組みの変化
nagata03
0
100
PHPカンファレンス名古屋-テックリードの経験から学んだ設計の教訓
hayatokudou
2
540
2/18 Making Security Scale: メルカリが考えるセキュリティ戦略 - Coincheck x LayerX x Mercari
jsonf
0
180
"TEAM"を導入したら最高のエンジニア"Team"を実現できた / Deploying "TEAM" and Building the Best Engineering "Team"
yuj1osm
1
120
Featured
See All Featured
Designing Experiences People Love
moore
140
23k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
12
990
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
370
How STYLIGHT went responsive
nonsquared
98
5.4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
52k
Embracing the Ebb and Flow
colly
84
4.6k
Building a Scalable Design System with Sketch
lauravandoore
461
33k
KATA
mclloyd
29
14k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Writing Fast Ruby
sferik
628
61k
Why Our Code Smells
bkeepers
PRO
336
57k
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