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
5.9k
はてなが歩んできた "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.1k
Mackerel DAY
sugiyama88
1
7.5k
Mackerel / NewRelic / Elasticsearch Seminar
sugiyama88
1
540
Mackerel for DevOps
sugiyama88
0
520
Mackerel Meetup #10
sugiyama88
0
4k
Mackerel, AWS, Twilio Hands-On Seminar
sugiyama88
0
440
SaaS/OSSを進化させる オープン・エコシステムについて Mackerel×Vulsの例
sugiyama88
0
1.6k
Mackerel Meetup #9
sugiyama88
0
4.7k
Other Decks in Programming
See All in Programming
SwiftUIで単方向アーキテクチャを導入して得られた成果
takuyaosawa
0
120
2025.01.17_Sansan × DMM.swift
riofujimon
2
640
Linux && Docker 研修/Linux && Docker training
forrep
19
3.7k
社内フレームワークとその依存性解決 / in-house framework and its dependency management
vvakame
1
450
BEエンジニアがFEの業務をできるようになるまでにやったこと
yoshida_ryushin
0
250
法律の脱レガシーに学ぶフロントエンド刷新
oguemon
3
210
AHC041解説
terryu16
0
530
[Fin-JAWS 第38回 ~re:Invent 2024 金融re:Cap~]FaultInjectionServiceアップデート@pre:Invent2024
shintaro_fukatsu
0
320
動作確認やテストで漏れがちな観点3選
starfish719
5
760
ファインディの テックブログ爆誕までの軌跡
starfish719
1
710
混沌とした例外処理とエラー監視に秩序をもたらす
morihirok
18
3.1k
React 19でお手軽にCSS-in-JSを自作する
yukukotani
5
590
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
How to train your dragon (web standard)
notwaldorf
89
5.8k
Unsuck your backbone
ammeep
669
57k
Become a Pro
speakerdeck
PRO
26
5.1k
Code Reviewing Like a Champion
maltzj
521
39k
Typedesign – Prime Four
hannesfritz
40
2.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
980
Documentation Writing (for coders)
carmenintech
67
4.6k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Optimizing for Happiness
mojombo
376
70k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
30
2.1k
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