Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
はてなが歩んできた "Infrastructure as Code"の道のりとMackerelが果たす役割について
Hiromichi Sugiyama
September 17, 2016
Programming
2
5k
はてなが歩んできた "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
9.9k
Mackerel Roadmap 2017.11.29
sugiyama88
0
2.6k
Mackerel DAY
sugiyama88
1
6.8k
Mackerel / NewRelic / Elasticsearch Seminar
sugiyama88
1
450
Mackerel for DevOps
sugiyama88
0
350
Mackerel Meetup #10
sugiyama88
0
3.4k
Mackerel, AWS, Twilio Hands-On Seminar
sugiyama88
0
360
SaaS/OSSを進化させる オープン・エコシステムについて Mackerel×Vulsの例
sugiyama88
0
1.3k
Mackerel Meetup #9
sugiyama88
0
3.8k
Other Decks in Programming
See All in Programming
kintoneでランダム取得を作ってみた(imoniCamp 2022-07-27)
shokun1108
0
150
2022 - COSCUP - 打造高速 Ruby 專案開發流程
elct9620
0
100
How to Test Your Compose UI (Droidcon Berlin 2022)
stewemetal
1
130
話題の AlloyDB は本当に凄いデータベースなのでプレビューを使い倒した #devio2022
maroon1st
0
13k
Efficient UI testing in Android
alexzhukovich
2
120
Carp言語さわってみた 〜鯉を取り戻せ編〜
tsin45
0
110
実践 SpiceDB - クライドネイティブ時代をサバイブできるパーミッション管理の実装を目指して / Practical SpiceDB
lmt_swallow
0
130
Getting Started With Data Structures
adoranwodo
1
260
2022年のモダンCSS改
tonkotsuboy_com
24
17k
20220706_Google Apps Scriptを実演で学ぶ~ GAS × Slack ~
apachan
2
620
ストア評価「2.4」だったCOCOARアプリを1年で「4.4」になんとかした方法@Cloud CIRCUS Meetup #2
1901drama
0
180
ESM移行は無理だけどおれもSindreのライブラリが使いたい!
sosukesuzuki
2
550
Featured
See All Featured
The Language of Interfaces
destraynor
148
21k
What's new in Ruby 2.0
geeforr
335
30k
Intergalactic Javascript Robots from Outer Space
tanoku
260
25k
Designing Experiences People Love
moore
130
22k
How GitHub Uses GitHub to Build GitHub
holman
465
280k
Faster Mobile Websites
deanohume
294
28k
Happy Clients
brianwarren
89
5.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
337
17k
A Modern Web Designer's Workflow
chriscoyier
689
180k
Support Driven Design
roundedbygravity
87
8.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
237
19k
Embracing the Ebb and Flow
colly
73
3.4k
Transcript
Open Cloud Innovation Festa 2016 17 Sep 2016 Hatena Co.,
Ltd. Hiromichi Sugiyama はてなが歩んできた "Infrastructure as Code"の道のりと が果たす役割について
Hiromichi Sugiyama / ਿࢁ ௨ 株式会社はてな サービス・システム開発本部 Mackerelチーム プロデューサー 経歴
- 大手製造業のIT事業会社 - 大規模環境でのインフラエンジニア - オープンソースのモニタリングツール - SaaSシステム - ITILベースのサービスマネジメント - はてなでMackerel事業へ携わる sugiyama88@hatena.ne.jp
ΞδΣϯμ 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