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
はてなが歩んできた "Infrastructure as Code"の道のりとMackerel...
Search
Hiromichi Sugiyama
September 17, 2016
Programming
2
6.1k
はてなが歩んできた "Infrastructure as Code"の道のりとMackerelが果たす役割について
Hiromichi Sugiyama
September 17, 2016
Tweet
Share
More Decks by Hiromichi Sugiyama
See All by Hiromichi Sugiyama
Mackerel Meetup #11
sugiyama88
3
11k
Mackerel Roadmap 2017.11.29
sugiyama88
0
3.2k
Mackerel DAY
sugiyama88
1
7.7k
Mackerel / NewRelic / Elasticsearch Seminar
sugiyama88
1
560
Mackerel for DevOps
sugiyama88
0
540
Mackerel Meetup #10
sugiyama88
0
4.1k
Mackerel, AWS, Twilio Hands-On Seminar
sugiyama88
0
460
SaaS/OSSを進化させる オープン・エコシステムについて Mackerel×Vulsの例
sugiyama88
0
1.7k
Mackerel Meetup #9
sugiyama88
0
4.9k
Other Decks in Programming
See All in Programming
意外と簡単!?フロントエンドでパスキー認証を実現する WebAuthn
teamlab
PRO
1
600
Azure SRE Agentで運用は楽になるのか?
kkamegawa
0
1.5k
個人軟體時代
ethanhuang13
0
310
Testing Trophyは叫ばない
toms74209200
0
720
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
4
2.3k
Putting The Genie in the Bottle - A Crash Course on running LLMs on Android
iurysza
0
120
Jakarta EE Core Profile and Helidon - Speed, Simplicity, and AI Integration
ivargrimstad
0
360
AIコーディングAgentとの向き合い方
eycjur
0
260
🔨 小さなビルドシステムを作る
momeemt
3
660
ソフトウェアテスト徹底指南書の紹介
goyoki
1
140
TDD 実践ミニトーク
contour_gara
1
290
Rancher と Terraform
fufuhu
2
210
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
For a Future-Friendly Web
brad_frost
180
9.9k
What's in a price? How to price your products and services
michaelherold
246
12k
Gamification - CAS2011
davidbonilla
81
5.4k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
520
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
187
54k
Faster Mobile Websites
deanohume
309
31k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.8k
Transcript
Open Cloud Innovation Festa 2016 17 Sep 2016 Hatena Co.,
Ltd. Hiromichi Sugiyama はてなが歩んできた "Infrastructure as Code"の道のりと が果たす役割について
Hiromichi Sugiyama / ਿࢁ ௨ 株式会社はてな サービス・システム開発本部 Mackerelチーム プロデューサー 経歴
- 大手製造業のIT事業会社 - 大規模環境でのインフラエンジニア - オープンソースのモニタリングツール - SaaSシステム - ITILベースのサービスマネジメント - はてなでMackerel事業へ携わる
[email protected]
ΞδΣϯμ 1. ͯͳʹ͍ͭͯ 2. ͯͳͷΠϯϑϥͱMackerelׂ͕ͨ͢ 3. Infrastructure as Code 4.
Mackerelͷ͝հ 5. MackerelͷϏδϣϯ
1 ͯͳʹ͍ͭͯ
None
ձࣾ֓ཁ 所在地 京都(烏丸御池) 東京(表参道) 資本⾦ 185,713千円 市場 東証マザーズ 設⽴ 2001年7⽉(16年⽬)
創業者 近藤 淳也 社⻑ 栗栖 義⾂
ͯͳͷϛογϣϯ
None
None
ͯͳͷαʔϏε
None
None
None
ଞʹଟͷαʔϏε͋Γ
2 ͯͳͷΠϯϑϥͱ Mackerel͕Ռׂͨ͢
16ͷ ྺ࢙
marqs-60 CMX-50 ࣗ࡞αʔόʔ࣌ʢͦͷੲɿલʣ
ϋΠϒϦουڥʢݱࡏʣ ΦϯϓϨ σʔληϯλʔ ύϒϦοΫ Ϋϥυ ઍͷେنڥͰαʔϏεશମΛӡӦ
େنͳαʔϏεڥ
ΠϯϑϥΤϯδχΞ ໊
͍͔ʹޮΑ͘ ࣋ଓతʹཧ͢Δ͔ʁ
Dynamic Infrastructure Platformʢੈͷைྲྀʣ • ΑΓಈతͰศརʹͳΔΠϯϑϥڥ
ଘࡏ͢ΔଟͷαʔϏε&ϗετ ेͷαʔϏε ઍͷϗετ
େͳΈ߹Θͤͷରॲ
αʔϏεɾϩʔϧɾϗετ Ұ؏ͨ͠ཧ֓೦Λ࠾༻ Service Role Host
Service Role Host ͯͳ Bookmark app proxy DB DB1 DB2
app3 app2 app1 proxy1 proxy2 ద༻ྫɿͯͳBookmark
Θ͔Γқ͞ͱརศੑΛ ेͷαʔϏε ඦͷϩʔϧ ઍͷϗετ
։ൃӡ༻ͱͷؔΘΓʁ
DevOps Lifecycle • ։ൃͱӡ༻͕ӬଓతͳαΠΫ ϧΛ͢ • ଟछଟ༷ͳޮԽπʔϧ αʔϏε͕ଘࡏ • దࡐదॴ
• Έ Mystery of DevOps Devops Lifecycle http://www.edureka.co/blog/mystery-of-devops/
DevOps Tools • దࡐదॴɺ༏Εͨπʔϧ͕ଟ 'FFECBDL %FWFMPQ 5FTU %FQMPZ .POJUPS
Mackerel͕Ռׂͨ͢
logo (2) ݸผʹศརͰ͋Δ͕ɻɻɻ • ಈతͳΠϯϑϥڥΛͦΕͧΕఆٛͯ͠ѻ ͏ͷ͔ʁ Monitoring Server Configuration Deploy
ʁ
logo (2) ϗετϨδετϦͱͯ͠ͷMackerel • ϗετใMackerelू • πʔϧؒΛૄ݁߹ʢศརͳAPIʣ Monitoring Server Configuration
Deploy چMackerel
logo (2) ߋͳΔਐԽʢݱࡏʣ • MackerelΛ࣠ͱͨ͠ಈతཧΛ࣮ݱ droot Monitoring & Host Registry
Server Configuration Deploy Infrastructure Test SSH-Operation Infrastructure DNS Registry tinydns
ϗετϨδετϦඇৗʹ؆୯ ϗετ ᶃ ϗετىಈ࣌ʹ ඞͣαʔϏεͱϩʔϧΛηοτ͠ MackerelΤʔδΣϯτΛىಈ͢Δ ᶄ Mackerelʹϗετใ͕ొ͞ΕΔ ᶅ APIͰಈతʹϗετใΛऔΓग़͠
ͯ࠶ར༻ ᶃ ᶄ ᶅ ʁ
3 Infrastructure as Code
͜Ε·ͰͷಓͷΓΛ ৼΓฦΓ ڞ௨͍ͯͨ͠Ұͭͷ͜ͱ
None
Infrastructure as Code • ΠϯϑϥΛίʔυͰએݴతʹهड़͢Δ͜ͱʹΑΓɺ ͍··ͰιϑτΣΞ։ൃͰ༗ޮੑཱ͕ূ͞Ε͖ͯͨ ϕετϓϥΫςΟεΛΠϯϑϥద༻͢Δ Infrastructure as Code
Managing Servers in the Cloud By Kief Morris Publisher: O'Reilly Media Final Release Date: June 2016
Infrastructure as CodeͷԸܙ • ಈతͳΠϯϑϥͷରॲ • ਝʹɺԿͰɺ࣮֬ʹಉ͡มߋ͕ՄೳʢετϨε͕ͳ͍ʣ • ো͔Βͷ෮چ •
ίʔυϨϏϡʔ • ୯७࡞ۀ͔ΒΕɺՁ͋Δ͜ͱʹ͕͚࣌ؒ͞ΔΑ͏ʹͳΔ
ϞμϯͳΠϯϑϥπʔϧͷཁૉ 7$4 5FTU 0SDIFT USBUJPO 5%% $* $%
ͯͳͰͷҰྫ
Dev Ops Service A Service B Service C ͯͳͷ։ൃͱӡ༻ͷମ੍ •
OpsҰͭͷ৫͕ͩɺαʔϏε͝ͱʹ୲ΛΞαΠϯ͍ͯ͠Δ
Dev Ops Service A Service B Service C ։ൃͱӡ༻ͷମ੍ •
OpsҰͭͷ৫͕ͩɺαʔϏε͝ͱʹ୲ΛΞαΠϯ͍ͯ͠Δ Webアプリケーション エンジニア
Dev Ops Service A Service B Service C ։ൃͱӡ༻ͷମ੍ •
OpsҰͭͷ৫͕ͩɺαʔϏε͝ͱʹ୲ΛΞαΠϯ͍ͯ͠Δ Webアプリケーション エンジニア Webオペレーション エンジニア
ίʔυཧ͢ΔརʢҰྫʣ • ίʔυϨϕϧͰՄࢹԽ͞Ε͍ͯΔͷͰɺ؆୯ʹӽڥͰ͖Δ ΞϓϦέʔγϣϯ ϛυϧΣΞ OS ϓϥοτϑΥʔϜ Dev Ops DBʹਫ਼௨͍ͯ͠ΔOpsΤϯδχΞ͕SQL
ͷϨϏϡʔΛͨ͠Γ DevΤϯδχΞ͕ϛυϧΣΞΛࢼͨ͢ ΊͷChefϨγϐΛॻ͍ͨΓ ϛυϧΣΞͷΦϓγϣϯߏΛཧղ ͠ͳ͕ΒίʔυΛॻ͍ͨΓ ↓ϙΠϯτ
։ൃͱӡ༻ͷൣғ • άϨΠκʔϯΛ࡞Β͓ͣޓ͍ଚॏ͠ͳ͕Βॿ͚߹͍͑ͯΔ ΞϓϦέʔγϣϯ ϛυϧΣΞ OS ϓϥοτϑΥʔϜ Dev Ops
Performance Working Group (͓·͚) • αʔϏείϛοτͯ͠Δશϝϯόʔ͕ఆظʢεϓϦϯτຖʣʹੑೳੳΛ࣮ࢪ ʢMackerelΛ׆༻ʣ • தظͷϦϦʔεӨڹͳͲੳ͠ɺ։ൃΠϯϑϥͷΩϟύγςΟܭըଈ࣌ө ΞϓϦέʔγϣϯ
ϛυϧΣΞ OS ϓϥοτϑΥʔϜ Dev Ops
4 Mackerelͷ͝հ
Mackerelͱʁ • "SaaSܕ"αʔόʔࢹαʔϏε • ΤϯδχΞ͕ཉ͔ͬͨ͠zϫΫϫΫz͢ΔΑ ͏ͳػೳΛఏڙ͠ɺѹతͳzޮԽzΛ࣮ݱ • ͯͳͷओྗαʔϏεΛ͑͞͞ଓ͚͖ͯͨ ʢ࠷ߴͷυοάϑʔσΟϯάʣ
2014.9.17ਖ਼ࣜϦϦʔε ʢຊͪΐ͏Ͳ2पʂʂʣ
ΞʔΩςΫνϟʔ • ΤʔδΣϯτ͔Β ϝτϦοΫΛߘ )5514 3&45"1*
ײతͳϢʔβʔମݧ
؆୯ʹ͙͡ΊΒΕΔ • ΨΠυʹै͏͚ͩ • ͨͬͨ mackerel-agent written in Golang
࠷খͷϧʔϧ͕࠷ߴͷརศੑΛ • ΤʔδΣϯτΛ্ཱͪ͛Δ͚ͩͰ • ࣗಈతʹࢹ͕࢝·Γ • ಉ͡ϩʔϧͷϗετಉ͡άϥϑ
ৗʹਐԽ͠ଓ͚ΔαʔϏε 毎週新機能のリリースを継続中 陳腐化せず常に進化 ि࿈ଓ
બΕΔཧ༝ • ಋೖʗUI͕؆୯Ͱ͔Γ͍͢ • ։ൃεϐʔυ • ϚϧνΫϥυͰ͑Δ • ຊޠαϙʔτ͕ॆ࣮ •
NewRelicͱͷซ༻
αʔϏεϓϥϯ
ओͳػೳ
1.Ξϥʔτ௨ʹάϥϑ • Slack, HipChat, TypeTalk, Yammer
2.URL֎ܗࢹ • ར༻ऀࢹͷHTTP/HTTPSࢹ • ֎෦͔ΒͷϨεϙϯελΠϜΛՄࢹԽ • εςʔλείʔυɾϨεϙϯελΠϜͰΞϥʔτ • ΩʔϫʔυͷଘࡏνΣοΫ •
SSLূ໌ॻͷ༗ޮظݶΛνΣοΫ Web Service URL
3.ࢹϧʔϧͷίʔυԽ • zInfrastructure as Codez • mkr monitor diff/pull/push •
JSONܗࣜͰϧʔϧΛѻ͏
4.ࢹϧʔϧΛGitͰཧ
5.ϝτϦοΫΛॊೈʹՄࢹԽʢࣜʣ 差分 前週との重ねあわせ 最大 最大・平均・最小 合計
̒ɽAWS Integration • AWS CloudWatch API͔Β༷ʑͳϝτϦοΫΠϕ ϯτΛऔಘ͠ՄࢹԽ • 1ͷϗετͱͯ͠ཧ •
EC2,ELB,RDS,ElastiCache͔Βॱ֦࣍େ API Amazon CloudWatch Amazon RDS Amazon ELB
̓ɽ৬ਓܳΛΞϧΰϦζϜͰࢧԉ 過去の傾向から将来を予測して警告 $SJUJDBM 将来 5SFOET ϱ݄લ 現在
5 MackerelͷՌׂͨ͢ ʢࠓޙʣ
ΫϥυԽͷྲྀΕ • ։ൃπʔϧΫϥυ • svn/git → GitHub (GitHub Enterprise) •
Jenkins → TravisCI, CircleCI • ࣮ߦڥΫϥυ • ΦϯϓϨ → AWS, GCP, Azure,SoftLayer
MackerelͷྲྀΕ • ӡ༻πʔϧΫϥυ • Zabbix, Nagios → Cloudwatch, NewRelic and
Mackerel !! • ͍͍͢UIʹΑΔɺΑΓ҆ఆͨ͠ӡ༻Λ
Infrastructure as Code • ϗετઃఆΛίʔυԽʢChef/puppetʣ • MackerelͷઃఆCodeͰཧ • ࢹϧʔϧ/μογϡϘʔυͷίʔυԽ •
ॱ࣍ɺAPIԽΛਪਐ
Mackerelͷະདྷ • All-in-OneαʔϏεͰͳ͍ • ༷ʑͳπʔϧ/αʔϏεͱͷ࿈ܞ • Slack/GitHub/Reactio • γεςϜཧͷίΞπʔϧͱͯ͠ͷ Mackerel
DevOpsͷத֩ͱͯ͠ • ϥΠϑαΠΫϧશମͷޮԽΛଅਐ %FW 0QT
MackerelͷϏδϣϯ ΤϯδχΞΛϫΫϫΫͤ͞Δ ʮײతαʔόʔࢹαʔϏεʯ
͞ΒͳΔਐԽ
ϗετϨδετϦͷڧԽ • ϗετͳͲͷҙͷཁૉʹKey-ValueΛAPIͰઃ ఆՄೳʹ • Πϯετʔϧ͞Εͨύοέʔδใ • ࢿ࢈ཧ൪߸ ۙϦϦʔε
ΞϧΰϦζϜࢧԉ • ౷ܭػցֶशͷཧΛԠ༻ • ҟৗݕ • ༧ଌ • ྨ
αʔϏεʢϗετ७૿ʣ ٸ
࣍ੈMackerel • Λࢧ͑Δɺ͋ΒͨͳΞʔΩςΫ νϟͷมֵʂ • ͝ظԼ͍͞ʂ
͍͞͝ʹҰͭ
We are Hiring • ηʔϧεΤϯδχΞʢٸืʣ • 8FCΞϓϦέʔγϣϯΤϯδχΞ
mackerel.io