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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kentana20
April 21, 2016
Technology
9
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
130k
一休での開発における改善の取組み /devops-at-ikyu
kensuketanaka
13
10k
一休.com における改善事例のご紹介 /ikyu-storage-improvement
kensuketanaka
6
11k
開発合宿@京都 /hack-camp-kyoto
kensuketanaka
0
4k
ikyu-frontend
kensuketanaka
21
7.4k
sushi_route_2015
kensuketanaka
0
250
qiita meetup#12
kensuketanaka
4
72k
cross_2015_trave_ec
kensuketanaka
1
3.5k
Other Decks in Technology
See All in Technology
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
3
1.1k
『誰の責任?』で揉めるのをやめて、エラーバジェットで判断するようにした ~感情論をデータで終わらせる、PMとエンジニアの意思決定プロセス~
coconala_engineer
0
1.7k
AIで「ふとした疑問」を即座に検証する 〜定量で圧倒するN1理解〜
kakehashi
PRO
3
730
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
43k
AIエージェントで変わる開発プロセス ― レビューボトルネックからの脱却
lycorptech_jp
PRO
2
600
Java ランタイムからカスタムランタイムに行き着くまで
ririru0325
0
110
LINEヤフーにおけるAI駆動開発組織のプロデュース施策
lycorptech_jp
PRO
0
120
【Developers Summit 2026】Memory Is All You Need:コンテキストの「最適化」から「継続性」へ ~RAGを進化させるメモリエンジニアリングの最前線~
shisyu_gaku
5
700
Generative UI を試そう!A2-UIでAIエージェントにダッシュボードを作らせてみた
kamoshika
1
300
技術キャッチアップ効率化を実現する記事推薦システムの構築
yudai00
2
140
Kubernetes環境周りの責任範囲をいい機会なので考える / Taking the Opportunity to Clarify Kubernetes Responsibilities
kohbis
1
110
あすけん_Developers_Summit_2026_-_Vibe_Coding起点での新機能開発で__あすけん_が乗り越えた壁.pdf
iwahiro
0
730
Featured
See All Featured
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
74
Making Projects Easy
brettharned
120
6.6k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
190
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Abbi's Birthday
coloredviolet
2
5k
Paper Plane (Part 1)
katiecoart
PRO
0
4.8k
Crafting Experiences
bethany
1
65
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
It's Worth the Effort
3n
188
29k
Faster Mobile Websites
deanohume
310
31k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
130
Building the Perfect Custom Keyboard
takai
2
700
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 • σβΠφʔͷϫʔΫϑϩʔʹӨڹΛ༩͑ա͗ͳ͍ Α͏ʹܭըத
·ͱΊɾॴײ
·ͱΊɾॴײ(ࣗռ) • ࣗಈԽ͚ͩͰಓ • ࣗಈԽʴใڞ༗ʹܗࣜ • ʑͷ։ൃͷճΓڧԽΑ͍αʔϏεΛͭ͘Δ ͨΊʹෆՄܽ • ࣗಈԽޙ՝ग़ଓ͚Δɻܧଓ͢Δ͜ͱ͕େࣄ
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠