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
積極的なソフトウェア構成管理の活用方法
Search
長沢 智治 - NAGASAWA, Tomoharu
December 22, 2015
Technology
0
570
積極的なソフトウェア構成管理の活用方法
SQiP にて実施したソフトウェア構成管理入門の資料です
長沢 智治 - NAGASAWA, Tomoharu
December 22, 2015
Tweet
Share
More Decks by 長沢 智治 - NAGASAWA, Tomoharu
See All by 長沢 智治 - NAGASAWA, Tomoharu
2つのモードで学ぶ辛くないスクラム #RSGT2021
tnagasawa
1
16k
「正解のない時代」のチームワーク
tnagasawa
0
510
アジャイルとDevOps - はじめる前に
tnagasawa
1
980
Going Agile with Tools - #RSGT2020
tnagasawa
1
13k
We got regarding DevOps so far - だいたいわかる DevOps
tnagasawa
1
420
プロジェクト管理とツール #JBUG 岡山2
tnagasawa
1
850
できるだけシンプルにしたいプロジェクトマネジメント
tnagasawa
2
4.4k
あなたの推しテクをもっと伝えるプレゼンテーション術 #AWSDevDay
tnagasawa
8
13k
現場にあった プロジェクトマネジメントを探求する ウォーターフォール or アジャイル
tnagasawa
8
4.8k
Other Decks in Technology
See All in Technology
LINEヤフーのフロントエンド組織・体制の紹介【24年12月】
lycorp_recruit_jp
0
530
Amazon Kendra GenAI Index 登場でどう変わる? 評価から学ぶ最適なRAG構成
naoki_0531
0
110
スタートアップで取り組んでいるAzureとMicrosoft 365のセキュリティ対策/How to Improve Azure and Microsoft 365 Security at Startup
yuj1osm
0
210
C++26 エラー性動作
faithandbrave
2
730
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
280
WACATE2024冬セッション資料(ユーザビリティ)
scarletplover
0
190
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
Amazon SageMaker Unified Studio(Preview)、Lakehouse と Amazon S3 Tables
ishikawa_satoru
0
150
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
330
オプトインカメラ:UWB測位を応用したオプトイン型のカメラ計測
matthewlujp
0
170
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
3
3k
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
310
Featured
See All Featured
RailsConf 2023
tenderlove
29
940
Building Applications with DynamoDB
mza
91
6.1k
Documentation Writing (for coders)
carmenintech
66
4.5k
Practical Orchestrator
shlominoach
186
10k
Why Our Code Smells
bkeepers
PRO
335
57k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
810
Producing Creativity
orderedlist
PRO
341
39k
Designing for humans not robots
tammielis
250
25k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
97
Transcript
ੵۃతͳιϑτΣΞߏཧ ͷ׆༻ํ๏ ஐ࣏ ΞτϥγΞϯגࣜձࣾγχΞΤόϯδΣϦετ ɹ @tnagasawaɹɹɹɹre-workstyle.com ιϑτΣΞߏཧͷաڈɾݱࡏ
1996 ΠϯςοΫ ιϑτΣΞΤϯδχΞ 2000 3BUJPOBM4PGUXBSF ϓϩηεվળίϯαϧλϯτ 2003 ຊΞΠɾϏʔɾΤϜ ϓϩηεվળίϯαϧλϯτ 2005
#PSMBOE4PGUXBSF ϓϩηεվળίϯαϧλϯτ ιϦϡʔγϣϯΞʔΩςΫτ 2007 .JDSPTPGU ΤόϯδΣϦετ ϓϩμΫτϚωʔδϟ 2014 γχΞΤόϯδΣϦετ ༁ڞஶॻଟ ϓϨθϯςʔγϣϯڠྗ Speaker
Agenda ֓ཁ Έ ظʹԠ͑ΔιϑτΣΞ ιϑτΣΞߏཧ
Agenda ֓ཁ ιϑτΣΞߏཧ ڱٛͱٛ ߏཁૉ पลߏ
ڱٛͱٛ ιϑτΣΞߏཧ 1-1
ڱٛͱٛ ιϑτΣΞߏཧ ιϑτΣΞͷมߋΛ ίϯτϩʔϧ͠ଓ͚Δ͜ͱ ׂՌΛڮ͢͠Δ ຊདྷͷʹྗՄೳʹ
ιϑτΣΞߏཧ ιϑτΣΞͷมߋΛ ίϯτϩʔϧ͠ଓ͚Δ͜ͱ ׂՌΛڮ͢͠Δ ຊདྷͷʹྗՄೳʹ ҙਤͨ͠ιϑτΣΞΛ ࡞ΔͨΊʹඞཁͳج൫ٕज़
ҙਤͨ͠ιϑτΣΞΛ ࡞ΔͨΊʹඞཁͳج൫ٕज़ ҙਤͨ͠ιϑτΣΞͷ՝ ཁٻͷదԠ ฒߦ࡞ۀ ࢄԽͷରԠ దਖ਼ͳϦϦʔε
ҙਤͨ͠ιϑτΣΞͷ՝ ཁٻͷదԠ ฒߦ࡞ۀ ࢄԽͷରԠ దਖ਼ͳϦϦʔε ෳࡶ͞ͷܰݮ ιϑτΣΞ։ൃͷෳࡶ͞ͷܰݮͷՌ͔Βͷ Ξϓϩʔν͕ιϑτΣΞߏཧͰ͢ɻ ෳࡶ͞ͷܰݮɺଞʹϞσϦϯάɺΞʔΩςΫνϟͳͲ ߟ͑ΒΕ·͢ɻ
มߋґཔChange Requests ػೳՃόάվम ཁٻͷมߋ ཁٻόοΫϩά ιʔείʔυεΫϦϓτ ϏϧυՌύοέʔδ ϦϦʔε τϦΞʔδ $$#มߋཧҕһձ
ٛͷ ιϑτΣΞߏཧ ڱٛͷ ιϑτΣΞߏཧ ڱٛͷιϑτΣΞߏཧɺ ୯ʹόʔδϣϯཧΛݴΘΕΔ͜ͱ͋Γ·͢ɻ
Agenda ֓ཁ ιϑτΣΞߏཧ ڱٛͱٛ ߏཁૉ पลߏ
ߏཁૉೳྗ ιϑτΣΞߏཧ 1-2
ߏཁૉೳྗ ιϑτΣΞߏཧ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ ϏϧυϦϦʔε੍ޚ ϓϩηε੍ޚ ιʔείʔυεΫϦϓτ ͷߏͷόʔδϣχϯά ιʔείʔυεΫϦϓτ ͷߏͷόʔδϣχϯά
ϏϧυՌύοέʔδ શମͷΦʔΨφΠζͱϫʔΫϑϩʔ ڱٛͷιϑτΣΞߏཧʹɺ όʔδϣϯཧؚ͕·Ε·͢ɻ
ߏཁૉೳྗ ιϑτΣΞߏཧ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ Work Products | Development ։ൃऀ ։ൃνʔϜ
check out check in / commit όʔδϣϯཧϦϙδτϦ͚ͩͰͳ͘ɺ ϫʔΫεϖʔεʹ͖͢Ͱ͢ɻ
ߏཁૉೳྗ ιϑτΣΞߏཧ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ Work Products | Build Ϗϧυbot ։ൃνʔϜ
check out ϏϧυϦϦʔε੍ޚ store / deploy ϏϧυՌ ιϑτΣΞߏཧɺࣗಈϏϧυʹ ͱͬͯෆՄܽͳج൫ͱͳΓ·͢ɻ
ߏཁૉೳྗ ιϑτΣΞߏཧ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ ϏϧυϦϦʔε੍ޚ ϓϩηε੍ޚ Work Products ։ൃνʔϜ ιϑτΣΞ։ൃɺνʔϜ׆ಈͰ͋Γɺ
ಉ࣌ฒྻ࡞ۀͰ͋Δ͜ͱΛΕͯͳΓ·ͤΜɻ
Agenda ֓ཁ ιϑτΣΞߏཧ ڱٛͱٛ ߏཁૉ पลߏ
पลߏ ιϑτΣΞߏཧ 1-3
पลߏ ιϑτΣΞߏཧ ϓϩηεͷجຊཁૉ αϙʔτγεςϜ
ϓϩηεͷجຊཁૉ ಈػߦಈ ਓׂ Ռ ϓϩηεͷجຊཁૉʹ͍ͭͯɺ 3BUJPOBM6OJGJFE1SPDFTTͰ໌จԽ͞Ε͍ͯ·͢ɻ
ޙߦఔ ಈػߦಈ ਓׂ Ռ ΞαΠϯ ࡞ۀ લߦఔ ϓϩηεͷࢹ
ಈػߦಈ ਓׂ Ռ ཧ༝ ࡞ۀ લߦఔ ޙߦఔ ཧ༝ ׂͷࢹ ࡞ۀऀͰ͋Δʮׂʯ͔ΒݟΔͱɺՌ
࡞ۀͷ݁ՌͰ͋ΓɺνʔϜͰڞ༗͢Δʹ ʮಈػʯ͚͕ͮඞཁͰ͢ɻ
ಈػߦಈ ਓׂ Ռ ޙߦఔ ࡞ۀऀ ཧ༝ Ռͷࢹ લߦఔ ՌͷࢹͰɺલޙؔಈػ͕ෆ͔֬ͱͳΔ͜ͱ͕ ଟ͋͘Γ·͢ɻ͜ΕɺιϑτΣΞߏཧ͚ͩͰΛ࣮ફ͢Δ
͜ͱͷ͠͞ͱݴ͍͑Δ͜ͱ͕Ͱ͖·͢ɻ
ಈػߦಈ ਓׂ Ռ લߦఔ ޙߦఔ ࡞ۀऀ ཧ༝ ڱٛͷ ιϑτΣΞߏཧͷࢹ ϓϩηεվળΛόʔδϣϯཧπʔϧͷಋೖ͚ͩͰ
ߦ͏έʔε͕ଟ͍Ͱ͕͢ɺ࣮ࠔͳΞϓϩʔνʹͳΔ ߹͕ଟ͍͜ͱ͓ͬͯ͘ͱΑ͍Ͱ͠ΐ͏ɻ
ޙߦఔ ಈػߦಈ ਓׂ Ռ ΞαΠϯ ࡞ۀ લߦఔ 7FSTJPO$POUSPM4ZTUFN *TTVF5SBDLJOH4ZTUFN αϙʔτγεςϜ
"VUPNBUFE#VJME
αϙʔτγεςϜ มߋґཔChange Requests ػೳՃόάվम ཁٻͷมߋ ཁٻόοΫϩά ιʔείʔυεΫϦϓτ ϏϧυՌύοέʔδ ϦϦʔε τϦΞʔδ
$$#มߋཧҕһձ ITS SCM CI
֬ೝ ֓ཁ ιϑτΣΞߏཧ ڱٛͱٛ ߏཁૉ पลߏ
ιϑτΣΞߏཧ ιϑτΣΞͷมߋΛ ίϯτϩʔϧ͠ଓ͚Δ͜ͱ ׂՌΛڮ͢͠Δ ຊདྷͷʹྗՄೳʹ
ߏཁૉೳྗ ιϑτΣΞߏཧ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ ϏϧυϦϦʔε੍ޚ ϓϩηε੍ޚ
มߋґཔChange Requests ػೳՃόάվम ཁٻͷมߋ ཁٻόοΫϩά ιʔείʔυεΫϦϓτ ϏϧυՌύοέʔδ ϦϦʔε τϦΞʔδ $$#มߋཧҕһձ
ITS SCM CI ෳࡶ͞ͷܰݮʹΑΓ͍ͭͰߏΛࣝผެ։Ͱ͖Δ͜ͱ
֓ཁ Agenda Έ ظʹԠ͑ΔιϑτΣΞ ιϑτΣΞߏཧ
֓ཁ Έ ಛͱதԝूதཧ ࢄཧ ಋೖࢦ Agenda ιϑτΣΞߏཧ
ಛ ιϑτΣΞߏཧγεςϜ 2-1
ಛ ιϑτΣΞߏཧγεςϜ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ ϏϧυϦϦʔε੍ޚ ϓϩηε੍ޚ ೳྗΛαϙʔτ͢ΔγεςϜ
ιϑτΣΞߏཧγεςϜ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ ϦϙδτϦ ࣝผͱ࠶ݱ ೳྗΛαϙʔτ͢ΔγεςϜ w Ռͷ֨ೲ w ՌͷόʔδϣϯԽ
w ՌߏؔͷόʔδϣϯԽ w ҆શͳՌͷࣝผ w ҆શͳՌͷऔಘͱߋ৽ w ҆શͳՌͷར༻ͱҾ͖͠ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ ಛ ϦϙδτϦ
ιϑτΣΞߏཧγεςϜ ϫʔΫεϖʔε੍ޚ ϦϙδτϦ ࣝผͱ࠶ݱ ೳྗΛαϙʔτ͢ΔγεςϜ w Ռͷ֨ೲ w ՌͷόʔδϣϯԽ w
ՌߏؔͷόʔδϣϯԽ w ҆શͳՌͷࣝผ w ҆શͳՌͷऔಘͱߋ৽ w ҆શͳՌͷར༻ͱҾ͖͠ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ όʔδϣϯ੍ޚ ಛ ϦϙδτϦ ্ॻ͖ͷ
ιϑτΣΞߏཧγεςϜ ϫʔΫεϖʔε੍ޚ ϦϙδτϦ ࣝผͱ࠶ݱ ೳྗΛαϙʔτ͢ΔγεςϜ w Ռͷ֨ೲ w ՌͷόʔδϣϯԽ w
ՌߏؔͷόʔδϣϯԽ w ҆શͳՌͷࣝผ w ҆શͳՌͷऔಘͱߋ৽ w ҆શͳՌͷར༻ͱҾ͖͠ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ όʔδϣϯ੍ޚ ಛ ϦϙδτϦ
ιϑτΣΞߏཧγεςϜ ϫʔΫεϖʔε੍ޚ ϦϙδτϦ ࣝผͱ࠶ݱ ೳྗΛαϙʔτ͢ΔγεςϜ w Ռͷ֨ೲ w ՌͷόʔδϣϯԽ w
ՌߏؔͷόʔδϣϯԽ w ҆શͳՌͷࣝผ w ҆શͳՌͷऔಘͱߋ৽ w ҆શͳՌͷར༻ͱҾ͖͠ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ όʔδϣϯ੍ޚ ಛ ϦϙδτϦ ࣗಈϏϧυʹͱͬͯ ϫʔΫεϖʔεॏཁͰ͢ɻ
ϫʔΫεϖʔε੍ޚ όʔδϣϯ੍ޚ νΣοΫΠϯίϛοτ νΣοΫΞτ ϒϥϯν Ϛʔδ ιϑτΣΞߏཧγεςϜ ೳྗΛαϙʔτ͢ΔγεςϜ ϦϙδτϦ w
Ռͷ֨ೲ w ՌͷόʔδϣϯԽ w ՌߏؔͷόʔδϣϯԽ όʔδϣϯ੍ޚ ࣝผͱ࠶ݱ w ҆શͳՌͷࣝผ w ҆શͳՌͷऔಘͱߋ৽ w ҆શͳՌͷར༻ͱҾ͖͠ ϫʔΫεϖʔε੍ޚ ಛ ϦϙδτϦ
ιϑτΣΞߏཧγεςϜ ϫʔΫεϖʔε੍ޚ ೳྗΛαϙʔτ͢ΔγεςϜ όʔδϣϯ੍ޚ ಛ ϏϧυϦϦʔε੍ޚ ͲͷόʔδϣϯͰߏ͞Ε͍ͯΔ͔ʁ Ͳ͏Ϗϧυ͔ͨ͠ʁ Ͳ͜ʹϦϦʔε͔ͨ͠ʁ ϏϧυͱϦϦʔε
ιʔείʔυͷࣝผͱ࠶ݱੑ͚ͩͰͳ͘ɺϏϧυͱϦϦʔεͷ ߏΛࣝผ͢Δ͜ͱ͋ΒΏΔιϑτΣΞʹͱͬͯॏཁͰ͢ɻ
ιϑτΣΞߏཧγεςϜ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ ϏϧυϦϦʔε੍ޚ ϓϩηε੍ޚ ೳྗΛαϙʔτ͢ΔγεςϜ ಛ w ҡ࣋ w
աͳଐਓੑͷഉআ w ϛεͱखؒͷܰݮ w ؆ૉԽ త w ϙϦγʔ w "$- w ࣄલ݅ w ࣄޙ݅ खஈ ϓϩηεͱϙϦγʔ ϓϩηεͱϙϦγʔɺϑΥʔϚϧͳ౷੍͚ͩͰ ͳ͘ɺਓҝతϛεͷܰݮɺۉ࣭ԽɺϧʔνϯϫʔΫͷ վળͱܰݮʹܨ͕ΔઓུతͳͷͰ͢ɻ
தԝूதཧ ιϑτΣΞߏཧγεςϜ 2-1
தԝूதཧ ιϑτΣΞߏཧγεςϜ ϫʔΫεϖʔε੍ޚ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ
தԝूதཧ ιϑτΣΞߏཧγεςϜ ϫʔΫεϖʔε੍ޚ όʔδϣϯ੍ޚ ϫʔΫεϖʔε੍ޚ ಛ w ୯ҰϦϙδτϦ w ཧͷूதԽ͕༰қ
w ੍ޚͷूதԽ͕༰қ w ৗʹϦϙδτϦʹଓ ྫ 4VCWFSTJPO 47/ c$MFBS$BTFc5'4 5'7$ πʔϧɺΦϯϓϨϛεͰͷՔಇ͕ଟ͍Ͱ͢ɻ ϗεςΟϯάαʔϏε͋Γ·͕͢ɺݶఆతͰ͢ɻ
֓ཁ Έ ಛͱதԝूதཧ ࢄཧ ಋೖࢦ Agenda ιϑτΣΞߏཧ
ࢄཧ %7$4 ιϑτΣΞߏཧγεςϜ 2-2
ࢄཧ %7$4 ιϑτΣΞߏཧγεςϜ remote local local local local local local
local local ϫʔΫεϖʔε ϦϙδτϦ ࢄ ϫʔΫεϖʔε
ࢄཧ %7$4 ιϑτΣΞߏཧγεςϜ remote local ϫʔΫεϖʔε ϦϙδτϦ ࢄ master bugfix
clone
ࢄཧ %7$4 ιϑτΣΞߏཧγεςϜ remote local ϫʔΫεϖʔε ϦϙδτϦ ࢄ master bugfix
master bugfix clone
ࢄཧ %7$4 ιϑτΣΞߏཧγεςϜ remote local ϫʔΫεϖʔε ϦϙδτϦ ࢄ master bugfix
master bugfix commit push
ࢄཧ %7$4 ιϑτΣΞߏཧγεςϜ remote local ϫʔΫεϖʔε ϦϙδτϦ ࢄ master bugfix
master bugfix commit push
ࢄཧ %7$4 ͷಛ ιϑτΣΞߏཧγεςϜ remote local ࢄϦϙδτϦ w SFNPUFͱ࡞ۀڥͷMPDBM͕͋Δ w
ϓϩηε੍ޚ͕ͮ͠Β͍ local master bugfix MPDBMϦϙδτϦ w ࡞ۀڥͰಠࣗʹόʔδϣϯཧͰ͖Δ w ӨڹΛ༩͑ͣʹ͜·ΊʹཤྺΛͤΔ w ෆඞཁͳཤྺ੍ޚͰ͖Δ w lͱ౷߹zΛݸผʹ੍ޚͰ͖Δ
ಛ w ࢄϦϙδτϦ w ཧͷࢄԽ͕༰қ w ੍ޚ͕ෳࡶ w ΦϑϥΠϯରԠ͕༰қ ྫ
(JUc.FSDVSJBM )( ࢄཧ %7$4 ͷಛ ιϑτΣΞߏཧγεςϜ remote local master bugfix master bugfix local local
֓ཁ Έ ಛͱதԝूதཧ ࢄཧ ಋೖࢦ Agenda ιϑτΣΞߏཧ
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ 2-3
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ 㾎 සൟͳมߋ͕͋Δ 5%%ͳͲ 㾎 ཧతʹࢄ͍ͯ͠Δ 㾎 Γ͕͠ར͘
㾎 ෳࡶͳϒϥϯνઓུ 㾎 ଞγεςϜͱͷ࿈ܞ 㾎 ιʔγϟϧίʔσΟϯά ࢄόʔδϣϯཧγεςϜ DVCS ͻͱͭͰͯ·Ε
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ 㾎 ؇͔ͳมߋ͕͋Δ 㾎 ৗʹϦϙδτϦʹଓͰ͖Δ 㾎 ݎ࣮Ͱެࣜͳߏཧ 㾎 ఆܕతͳϒϥϯνઓུ
㾎 ଞγεςϜ࿈ܞͷࣄ 㾎 ϝϯόʔͷख़ தԝूதόʔδϣϯཧγεςϜ CVCS ͯͯ͢·Ε
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ ࢄόʔδϣϯཧγεςϜ DVCS ΞδϟΠϧϓϥΫςΟε Ϟμϯϒϥϯνઓུ ٛͷιϑτΣΞߏཧ
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ ࢄόʔδϣϯཧγεςϜ DVCS ΞδϟΠϧϓϥΫςΟε ෮ ϑΟʔυόοΫ ಛɿ ϓϥΫςΟεͷྫɿ ςετۦಈ։ൃ
ܧଓతΠϯςάϨʔγϣϯ
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ ࢄόʔδϣϯཧγεςϜ DVCS Ϟμϯϒϥϯνઓུ HJUqPXɿ Develop Feature A master
Release Hotfix Feature B v 1.0 v 1.1 v 2.0 HJUGMPXɺϕετϓϥΫςΟεͷͻͱͭͯ͠ΒΕ ͍ͯ·͕͢ɺݱʹԠͯ͡ɺΑΓγϯϓϧͳӡӦΛ ͢Δ͜ͱ͕ॏཁͰ͢ɻෳࡶ͞ΛϒϥϯνͰ࡞Βͳ͍Α͏ʹɻ
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ ࢄόʔδϣϯཧγεςϜ DVCS Ϟμϯϒϥϯνઓུ 1VMM3FRVFTU.PEFM (JU)VC'MPX ɿ Develop Feature
A push remote local Feature A Pull Request merge ྫ (JU)VCc#JUCVDLFUc(JU-BC ϓϧϦΫΤετɺଟ͘ͷ%7$4Ϧϙδ τϦγεςϜͰ࠾༻͞Ε͍ͯ·͢ɻ (JU)VC #JUCVDLFUͷ4BB4ܕ͕༗໊Ͱ͕͢ɺ #JUCVDLFU4FSWFS(JU)VC&OUFSQSJTF (JU-BCͳͲͷΦϯϓϨϛεՔಇ͋Γ·͢ɻ
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ ࢄόʔδϣϯཧγεςϜ DVCS ٛͷιϑτΣΞߏཧ SCM ITS CI มߋґཔ ػೳՃόάվम
ཁٻͷมߋ ཁٻ όοΫϩά ιʔείʔυ εΫϦϓτ ϏϧυՌ ύοέʔδ ϦϦʔε τϦΞʔδ $$#มߋཧҕһձ %7$4ʹରԠͨ͠*54 $*γεςϜ͕ɺ૿Ճ͠ ͍ͯΔʹ͋Γ·͢ɻ
ಋೖͷࢦ ιϑτΣΞߏཧγεςϜ ࢄόʔδϣϯཧγεςϜ DVCS มߋґཔ ػೳՃόάվम ཁٻͷมߋ ཁٻ όοΫϩά ιʔείʔυ
εΫϦϓτ ϏϧυՌ ύοέʔδ ϦϦʔε τϦΞʔδ $$#มߋཧҕһձ ITS SCM CI • JIRA • Redmine • Git • Mercurial • Jenkins • Bamboo • Circle CI
֓ཁ Έ ಛͱதԝूதཧ ࢄཧ ಋೖࢦ ιϑτΣΞߏཧ ֬ೝ
ಛʹॏཁͳΈ ιϑτΣΞߏཧγεςϜ ϦϙδτϦ w Ռͷ֨ೲ w ՌͷόʔδϣϯԽ w ՌߏؔͷόʔδϣϯԽ όʔδϣϯ੍ޚ
ࣝผͱ࠶ݱ w ҆શͳՌͷࣝผ w ҆શͳՌͷऔಘͱߋ৽ w ҆શͳՌͷར༻ͱҾ͖͠ ϫʔΫεϖʔε੍ޚ
தԝूதόʔδϣϯཧγεςϜ CVCS ͭͷ7$4 ιϑτΣΞߏཧγεςϜ remote local local local ࢄόʔδϣϯཧγεςϜ DVCS
Ϟμϯϒϥϯνઓུ ιϑτΣΞߏཧγεςϜ 1VMM3FRVFTU.PEFM (JU)VC'MPX ɿ Develop Feature A push remote
local Feature A Pull Request merge
֓ཁ Agenda Έ ظʹԠ͑ΔιϑτΣΞ ιϑτΣΞߏཧ
Έ ֓ཁ ظʹԠ͑ΔιϑτΣΞ ϏδωεͱιϑτΣΞ࣭ ੵۃతͳߏཧ Agenda ιϑτΣΞߏཧ
%FW0QT ϏδωεχʔζͱιϑτΣΞ࣭ 3-1
%FW0QT ϏδωεχʔζͱιϑτΣΞ࣭ Ϗδωε ։ൃ ӡ༻ Ϗδωεඪ ചΓ্͛རӹ Ϣʔβʔ ੜ࢈ੑՔಇ ϏδωεۦಈϜʔϒϝϯτ
։ൃɾӡ༻ͷͦΕͧΕͷϛογϣϯͱՁ؍ Ͱͳ͘ɺϏδωεඪͱ,1*ͷઓུతͳߩݙ Λܧଓతʹҙࣝ͢Δඞཁ͕͋Γ·͢ɻ
%FW0QT ϏδωεχʔζͱιϑτΣΞ࣭ Ϗδωε ϏδωεۦಈϜʔϒϝϯτ ։ൃ ӡ༻ Πϯγσϯτ มߋ ΞΠσΞόά
ίʔυ ϦϦʔε ϏδωεͷϦζϜcαΠΫϧλΠϜɾڞಉॴ༗ɾಁ໌ੑɾࣗಈԽলྗԽ ιϑτΣΞߏཧɺ։ൃͱӡ༻ͷڠௐ ͷͨΊͷใΠϯϑϥͱͯ͠ෆՄܽͱͳͬͯ ͖͍ͯ·͢ɻ
%FW0QT ϏδωεχʔζͱιϑτΣΞ࣭ ιϑτΣΞߏཧͷείʔϓͷ֦େ ։ൃ ӡ༻ Πϯγσϯτ มߋ ΞΠσΞόά ίʔυ
ϦϦʔε ϏδωεͷϦζϜcαΠΫϧλΠϜɾڞಉॴ༗ɾಁ໌ੑɾࣗಈԽলྗԽ ڞಉॴ༗ ։ൃίʔυ ӡ༻ίʔυ ( IaC ) *B$*OGSBTUSVDUVSFBT$PEFʹΑΓΠϯϑ ϥͷίʔυԽ͕ଅਐ͞ΕɺΞϓϦͱΠϯϑϥΛ౷ ੍ͩͯͯߏͰ͖ΔΑ͏ʹͳ͖ͬͯ·ͨ͠ɻ
%FW0QT ϏδωεχʔζͱιϑτΣΞ࣭ ιϑτΣΞߏཧͷείʔϓͷ֦େ ։ൃ ӡ༻ Πϯγσϯτ มߋ ΞΠσΞόά ίʔυ
ϦϦʔε ϏδωεͷϦζϜcαΠΫϧλΠϜɾڞಉॴ༗ɾಁ໌ੑɾࣗಈԽলྗԽ ڞಉॴ༗ ։ൃίʔυ ӡ༻ίʔυ ( IaC ) Ϗδωεχʔζ ϏδωεՁ ٛͷ4$.
Έ ֓ཁ ظʹԠ͑ΔιϑτΣΞ ϏδωεͱιϑτΣΞ࣭ ੵۃతͳߏཧ Agenda ιϑτΣΞߏཧ
ιϑτΣΞߏཧ ੵۃతͳ 3-2
ιϑτΣΞߏཧ ੵۃతͳ
Ռͱ࡞ۀͷෳࡶԽʹΑΓɺϝϯόʔ ϚωδϝϯτຊۀͰͳ͘ɺใऔूʹ࣌ؒΛ ͱΒΕΔ͕͋Γ·͢ɻ
ՌͷҰݩԽͱɺ*54ʹΑΔใ౷੍ ใ )VC ʹΑΓɺຊۀʹྗͰ͖Δڥ͕͍·͢ɻ
ΞΠσΞ ϏδωεՁ ίʔυ Ϗϧυ ಈ͘ιϑτΣΞ όοΫϩά ιϑτΣΞ։ൃʹ͓͚Δ ใͷฏқɺཻɺՁ؍͞·͟·Ͱ͢ɻ
ΞΠσΞ ϏδωεՁ ίʔυ Ϗϧυ ಈ͘ιϑτΣΞ όοΫϩά ITS ITS SCM CI
CI *54 4$.$*ʹΑΓใͷྲྀ௨Λ੍ޚ͠ɺ ιϑτΣΞ։ൃͷෳࡶΛܰݮ͠·͢ɻ 4$.͚ͩͰվળͰ͖ͳ͍Λҙ͠·͢ɻ
ΞΠσΞ ϏδωεՁ ίʔυ όοΫϩά λεΫ ιϑτΣΞߏཧෆՄܽͰ͕͢ɺ ͦΕ͚ͩͰͳɺίϛϡχέʔγϣϯͱ ίϥϘϨʔγϣϯʹෆ͍ͯ͠Δͱҙ͖͢Ͱ͢ɻ
ιϑτΣΞߏཧ ੵۃతͳ w'MPXPG7BMVF wڞಉॴ༗ wιʔγϟϧίʔσΟϯά ू߹ ʮ'MPXPG7BMVFʯͱɺΞΠσΞ͕ϏδωεՁʹͳΔ·ͰͷྲྀΕΛॏࢹ͖͢ͱ͍͏͜ͱͰ͢ɻ ֤ఔͰͷਐΑΓɺՁΛσϦόϦʔͰ͖͔ͨʹॏ͖Λஔ͖·͢ɻ ʮιʔγϟϧίʔσΟϯάʯɺϑΥʔϚϧͳߏཧΑΓɺݟʹऩूͱվળೳྗʹظ͢ΔΞϓϩʔνͰ ΦʔϓϯιʔεϓϩδΣΫτͰ࣮ફ͞Ε͍ͯΔΓํͰ͢ɻ͜ͷΓํʹΑΓɺ৽ٕज़ཁٻ͕ݻ·Γʹ͍͘
ιϑτΣΞ։ൃͰɺೳྗΛ࠷େԽͰ͖Δ͜ͱ͕ظ͞Ε͍ͯ·͢ɻ
Έ ֓ཁ ظʹԠ͑ΔιϑτΣΞ ϏδωεͱιϑτΣΞ࣭ ੵۃతͳߏཧ ιϑτΣΞߏཧ ֬ೝ
%FW0QT ϏδωεχʔζͱιϑτΣΞ࣭ ιϑτΣΞߏཧͷείʔϓͷ֦େ ։ൃ ӡ༻ Πϯγσϯτ มߋ ΞΠσΞόά ίʔυ
ϦϦʔε ϏδωεͷϦζϜcαΠΫϧλΠϜɾڞಉॴ༗ɾಁ໌ੑɾࣗಈԽলྗԽ ։ൃίʔυ ӡ༻ίʔυ ( IaC ) Ϗδωεχʔζ ϏδωεՁ ٛͷ4$.
·ͱΊ ֓ཁ Έ ظʹԠ͑ΔιϑτΣΞ ιϑτΣΞߏཧ
Thank you! Tomoharu Nagasawa • Senior Evangelist • Atlassian •
@tnagasawa ແྉͰߨԋݱ๚ͷ͝ґཔΛঝΓ·͢ɻ ͓ؾܰʹɺ͝࿈བྷ͍ͩ͘͞ɻ FNBJMUOBHBTBXB!BUMBTTJBODPN