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
一休での開発における改善の取組み /devops-at-ikyu
Search
kentana20
April 28, 2017
Technology
13
10k
一休での開発における改善の取組み /devops-at-ikyu
4/28(金) にDevOps推進協議会 で講演したときの資料です。
kentana20
April 28, 2017
Tweet
Share
More Decks by kentana20
See All by kentana20
一休.comでの開発組織改善の取り組みとこれから /improve-ikyu-devlove-x
kensuketanaka
24
37k
株式会社一休 会社紹介資料 / introduce-ikyu
kensuketanaka
15
110k
一休.com における改善事例のご紹介 /ikyu-storage-improvement
kensuketanaka
6
11k
開発合宿@京都 /hack-camp-kyoto
kensuketanaka
0
3.8k
一休.comにおけるデプロイフローと自動化 /ikyu-deploy-flow
kensuketanaka
9
8.9k
ikyu-frontend
kensuketanaka
21
7.3k
sushi_route_2015
kensuketanaka
0
220
qiita meetup#12
kensuketanaka
4
71k
cross_2015_trave_ec
kensuketanaka
1
3.5k
Other Decks in Technology
See All in Technology
2025-07-25 NOT A HOTEL TECH TALK ━ スマートホーム開発の最前線 ━ SOFTWARE
wakinchan
0
200
Mambaで物体検出 完全に理解した
shirarei24
2
190
Perlアプリケーションで トレースを実装するまでの 工夫と苦労話
masayoshi
1
360
隙間時間で爆速開発! Claude Code × Vibe Coding で作るマニュアル自動生成サービス
akitomonam
3
250
LIFF CLIとngrokを使ったLIFF/LINEミニアプリのお手軽実機確認
diggymo
0
180
クマ×共生 HACKATHON - 熊対策を『特別な行動」から「生活の一部」に -
pharaohkj
0
280
AWS re:Inforce 2025 re:Cap Update Pickup & AWS Control Tower の運用における考慮ポイント
htan
1
160
Claude Codeから我々が学ぶべきこと
s4yuba
2
380
テキストからの実世界知能の実現に向けて
sumoai
0
130
「育てる」サーバーレス 〜チーム開発研修で学んだ、小さく始めて大きく拡張するAWS設計〜
yu_kod
1
230
AI時代の知識創造 ─GeminiとSECIモデルで読み解く “暗黙知”と創造の境界線
nyagasan
0
190
大規模イベントに向けた ABEMA アーキテクチャの遍歴 ~ Platform Strategy 詳細解説 ~
nagapad
0
160
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Being A Developer After 40
akosma
90
590k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Producing Creativity
orderedlist
PRO
346
40k
Fireside Chat
paigeccino
37
3.6k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Mobile First: as difficult as doing things right
swwweet
223
9.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Art, The Web, and Tiny UX
lynnandtonic
301
21k
Transcript
ҰٳͰͷ։ൃʹ͓͚Δ վળͷऔΈ 2017.4.28 גࣜձࣾҰٳ ాத ݈հ( @kentana20 )
About me • ాத ݈հ • @kentana20 • 20065݄͔ΒҰٳ •
॓ധαʔϏε։ൃ(9) →γεςϜຊ෦(2)
Agenda • Ұٳͷ͝հͱαʔϏεɺ։ൃ৫ʹ͍ͭͯ • αʔϏε։ൃʹޮ͘վળͷऔΈ • ·ͱΊ
Ұٳͷ͝հͱ αʔϏεɺ։ൃ৫ʹ͍ͭͯ
About Ұٳ.com
None
Ұٳ.com • ओྗαʔϏε • ্࣭ͳϗςϧɾཱྀؗͷ༧αʔϏε • 20005݄Φʔϓϯͷ16ࡀ
Ұٳ.com KPI (2015.03) • ձһ: 400ສ+ • ϗςϧ/ཱྀؗ: 2,600ࢪઃ+ •
ؒൢചࣨ: 189ສࣨ+
Ұٳ.comϨετϥϯ • ओྗαʔϏεͦͷ2 • ্࣭ͳϨετϥϯͷ༧αʔϏε • 20066݄Φʔϓϯ(11) • ݱࡏ࠷ྗ͍ͯ͠Δࣄۀ
͓ͱͳΓ͞·
։ൃ৫ʹ͍ͭͯ
ձࣾͷ৫ମ੍ ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦
֤ࣄۀ෦ͷΤϯδχΞਓ ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ 17໊ 15໊ 3໊ 14໊
αʔϏε։ൃͷମ੍ ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ &OHJOFFS Designer Sales Marketing
αʔϏε։ൃΛ୲͢Δ ΤϯδχΞ֤ࣄۀ෦ʹॴଐ
αʔϏε։ൃͷମ੍ ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ &OHJOFFS Designer Sales Marketing
αʔϏεڞ௨ͷ։ൃج൫ʢೝূͳͲʣɺ Πϯϑϥɺσʔλੳج൫ɺγε γεςϜຊ෦͕୲ &OHJOFFS
αʔϏε։ൃͷମ੍ ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ &OHJOFFS Designer Sales Marketing
&OHJOFFS
Ϣχοτ1 UI/UX Ϣχοτ2 Partner Alliance Ϣχοτ3 Application Platform αʔϏε։ൃΤϯδχΞ ϛογϣϯΛ࣋ͬͨϢχοτʹॴଐ
DevͱOps ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ %FW %FW %FW 0QT
%FW
DevͱOps ॓ധࣄۀຊ෦ Ϩετϥϯ ࣄۀຊ෦ ৽نࣄۀຊ෦ γεςϜຊ෦ %FW %FW %FW 0QT
%FW • ݖݶঠ͋Δͷͷɺ͔ͳΓͷݖݶΛ ։ൃΤϯδχΞʹ༩ • ຊ൪αʔόɺDBͷΞΫηε • ʑͷϦϦʔεӡ༻ etc.. • ຊʹॏཁͳ෦ͷΈΛอޢ • ݸਓใɺܾࡁɾਫ਼ࢉʹؔΘΔػೳͳͲ
ʑͷϦϦʔεӡ༻ • ݪଇͱͯ͠Pull RequestʹΑΔίʔυϨϏϡʔΛ௨ͬ ͨมߋͷΈΛϦϦʔε • σϓϩΠ։ൃऀ(Dev)͕ߦ͏ • σϓϩΠස •
॓ധ: 1ճ/ • Ϩετϥϯ: 10+ճ/
ࠓͷ͓ • ͲͷΑ͏ͳมભ/มԽΛܦͯ͜ͷΑ͏ͳ։ൃମ੍ʹ ͳ͔ͬͨ • Ұٳʹ͓͚ΔαʔϏε։ൃʹޮ͘վળͷࣄྫ • ࠓޙ༧ఆ͍ͯ͠ΔऔΈ
։ൃ৫ͷมભͱ αʔϏε։ൃʹޮ͘վળͷࣄྫ
2014 (2014/4~2015/3)
࣌ͷঢ়گ • ձࣾن • ձࣾن120໊ɺ͏ͪ։ൃϝϯόʔ40໊ऑ • ։ൃ৫ • ॓ധ: 20໊ऑ
/ Ϩετϥϯ: 12~3໊ / Πϯϑϥ: 5໊ • ֤෦Ͱύʔτφʔ(֎)Λ࠾༻͠ɺϓϩύʔ1໊ʹରͯ͠ৗறͷ ύʔτφʔ2~3໊ͱ͍͏ମ੍͕ओͩͬͨ
๊͍࣌͑ͯͨ՝ • ϢʔβՁΛఏڙ͢Δεϐʔυ͕Լ͍ͯͨ͠ • ࣭Լ / ։ൃޮԼ / ӡ༻ෛՙ /
ݖݶঠ • αʔϏε։ൃ/ӡ༻ʹΘΕΔʑͰɺࣗಈԽΛ͡Ίͱͨ͠ӡ༻վળ ৽͍ٕ͠ज़ɾαʔϏεͷಋೖ͕͍͔ͭͳ͍ • ӡ༻ෛՙ͕ঃʑʹ্͕Γɺஈʑͱ։ൃ͕Լ • ϓϩύʔΑΓύʔτφʔʹ։ൃφϨοδ͕ཷ·Γɺٕज़͕ۭಎԽ • DevͱOpsͷݖݶঠ͕ਐΈʮDev͕Ͱ͖ͳ͍͜ͱʯ͕૿Ճ
https://speakerdeck.com/kensuketanaka/modannaxian-chang-nisurutamenishi-jian-sitakoto
վળϓϩδΣΫτΛελʔτ • @naoya_ito ʹٕज़ސͱͯ͠֎෦͔ΒͷΞυόΠεΛґཔ • త: ʮϢʔβʹՁΛಧ͚ΔεϐʔυΛ࠷େԽ͢Δʯ • ՝ཧΛߦ͍ɺࣗͷݱঢ়ͱࢦ͢ܗɺվળʹ͚ͨΞΫγϣϯΛ ఆٛͯ͠શΤϯδχΞΛר͖ࠐΜͰϓϩδΣΫτΛ։࢝
None
վળͷऔΈ(2014) • ใڞ༗ج൫ͷඋ • Subversion → GitHub EnterpriseͷҠߦ • JenkinsΛͬͨCI/CDಋೖ
• Selenium WebDriverΛͬͨE2Eςετ • σβΠφʔΛר͖ࠐΜͩGit Flowͷߏங
վળͷऔΈ(2014) • ใڞ༗ج൫ͷඋ • Subversion → GitHub EnterpriseͷҠߦ • JenkinsΛͬͨCI/CDಋೖ
• Selenium WebDriverΛͬͨE2Eςετ • σβΠφʔΛר͖ࠐΜͩGit Flowͷߏங
ใڞ༗ج൫(Before) • πʔϧ • ϝʔϧɺઢɺRedmine • Έ • γεςϜि࣍ϛʔςΟϯά
• πʔϧ • ϝʔϧɺઢɺRedmine • Έ • γεςϜि࣍ϛʔςΟϯά • ݸʑͷҙࣝʹґଘͨ͠ใڞ༗
• ॓ധɺϨετϥϯɺΠϯϑϥͱίϯςΩετ͕ ҟͳΔϝϯόʔͰͷதͷബ͍ϛʔςΟϯά • ਐߦதͷҊ݅ϓϩδΣΫτͷ;Γ͔͑ΓͳͲ ΛΧδϡΞϧʹڞ༗͢Δ͕ͳ͍ Bad
ใڞ༗ج൫(After) • πʔϧ • Hipchat (ݱࡏSlack) / Qiita Team •
Έ • ேձ / Χϯόϯ / ;Γ͔͑Γ(KPT) • ΨΠυϥΠϯ • ֤πʔϧΈʹରͯ͠ΨΠυϥΠϯΛඋ
ใڞ༗ج൫(After) • πʔϧ • Hipchat (ݱࡏSlack) / Qiita Team •
Έ • ேձ / Χϯόϯ / ;Γ͔͑Γ(KPT) • ΨΠυϥΠϯ • ֤πʔϧΈʹରͯ͠ΨΠυϥΠϯΛඋ • ✔ ΨΠυϥΠϯʹԊ༷ͬͨͷڞ༗ • ✔ ίϯςΩετ͕ἧͬͨνʔϜຖʹேձΛ࣮ࢪ ͠ɺ༰ਂٞ͘Ͱ͖ΔΑ͏ʹ • ✔ Qiita TeamʹΑͬͯҊ༷݅ͷڞ༗͕Χδϡ ΞϧʹՄೳʹ Clear!
վળͷऔΈ(2014) • ใڞ༗ج൫ͷඋ • Subversion → GitHub EnterpriseͷҠߦ • JenkinsΛͬͨCI/CDಋೖ
• Selenium WebDriverΛͬͨE2Eςετ • σβΠφʔΛר͖ࠐΜͩGit Flowͷߏங
σϓϩΠϑϩʔ(Before) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ %FQMPZ
ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU
σϓϩΠϑϩʔ(Before) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ %FQMPZ
ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU ΄΅खಈ ΤϯδχΞ͕൪(िସΓ)Ͱ࣮ࢪ खಈ ΤϯδχΞ͕୲Ͱ࣮ࢪ
σϓϩΠϑϩʔ(Before) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ %FQMPZ
ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU ΄΅खಈ ΤϯδχΞ͕൪(िସΓ)Ͱ࣮ࢪ खಈ ΤϯδχΞ͕୲Ͱ࣮ࢪ • దͳλΠϛϯάͰͷϨϏϡʔ͕ࠔ • σϓϩΠ࡞ۀɺखಈςετͷෛՙେ • ӡ༻ෛՙ͕ߴ͍͜ͱΛཧ༝ʹϦϦʔεස ि2ճ͔Β1ճ Bad
σϓϩΠϑϩʔͷඋ • GitHubɺJenkinsɺSeleniumΛͬͯσϓϩΠϑϩʔΛߏங • GitHubΛಋೖͯ͠ϓϧϦΫΤετϕʔεͷ։ൃ • masterϒϥϯνʹmergeͨ͠ΒࣗಈతʹJenkinsδϣϒ͕Staging ڥσϓϩΠ • StagingͷσϓϩΠSeleniumʹΑΔE2EςετΛ࣮ࢪ
σϓϩΠϑϩʔ(After) ϓϧϦΫmerge (खಈ) 4UBHJOH ϦϦʔε༻ ϓϧϦΫ࡞ ίʔϧ ϦϦʔε༻ ϓϧϦΫ࡞ ϓϧϦΫ63-
8FC)PPL %FQMPZ σϓϩΠ୲ Production %FQMPZ खಈ
ϒϥϯνઓུ NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF
NFSHF 1VMM3FRVFTU Production
σϓϩΠϑϩʔ(Before) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ %FQMPZ
ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU ΄΅खಈ ΤϯδχΞ͕൪(िସΓ)Ͱ࣮ࢪ खಈ ΤϯδχΞ͕୲Ͱ࣮ࢪ • ✔ Pull Requestϕʔεͷ։ൃͰॊೈʹϨϏϡʔ Մೳͳ։ൃϑϩʔ • ✔ ఆܕͷσϓϩΠɺςετࣗಈԽ • ✔ ϦϦʔεසि1ճ → ि2ճʹUp Clear!
2015 (2015/4~2016/3)
࣌ͷঢ়گ(2015) • ։ൃ৫ͷมԽ • ͯ͢ͷϢχοτͰαʔϏε։ൃΛ͢Δܗ͔Βɺ։ൃج൫උΛϝΠϯʹ࣮ ࢪ͢ΔνʔϜͱαʔϏε։ൃΛϝΠϯʹ͢ΔνʔϜͷׂ୲͕ঃʑʹਐߦ • ٕज़໘Ͱͷվળ • 2014ͷվળͰGitHubΛͬͨ։ൃϑϩʔɺܧଓతσϦόϦʔͳͲ։ൃ
ͷճΓͱͳΔΈ͍͍͍ͩͨͬͯͨ • ϓϩδΣΫτ։࢝ॳʹཱͯͨΞΫγϣϯΛ୨Է͠ɺ౮ͨ͠վળͷՐΛઈ ͞ͳ͍Α͏ʹܧଓ࣮ࢪ
վળͷऔΈ(2015) • ։ൃڥߏஙͷࣗಈԽ • ϒϥϯνσϓϩΠ(σϞ༻ڥ) • ຊ൪૬DBΛͬͨ։ൃ • γεςϜͷݟ͑ΔԽ/ϦιʔεϞχλϦϯάڧԽ •
JenkinsʹΑΔCI/CDΛຊ൪ڥ·Ͱద༻ • ϨΨγʔίʔυͷվળ(ೝূج൫ͷMicroservices)
վળͷऔΈ(2015) • ։ൃڥߏஙͷࣗಈԽ • ϒϥϯνσϓϩΠ(σϞ༻ڥ) • ຊ൪૬DBΛͬͨ։ൃ • γεςϜͷݟ͑ΔԽ/ϦιʔεϞχλϦϯάڧԽ •
JenkinsʹΑΔCI/CDΛຊ൪ڥ·Ͱద༻ • ϨΨγʔίʔυͷվળ(ೝূج൫ͷMicroservices)
ϦϦʔεલͷσϞɾϨϏϡʔ ϩʔΧϧ ڥ ։ൃ ςετ σβΠϯ ϨϏϡʔ σϞ ϦϦʔε ϩʔΧϧ
ڥ Engineer Marketing / CustomerService ର໘ͰϩʔΧϧڥΛͬͯ σϞɺϨϏϡʔ
ϦϦʔεલͷσϞɾϨϏϡʔ ϩʔΧϧ ڥ ։ൃ ςετ σβΠϯ ϨϏϡʔ σϞ ϦϦʔε ϩʔΧϧ
ڥ Engineer Marketing / CustomerService ର໘ͰϩʔΧϧڥΛͬͯ σϞɺϨϏϡʔ • ର໘ͰͷϨϏϡʔɾσϞ • ඇಉظʹΓͱΓͰ͖ͳ͍ • ϩʔΧϧڥͷ৴པੑ • ςετ༻ͷࢿࡐ͕͍ͬͯͨΓɺίϛοτ࿙ΕΛ ݕͰ͖ͳ͍ • ΤϯδχΞಉ࢜ͷίʔυϨϏϡʔ • ϨϏϡΞʔ͕ϩʔΧϧͰରͷϒϥϯνΛ Checkout(ϨϏϡʔෛՙߴ͍) Bad
ϒϥϯνσϓϩΠ(σϞ༻ڥ)
ϒϥϯνσϓϩΠ(σϞ༻ڥ) • ։ൃதͷϒϥϯνΛࢦఆͯ͠ผڥʹσϓϩΠͰ͖Δπʔϧ • ༻్ • ίʔυϨϏϡʔ࣌ͷಈ࡞֬ೝڥͱͯ͠ • Marketing, CustomerService͚ͷσϞ༻ڥͱͯ͠
• RemotepushࡁͷࢿࡐΛͬͯڥΛߏங͢ΔͷͰίϛοτ࿙Εͷ ϦεΫͳ͘ͳΔ
ϒϥϯνσϓϩΠ(σϞ༻ڥ) • ։ൃதͷϒϥϯνΛࢦఆͯ͠ผڥʹσϓϩΠͰ͖Δπʔϧ • ༻్ • ίʔυϨϏϡʔ࣌ͷಈ࡞֬ೝڥͱͯ͠ • Marketing, CustomerService͚ͷσϞ༻ڥͱͯ͠
• RemotepushࡁͷࢿࡐΛͬͯڥΛߏங͢ΔͷͰίϛοτ࿙Εͷ ϦεΫͳ͘ͳΔ • ✔ ඇಉظͰσϞɺಈ࡞֬ೝ͕Մೳʹ • ✔ ϩʔΧϧڥΛΘͣʹσϞ͕Ͱ͖Δ • ✔ ϨϏϡΞʔͷෛՙܰݮ Clear!
վળͷऔΈ(2015) • ։ൃڥߏஙͷࣗಈԽ • ϒϥϯνσϓϩΠ(σϞ༻ڥ) • ຊ൪૬DBΛͬͨ։ൃ • γεςϜͷݟ͑ΔԽ/ϦιʔεϞχλϦϯάڧԽ •
JenkinsʹΑΔCI/CDΛຊ൪ڥ·Ͱద༻ • ϨΨγʔίʔυͷվળ(ೝূج൫ͷMicroservices)
ຊ൪૬DB • લͷຊ൪σʔλϕʔεΛϦετΞ&ݸਓใΛϚεΫͨ͠ͷ • ઃஔͷҙਤɾత • ຊ൪ʹΑΓ͍ۙσʔλͰ։ൃ͢Δ • ϢʔβͱಉͷମݧΛಘΔ
ݕࡧ݁Ռ(ຊ൪) ݕࡧ݁Ռ(ຊ൪)
ݕࡧ݁Ռ(ຊ൪) ݕࡧ݁Ռ(ຊ൪૬DB)
ݕࡧ݁Ռ(ςετ༻DB)
https://signalvnoise.com/posts/3251-running-beta-in-production
http://techlife.cookpad.com/entry/2014/10/03/110806
։ൃʹ͔ܽͤͳ͍ଘࡏ • ϒϥϯνσϓϩΠͱຊ൪૬DBΛΈ߹ΘͤΔ͜ͱͰຊ൪ʹݶΓͳ͘ ͍ۙڥͰσϞɺϨϏϡʔ͕Մೳʹ • ͍··Ͱؾ͚ͮͳ͔ͬͨ͜ͱ͕ؾ͚ͮΔΑ͏ʹͳͬͨ • ex. จࣈྻͷ͞ʹΑΔંΓฦ͠ɺύϑΥʔϚϯε •
ϦϦʔεޙͷखΓɺ༷มߋ͕ݮগ
վળͷऔΈ(2015) • ։ൃڥߏஙͷࣗಈԽ • ϒϥϯνσϓϩΠ(σϞ༻ڥ) • ຊ൪૬DBΛͬͨ։ൃ • γεςϜͷݟ͑ΔԽ/ϦιʔεϞχλϦϯάڧԽ •
JenkinsʹΑΔCI/CDΛຊ൪ڥ·Ͱద༻ • ϨΨγʔίʔυͷվળ(ೝূج൫ͷMicroservices)
࣌Α͋ͬͨ͘ޫܠ Engineer CustomerService ͳΜ͔͜ͷϖʔδʹΞΫηε ͢ΔͱΤϥʔʹͳΔΜ͚ͩͲ... ͪΐɺௐࠪ͠·͢!
࣌Α͋ͬͨ͘ޫܠ Engineer CustomerService ͳΜ͔͜ͷϖʔδʹΞΫηε ͢ΔͱΤϥʔʹͳΔΜ͚ͩͲ... ͪΐɺௐࠪ͠·͢! • Dev • ΞϓϦέʔγϣϯͷҟৗΛݕ͢ΔΈ͕ෆे
• αʔϏε͕݈߁Λҡ͍࣋ͯ͠Δͷ͔ɺͲ͔͜ҟৗ͕͋Δ ͷ͔ΛѲͰ͖͍ͯͳ͍ • Ops • ΞΫηεɺෛՙঢ়گͷϞχλϦϯά͕ेʹͰ͖͍ͯͳ ͍ Bad
ϩάϞχλϦϯάڧԽ • nxLog , Fluentdܦ༝ͰΞΫηεϩάɺΞϓϦέʔγϣϯϩάΛ elasticsearchʹೖΕͯkibanaͰՄࢹԽ • fluentdͰΤϥʔ༰ΛϦΞϧλΠϜʹSlackʹ௨
kibana
kibana
https://speakerdeck.com/shoichiron/roguhuan-jing-todevops-xiu-dot-comdefalseshi-li
࣌Α͋ͬͨ͘ޫܠ Engineer CustomerService ͳΜ͔͜ͷϖʔδʹΞΫηε ͢ΔͱΤϥʔʹͳΔΜ͚ͩͲ... ͪΐɺௐࠪ͠·͢! • Dev • ✔
ΞϓϦέʔγϣϯͷҟৗΛϦΞϧλΠϜʹݕՄೳʹ • Ops • ✔ αʔϏεʹඞཁͳϝτϦΫεΛμογϡϘʔυʹ·ͱΊ ͯϞχλʹӨ Clear!
2016 (2016/4~2017/3)
࣌ͷঢ়گ(2016) • ։ൃ৫ͷมԽ • νʔϜຖͷׂ(ϛογϣϯ)͕ΑΓ໌֬Խ • ॓ധ: UI/UXɺύʔτφʔΞϥΠΞϯεɺٕज़ϓϥοτϑΥʔϜ • Ϩετϥϯ:
UI/UXɺΞϓϦɺϏδωεϑΝϯσʔγϣϯ • ٕज़໘Ͱͷվળ • ΫϥυҠߦʹ͚ͯେ͖͘ΛͬͯXaaSΛϑϧ׆༻
վળͷऔΈ(2016) • ΦϯϓϨϛε͔ΒΫϥυ(AWS)ͷҠߦ • Infrastructure as Code • σʔλੳج൫ͷඋʹΑΔσʔλͷຽओԽ •
ϫʔΫϑϩʔΤϯδϯͷಋೖ(Rundeck) • CTOϨϏϡʔ / Ռൃදձ
վળͷऔΈ(2016) • ΦϯϓϨϛε͔ΒΫϥυ(AWS)ͷҠߦ • Infrastructure as Code • σʔλੳج൫ͷඋʹΑΔσʔλͷຽओԽ •
ϫʔΫϑϩʔΤϯδϯͷಋೖ(Rundeck) • CTOϨϏϡʔ / Ռൃදձ
Infrastructure as Code • DNSઃఆͷίʔυཧɺσϓϩΠࣗಈԽ
Infrastructure as Code • γεςϜߏΛTerraformͰίʔυཧ
Infrastructure as Code • ͲͪΒCircle CIͰσϓϩΠ·Ͱ࣮ࢪ • ❌ ϚωδϝϯτίϯιʔϧͰखಈૢ࡞ •
⭕ ߏΛίʔυͰཧͯ͠มߋCIͰ࣮ࢪ
վળͷऔΈ(2016) • ΦϯϓϨϛε͔ΒΫϥυ(AWS)ͷҠߦ • Infrastructure as Code • σʔλੳج൫ͷඋʹΑΔσʔλͷຽओԽ •
ϫʔΫϑϩʔΤϯδϯͷಋೖ(Rundeck) • CTOϨϏϡʔ / Ռൃදձ
σʔλੳج൫(Before) • ETLॲཧ(جװσʔλϕʔεGoogleAnalytics͔ΒੳʹඞཁͳσʔλΛந ग़ →ੳ༻σʔλϕʔεߏங) • ߋ৽ස: 1ճ/ • σʔλ:
2Ε • खಈ࡞ۀଟ͘ɺߋ৽࡞ۀʹޕલத͍ͬͺ͍͔͔Δ • ੳϨϙʔτ • Excelϕʔε͕ओ
σʔλੳج൫(Before) • ETLॲཧ(جװσʔλϕʔεGoogleAnalytics͔ΒੳʹඞཁͳσʔλΛந ग़ →ੳ༻σʔλϕʔεߏங) • ߋ৽ස: 1ճ/ • σʔλ:
2Ε • खಈ࡞ۀଟ͘ɺߋ৽࡞ۀʹޕલத͍ͬͺ͍͔͔Δ • ੳϨϙʔτ • Excelϕʔε͕ओ • खಈ࡞ۀ͕ଟ͘ɺࣗಈԽ͍ͯ͠Δ෦ͨ·ʹ ࣦഊ͢Δ • ࢪࡦ࣮ࢪޕޙҎ߱ • ExcelͰՄࢹԽ Bad
ߋ৽ॲཧΛࣗಈԽ
ՄࢹԽ • Re:dash • ΦʔϓϯιʔεͷσʔλՄࢹԽϓϥοτϑΥʔϜ • MySQL, BigQuery, Redshift, ElasticsearchͳͲΛσʔλιʔεʹ
ͯ͠ΫΤϦͷ࣮ߦ݁ՌΛՄࢹԽͰ͖Δ
Re:dash
ܒ
ܒ • σʔλͷஔ͖ɺՄࢹԽͷํ๏ΛΦʔϓϯʹ͠ ͯ୭Ͱσʔλநग़͕ߦ͑ΔΑ͏ʹ • ❌ XX ͞Μʹґཔͯ͠σʔλΛग़͢ • ⭕
σʔλΛݟ͍ͨਓ͕ࣗͰͭ͘Δ • ⭕ ࡞ͬͨσʔλURL(Re:dash)Ͱڞ༗ σʔλΛຽओԽ
վળͷऔΈ(2016) • ΦϯϓϨϛε͔ΒΫϥυ(AWS)ͷҠߦ • Infrastructure as Code • σʔλੳج൫ͷඋʹΑΔσʔλͷຽओԽ •
ϫʔΫϑϩʔΤϯδϯͷಋೖ(Rundeck) • CTOϨϏϡʔ / Ռൃදձ
CTOϨϏϡʔ • ֤νʔϜ͕࣮ࢪ͍ͯ͠Δٕज़՝ͷऔΈΛCTOʹนଧͪ͢Δձ • ٕज़՝ͷੳɺղফ͚ͨΞϓϩʔνɺਐḿঢ়گΛڞ༗͠ͳ ͕ΒϨϏϡʔΛ࣮ࢪ
Ռൃදձ • ֤νʔϜ͕औΓΜͩϓϩδΣΫτͷՌΛൃද͢Δձ • ࠒऔΓΜͰ͍Δۀ͕ͲΜͳՌʹͭͳ͕ͬͨͷ͔ɺಋೖͨ͠ ৽͍ٕ͠ज़/ػೳ͕ͲΜͳΈͰಈ͍͍ͯΔ͔ • ϓϨθϯࢿྉʹ·ͱΊͯετοΫ͓ͯ͘͜͠ͱͰɺ৽͍͠ϝϯόʔ ͕ೖͬͨͱ͖ʹܦҢؚΊͯݱঢ়ͷཧղΛਂΊΔ͜ͱظ
Ռൃදձ
http://techlife.cookpad.com/entry/2016/09/16/192927
ݱࡏͷঢ়گͱ ࠓޙ༧ఆ͍ͯ͠ΔऔΈ
ݱࡏͷঢ়گ • ։ൃ৫ͷมԽ • ֤αʔϏεɺKPIͷऀʹΤϯδχΞɺσβΠφʔΛूΊͯ ʮతܕͷ৫ʯʹҠߦ • νʔϜ͝ͱͷΛΑΓ໌֬ʹ • ٕज़໘Ͱͷվળ
• ΫϥυԽɺXaaSಋೖʹΑͬͯվળ͕ਐΈɺϨΨγʔίʔυγεςϜΞʔΩ ςΫνϟͳͲγεςϜຊջ෦ͷ՝ʹ͔͑Δঢ়گʹ • αʔϏε/ϓϩμΫτͷ՝ʹԊͬͨՕॴͰͷվળϑΥʔΧε
վળͷऔΈ(ݱࡏ) • ֤αʔϏεઐଐͷΠϯϑϥϝϯόʔ(SRE) • γεςϜΞʔΩςΫνϟͷ৽ • CRMࢪࡦڧԽʹ͚ͨߦಈϩάج൫ͷඋ • ϑϩϯτΤϯυ։ൃج൫ͷ࠶ઃܭ
·ͱΊ
·ͱΊ • ׂܖܗଶͷִͨΓ͕ബ͘ͳͬͨ • ։ൃ৫ͷมԽͱٕज़໘ͰͷվળΛܧଓͨ݁͠Ռɺʮ։ൃ(Dev)ͱӡ༻(Ops)ʯ ʮϓϩύʔͱύʔτφʔʯͱ͍͚͕ͬͨ۠ബ͘ͳͬͨ • վળܧଓతʹ • ҰඈͼͰΖ͏ͱͯ͠Ռʹͭͳ͕Βͳ͍ͷͰಓʹίπίπ
• 1ਓͰΔͷͰͳ͘ɺ֤ϝϯόʔ͕ಘҙͳ͜ͱΛΔ • αʔϏε/ϓϩμΫτͷՌʹͭͳ͕Δ͔͕࠷ॏཁ • ٕज़తʹਖ਼ͯ͘͠ఏڙ͢ΔαʔϏεʹޮ͔ͳ͚ΕՌͱͯ͠ෆे
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠