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
クラウドネイティブな開発環境への移行/Move to the cloud native d...
Search
Takuma Kume
December 04, 2019
Technology
690
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
クラウドネイティブな開発環境への移行/Move to the cloud native development environment
KIXS #10
Takuma Kume
December 04, 2019
More Decks by Takuma Kume
See All by Takuma Kume
SRE/インフラエンジニアの市場価値とキャリアパス/Market value and career path for SRE-infrastructure engineers
takumakume
2
1.6k
【新卒研修】共通言語としてのSRE/SRE as a common language
takumakume
0
300
DDoSとの終わりなき戦い2025/endless_battle_with_ddos_attack_2025
takumakume
3
190
事業部CTOの現在地(パネルディスカッション)/Current-location-of-Division-CTO
takumakume
0
230
ロリポップ! for Gamersを支えるインフラ/lolipop for gamers infrastructure
takumakume
0
1.8k
ロリポップ! for Gamersの立ち上げ/lolipop for gamers launch
takumakume
0
3k
ホモグラフドメインを検出してみた/detect homograph domain
takumakume
0
810
ソフトウェアの継続的アップデートをコンテナ化によって加速させる/Accelerate continuous software updates with containerization
takumakume
0
5.7k
KubernetesにおけるSBOMを利用した脆弱性管理/Vulnerability_Management_with_SBOM_in_Kubernetes
takumakume
2
3.2k
Other Decks in Technology
See All in Technology
NetBoxを利用した作業効率化の試み_NetDevNight4
tnoha
0
470
AI駆動開発は個人技からチーム戦へ:組織でAIを使いこなすための実践設計
moongift
PRO
0
460
20260807_第6回_関東kaggler会LT_claw系bot xangiと始める、"寂しくない" kaggle
sugupoko
0
160
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
17
6.2k
Forza Horizon 6 のテレメトリ機能で 自動運転に使えそうな学習データを集める話
henjin0
0
140
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
2
540
【CEDEC2026】次世代デジタルカードゲームのサーバー設計と運用 〜『Shadowverse: Worlds Beyond』の舞台裏~
cygames
PRO
1
930
AIエージェントを前提としたプラットフォーム エンジニアリング:GKEで作るAgent-Ready Golden Path
legalontechnologies
PRO
1
210
Retriever と Reranker、結局どうする?
kazuaki
3
680
事業価値と Engineering 2026年度版
recruitengineers
PRO
41
21k
え?フロントエンドエンジニアの ワイがインフラも!?
puku0x
1
340
Featured
See All Featured
Writing Fast Ruby
sferik
630
63k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
400
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Facilitating Awesome Meetings
lara
57
7.1k
Producing Creativity
orderedlist
PRO
348
40k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
980
Joys of Absence: A Defence of Solitary Play
codingconduct
1
430
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
New Earth Scene 8
popppiees
3
2.5k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
200
From π to Pie charts
rasagy
0
250
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
160
Transcript
,*94 ։ൃڥͷมભͱ ΫϥυωΠςΟϒͷҠߦ
(.0ϖύϘגࣜձࣾ ٱถഅ!UBLVNBLVNF ιϑτΣΞΤϯδχΞ
None
αʔϏε։͔࢝Β վળ͠์Ͱ͢ʂ
ϩϦϙοϓʂͷݱࡏͷߏͱϑΣʔζ w ϩϦϙοϓʂͷ8FCαΠτίϯτϩʔϧύωϧͳͲͷ8FCΞϓϦ έʔγϣϯɺ0QFOTUBDLͰߏங͞ΕͨϓϥΠϕʔτΫϥυ্ʹ 7.ͱͯ͠ߏ͞Ε͍ͯΔɻ w ݱࡏɺΫϥυωΠςΟϒͳڥΛࢦͯ͠ɺ·ͣ։ൃڥ͔Β LVCFSOFUFTपลٕज़ͷಋೖΛߦ͍ͬͯΔɻ w ࠓޙɺϓϩμΫγϣϯڥΫϥυωΠςΟϒͳٕज़Λಋೖ͍ͯ͠
͘༧ఆͱͳ͍ͬͯΔɻ
ຊͷ͓ wϩϦϙοϓͷ։ൃڥͷมભͱͦΕͧΕͷ՝ wϩϦϙοϓͰߏஙͨ͠ΫϥυωΠςΟϒͳ ։ൃڥΛݱঢ়ͷ՝Λަ͑ͯհ ΫϥυωΠςΟϒͳ։ൃڥΛࢧ͑Δཁૉٕज़ͷৄ͍͠આ໌࣌ؒͷ߹্ɺҰ෦ׂѪ͍ͯ͠·͢ɻ ϦϑΝϨϯεΛ͚͍ͭͯΔͷͰޙ΄Ͳޚཡ͍ͩ͘͞ʂ
ͱ͜ΖͰɺ օ͞Μ͕ීஈ͏։ൃڥ ΫϥυωΠςΟϒͰ͔͢ʁ
ग़యIUUQTTQFBLFSEFDLDPNKBDPQFOGFJCJJQNPVDMPVEOBUJWFGBMTFTIJKJF
ग़యIUUQTTQFBLFSEFDLDPNKBDPQFOGFJCJJQNPVDMPVEOBUJWFGBMTFTIJKJF
։ൃڥ͜͜Ͱ ࣌ͷมભͱͱʹ ଟ͘ͷมԽ͕͋Γ·ͨ͠
ཧαʔό ,7. BQQ BQQ ཧαʔό ,7. ձࣾͷย۱ͷαʔόʔࣨ "1* %# 1$
" σϓϩΠ BQQΛ։ൃʹ͍·͢ʙ ڞ༻7.ظ
ཧαʔό ,7. BQQ BQQ ཧαʔό ,7. ձࣾͷย۱ͷαʔόʔࣨ "1* %# 1$
" σϓϩΠ BQQΛ։ൃʹ͍·͢ʙ ڞ༻7.ظ 1$ # !"͞Μ BQQΛগ͍͍ͨ͠Ͱ͢ʂ
ཧαʔό ,7. BQQ BQQ ཧαʔό ,7. ձࣾͷย۱ͷαʔόʔࣨ "1* %# 1$
" WJIUUQEDPOG ڞ༻7.ظ ͳΜ͔ಈ͔Μ IUUQEDPOGΠδΔ͔
ཧαʔό ,7. BQQ BQQ ཧαʔό ,7. ձࣾͷย۱ͷαʔόʔࣨ ࣾ-"/ "1* %#
" σϓϩΠ ڞ༻7.ظ 1$ # BQQΛ։ൃʹ͍·͢ʙ !IFSF BQQͷαʔό͕ ಈ͔ͳ͍ΜͰ͚͢Ͳʂ ͏ͬԶͩ
ཧαʔό ,7. ձࣾͷย۱ͷαʔόʔࣨ "1* %# ϩʔΧϧ7.ظ 1$ 7JSUVBM#PY BQQ BQQ
WBHSBOU ϓϩμΫγϣϯڥΛDIFGͰ ίʔυԽͨ͜͠ͱͰɺखݩͷ WBHSBOUVQ࣌ʹDIFGͰ ϓϩϏδϣχϯά͢Δߏʹ ڞ༻ͷ%#Ҡߦ͍ͯ͠ͳ͍Ұ෦ϩʔϧ -"/Ͱ௨৴͢Δ ։ൃ͕׆ൃͳϩʔϧ͔ΒҠߦ͍ͯͬͨ͠
ཧαʔό ,7. ձࣾͷย۱ͷαʔόʔࣨ "1* %# ϩʔΧϧ7.ظ 1$ 7JSUVBM#PY BQQ BQQ
WBHSBOU ͏ͬىಈ͠ͳ͘ͳͬͨ DIFG͕͏·͘ಈ͍ͯͳ͍ ։ൃڥΩϨΠʹ͍ͨ͠ͷͰҰ࡞Γ͢ʙ ͏ͬϓϩϏδϣχϯά݁ߏ͔͔࣌ؒΔͳ ͳΜ͔͠ΒΜ͚Ͳಈ͔Μ͘ͳͬͨΜͰ͢
ϖύϘͰɺ ΤϯδχΞ͚ͩͰͳ͘ σβΠφʔಉ͡։ൃڥΛ ͍ͬͯ·͢ɻ
ཧαʔό ,7. ձࣾͷย۱ͷαʔόʔࣨ "1* %# ϩʔΧϧίϯςφظ 1$ %PDLFS BQQ BQQ
EPDLFSDPNQPTF ΞϓϦΛίϯςφԽͯ͠ खݩͷιʔείʔυΛϚϯτͯ͠ ։ൃͰ͖ΔΑ͏ʹͳͬͨ
ཧαʔό ,7. ձࣾͷย۱ͷαʔόʔࣨ "1* %# ϩʔΧϧίϯςφظ 1$ %PDLFS BQQ BQQ
EPDLFSDPNQPTF ͳΜ͔͠ΒΜ͚Ͳಈ͔Μ͘ͳͬͨΜͰ͢ ɾखݩͷΠϝʔδ͕ݹ͍ ɾผͷίϯςφͱϙʔτ͕ඃͬͯಈ͍ͯͳ͍ ɹίϯςφ͕͋Δ ɾ͍Ζ͍ΖͳαʔϏεͷ։ൃڥ͕खݩʹཚཱͯ͠ ɹύϑΥʔϚϯε͕
͕ൃੜ͢Δʹɺ ΤϯδχΞ͕ग़ಈ͢Δඞཁ͕͋Δ͠ɺ ґཔ͢Δଆਏ͍
ڥґଘͷղܾͷ߹ ͦͷਓͷ1$ΛआΓͯ ΞϨίϨ͢Δඞཁ͋ͬͯ ੜ࢈ੑ͕͍
ΫϥυωΠςΟϒͳ։ൃڥʹͯ͠ ͜ͷ՝Λղܾ͢Δʂ
։ൃڥʹٻΊͨ͜ͱ w͖ͳ࣌ʹ͙͑͢Δ wյΕͯ؆୯ʹͱʹΔ wڥґଘʹΑΔ͕ൃੜ͠ʹ͍͘ wৗʹ࠷৽ͷڥΛ͑Δ
BQQ BQQ BQQ BQQ 6TFS" 6TFS# ϓϥΠϕʔτΫϥυ 0QFOTUBDL ,VCFSOFUFT σʔληϯλʔ
ཧαʔό ,7. ձࣾͷย۱ͷαʔόʔࣨ "1* %# ·ͩҠߦͰ͖ͯͳ͍ ϩʔϧ 1$ " 1$ # ݱࡏͷ։ൃڥ
BQQ BQQ BQQ BQQ 6TFS" 6TFS# ϓϥΠϕʔτΫϥυ 0QFOTUBDL ,VCFSOFUFT σʔληϯλʔ
ཧαʔό ,7. ձࣾͷย۱ͷαʔόʔࣨ "1* %# 1$ " 1$ # ݱࡏͷ։ൃڥ BQQ BQQ BQQ BQQ 6TFS" 6TFS# 1$ " 1$ # ݸผͷ։ൃڥΛ༻ҙͯ͠ ͖ͳ࣌ʹ͑Δ
BQQ BQQ BQQ BQQ 6TFS" 6TFS# ϓϥΠϕʔτΫϥυ 0QFOTUBDL ,VCFSOFUFT σʔληϯλʔ
ཧαʔό ,7. ձࣾͷย۱ͷαʔόʔࣨ "1* %# 1$ " 1$ # ݱࡏͷ։ൃڥ ,VCFSOFUFT LVCFSOFUFTΛ࠾༻͍ͯ͠ΔͷͰ ͕ൃੜͯ͠ݩʹ͍͢͠
BQQ BQQ BQQ BQQ 6TFS" 6TFS# ϓϥΠϕʔτΫϥυ 0QFOTUBDL ,VCFSOFUFT σʔληϯλʔ
ཧαʔό ,7. ձࣾͷย۱ͷαʔόʔࣨ "1* %# 1$ " 1$ # ݱࡏͷ։ൃڥ Ϋϥυ্ʹ։ൃڥ͕͋ΔͨΊ खݩͷڥґଘͷ͕ ൃੜ͠ʹ͍͘ BQQ BQQ BQQ BQQ 6TFS" 6TFS# ϓϥΠϕʔτΫϥυ 0QFOTUBDL ,VCFSOFUFT σʔληϯλʔ
։ൃڥʹٻΊͨ͜ͱ w͖ͳ࣌ʹ͙͑͢Δ wյΕͯ؆୯ʹͱʹΔ wڥґଘʹΑΔ͕ൃੜ͠ʹ͍͘ wৗʹ࠷৽ͷڥΛ͑Δ
ৗʹ࠷৽ͷڥΛ͑Δ ΞϓϦͷมߋΛ NBTUFSϒϥϯνʹ 1VTI ΞϓϦͷϦϙδτϦ ։ൃऀ "SHP$% NBTUFSϒϥϯνͷ มߋΛࢹ ΞϓϦͷίϯςφ
ΠϝʔδΛ #VJME1VTI 1VTI )PPL 1PMM 1VTI NBOJGFTUTͷ JNBHFUBHΛ ࠷৽ʹVQEBUF LVCFSOFUFTͷNBOJGFTUT ͷϦϙδτϦ QSJWBUF EPDLFSSFHJTUSZ 1VTI NBOJGFTUTΛ LVCFSOFUFTڥʹ LVCFDUMͰBQQMZ "QQMZ ։ൃڥͷ LVCFSOFUFTDMVTUFS (JU0QTΛ࣮ݱ͢Δ $%πʔϧ
ৗʹ࠷৽ͷڥΛ͑Δ ΞϓϦͷมߋΛ NBTUFSϒϥϯνʹ 1VTI ΞϓϦͷϦϙδτϦ ։ൃऀ "SHP$% NBTUFSϒϥϯνͷ มߋΛࢹ ΞϓϦͷίϯςφ
ΠϝʔδΛ #VJME1VTI 1VTI )PPL 1PMM 1VTI NBOJGFTUTͷ JNBHFUBHΛ ࠷৽ʹVQEBUF LVCFSOFUFTͷNBOJGFTUT ͷϦϙδτϦ QSJWBUF EPDLFSSFHJTUSZ 1VTI NBOJGFTUTΛ LVCFSOFUFTڥʹ LVCFDUMͰBQQMZ "QQMZ ։ൃڥͷ LVCFSOFUFTDMVTUFS (JU0QTΛ࣮ݱ͢Δ $%πʔϧ ΞϓϦͷίϯςφ ΠϝʔδΛ #VJME1VTI NBOJGFTUTͷ JNBHFUBHΛ ࠷৽ʹVQEBUF NBOJGFTUTΛ LVCFSOFUFTڥʹ LVCFDUMͰBQQMZ 5BTL 5BTL 5BTL 1JQFMJOF https://speakerdeck.com/pyama86/cloudnative-buildpacksdechuang-ru-cloudnativenakai-fa-ti-yan?slide=45
։ൃڥʹٻΊͨ͜ͱ w͖ͳ࣌ʹ͙͑͢Δ wյΕͯ؆୯ʹͱʹΔ wڥґଘʹΑΔ͕ൃੜ͠ʹ͍͘ wৗʹ࠷৽ͷڥΛ͑Δ
ΞϓϦͷมߋΛ NBTUFSϒϥϯνʹ 1VTI ΞϓϦͷϦϙδτϦ ։ൃऀ "SHP$% NBTUFSϒϥϯνͷ มߋΛࢹ ΞϓϦͷίϯςφ ΠϝʔδΛ
#VJME1VTI 1VTI )PPL 1PMM 1VTI NBOJGFTUTͷ JNBHFUBHΛ ࠷৽ʹVQEBUF LVCFSOFUFTͷNBOJGFTUT ͷϦϙδτϦ QSJWBUF EPDLFSSFHJTUSZ 1VTI NBOJGFTUTΛ LVCFSOFUFTڥʹ LVCFDUMͰBQQMZ "QQMZ ։ൃڥͷ LVCFSOFUFTDMVTUFS (JU0QTΛ࣮ݱ͢Δ $%πʔϧ NBOJGFTUTΛ LVCFSOFUFTڥʹ LVCFDUMͰBQQMZ "QQMZ ։ൃڥͷ LVCFSOFUFTDMVTUFS શ։ൃऀͷڥΛͲͷΑ͏ʹੜ͍ͯ͠Δ͔ʁ
LVTUPNJ[F apiVersion: apps/v1beta1 kind: Deployment metadata: name: app spec: replicas:
1 template: metadata: labels: app: app spec: containers: - name: app image: nginx:latest ports: - containerPort: 8080 deployment.yaml apiVersion: v1 kind: Service metadata: name: app spec: type: ClusterIP selector: app: app ports: - port: 8080 protocol: TCP targetPort: 8080 service.yaml resources: - deployment.yaml - service.yaml namePrefix: dev commonLabels: env: dev patchesJson6902: - target: version: v1 kind: Service name: app path: replace_selector.yaml kustomization.yaml - op: replace path: /spec/selector value: app: app env: dev > kubectl kustomize .
LVTUPNJ[F --- apiVersion: v1 kind: Service metadata: labels: env: dev
name: devapp spec: ports: - port: 8080 protocol: TCP targetPort: 8080 selector: app: app env: dev type: ClusterIP apiVersion: apps/v1beta1 kind: Deployment metadata: labels: env: dev name: devapp spec: replicas: 1 selector: matchLabels: env: dev template: metadata: labels: app: app env: dev spec: containers: - image: nginx:latest name: app ports: - containerPort: 8080 namePrefix: dev commonLabels: env: dev - op: replace path: /spec/selector value: app: app env: dev LVTUPNJ[BUJPOZBNMʹج͍ͮͯϦιʔεΛมߋ͢Δ
։ൃऀશһͷڥΛLVTUPNJ[FΛ׆༻ͯ͠ੜ resources: - deployment.yaml - service.yaml namePrefix: dev commonLabels: env:
dev patchesJson6902: - target: version: v1 kind: Service name: app path: replace_selector.yaml kustomization.yaml - op: replace path: /spec/selector value: app: app env: dev ɾϦετΛݩʹ࠶ؼతʹੜ͢Δػೳͳ͍ ɾͰࣔ͢෦Λ։ൃऀຖʹॻ͖͑ͯ ɹ࠶ؼతʹLVCFSOFUFTڥʹBQQMZͯ͠ɺ ɹ։ൃऀຖͷڥΛੜ͍ͯ͠Δ ɾॻ͖͑ʹZRίϚϯυΛ͍ͬͯΔ ͨͩ ɾZRίϚϯυͰZBNMΛॻ͖͑Δಛੑ্ ɹཧ͕ࡶʹͳΓɺมߋʹऑ͍ ɾLVCFDUMඪ४Ͱఏڙ͞Ε͍ͯΔ ɹLVTUPNJ[FͷػೳΛ͑ͯΧελϚΠζ ɹ͍ͯ͠ΔͨΊɺ࠷ྑͷํ๏Λࡧத
BQQ BQQ BQQ BQQ 6TFS" 6TFS# ϓϥΠϕʔτΫϥυ 0QFOTUBDL ,VCFSOFUFT 1$
" 1$ # LVCFSOFUFT্ͷΞϓϦέʔγϣϯʹରͯ͠ ͲͷΑ͏ͳํ๏Ͱ։ൃ͍ͯ͠Δͷ͔ʁ
UFMFQSFTFODFATXBQEFQMPZNFOUAػೳ https://speakerdeck.com/shiro16/telepresence-deshi-meru-k8s-shi-dai-falserokarukai-fa?slide=9
deployment pod replica: 1 UFMFQSFTFODFͷ՝ᶃ app1-deployment pod replica: 1 app1-service
app1-deployment replica: 0 app1-service ΫϥΠΞϯτ container ଓલ ଓޙ UFMFQSFTFODFa TXBQEFQMPZNFOUBQQEFQMPZNFOU طଘͷEFQMPZNFOUͷ SFQMJDBΛʹ͢Δ UFMFQSFTFODFͷதܧ༻ͷ EFQMPZNFOUʹࠩ͠ସ͑Δ ։ൃର
UFMFQSFTFODFͷ՝ᶃ deployment pod replica: 1 app1-deployment replica: 0 app1-service container
UFMFQSFTFODFa TXBQEFQMPZNFOUBQQEFQMPZNFOU ɾΫϥΠΞϯτͰಈ࡞͢ΔUFMFQSFTFODF ɹϓϩηεʹରͯ͠$UM$Ͱ4*(*/5Λ ɹૹΔͱɺݩͷEFQMPZNFOUͷSFQMJDBΛ ɹͯ͠ɺUFMFQSFTFODF͕ىಈͨ͠ ɹEFQMPZNFOUΛআͯ͘͠ΕΔɻ ɾ͔͠͠ɺྫ͑UFMFQSFTFODF͕ىಈ ɹ͍ͯ͠ΔλʔϛφϧΛམͱͯ͠γΣϧ ɹ͝ͱࡴ͢ͱɺ্هͷΫϦʔϯφοϓॲཧ ɹ͕ൃੜ͠ͳ͍ɻ FSSPS
UFMFQSFTFODFͷ՝ᶄ deployment pod replica: 1 app1-deployment replica: 1 app1-service container
UFMFQSFTFODFa TXBQEFQMPZNFOUBQQEFQMPZNFOU pod ΞϓϦέʔγϣϯͷNBTUFSʹมߋ͕͋ͬͨ߹ʹ ৗʹ࠷৽ͷڥʹ͢Δػߏ͕ಇ͖ॏෳىಈঢ়ଶ ʹͳΔ
UFMFQSFTFODFͷ՝ᶅ deployment pod replica: 1 app1-deployment replica: 0 app1-service container
͜͜ͰΘΕ͍ͯͨ ΠϝʔδΛ खݩͰىಈ͢Δ ΞϓϦͷNBTUFS͕ߋ৽͞ΕΔʹΠϝʔδ͕ߋ৽͞ΕΔɻ ˠϦϦʔε͕ଟ͍΄ͲJNBHFQVMMͷස্͕͕ΔͷͰΠϝʔδαΠζʹΑͬͯɺ ɹ͜ͷ͕࣌ؒϘτϧωοΫͱͳΔɻ
·ͱΊ w։ൃڥ࣌ͷมԽͱͱʹɺ՝Λղ ܾ͢ΔͨΊʹมԽͨ͠ɻ wಉ༷ʹ՝Λղܾ͢ΔͨΊʹLVCFSOFUFTΛ ࢝Ίͱͨ͠ΫϥυωΠςΟϒΛ࣮ݱ͢Δͨ Ίʹదͨ͠पลπʔϧΛΈ߹Θͤͯཧͷ ։ൃڥͷߏஙΛਐΊ͍ͯΔɻ
͜Ε͔ΒϓϩμΫγϣϯΛؚΊͯ ΫϥυωΠςΟϒ͍͖͍ͬͯͨਓืूʂ ࠷৽ͷ࠾༻ใΛνΣοΫˠ !QC@SFDSVJU