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
120k
一休.com における改善事例のご紹介 /ikyu-storage-improvement
kensuketanaka
6
11k
開発合宿@京都 /hack-camp-kyoto
kensuketanaka
0
3.9k
一休.comにおけるデプロイフローと自動化 /ikyu-deploy-flow
kensuketanaka
9
8.9k
ikyu-frontend
kensuketanaka
21
7.3k
sushi_route_2015
kensuketanaka
0
230
qiita meetup#12
kensuketanaka
4
71k
cross_2015_trave_ec
kensuketanaka
1
3.5k
Other Decks in Technology
See All in Technology
Snowflakeの生成AI機能を活用したデータ分析アプリの作成 〜Cortex AnalystとCortex Searchの活用とStreamlitアプリでの利用〜
nayuts
0
290
異業種出身エンジニアが気づいた、転向して十数年経っても変わらない自分の武器とは
macnekoayu
0
290
ZOZOマッチのアーキテクチャと技術構成
zozotech
PRO
3
1.3k
Agile PBL at New Grads Trainings
kawaguti
PRO
1
270
Oracle Cloud Infrastructure:2025年8月度サービス・アップデート
oracle4engineer
PRO
0
200
RSCの時代にReactとフレームワークの境界を探る
uhyo
9
3k
データアナリストからアナリティクスエンジニアになった話
hiyokko_data
2
420
役割は変わっても、変わらないもの 〜スクラムマスターからEMへの転身で学んだ信頼構築の本質〜 / How to build trust
shinop
0
160
allow_retry と Arel.sql / allow_retry and Arel.sql
euglena1215
1
150
ヒューリスティック評価を用いたゲームQA実践事例
gree_tech
PRO
0
540
Skrub: machine-learning with dataframes
gaelvaroquaux
0
120
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
180
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Music & Morning Musume
bryan
46
6.8k
Practical Orchestrator
shlominoach
190
11k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Building Applications with DynamoDB
mza
96
6.6k
How GitHub (no longer) Works
holman
315
140k
Designing for Performance
lara
610
69k
The Cult of Friendly URLs
andyhume
79
6.6k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
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ਓͰΔͷͰͳ͘ɺ֤ϝϯόʔ͕ಘҙͳ͜ͱΛΔ • αʔϏε/ϓϩμΫτͷՌʹͭͳ͕Δ͔͕࠷ॏཁ • ٕज़తʹਖ਼ͯ͘͠ఏڙ͢ΔαʔϏεʹޮ͔ͳ͚ΕՌͱͯ͠ෆे
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠