Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
マイクロサービスにおける 最高のDXを目指して / Microservices vs DX
Search
Kenji Suzuki
July 23, 2019
Technology
5.3k
7
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
マイクロサービスにおける 最高のDXを目指して / Microservices vs DX
https://cloudnativedays.jp/cndt2019/
での登壇資料です
Kenji Suzuki
July 23, 2019
More Decks by Kenji Suzuki
See All by Kenji Suzuki
VPoEのアンチパターンを考える / VPoE Anti-Pattern
kenjiszk
2
870
マイクロサービスでのセキュリティパッチ含めた ライブラリ更新のつらみと取り組み / security-jaws-no13-kenjiszk
kenjiszk
2
1.2k
Rubyでブロックチェーンを実装してみた話 / Blockchain by Ruby
kenjiszk
2
640
FiNCのRelease Engineering / finc_release_engineering
kenjiszk
0
840
デプロイおじさんのお葬式 / Good-Bye Deploy Ojisan
kenjiszk
0
1.1k
イーサリアムとスマートコントラクト入門 / BlockTecCo vol.1
kenjiszk
1
510
FiNCのデータ戦略と AWSでのデータプラットフォーム構築 / Healthcare Data in FiNC
kenjiszk
0
2.4k
FiNCにおけるブロックチェーンの取り組み
kenjiszk
1
1.9k
How to manage containers in FiNC
kenjiszk
0
3.9k
Other Decks in Technology
See All in Technology
スキマバイトという雇用形態は存在しないので、雇用期間1日のアルバイト契約を事業者とワーカーが結ぶ手続きを支えるのがタイミーなんです
akitoshiga
0
200
『SAR衛星データ解析入門』のご紹介とその応用
syuchimu
0
120
エンタメ企業のM&Aを支えるデータ基盤 ― 統合から店舗のリアルタイム分析まで / Data Engineering Summit 2026
genda
0
190
Claude の新機能を、 出た日に触って社内に届けるまで
rfdnxbro
1
190
夫婦で子育てするための育児標準化
codmoninc
PRO
0
380
今さら理解するウェブフォントver.2026
takanorip
3
860
コンテナ運用におけるネットワーク・コンテナコストの削減方法/How to Reduce Network and Container Costs in Container Operations
masakiokuda
1
250
1つのリクエストを追って理解する - llm-dのP/D分離
akhino
1
160
Rustuna: Rustによる高速なOptuna実装
pfn
PRO
0
190
Classmethod Company Deck
satoshi7
1
710
JAWS-UGグッズ職人仕事の流儀
kentapapa
0
120
10年後、Engineering 行為を剥奪されるとして、わたしたちは、どう、何を創ればいいだろうか。 / If Engineering Is Taken Away in 10 Years, How and What Should We Create?
bitkey
PRO
1
200
Featured
See All Featured
Making Projects Easy
brettharned
120
6.8k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
930
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Discover your Explorer Soul
emna__ayadi
2
1.3k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
530
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
310
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Are puppies a ranking factor?
jonoalderson
2
4.1k
Being A Developer After 40
akosma
92
590k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Technical Leadership for Architectural Decision Making
baasie
3
600
How to make the Groovebox
asonas
2
2.5k
Transcript
גࣜձࣾ FiNC Technologies Kenji Suzuki ϚΠΫϩαʔϏεʹ͓͚Δ ࠷ߴͷ%9Λࢦͯ͠
• Kenji Suzuki • FiNC Technologies • Engineering Manager •
SREάϧʔϓ • ٕज़ਪਐάϧʔϓ • ೖࣾ4͘Β͍ 8IPBN*
େنʹ͍ͯ͘͠ϚΠΫϩαʔϏεΛ ؾ࣋ͪΑ͘։ൃɾӡ༻͢ΔͨΊʹͲ͏ͨ͠Βྑ͍͔ 5PEBZ`5BML
• ϚΠΫϩαʔϏε vs ϞϊϦε • ϚΠΫϩαʔϏεͲ͏ͬͯΔʁ ࠓ͞ͳ͍͜ͱ
• DX(Developer Experience)ͬͯԿʁ • Microservicesʹ͍ͭͯ • Microservicesʹ͓͚ΔDXʹ͍ͭͯߟ͑Δ • Microservicesʹ͓͚ΔDXΛྑ͘͢ΔͨΊʹ "HFOEB
DX(Developer Experience)ͬͯԿʁ
• ։ൃऀମݧ • ؾ࣋ͪΑ͘։ൃ͕Ͱ͖͍ͯΔ͔Ͳ͏͔ʁ %9 %FWFMPQFS&YQFSJFODF ͱʁ
• ؾ͕࣋ͪྑ͍։ൃͷҰྫ • γεςϜશମͷݟ௨͕͠ྑ͍ɾ࠷৽ͷυΩϡϝϯτ͕ἧ͍ͬͯΔ • ίʔυͷ࣭͕ྑ͍ • ٕज़ෛ࠴͕গͳ͍ɺ·ͨదʹཧ͞Ε͍ͯΔ • ςετσϓϩΠΛߴʹߦ͏͜ͱ͕Ͱ͖Δ
• ϥΠϒϥϦϑϨʔϜϫʔΫͷόʔδϣϯ͕ਖ਼͘͠ཧ͞Ε͍ͯΔ • ͳͲͳͲ %9͕ྑ͍ͱʁ
• ։ൃʹ༨༟͕ੜ·ΕΔ • ඇػೳཁ݅ʹख͕Ճ͑ΒΕΔ • ϦϑΝΫλϦϯάɾϦΞʔΩςΫτ͕͘͢͠ͳΔ • ۓٸͰͳ͍͕ॏཁͳ͜ͱʹ͕͘Α͏ʹͳΔ %9͕ྑ͍ͱͲ͏ͳΔʁ
• DX͕ྑ͍ঢ়ଶͰ͋Ε(։ൃʹ༨༟͕͋Ε) • ͞Βʹ։ൃ͕ؾ࣋ͪΑ͘ͳΔ׆ಈʹ࣌ؒΛׂ͚ΔΑ͏ʹͳΔ • ݁ՌతʹDX͞ΒʹΑ͘ͳΔ %9εύΠϥϧ
• DX͕ྑ͘ͳ͍ɺ͘͠Կߟ͍͑ͯͳ͍߹ • Կͯ͠ͳ͚ΕѱԽ͢Δ • ྫ • ࠷৽ͷυΩϡϝϯτ͕ἧ͍ͬͯΔʁ • ϥΠϒϥϦదʹόʔδϣϯΞοϓ͞Ε͍ͯΔʁ
%9εύΠϥϧ
%9Ͱେࣄͳͷܧଓతҡ࣋׆ಈ
Microservicesʹ͍ͭͯ
େ͖ͳγεςϜΛɺখ͘͞ɺҰͭͷׂʹׂͨ͠ͷ 8IBUJT.JDSPTFSWJDFT
• ٕज़ಛҟੑ • ճ෮ੑ • εέʔϦϯά • ৫ͷҰக • ߹Մೳੑ
• ͳͲͳͲ .FSJUTPG.JDSPTFSWJDFT
8IZ'J/$BEPQU.JDSPTFSWJDFT
ΧϥμͷશͯΛҰͭͷΞϓϦͰɻ ͱ͍͏ίϯηϓτ͕͏·͘·ͬͨ ϚΠΫϩαʔϏεͱඇৗʹ૬ੑ͕ྑ͘ɺ ৽ػೳΛߴͰϦϦʔε͖ͯͨ͠ UP$ΞϓϦ ೝূαʔϏε &$αΠτ "*ػೳ Ϋʔϙϯ ΣΞϥϒϧ
Ϩίϝϯυ ϥΠϑϩά 4/4ػೳ νϟοτ UP#αΠτ ϙΠϯτ αϓϦϝϯτ
ଟ͘ͷΞϓϦΛ։ൃɾӡ༻͍ͯ͠Δ ࢟ੳ &$αΠτ ཧऀը໘ Ϣʔβʔ ϩʔϧཧ ৯ࣄղੳ ϓϨϛΞϜձһ ݈อαʔϏε UP$ΞϓϦ
#'' νϟοτ ϥΠϑϩά UP#αΠτ ௨αʔϏε 4/4ػೳ ίϯςϯπཧ Ϣʔβʔ άϧʔϓཧ "*Ϩίϝϯυ ϓογϡ௨ UP$Σϒ ܾࡁ าΠϕϯτ νϡʔτϦΞϧ ϙΠϯτཧ ೝূج൫
Microservicesʹ͓͚ΔDXʹ͍ͭͯߟ͑Δ
.JDSPTFSWJDFTͱ%9ͷ૬ੑ MicroservicesΛ࠾༻͢ΔͱDXʹͲͷΑ͏ͳӨڹ͕͋Δ͔ʁ
ྑͦ͞͏ʹݟ͑Δ • γεςϜΛখ͘͞ΩʔϓͰ͖ΔͷͰҎԼͷ͜ͱ͕Γ͘͢ͳΔ • γεςϜશମͷݟ௨͕͠ྑ͍ɾ࠷৽ͷυΩϡϝϯτ͕ἧ͍ͬͯΔ • ίʔυͷ࣭͕ྑ͍ • ٕज़ෛ࠴͕গͳ͍ɺ·ͨదʹཧ͞Ε͍ͯΔ •
ςετσϓϩΠΛߴʹߦ͏͜ͱ͕Ͱ͖Δ • ϥΠϒϥϦϑϨʔϜϫʔΫͷόʔδϣϯ͕ਖ਼͘͠ཧ͞Ε͍͍ͯΔ
৽نػೳͷ্ཱͪ͛ʹ͍ͭͯ͞ΒʹྗΛൃش͢Δ • DXطଘͷγεςϜͷෛ࠴ʹେ͖͘ҾͬுΒΕΔͷͰ • ৽نػೳΛϚΠΫϩαʔϏεͰ্ཱͪ͛Δͷඇৗʹྑ͍ • ͍͍ͩͨ3ഒ͘Β͍ͷεϐʔυͰ͍͚Δ(ࣾൺ)
αʔϏε։ൃମ੍ʹ͍ͭͯ͏Ұߟ͑ͯ͠Έ͍ͨ ྑͦ͞͏ʹݟ͑Δͷ͕ͩ
• DXͷରऀ୭͔ʁ • ϚΠΫϩαʔϏεʹ͓͚Δڵຯͷൣғ ࠶ߟ͢Δ؍
DX = Developer Experience? %9ͷରऀ୭͔ʁ
։ൃαΠΫϧʹଟ͘ͷొਓ͕͍Δ %FWFMPQFS 2" 3FMFBTF .BJOUFOBODF 4FDVSJUZ
'J/$5FDIOPMPHJFTͷνʔϜߏ %FWFMPQFS 2" 43&4FDVSJUZ 2" 2" %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS
%FWFMPQFS
%9%FW5FTU4FD0QT&YQFSJFODF ͱͯ͠ߟ͍͑ͨ
ϚΠΫϩαʔϏεͷڵຯͷൣғ • Dev/Test/Sec/Ops ͳͲͦΕͧΕͷཱͰڵຯͷൣғ͕ҟͳΔ • ҰͭͷϚΠΫϩαʔϏεͷൣғ • ͍͔ͭ͘ͷϚΠΫϩαʔϏεΛԣஅͨ͠ൣғ • γεςϜશମ
• ͋ΔػೳΛ։ൃ͢Δͱ͖ʹɺখ ͘͞ݟ௨͠ͷΑ͍Ұͭͷൣғʹ ूத͍ͨ͠ • ͋ΔػೳΛ։ൃ͢Δͱ͖ʹɺෳ ͷΞϓϦέʔγϣϯʹखΛՃ ͑ͨ͘ͳ͍ • ଞͷ։ൃɺӡ༻ͷ߹Ͱαʔ
Ϗε։ൃΛམͱͨ͘͠ͳ͍ %FWFMPQFS 2" 43&4FDVSJUZ 2" 2" %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS ҰͭͷϚΠΫϩαʔϏε
%FWFMPQFS 2" 43&4FDVSJUZ 2" 2" %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS
͍͔ͭ͘ͷϚΠΫϩαʔϏε • ϦϦʔε୯ҐͰ߹ੑΛ୲อ͠ ͍ͨ • ೝূج൫ͳͲɺଟ͘ͷϚΠΫϩ αʔϏε͔Βґଘ͞ΕΔͷʹ ͍ͭͯଞͷϚΠΫϩαʔϏε ͷؔ৺͝ͱʹͳΒ͟ΔΛ͑ͳ͍
%FWFMPQFS 2" 43&4FDVSJUZ 2" 2" %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS %FWFMPQFS
γεςϜશମ • ڞ௨Ͱ༻͢ΔΠϯϑϥج൫ • γεςϜશମʹ͓͚Δ୯Ұো ͷഉআ • γεςϜશମͷηΩϡϦςΟϨ ϕϧҰ൪͍ͱ͜Ζʹ͋ͬͯ ͠·͏
%9%FW5FTU4FD0QT&YQFSJFODF ͱͨ͠߹ɺͲͷΑ͏ͳ͕ݟ͑ͯ͘Δ͔ʁ
ҟͳΔؔ৺ͷൣғͰɺҟͳΔΠϯηϯςΟϒ %FWFMPQFS 43&4FDVSJUZ ϚΠΫϩαʔϏεຖʹҟͳΔ ݴޠΛબ͍ͨ͠ ։ൃऀͷಘҙͳݴޠΛબͰ ͖ΔͷͰ։ൃ্͕͢Δ ࠾༻͢Δݴޠͷ͚ͩηΩϡ ϦςΟύονͷରԠ͕ඞཁ ࠾༻͢Δݴޠͷ͚ͩOpsʹ
ӡ༻͕ࣝඞཁ ͯ͢ͷ։ൃݴޠΛἧ͍͑ͨ
ϚΠΫϩαʔϏεଆʁڞ௨ج൫ଆʁ • ྫ͑ɺCI/CDͷઃఆ • αʔϏεػೳͰͳ͍͕ඞཁͳίϯϙʔωϯτ αʔϏεͷػೳ͡Όͳ͍͔Β γεςϜશମͱͯ͠ͷڞ௨ػ ೳͱͯ͠ఏڙͯ͠΄͍͠ ϏϧυखॱϦϦʔεखॱʹ ͍ͭͯΧελϚΠζ͍ͨ͠
ͷͰɺ֤ϚΠΫϩαʔϏεຖ ʹΓํΛܾΊ͍ͨ Ϗϧυํ๏ʹमਖ਼͕͋ͬͨ ߹ʹɺϚΠΫϩαʔϏεͷݸ ࡞ۀ͢Δͷਏ͍ͷͰڞ ௨ͰҰͭͷγεςϜʹ͍ͨ͠
େنԽʹΑΔෳࡶੑͷ૿Ճ • ෳͷϚΠΫϩαʔϏεʹ·͕ͨΔΑ͏ͳػೳͷ։ൃ • ҶͮΔతʹμϯͨ͠αʔϏεͷݪҼಛఆͷࠔ͞ • ϚΠΫϩαʔϏε͕૿͑Ε૿͑Δ΄Ͳෳࡶੑ͕૿͢ 4FSWJDF 4FSWJDF 4FSWJDF
େنԽʹΑΔ։ൃɾ2"ڥͷߏஙқΞοϓ • ෳͷαʔϏεΛ্্ཱͪ͛ͨͰͷಈ࡞֬ೝ͕ඞཁ • σʔλࢄ͍ͯ͠ΔͷͰ߹ੑͷऔΕͨσʔληοτ͕ඞཁ ࢟ੳ &$αΠτ ཧऀը໘ Ϣʔβʔ ϩʔϧཧ
৯ࣄղੳ ϓϨϛΞϜ ձһ ݈อαʔϏ ε UP$ΞϓϦ #'' νϟοτ ϥΠϑϩά UP#αΠτ ௨αʔϏ ε 4/4ػೳ ίϯςϯπ ཧ Ϣʔβʔ άϧʔϓཧ "*Ϩίϝϯυ ϓογϡ௨ UP$Σϒ ܾࡁ าΠϕϯτ νϡʔτϦ Ξϧ ϙΠϯτཧ ೝূج൫
ϚΠΫϩαʔϏεͳΒͰͷ֦େ • ྫ͑શϚΠΫϩαʔϏεͷηΩϡϦςΟύον • ୯७ʹಉ͡࡞ۀΛԿेճ͢Δඞཁ͕͋Δ • ϥΠϒϥϦߋ৽ͷΑ͏ͳؾΛ͏࡞ۀΛԿेճߦ͏ͷਏ͍ ࢟ੳ &$αΠτ ཧऀը໘
Ϣʔβʔ ϩʔϧཧ ৯ࣄղੳ ϓϨϛΞϜ ձһ ݈อαʔϏ ε UP$ΞϓϦ #'' νϟοτ ϥΠϑϩά UP#αΠτ ௨αʔϏ ε 4/4ػೳ ίϯςϯπ ཧ Ϣʔβʔ άϧʔϓཧ "*Ϩίϝϯυ ϓογϡ௨ UP$Σϒ ܾࡁ าΠϕϯτ νϡʔτϦ Ξϧ ϙΠϯτཧ ೝূج൫
ੜ͡Δ·ͱΊ • ΠϯηϯςΟϒͷҧ͍ʹΑΔিಥ • ڞ௨ vs ࢄʹΑΔিಥ • େنԽʹΑΔෳࡶԽ •
։ൃɺςετɺӡ༻ • αʔϏεͷݸʹൺྫͨ͠࡞ۀྔ
͜͏͍ͬͨΛແࢹͯ͠େنԽ͢Δͱ • ৽αʔϏεͷ্ཱͪ͛ૣ͍ • ݴޠͷछྨ͕૿͑Δͱɺࣾͷϊϋڞ༗͕গͳ͘ͳΔ • CI/CDपΓ͕ෆ҆ఆʹͳͬͨΓɺςετͷ͕࣌ؒ͘ͳΔ • ηΩϡϦςΟύον͕์ஔ͞ΕΔ •
ো͔࣌Βͷ෮چ͕࣌ؒ৳ͼΔ • ͖Ε͍ͳڥͰ։ൃQA͕Ͱ͖ͳ͘ͳΔ • όά͕ଟ͘ɺόάfixʹଟ͘ͷ࣌ؒΛ͏Α͏ʹͳΔ ॳҎ֎ͷ։ൃ͕͘ͳΔ
ͭ·Γ.JDSPTFSWJDFTͱ%9 • ϚΠΫϩαʔϏεͷ։ൃͷ୯ମΛམͱͣ͞ʹ • ϚΠΫϩαʔϏε୯ମ͔Β࿙Εग़͢՝Λղܾ͢Δ ࣋ଓՄೳͳ։ൃͷ࠷େԽΛࢦ͢
ؓ $*$%ͷឯ༨ۂં
$*$%୭͕ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ
$*$%୭͕ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ Πϯϑϥ୲ऀ͕σϓϩΠվमΛߦ͏ػձ͕૿͑ෆศʹ
$*$%୭͕ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ Πϯϑϥ୲ऀ͕σϓϩΠվमΛߦ͏ػձ͕૿͑ෆศʹ σϓϩΠΛ୲͢ΔϚΠΫϩαʔϏεΛ࡞Γڞ௨Խ
$*$%୭͕ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ Πϯϑϥ୲ऀ͕σϓϩΠվमΛߦ͏ػձ͕૿͑ෆศʹ σϓϩΠΛ୲͢ΔϚΠΫϩαʔϏεΛ࡞Γڞ௨Խ ଟݴޠԽ͕ਐΈෳࡶͳγεςϜʹͳΓ୲ऀҎ֎͕͞ΘΕͳ͘ͳͬͨ
$*$%୭͕ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ Πϯϑϥ୲ऀ͕σϓϩΠվमΛߦ͏ػձ͕૿͑ෆศʹ σϓϩΠΛ୲͢ΔϚΠΫϩαʔϏεΛ࡞Γڞ௨Խ αʔϏε૿Ճ͠ଓ͚ɺ୲ऀͷ࡞ۀ͕ϘτϧωοΫʹ ଟݴޠԽ͕ਐΈෳࡶͳγεςϜʹͳΓ୲ऀҎ֎͕͞ΘΕͳ͘ͳͬͨ
$*$%୭͕ཧ͢Δʁ Ұ൪࠷ॳͷϚΠΫϩαʔϏε֤ΞϓϦ͕σϓϩΠઃఆΛ͍࣋ͬͯͨ Πϯϑϥ୲ऀ͕σϓϩΠվमΛߦ͏ػձ͕૿͑ෆศʹ σϓϩΠΛ୲͢ΔϚΠΫϩαʔϏεΛ࡞Γڞ௨Խ αʔϏε૿Ճ͠ଓ͚ɺ୲ऀͷ࡞ۀ͕ϘτϧωοΫʹ ࠶ͼɺCI/CDͷઃఆΛ֤ΞϓϦʹͨ͠ ଟݴޠԽ͕ਐΈෳࡶͳγεςϜʹͳΓ୲ऀҎ֎͕͞ΘΕͳ͘ͳͬͨ
$*$%୭͕ཧ͢Δʁ • ϚΠΫϩαʔϏε͕େنͰ͋Ε֤ΞϓϦͰཧ • ͦͦϚΠΫϩαʔϏεେنͳγεςϜͷҝͷͷ͕ͩ • ymlͰهड़Ͱ͖Δ͘Β͍؆୯ʹͯ͠ࢄཧ͖͢
Microservicesʹ͓͚ΔDXΛྑ͘͢ΔͨΊʹ
.JDSPTFSWJDFTͷ%9Λྑ͘͢ΔऔΓΈ πʔϧͷಋೖ ৫తͳऔ ϚΠΫϩαʔϏε͕େنԽͨ͠ͱͯ͠ ୯ମͷ։ൃΛམͱ͞ͳ͍ҝͷπʔϧ πʔϧΛಋೖͨ͠ͱͯ͠ΧόʔͰ͖ͳ͍ ൣғΛ৫తͳऔͰϑΥϩʔ͢Δ
πʔϧͷಋೖ ৫తͳऔ ϚΠΫϩαʔϏε͕େنԽͨ͠ͱͯ͠ ୯ମͷ։ൃΛམͱ͞ͳ͍ҝͷπʔϧ πʔϧΛಋೖͨ͠ͱͯ͠ΧόʔͰ͖ͳ͍ ൣғΛ৫తͳऔͰϑΥϩʔ͢Δ
αʔϏεϝογϡɺࢄτϨʔγϯά • ෳͷϚΠΫϩαʔϏεʹ·͕ͨΔʹରͯ͠ͷରԠ • ӨڹൣғͷՄࢹԽ • ো࣌ͷಛఆͷ্ 4FSWJDF 4FSWJDF 4FSWJDF
αʔΩοτϒϨΠΧʔ • ಛఆͷαʔϏεͷো͕ଞͷαʔϏεʹӨڹ͠ͳ͍Έ • ҰͭͷোͰγεςϜશମ͕μϯ͠ͳ͍Α͏ʹ(Ops) • ϦϦʔεʹର͢Δ৺ཧతোน͕Լ͕Δ(Dev) 4FSWJDF 4FSWJDF 4FSWJDF
ΧφϦΞϦϦʔε • ϥΠϒϥϦͷΞοϓσʔτͷେ • ϑϨʔϜϫʔΫݴޠͷόʔδϣϯ্͛ಛʹཏతͳQAͷ࣮ࢪ͕ ඞཁ • ΧφϦΞϦϦʔεʹΑͬͯ͜ͷ৺ཧతোนΛԼ͛Δ ϚΠΫϩαʔϏεͷ͚ͩߦΘͳ͍ͱ ͍͚ͳ͍࡞ۀͷ୯ମͷෛ୲ΛԼ͛Δ
࢟ੳ &$αΠτ ཧऀը໘ Ϣʔβʔ ϩʔϧཧ ৯ࣄղੳ ϓϨϛΞϜ ձһ ݈อαʔϏε UP$ΞϓϦ #'' νϟοτ ϥΠϑϩά UP#αΠτ ௨αʔϏε 4/4ػೳ ίϯςϯπ ཧ Ϣʔβʔ άϧʔϓཧ "*Ϩίϝϯυ ϓογϡ௨ UP$Σϒ ܾࡁ าΠϕϯτ νϡʔτϦ Ξϧ ϙΠϯτཧ ೝূج൫
.JDSPTFSWJDFTͷෳ • ͋ΔϚΠΫϩαʔϏεΛ։ൃ/QA͢Δͱ͖ʹ • ͦͷαʔϏε͕ґଘ͢ΔϚΠΫϩαʔϏε܊Λࣗઐ༻Ͱ͖ͳλΠ ϛϯάͰ্͛ͨΓམͱͨ͠Γ͍ͨ͠ • औΓΈ • Kubernetesಋೖͨ͠Β͍͚Δͱ͍͏Θ͚Ͱͳ͍
• ϑΝʔετεςοϓ Infrastructure as a Code • σʔληοτͷ༻ҙ
ؓ ϚΠΫϩαʔϏεͷෳαάϥμϑΝϛϦΞԽ
1SPEVDUJPO 4UBHJOH 1SPEVDUJPO ४1SPEVDUJPO 4UBHJOH
४1SPEVDUJPOڥΛ࡞Γ͔͕ͨͬͨ • લఏͱͯ͠ୡ͓͔ͯ͠ͳ͍ͱ͍͚ͳ͍͜ͱ݁ߏଟ͍ • Infrastructure as a Code • ίϯςφपล͚ͩͰͳ͘ɺAWSͷϑϧϚωʔδυαʔϏεͳͲ
(SQS, Lambda, RDS, etc…) • ϒϥϯνઓུ • QA͕Մೳͳσʔληοτͷ༻ҙ • ϞλϞλ͍ͯ͠Δͱ৽͍͠ϚΠΫϩαʔϏε্ཱ͕͕ͪͬͯ ͍͚ͭͳ͘ͳ͍ͬͯ͘
πʔϧͷಋೖ ৫తͳऔ ϚΠΫϩαʔϏε͕େنԽͨ͠ͱͯ͠ ୯ମͷ։ൃΛམͱ͞ͳ͍ҝͷπʔϧ πʔϧΛಋೖͨ͠ͱͯ͠ΧόʔͰ͖ͳ͍ ൣғΛ৫తͳऔͰϑΥϩʔ͢Δ
πʔϧΛಋೖͯ͠ղܾ͠ͳ͍ͱʁ ͢ͰʹDX͕ѱ͍Օॴ ৫తʹऑ͍෦
લఏͱͯ͠ߟ͑Δ͜ͱ • ػೳ։ൃແݶʹ͋Δ • νʔϜͷ͠͞ɺख़ͳͲ • ֤νʔϜʹԡ͚͍ͯ͠͠έʔε
ஈ֊తͳऔΓΈ ՄࢹԽ ग़དྷΔॴ͔Β ͢Ͱʹߦ͖ಧ͍ͯͳ͍ͱ͜ΖΛՄࢹԽ͢Δ ͦΕΛօͰڞ༗͢Δ νʔϜʹΑΓऔΓΊΔ͜ͱόϥόϥ ग़དྷΔͱ͜Ζ͔Β࢝Ί͍ͯ͘ ࢄԽΛࢦ͢ DXΛਖ਼ͷεύΠϥϧʹͯ͠ࢄͯ͠ε έʔϧ͢Δ৫Λࢦ͍ͯ͘͠
ՄࢹԽ ग़དྷΔॴ͔Β ͢Ͱʹߦ͖ಧ͍ͯͳ͍ͱ͜ΖΛՄࢹԽ͢Δ ͦΕΛօͰڞ༗͢Δ νʔϜʹΑΓऔΓΊΔ͜ͱόϥόϥ ग़དྷΔͱ͜Ζ͔Β࢝Ί͍ͯ͘ ࢄԽΛࢦ͢ DXΛਖ਼ͷεύΠϥϧʹͯ͠ࢄͯ͠ε έʔϧ͢Δ৫Λࢦ͍ͯ͘͠
ϥΠϒϥϦͷߋ৽ɺηΩϡϦςΟΞοϓσʔτ • ԿϚΠΫϩαʔϏεΛӡ༻͍ͯ͠Δͱߦ͖ಧ͔ͳ͍෦͕ग़ͯ͘Δ • DX͕ѱ͍··์ஔ͞Ε͍ͯΔͱ͜Ζ • ྫ͑ɺ • ϥΠϒϥϦͷߋ৽ɺηΩϡϦςΟΞοϓσʔτ •
ͪͳΈʹɺͳͥDX͕ѱ͍ʁ • ͍͟࠷৽ͷόʔδϣϯʹ͋͛Δͱ͖ʹϏοάόϯϦϦʔεʹͳΔ • ์ஔͨ͠··ηΩϡϦςΟ͕ൃੜ͢Δͱඞཁͷͳ͔ͬͨରԠ࡞ۀ ʹΘΕΔ
·ͣՄࢹԽͯ͠Λڞ༗͢Δͱ͜Ζ͔Β • ֤ΞϓϦέʔγϣϯͷϥΠϒ ϥϦͷόʔδϣϯΛԣஅͯ͠ ՄࢹԽ • ͲͷΞϓϦέʔγϣϯͷόʔ δϣϯ͕͍··์ஔ͞Εͯ ͍Δ͔ΛҰྎવʹ •
ఆྫͰνΣοΫ
ՄࢹԽ ग़དྷΔॴ͔Β ͢Ͱʹߦ͖ಧ͍ͯͳ͍ͱ͜ΖΛՄࢹԽ͢Δ ͦΕΛօͰڞ༗͢Δ νʔϜʹΑΓऔΓΊΔ͜ͱόϥόϥ ग़དྷΔͱ͜Ζ͔Β࢝Ί͍ͯ͘ ࢄԽΛࢦ͢ DXΛਖ਼ͷεύΠϥϧʹͯ͠ࢄͯ͠ε έʔϧ͢Δ৫Λࢦ͍ͯ͘͠
Ͱ͖Δͱ͜Ζ͔ΒऔΓΉ • ि̍ճɺ༗ࢤͰू·ͬͯߦ͖ಧ͍͍ͯͳ͍ͱ͜ΖΛαϙʔτ͢Δ • ϥΠϒϥϦͷΞοϓσʔτ • ݴޠͷόʔδϣϯͷΞοϓσʔτ • Dockerfile, CIͷઃఆͳͲͷߋ৽ͳͲ
• νʔϜʹΑͬͯϦϦʔεཱ͕ͯࠐΜͰ͍ͨΓ͢Δ͜ͱ͕͋Δͷ ͰɺશମͰαϙʔτͰ͖Δମ੍Λ࡞Δͱྑ͍
υϝΠϯ͕͍ࣝΒͳ͍෦νʔϜʹͩ͜ΘΒͳ͍ • ྫ͑ɺηΩϡϦςΟύονΛ্͛Δ࡞ۀʹ͍ͭͯɺαʔϏε ͷυϝΠϯࣝ΄΅ෆཁ • ͦ͏͍ͬͨ࡞ۀʹ͍ͭͯɺνʔϜΘ͚ʹͩ͜ΘΒͣʹ࡞ۀՄೳ ͳϝϯόʔ͕Ͱ͖Δͱ͜Ζ͔Βย͚͍ͯ͘ͱྑ͍
ࡇΓతʹऔΓΉͷྑ͍
ՄࢹԽ ग़དྷΔॴ͔Β ͢Ͱʹߦ͖ಧ͍ͯͳ͍ͱ͜ΖΛՄࢹԽ͢Δ ͦΕΛօͰڞ༗͢Δ νʔϜʹΑΓऔΓΊΔ͜ͱόϥόϥ ग़དྷΔͱ͜Ζ͔Β࢝Ί͍ͯ͘ ࢄԽΛࢦ͢ DXΛਖ਼ͷεύΠϥϧʹͯ͠ࢄͯ͠ε έʔϧ͢Δ৫Λࢦ͍ͯ͘͠
͋Δఔମ੍͕ग़དྷ͖ͯͨΒࢄԽΛࢦ͢ • جຊతʹϚΠΫϩαʔϏεͷ։ൃମ੍Λεέʔϧͤ͞ΔͨΊʹ ࢄԽΛࢦ͍ͯ͘͠ • ৫ͱͯ͠DXͷѱ͍ͱ͜ΖʹϑΥʔΧεͯ͠DX͕ճ෮͖ͯͨ͠ Β֤νʔϜʹ͓ͤͰ͖Δঢ়ଶʹͳΔ • ਖ਼ͷεύΠϥϧɿDX͕ྑ͘ͳͬͯ͘ΕอͭݮΔ
ࢄ͢ΕԿेݸ͋Δ3BJMTͷόʔδϣϯΞοϓ • ओཁͳΞϓϦέʔγϣϯ 24hҎʹରԠྃ • Ҏʹͯ͢ͷαʔϏε ͷߋ৽͕ྃ
ѱ ྑ DX %9͕ѱ͍Օॴ Λಛఆ ՄࢹԽ ৫త ʹఈ্͛ ࢄԽ
ѱ ྑ DX %9͕ѱ͍Օॴ Λಛఆ ՄࢹԽ ৫త ʹఈ্͛ ࢄԽ ※
ίπ • ಛఆ͠ղܾ͢ΔΛͳΔ͘খ͘͞ • ҰͭҰͭ͜ͳͯ͠ԣల։͍ͯ͘͠
·ͱΊ
·ͱΊ • ϚΠΫϩαʔϏεʹ͓͚ΔDXͷ্ʹ͍ͭͯߟ͑ͨ • DXͷରऀDevTestSecOpsͱ֦ு͢Δ • ϚΠΫϩαʔϏεͷDXΛ্ͤ͞Δʹ • ϚΠΫϩαʔϏεͷ୯ମͷ։ൃΛམͱͣ͞ʹ •
ϚΠΫϩαʔϏεͷ֎ʹ࿙Εग़ؔ͢৺Λ͏·͘ѻ͍ͬͯ͘ • ͦͷͨΊʹ • πʔϧʹΑΔΞϓϩʔν • ৫ʹΑΔΞϓϩʔν