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
3.2k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Mackerelの200週連続リリースの舞台裏とこれから / DevsumiKansai2018
デブサミ関西登壇資料
KASUYA, Daisuke
September 28, 2018
More Decks by KASUYA, Daisuke
See All by KASUYA, Daisuke
エンジニアリングマネージャーの成長の道筋とキャリア / Developers Summit 2025 KANSAI
daiksy
7
7.7k
はてなの開発20年史と DevOpsの歩み / DevOpsDays Tokyo 2025 Keynote
daiksy
6
5.3k
わたしがEMとして入社した「最初の100日」の過ごし方 / EMConfJp2025
daiksy
22
16k
はてなのチーム開発一巡り / Hatena Engineer Seminar 30
daiksy
0
970
ふりかえりカンファレンスLT/Get Wild
daiksy
0
2.1k
スクラムマスターの採用事情 / scrum fest fukuoka 2023
daiksy
1
3.1k
スクラムのスケールとチームトポロジー / Scaled Scrum and Team Topologies
daiksy
1
1.6k
Scrum@Scaleの理論と実装 / RSGT2022
daiksy
2
11k
リモートワークに最適なスクラムチームの人数についての仮説 / Kyoto Agile 2021
daiksy
0
320
Other Decks in Technology
See All in Technology
AI駆動開発はどこまで来たのか? ファインディの最新実態調査で読み解く現在地 Devin Con Tokyo
akiratom
4
2.1k
Cloudflare製品を活用した AIガバナンス実践入門 / AI governance with Cloudflare Service
delta_tech
1
130
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
54k
1.5時間を無駄にして学んだwsl2におけるaptとsnapの選択と仕組み
yosaka0123
0
470
書籍『生成AIの安全性入門』の入門
wataoka
0
140
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
77k
Microsoft MVP プログラムを紹介するから目指す人増えてくれ
tsubakimoto_s
0
150
LLMアプリ、 雰囲気で運用してませんか? 〜LLMOpsの現在地〜
taka_aki
1
590
みてねにおけるAI-DLC導入活動とAIドリブン開発の現在地/JAWS-UG AI-DLC #2
isaoshimizu
2
290
Dylib Hijacking on macOS: Dead or Alive?
patrickwardle
0
160
AI時代のデータ基盤を考える問い
pacocat
0
750
現場の暗黙知を継承するAIエージェント — 対話から生まれる長期記憶と Skills
atsukish
0
170
Featured
See All Featured
Balancing Empowerment & Direction
lara
6
1.3k
Color Theory Basics | Prateek | Gurzu
gurzu
0
440
Docker and Python
trallard
47
4.2k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
エンジニアに許された特別な時間の終わり
watany
108
250k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
270
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
460
Technical Leadership for Architectural Decision Making
baasie
3
540
How to make the Groovebox
asonas
2
2.4k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
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