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.3k
はてなが歩んできた "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
12k
Mackerel Roadmap 2017.11.29
sugiyama88
0
3.3k
Mackerel DAY
sugiyama88
1
7.8k
Mackerel / NewRelic / Elasticsearch Seminar
sugiyama88
1
570
Mackerel for DevOps
sugiyama88
0
550
Mackerel Meetup #10
sugiyama88
0
4.2k
Mackerel, AWS, Twilio Hands-On Seminar
sugiyama88
0
470
SaaS/OSSを進化させる オープン・エコシステムについて Mackerel×Vulsの例
sugiyama88
0
1.7k
Mackerel Meetup #9
sugiyama88
0
5k
Other Decks in Programming
See All in Programming
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
140
Codexに役割を持たせる 他のAIエージェントと組み合わせる実務Tips
o8n
4
1.3k
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
500
OTP を自動で入力する裏技
megabitsenmzq
0
110
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.1k
猫の手も借りたい!ので AIエージェント猫を作って社内に放した話 Claude Code × Container Lambda の Slack Bot "DevNeko"
naramomi7
0
260
最初からAWS CDKで技術検証してもいいんじゃない?
akihisaikeda
4
150
Ruby and LLM Ecosystem 2nd
koic
1
790
Claude Code Skill入門
mayahoney
0
390
AI 開発合宿を通して得た学び
niftycorp
PRO
0
120
AIとペアプロして処理時間を97%削減した話 #pyconshizu
kashewnuts
1
240
ふつうのRubyist、ちいさなデバイス、大きな一年 / Ordinary Rubyists, Tiny Devices, Big Year
chobishiba
1
460
Featured
See All Featured
Between Models and Reality
mayunak
2
230
Odyssey Design
rkendrick25
PRO
2
540
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
290
What's in a price? How to price your products and services
michaelherold
247
13k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Building an army of robots
kneath
306
46k
YesSQL, Process and Tooling at Scale
rocio
174
15k
GraphQLとの向き合い方2022年版
quramy
50
14k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
170
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
640
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
320
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