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
520
積極的なソフトウェア構成管理の活用方法
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
500
アジャイルとDevOps - はじめる前に
tnagasawa
1
970
Going Agile with Tools - #RSGT2020
tnagasawa
1
13k
We got regarding DevOps so far - だいたいわかる DevOps
tnagasawa
1
420
プロジェクト管理とツール #JBUG 岡山2
tnagasawa
1
840
できるだけシンプルにしたいプロジェクトマネジメント
tnagasawa
2
4.4k
あなたの推しテクをもっと伝えるプレゼンテーション術 #AWSDevDay
tnagasawa
8
13k
現場にあった プロジェクトマネジメントを探求する ウォーターフォール or アジャイル
tnagasawa
7
4.7k
Other Decks in Technology
See All in Technology
持続可能なソフトウェア開発を支える『GitHub CI/CD実践ガイド』
tmknom
8
1.4k
スタッフエンジニアの道: The Staff Engineer’s Path
snoozer05
PRO
44
14k
OR学会2024秋_短期収益と将来のオフ方策評価性能を考慮したクーポン割当方策混合比の決定
recruitengineers
PRO
4
470
Cloud Run と GitHub Template Repository による軽量なアプリケーションプラットフォーム/ #nikkei_tech_talk
nikkei_engineer_recruiting
0
110
たった1人からはじめる【Agile Community of Practice】~ソース原理とFearless Changeを添えて~
ktc_corporate_it
1
500
効果的なオンコール対応と障害対応
ryuichi1208
6
3.1k
内製化を目指す事業会社が、システム開発会社と共に進める「開発生産性改善」の取り組み事例 #devsumi
yuwji
1
110
ナレッジグラフとLLMの相互利用
koujikozaki
0
420
Google CloudのLLM活用の選択肢を広げるVertex AIのパートナーモデル
nayuts
0
130
「自動テストのプラクティスを効果的に学ぶためのカードゲーム」 ( #sqip2024 )
teyamagu
PRO
2
180
不動産tech Product Night#2_AIことはじめ_GA橋本
takehikohashimoto
0
190
JEP 480: Structured Concurrency
aya_ebata
0
130
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
294
20k
Designing the Hi-DPI Web
ddemaree
278
34k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
5
480
Optimising Largest Contentful Paint
csswizardry
31
2.8k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
0
120
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Docker and Python
trallard
39
3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
28
1.6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
41
6.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
29
2.6k
Done Done
chrislema
180
16k
BBQ
matthewcrist
83
9.2k
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