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
一休.comにおけるデプロイフローと自動化 /ikyu-deploy-flow
Search
kentana20
April 21, 2016
Technology
9
8.9k
一休.comにおけるデプロイフローと自動化 /ikyu-deploy-flow
サイボウズ✕一休合同勉強会での発表資料です
kentana20
April 21, 2016
Tweet
Share
More Decks by kentana20
See All by kentana20
一休.comでの開発組織改善の取り組みとこれから /improve-ikyu-devlove-x
kensuketanaka
24
37k
株式会社一休 会社紹介資料 / introduce-ikyu
kensuketanaka
15
110k
一休での開発における改善の取組み /devops-at-ikyu
kensuketanaka
13
10k
一休.com における改善事例のご紹介 /ikyu-storage-improvement
kensuketanaka
6
11k
開発合宿@京都 /hack-camp-kyoto
kensuketanaka
0
3.8k
ikyu-frontend
kensuketanaka
21
7.3k
sushi_route_2015
kensuketanaka
0
210
qiita meetup#12
kensuketanaka
4
71k
cross_2015_trave_ec
kensuketanaka
1
3.4k
Other Decks in Technology
See All in Technology
ドメイン特化なCLIPモデルとデータセットの紹介
tattaka
1
300
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
320
GeminiとNotebookLMによる金融実務の業務革新
abenben
0
240
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
4
490
AWS Organizations 新機能!マルチパーティ承認の紹介
yhana
1
210
5min GuardDuty Extended Threat Detection EKS
takakuni
0
180
生成AIで小説を書くためにプロンプトの制約や原則について学ぶ / prompt-engineering-for-ai-fiction
nwiizo
4
3.2k
本が全く読めなかった過去の自分へ
genshun9
0
660
Model Mondays S2E03: SLMs & Reasoning
nitya
0
230
asken AI勉強会(Android)
tadashi_sato
0
130
モバイル界のMCPを考える
naoto33
0
290
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
210
Featured
See All Featured
Side Projects
sachag
455
42k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
940
Being A Developer After 40
akosma
90
590k
A Modern Web Designer's Workflow
chriscoyier
694
190k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
How STYLIGHT went responsive
nonsquared
100
5.6k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
Transcript
Ұٳ.com ʹ͓͚Δ σϓϩΠϑϩʔͱࣗಈԽ ʙαΠϘζ✕Ұٳ ߹ಉษڧձʙ Kensuke Tanaka (@kentana20)
About me • ాத ݈հ • @kentana20 • 20065݄͔ΒҰٳ •
॓ധαʔϏε։ൃ(9) →γεςϜຊ෦(1)
Agenda • Ұٳ.com & ࠾༻ٕज़ / Tools • σϓϩΠϑϩʔͷੲͱࠓ •
ͦͷଞͷࣗಈԽࣄྫ • ՝ͱ͜Ε͔Β
About Ұٳ.com ࠾༻ٕज़ / Tools
About Ұٳ.com
None
Ұٳ.com • ओྗαʔϏε • ্࣭ͳϗςϧɾཱྀؗͷ༧αʔϏε • 20005݄Φʔϓϯͷ15ࡀ
Ұٳ.com KPI (2015.03) • ձһ: 400ສ+ • ϗςϧ/ཱྀؗ: 2,600ࢪઃ+ •
ؒൢചࣨ: 189ສࣨ+
͓ͱͳΓ͞·
࠾༻ٕज़ / Tools
࠾༻ٕज़ / Tools • ASP.NET WebForms/MVC (VB/C#) • IIS, SQLServer,
Solr • Sass, Compass • GitHub Enterprise • nxlog, Fluentd, Elasticsearch, Google Big Query • Jenkins, Selenium WebDriver • NewRelic, Kibana, Bugsnag • Redmine, Trello, Slack, Hubot
σϓϩΠϑϩʔͷੲͱࠓ
ੲ
ੲ (~2014) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ
%FQMPZ ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU
ੲ (~2014) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ
%FQMPZ ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU
ੲ (~2014) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ
%FQMPZ ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU ΄΅खಈ ΤϯδχΞ͕൪(िସΓ)Ͱ࣮ࢪ
ੲ (~2014) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ
%FQMPZ ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU ΄΅खಈ ΤϯδχΞ͕൪(िସΓ)Ͱ࣮ࢪ
ੲ (~2014) ϩʔΧϧ ڥ 3FQPTJUPSZ 4VCWFSTJPO $IFDLPVU $PNNJU 5BH 4UBHJOHڥ
%FQMPZ ຊ൪ڥ %FQMPZ ϩʔΧϧ ڥ 5FTU ΄΅खಈ ΤϯδχΞ͕൪(िସΓ)Ͱ࣮ࢪ खಈ ΤϯδχΞ͕୲Ͱ࣮ࢪ
ੲ (~2014) • VCSSubversion • Tag࡞ʙStaging/ProductionͷσϓϩΠखಈ • σϓϩΠޙͷओಋઢςετͪΖΜखಈ
ੲ (~2014) • VCSSubversion • Tag࡞ʙStaging/ProductionͷσϓϩΠखಈ • σϓϩΠޙͷओಋઢςετͪΖΜखಈ • ӡ༻ෛՙେ
• ϦϦʔεසԼ(ि1ճ)
ੲ (~2014) • VCSSubversion • Tag࡞ʙStaging/ProductionͷσϓϩΠखಈ • σϓϩΠޙͷओಋઢςετͪΖΜखಈ ࣗಈԽͩ
গ͠ੲ (~20159݄) • VCSGitHub Enterpriseʹมߋ • CI(Jenkins)ͰStagingͷσϓϩΠࣗಈ • σϓϩΠޙͷओಋઢςετSeleniumͰࣗಈ •
ຊ൪ͷϦϦʔεि2ճʹ
None
গ͠ੲͷσϓϩΠϑϩʔ ϓϧϦΫmerge (खಈ) 4UBHJOH ϦϦʔε༻ ϓϧϦΫ࡞ ίʔϧ ϦϦʔε༻ ϓϧϦΫ࡞ ϓϧϦΫ63-
8FC)PPL %FQMPZ σϓϩΠ୲ Production %FQMPZ खಈ
গ͠ੲͷϒϥϯνઓུ NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF
NFSHF 1VMM3FRVFTU Production %FQMPZ %FQMPZ
গ͠ੲͷϒϥϯνઓུ NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF
NFSHF 1VMM3FRVFTU Production %FQMPZ %FQMPZ վળ͞Ε͖ͯͨ
࣌ͷ՝ • ຊ൪ϦϦʔεʹབྷΉ࡞ۀखಈ͕ओ • ࢮ׆ࢹͷOn/Off • ϑΝΠϧಉظͷOn/Off • ϩʔυόϥϯαͰͷϊʔυΓ͠/෮ؼ etc..
• masterͷmergeʹ͋·Γҙຯ͕ͳ͔ͬͨ • StagingࢿࡐΛͬͯຊ൪ϦϦʔε • σϓϩΠʹؔ࿈͢Δ࡞ۀઐ୲͕࣮ࢪ
࣌ͷ՝ • ຊ൪ϦϦʔεʹབྷΉ࡞ۀखಈ͕ओ • ࢮ׆ࢹͷOn/Off • ϑΝΠϧಉظͷOn/Off • ϩʔυόϥϯαͰͷϊʔυΓ͠/෮ؼ etc..
• masterͷmergeʹ͋·Γҙຯ͕ͳ͔ͬͨ • StagingࢿࡐΛͬͯຊ൪ϦϦʔε • σϓϩΠʹؔ࿈͢Δ࡞ۀઐ୲͕࣮ࢪ
গ͠ੲͷϒϥϯνઓུ NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF
NFSHF 1VMM3FRVFTU Production %FQMPZ %FQMPZ
গ͠ੲͷϒϥϯνઓུ NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF
NFSHF 1VMM3FRVFTU Production %FQMPZ %FQMPZ masterͷmergeͰ ԿͷΠϕϯτൃੜ͠ͳ͍
গ͠ੲͷϒϥϯνઓུ NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF
NFSHF 1VMM3FRVFTU Production %FQMPZ %FQMPZ releasemergeͯ͠ॳΊͯ StagingͷσϓϩΠ͕࣮ߦ
গ͠ੲͷϒϥϯνઓུ NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF
NFSHF 1VMM3FRVFTU Production %FQMPZ %FQMPZ ͳΜ͔͓͔͍͠
՝ͷݪҼ(༧ଌ) • master mergeʹىҼͯ͠ԿͷΠϕϯτൃੜ͠ͳ͍ • master mergeͷۓுײ͕Լ • release mergeޙͷStagingͰෆ۩߹͕Ұఆׂ߹Ͱ
ൃੜ͢Δࣄ͕ܧଓ
՝ͷݪҼ(༧ଌ) • master mergeʹىҼͯ͠ԿͷΠϕϯτൃੜ͠ͳ͍ • master mergeͷۓுײ͕Լ • release mergeޙͷStagingͰෆ۩߹͕Ұఆׂ߹Ͱ
ൃੜ͢Δࣄ͕ܧଓ master mergeͰଈStaging ʹσϓϩΠͰ͖ΕΑ͍
վળޙͷϒϥϯνઓུ(ݱࡏ) NBTUFS GYYY GYYY GYYY DIFDLPVU NFSHF 1VMM3FRVFTU 4UBHJOH SFMFBTF
NFSHF 1VMM3FRVFTU Production
࣌ͷ՝ • ຊ൪ϦϦʔεʹབྷΉ࡞ۀखಈ͕ओ • ࢮ׆ࢹͷOn/Off • ϑΝΠϧಉظͷOn/Off • ϩʔυόϥϯαͰͷϊʔυΓ͠/෮ؼ etc..
• masterͷmergeʹ͋·Γҙຯ͕ͳ͔ͬͨ • StagingࢿࡐΛͬͯຊ൪ϦϦʔε • σϓϩΠʹؔ࿈͢Δ࡞ۀઐ୲͕࣮ࢪ
ຊ൪σϓϩΠखಈ ϓϧϦΫmerge (खಈ) 4UBHJOH ϦϦʔε༻ ϓϧϦΫ࡞ ίʔϧ ϦϦʔε༻ ϓϧϦΫ࡞ ϓϧϦΫ63-
8FC)PPL %FQMPZ σϓϩΠ୲ Production %FQMPZ खಈ
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ#
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ϑΝΠϧಉظΛఀࢭ
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ϑΝΠϧಉظΛఀࢭ
WebαʔόάϧʔϓAͷ ΞΫηεΛःஅ
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ϑΝΠϧಉظΛఀࢭ
WebαʔόάϧʔϓAͷ ΞΫηεΛःஅ ৽ࢿࡐΛσϓϩΠ
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ϑΝΠϧಉظΛఀࢭ
WebαʔόάϧʔϓBͷ ΞΫηεΛःஅ
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ϑΝΠϧಉظΛఀࢭ
WebαʔόάϧʔϓBͷ ΞΫηεΛःஅ ৽ࢿࡐΛσϓϩΠ
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ϑΝΠϧಉظΛఀࢭ
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ϑΝΠϧಉظΛఀࢭ
৽ࢿࡐΛσϓϩΠ
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ#
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ݴ͏·Ͱͳ͘
πϥ͍
ຊ൪σϓϩΠ 8FCαʔόάϧʔϓ" ཧ݉ ࢮ׆ࢹαʔό ϦϦʔε࣌ຊ൪ڥͷ ཧαʔόʹϦϞʔτϩάΠϯͯ͠࡞ۀ ϑΝΠϧಉظαʔό ϩʔυόϥϯα 8FCαʔόάϧʔϓ# ϢʔβʹՁΛఏڙ͢Δ
εϐʔυΛ্͛ΔͨΊʹ ຊ൪σϓϩΠࣗಈԽ
վળޙͷσϓϩΠϑϩʔ(ݱࡏ) ϓϧϦΫmerge (खಈ) ϦϦʔε༻ ϓϧϦΫ࡞ ίʔϧ ϦϦʔε༻ ϓϧϦΫ࡞ ϓϧϦΫ63- 8FC)PPL
%FQMPZ σϓϩΠ୲ Production
SlackͰϦϦʔε༻ϓϧϦΫ࡞
ϦϦʔε༻ϓϧϦΫ
ݱࡏ (201510݄~) • ProductionͷσϓϩΠࣗಈʹ • master mergeޙɺStagingσϓϩΠ • release mergeޙɺProductionσϓϩΠ
• ϦϦʔε݄ʙͷि4ճʹ • ϦϦʔεӡ༻ସΘΓͰ։ൃऀ͕࣮ࢪ
ݱࡏ (201510݄~) • ProductionͷσϓϩΠࣗಈʹ • master mergeޙɺStagingσϓϩΠ • release mergeޙɺProductionσϓϩΠ
• ϦϦʔε݄ʙͷि4ճʹ • ϦϦʔεӡ༻ସΘΓͰ։ൃऀ͕࣮ࢪ ͍ͩͿΑ͘ͳ͖ͬͯ·ͨ͠
ͦͷଞͷࣗಈԽࣄྫ
։ൃڥͷࣗಈԽ
None
։ൃڥͷηοτΞοϓࣗಈԽ • ϨϙδτϦͷClone • ֤छϛυϧΣΞͷΠϯετʔϧɺઃఆ • ڥมɺϨδετϦɺACLͷઃఆ • ॳճϏϧυˍϩʔΧϧαʔόىಈ
ϒϥϯνσϓϩΠ
None
։ൃ༻ϒϥϯνΛखܰʹσϓϩΠ • ίʔυϨϏϡʔʹఴ͑Δ • master mergeલʹϚʔέɺΧελϚʔαϙʔτʹ ඇಉظʹσϞ
ChatOps
ChatOps • ίʔυϨϏϡʔ / αϙʔτͷࣗಈΞαΠϯ • ேձ௨ • ఆظϛʔςΟϯά༻ΤϯτϦ࡞ •
ि࣍൪
ίʔυϨϏϡʔ / αϙʔτͷΞαΠϯ
ఆظϛʔςΟϯά༻ΤϯτϦ
ि࣍൪
ৄࡉBlogͰ “ChatOps” Ͱ άάΕग़͖ͯ·͢
՝ͱ͜Ε͔Β
CIଐਓԽ
CIଐਓԽ • Jenkinsͷׂ͕ঃʑʹ૿Ճ • Staging / ProductionͷϏϧυɾσϓϩΠ • E2E •
ϒϥϯνσϓϩΠ
Jenkinsδϣϒଟա͗
CIଐਓԽ • ։ൃऀࣗͷۀʹؔ࿈͢Δδϣϒ͕ѲͰ͖ͳ͍ • ΈࠐΜͩຊਓ͔͠δϣϒνΣʔϯͱׂ͕ѲͰ͖ ͣɺJenkins͓͡͞ΜԽݱ͕ൃੜ
CIଐਓԽ • ղফʹ͚ͯ • αʔϏεͷϨϙδτϦͰCIδϣϒΛίʔυཧ Ͱ͖ΔCIܥSaaSͷҠߦΛܭըத
ϨϙδτϦσΧ͗͢
ϨϙδτϦσΧ͗͢ • σβΠϯࢿࡐͯ͢Gitཧ • σβΠφʔͱσϓϩΠϑϩʔΛἧ͑ΔͨΊʹ࣮ࢪ • ϨϙδτϦαΠζ͕1.5Ͱ4ഒʹ • clone /
fetch / pull ͳͲͷૢ࡞ͰλΠϜΞτ ൃੜ
ϨϙδτϦσΧ͗͢ • Ұ෦ͷσβΠϯࢿࡐΛGitཧ͠ͳ͍ํͰݕ౼த • ੩తϖʔδͷը૾ϑΝΠϧ etc • σβΠφʔͷϫʔΫϑϩʔʹӨڹΛ༩͑ա͗ͳ͍ Α͏ʹܭըத
·ͱΊɾॴײ
·ͱΊɾॴײ(ࣗռ) • ࣗಈԽ͚ͩͰಓ • ࣗಈԽʴใڞ༗ʹܗࣜ • ʑͷ։ൃͷճΓڧԽΑ͍αʔϏεΛͭ͘Δ ͨΊʹෆՄܽ • ࣗಈԽޙ՝ग़ଓ͚Δɻܧଓ͢Δ͜ͱ͕େࣄ
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠