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
ペパボにおけるOpenStackHacks!
Search
Kazuhiko Yamashita
July 04, 2015
Technology
3.9k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ペパボにおけるOpenStackHacks!
GMO Pepabo.incのOpenStack運用事例です。
Kazuhiko Yamashita
July 04, 2015
More Decks by Kazuhiko Yamashita
See All by Kazuhiko Yamashita
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
2.3k
継続的な負荷検証を目指して
pyama86
3
1.7k
成長期における、 ユーザー領域の複雑さと 整備の進め方
pyama86
1
690
Stay Hacker 〜九州で生まれ、Perlに出会い、コミュニティで育つ〜
pyama86
2
6.5k
Managing Database Migrations in Go Backend Systems
pyama86
0
540
新しい職場の CI が 20 分かかっていたらあなたならどうする?
pyama86
2
1.5k
事業を差別化する技術を生み出す技術
pyama86
4
2.3k
Re:Define 可用性を支える モニタリング、パフォーマンス最適化、そしてセキュリティ
pyama86
9
11k
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
6
2.1k
Other Decks in Technology
See All in Technology
変更し続けられるシステムをどう保つか — AI時代のSSoTという設計原則
kawauso
1
1k
41歳でAWSが好きすぎてITエンジニアになったおっさんの話
yama3133
1
730
なぜ、あなたのAPIは使われないのか? AX時代の設計原則、ガードレール、運用体制
yokawasa
1
200
シンガポールで登壇してきます
yama3133
0
340
複数プロダクト組織のAIネイティブ化における戦略 / AICon2026_kude
rakus_dev
0
300
現場との対話から始める “作る前に問い直す”業務改善
mochico50
1
200
なぜ、あなたのエージェントは言うことを聞かないのか
segavvy
1
340
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
450
プロダクト開発組織の現在地(Ver.2026/07) / product-organization
kaonavi
0
380
キャリアLT会#3
beli68
2
230
AI Native なプロダクト組織の立ち上げ方 : 生産性 100 倍への挑戦
mikesorae
0
1.2k
事業成長とAI活用を止めないデータ基盤アーキテクチャの設計思想
hiracky16
0
440
Featured
See All Featured
Writing Fast Ruby
sferik
630
63k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
180
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
900
Visualization
eitanlees
152
17k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
350
Everyday Curiosity
cassininazir
0
260
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
45k
Designing for humans not robots
tammielis
254
26k
Transcript
dͱՆΛҰॹʹτΡΪϟβʔ͠·ઐՊʂʂฤd GMO Pepabo, Inc. Pࢁ 2015/07/04 Pepabo Tech Conference in
Fukuoka ϖύϘʹ͓͚Δ 0QFO4UBDL)BDLT
Ͳɺ΅͘Ͱ͢ 1ࢁ (.01FQBCP*OD !QZBNB UFOTOBQPODPN
"HFOEB 0QFO4UBDLJT /ZBIJT IBDLT ࠓͬͯΔ͜ͱ
0QFO4UBDLJT Ϋϥυج൫ 7.Λཧ͢ΔͨΊͷ ιϑτΣΞ܈
ߏਤ /PWB"1* )PSJ[PO ,FZTUPOF /PWB$PNQVUF ཧϗετ /FVUSPO $JOEFS HMBODF ͜Μͳ7.࡞Γ͍ͨ
͜ͷϢʔβʔݖݶ ͋Δʁ ༻͢ΔΠϝʔδ 04͜Ε σΟεΫ͜͜Λ ͏ $16ɼϝϞϦ ͜Ε ༻͢ΔωοτϫʔΫ͜Ε ΦϨΦϨʂԶͩΑʂ
ϖύϘ͕ղܾͨ͠ ͔ͬͨ͜ͱ
ݸʑͷαʔϏεͰಠࣗʹΠϯϑϥΛߏங
αʔόΛؾܰʹ࡞Γ͍ͨ ຐ๏ͷΑ͏ʹ؆୯ʹ αʔό࡞Γ͍ͨΘ͊ɻɻ
“2014/05/01 Issueݐઃ αʔϏε͝ͱͰͳ͘ɺ શࣾڞ௨ͷΠϯϑϥج൫Λ࡞Δͧʂʂʂʂ
/ZBI
/ZBIJT ϖύϘͷԾج൫Πϯϑϥ ͜Ε·ͰαʔϏε͝ͱʹઃ͚͍ͯͨ ΠϯϑϥΛ0QFO4UBDLͰ౷߹
/ZBIJT IUUQXXXTMJEFTIBSFOFUVNF@QCUDCPC IUUQTXXXZPVUVCFDPNXBUDI W(618.;CP1T6
/ZBIͷ༝དྷ /PBIʹܾ·Δ தೋපͬΆ͍ͬͯͳΔ Ұจࣈม͑ͯ/ZBIʹ͠Α͏ͥͬͯͳΔ ޙͰ͔͍͍ͬͯ͜ࣈߟ͑Α͏ͥͬͯͳΔ /ZBIJTZFUBOPUIFSIPTUJOH
/ZBI αʔϏε͝ͱʹςφϯτΛ ׂ͠ɺݖݶ ϦιʔεΛཧ
ߏཧ
“ http://techlife.cookpad.com/entry/2015/05/12/080000
JUBNBF $JOEFS /PWB $PNQVUF /FVUSPO /PWB $PNQVUF /PWB $PNQVUF /PWB
$PNQVUF (JUͰόʔδϣϯཧ OPWBDPOG ʜ OFVUSPODPOG ʜ DJOEFSDPOG ʜ TFSWJDFOPWBSFTUBSU TFSWJDFOFVUSPOSFTUBSU TFSWJDFDJOEFSSFTUBSU
JUBNBF OPWBOPEF CBTFSPMF NBDLFSFMSFDJQF OPWBSPMF DPNQVUFSFDJQF BQJSFDJQF CVOEMFFYFDJUBNBFTTIIOPWBQCDMPVEDPNa OPEFKTPOOPEFOPWBKTPOCPPUTUSBQSC
JUBNBF TFSWJDFPQFOTUBDLOPWBDPNQVUF SFNPUF@pMFFUDOPWBOPWBDPOGEP OPUJpFTSFTUBSU TFSWJDF<PQFOTUBDLOPWBDPNQVUF> FOE
JUBNBF TFSWJDFPQFOTUBDLOPWBDPNQVUF SFNPUF@pMFFUDOPWBOPWBDPOGEP OPUJpFTSFTUBSU TFSWJDF<PQFOTUBDLOPWBDPNQVUF> FOE
ࢹ
.BDLFSFM ͯͳ͕ࣾఏڙ͢Δαʔό ࢹαʔϏε .BDLFSFMḉ ϩʔϧͰࢹઃఆΛଋͶΔ͜ͱ͕ Մೳ
.BDLFSFM NBDLFSFM\ SPMFOZBIOFVUSPOOPEF DPOG\ NPOJUPS< \ OBNFQMVHJODIFDLTOFVUSPOTFSWFS DPNNBOEVTSMJCOBHJPTQMVHJOTDIFDL@QSPDTBOFVUSPOTFSWFSD
^ \ OBNFQMVHJODIFDLTOFVUSPO DPNNBOEVTSMJCOBHJPTQMVHJOTDIFDL@UDQ)MPDBMIPTUQXD ^ ʜ > ^ ^
.BDLFSFM /FVUSPO JUBNBFNBDLSFMSC SPMFT<OZBIOFVUSPOOPEF> <QMVHJODIFDLTOFVUSPOTFSWFS> DPNNBOEVTSMJCOBHJPTQMVHJOTDIFDL@QSPDTBOFVUSPOTFSWFSD <QMVHJODIFDLTOFVUSPO>
DPNNBOEVTSMJCOBHJPTQMVHJOTDIFDL@UDQ)MPDBMIPTUQXDz ʜ NBDLFSFMḉ ࢮ׆ɺ͖͍͠ࢹ
.BDLFSFM
.BDLFSFM ઃఆϗετଆ͚ͩͰ*1ΞυϨεؾʹ ͠ͳ͍͍ͯ͘ ઃఆϑΝΠϧ͕γϯϓϧͰཧ͍͢͠ ࢹఆٛ(6*ͰαΫαΫΕΔ͔ͭɺ ҰೖΕͯ͠·͑͋ͱಉ͡ϩʔϧ ʹࢀՃͤ͞Δ͚ͩ
/ZBI·ͱΊ 0QFO4UBDLͬͯ·͢ ϖύϘͷϓϥΠϕʔτΫϥυ αʔϏε୯ҐͰϦιʔεཧ ߏཧJUBNBF
ࢹNBDLFSFM
)BDLT
य़
େମग़དྷͨ
͡Ό͋ɺ৮ͬͯΈͯ ͍͍͔͢ʂʂʂ
)PSJ[PO 7.ཧ /8ཧ ηΩϡϦςΟʔཧ Ϣʔβʔཧ
Ϧιʔεཧ
0QFO4UBDL$MJFOU 1ZUIPOͷΫϥΠϯτ OPWBMJTU OFVUSPOQPSUMJTU LFZTUPOFFOEQPJOUMJTU IUUQEPDTPQFOTUBDLPSHKBVTFSHVJEFDPOUFOUJOTUBMM@DMJFOUTIUNM
GNʜ ͡Ό͋ɺԿʁ ϗετ࡞Δͷʹճ 8*ૢ࡞ͨ͠ΓɺίϚϯυ ͛ͳ͖Ό͍͚ͳ͍Θ͚Ͱ͔͢ʁ
ͬͯΒΜͳ͍ʂʂʂ
)BDLT LBOBNFϢʔβʔཧ LBLJOFηΩϡϦςΟάϧʔϓཧ OZBIDMJ7.࡞ 1FD7.T࡞
Ϣʔβʔཧ
LBOBNF ϖύϘͰਓͷΤϯδχΞ͕ ෳͷαʔϏεʹܞΘΔ )PSJ[POͩͱมߋཤྺ͕ཧͰ͖ͳ͍ ূ͕Βͳ͍
LBOBNF ઃఆϑΝΠϧΛZBNMͰఆٛ ઃఆϑΝΠϧΛ(JUʹू ʮ୭͕ɺ͍ͭɺͲͷݖݶʯΛอ͔࣋ͨ͠Λཧ QZBNB FNBJMlQZBNB!QFQBCPDPNl UFOBOUT NVVNVVlDJUZCPZ
EFWFMPQlBENJOz UBOBLB FNBJMlUBOBLB!QFQBCPDPN UFOBOUT EFWFMPQNFOUNFNCFS
LBOBNF ొ༰ ,FZTUPOF QZBNB FNBJMlQZBNB!QFQBCPDPNl UFOBOUT NVVNVVlDJUZCPZ EFWFMPQlBENJOz UBOBLB FNBJMlUBOBLB!QFQBCPDPN
UFOBOUT EFWFMPQNFOUNFNCFS (JU)VC13 ɹొ༰ʹޡΓ͕ͳ͍͜ͱΛ ɹ֬ೝ͢Δ (JU)VCͰͷϨϏϡʔྃޙɺొ
ηΩϡϦςΟཧ
DPNQVUFOPEF ཧϗετ JOUFSGBDF 4FDVSJUZ(SPVQ Ϝʔ7. /PWB"QJ /FVUSPO Ϝʔ7.ʹΦϑΟε͔Βͷ 44)ڐՄ͍ͨ͠ Ϝʔ7.ʹ44)ڐՄ
JQUBCMFTఆٛ 7.Ͱͳ͘DPNQVUFOPEFʹ JQUBCMFTఆٛ
LBLJOF ઃఆϑΝΠϧΛZBNMͰఆٛ ઃఆϑΝΠϧΛ(JUʹू ηΩϡϦςΟઃఆͷϨϏϡʔ͕ՄೳʹͳΓɺ ·ͨɺొɺΓ͠ͷख͕ؒେ෯ʹݮ JOUFSOBM@QFSNJU SVMFT
EJSFDUJPOJOHSFTT QSPUPDPM FUIFSUZQF*1W QPSU SFNPUF@JQ EFTDSJQUJPOΠϯλʔφϧઢͷ௨৴ΛશͯڐՄ
LBLJOF طଘઃఆͷऔಘɾฤूɾొ /PWB"QJ JOUFSOBM@QFSNJU SVMFT EJSFDUJPOJOHSFTT QSPUPDPM FUIFSUZQF*1W QPSU SFNPUF@JQ
EFTDSJQUJPOΠϯλʔφϧઢͷ௨৴ΛશͯڐՄ ొ͞Εͨ༰Λө ࠷৽ొ༰Λ(JUཧ /PWB$PNQVUF /PWB$PNQVUF /PWB$PNQVUF
Πϯελϯε࡞
JNBHF
JNBHF TVEPϢʔβʔͷ࡞ TTIαʔόʔͷ࣮ߦ DMPVEJOJU PQFOTUBDLBQJDMJFOU QZUIPO ͷ Πϯετʔϧ σΟεΫ࠷খԽͱΠϯελϯεىಈ࣌ʹࣗಈ֦ு ωοτϫʔΫॳظԽ
ϑΝΠΞΥʔϧͷແޮԽ ຊ࣌ؒΛઃఆ ىಈ࣌ͷTMBDL௨
JNBHF $FOU04 XJUIDIFGQVQQFU 6CVOUV
XJUIDIFGQVQQFU $PSF04ͳͲͳͲ
JOTUBODF JNBHF CBTF &TTFODF QVQQFU DIFG DMPVEJOJU
“Πϝʔδͷىಈ࣌ʹ͞Εͨuser-dataʹج͖ͮ OSʹରͯ͠ઃఆΛߦ͑ΔΈ $MPVE*OJU DMPVEJOJU DMPVEDPOpH ϦϑΝϨϯε IUUQT[FUUBJPOCIKFMQDPNNVOJUZBSUJLMFSPHPQQMBFSJOHDMPVEJOJUSFGFSFODF
$MPVE*OJU IPTUOBNFQZBNBEFNP GREOQZBNBEFNPDPN SFQP@SFMFBTFWFS VTFST OBNFQZBNB HSPVQTQZBNB TIFMMCJOCBTI TVEP<"-- "--
/01"448%"--> TTIBVUIPSJ[FELFZT TTISTB'%"%'"%#/[B$ZD&GEMGKBTE&"R6+WTW,H)3.)E CPPUDNE FDIPSPPUQZBNBcDIQBTTXE
/ZBI$MJ (PͰ։ൃ͞Εͨ"1*ϥούʔίϚϯυ ίϚϯυҰൃͰ7.Λىಈ VTFSEBUBʹରԠ͍ͯ͠ΔͷͰҙͷઃఆ͕ىಈޙʹ ߦΘΕΔ *1ΞυϨεઃఆΛࣗಈԽ
VE[VSBOZBIDMJ 8SBQQFSPG/ZBIUIF8SBQQFSPG0QFO4UBDL OZBIJOTUBODFTUEFWOZBIa JDFOUPTOQZBNBUFTUQQZBNBQBTTa OFUXPSLFYUOFUFYU JOUOZBIa GNTNBMMVTFSEBUBVTFSEBUBZNM
1FD ઃఆϑΝΠϧʹج͖ͮෳͷ7.Λ Ұׅىಈɾఀࢭ VTFSEBUBͷςϯϓϨʔτԽΛαϙʔτ QZBNBUFTU UFOBOUQFQBCP JNBHFDFOUPT@DIFG@QVQQFU qBWPSNTNBMM
OFUXPSLT FUI CPPUQSPUPTUBUJD JQ@BEESFTT HBUFXBZ EOT TFDVSJUZ@HSPVQ EFGBVMU TTI UFNQMBUFT CBTFZBNM XFCTFSWFSZBNM
)BDLT·ͱΊ ϢʔβʔཧΛূΛͭͭ͠ ָʹʂʂ ηΩϡϦςΟʔཧΠϯελϯε ࡞ͷखؒΛίʔυͰղܾ
ࠓͬͯΔ͜ͱ
*1Λҙࣝ͠ͳ͍ ΠϯϑϥΛίʔυͰ ࡞Γ͖Δ
Α͋͘Δ%/4γεςϜ -# -# %/4 %/4 %/4 WJQ SJQ SJQ SJQ
SJQ SJQ
“)BTIJ$PSQࣾͷϓϩμΫτ *(.1Λར༻͠ಉ͡άϧʔϓͷϝϯόʔͷՃ ΛΠϕϯτ௨͠ɺεΫϦϓτͳͲͷ ࣮ߦ͕Մೳ
4FSG TFSGNFNCFST MCEFWMPDBMBMJWFSPMFMC EOTEFWMPDBMBMJWFSPMFEOT EOTEFWMPDBMBMJWFSPMFEOT DBUBHFOUMPH BHFOU&WFOUNFNCFSKPJOEOTEFWMPDBMEOTSPMFEOT ಉ͡άϧʔϓʹॴଐ͍ͯ͠Δϗετ ৽͘͠ϝϯόʔ͕Ճ͞Εͨ
ࣗಈԽ4UFQ $IFG 7. TFSGNFNCFSKPJO -#ϨγϐΛྲྀ͢ -# 7.ͷىಈͱಉ࣌ʹ ɹDMPVEJOJUͰTFSGΠϯετʔϧ Ϩγϐ͕ྲྀΕͯ-#ͷΠϯετʔϧ͕ྃ
ࣗಈԽ4UFQ -# -# %/4 %/4 %/4 WJQ SJQ SJQ
ࣗಈԽ4UFQ $IFG 7. EOTϨγϐΛྲྀ͢ %/4 Ϩγϐ͕ྲྀΕͯEOTͷΠϯετʔϧ͕ྃ -# TFSGͷNFNCFSKPJO %/4αʔϏεͷ7*1ʹKPJOͨ͠%/4Λ ɹϝϯόʔՃ
7.ͷىಈͱಉ࣌ʹ ɹDMPVEJOJUͰTFSGΠϯετʔϧ TFSGNFNCFSKPJO
ࣗಈԽ4UFQ -# -# %/4 %/4 %/4 WJQ SJQ SJQ SJQ
SJQ SJQ
ࣗಈԽ4UFQ $IFG 7. EOTϨγϐΛྲྀ͢ %/4 Ϩγϐ͕ྲྀΕͯEOTͷΠϯετʔϧ͕ྃ -# TFSGͷNFNCFSKPJO %/4αʔϏεͷ7*1ʹKPJOͨ͠%/4Λ ɹϝϯόʔՃ
7.ͷىಈͱಉ࣌ʹ ɹDMPVEJOJUͰTFSGΠϯετʔϧ TFSGͷNFNCFSKPJO
/BNJOPSJ 4FSG -WTͷϥΠϒϥϦ αʔϏεͷϔϧενΣοΫͰ͖Δ ϝϯόʔͷՃআΛ4MBDL௨ #! /usr/bin/env
ruby require 'rubygems' require 'naminori' Naminori::Notifier::Configure.instance.set({ webhook_url: "https://hooks.slack.com/services/XXXXXX", channel: "#pyama", user: "#naminori" }) service_options = { vip:"192.168.77.9" } case when Naminori::Serf.role?("dns") Naminori::Service.event("dns", "lvs", service_options) when Naminori::Serf.role?("lb") Naminori::Lb.health_check("dns", "lvs",service_options) end
·ͱΊ
શମ·ͱΊ ϓϥΠϕʔτΫϥυΛαʔϏε͝ͱʹς φϯτཧ͠ӡ༻͍ͯ͠·͢ ߏཧࢹࣗಈԽ ख͕͔͔ؒΔ͜ͱɺཧ͕ඞཁͳ͜ͱࣗ ͨͪͰίʔυॻ͍ͯղܾ
αʔϏεΛҠߦ͢Δ͚ͩͰͳͯ͘ɺΫϥ υΒ͍͜͠ͱ࢝Ίͯ·͢
͜͜Ͱঁੑਞ͔Β ࣭͕ࡴ౸͢Δ
͝ਗ਼ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠
Ҡߦࣄྫ
/ZBIͰಈ͍͍ͯΔαʔϏε ֤αʔϏεӶҙҾͬӽ͠த
None
4UFQ Ҡߦݩ -# 1SPYZ 8&# 5IF*OUFSOFU
4UFQ Ҡߦݩ -# 1SPYZ 8&# -# 1SPYZ 8&# 5IF*OUFSOFU
4UFQ Ҡߦݩ -# 1SPYZ 8&# -# 1SPYZ 8&# 5IF*OUFSOFU
ϜʔϜʔυϝΠϯ ΠϯϑϥΛͯ͢$IFGͰίʔυԽ յΕͨΒࣺͯͯɺ࡞Γ͢ -#ͷ%JSFDU3PVUJOHߏ͕ Ίͳ͍ʜ
%3ߏΊͳ͍ /PWB$PNQVUFεςʔτϑϧʹஅ͠ *OWBMJE1BDLFUΛഁغ͢Δ 5$1XBZϋϯυγΣΠΫཱ͕͠ͳ͘ͳͬͨ IPTU# IPTU" TZO TZO
BDL BDL σʔλ௨৴ͷ։࢝
DPNQVUF DPNQVUF %3ߏΊͳ͍ -# 1SPYZ TZO TZO TZO BDL TZO
BDLΛฦͨ͠ͷDPNQVUF DMJFOU
DPNQVUF DPNQVUF %3ߏΊͳ͍ -# 1SPYZ BDL DMJFOU
DPNQVUF DPNQVUF /"5ߏʹͨ͠ -# 1SPYZ TZO TZO TZO BDL DMJFOU
ϜʔϜʔυϝΠϯҠߦࣄྫ·ͱΊ Πϯϑϥͯ͢$IFGͰίʔυԽ 7.ͷσʔλͯ͢$PNQVUF OPEF ཧϗετ ͷϩʔΧϧ σΟεΫͷͨΊɺյΕͨΒ࡞Γͳ͓ ͢
-#ͷ%3ߏΊͳ͍