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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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.5k
【新卒研修】共通言語としてのSRE/SRE as a common language
takumakume
0
270
DDoSとの終わりなき戦い2025/endless_battle_with_ddos_attack_2025
takumakume
3
180
事業部CTOの現在地(パネルディスカッション)/Current-location-of-Division-CTO
takumakume
0
220
ロリポップ! for Gamersを支えるインフラ/lolipop for gamers infrastructure
takumakume
0
1.6k
ロリポップ! for Gamersの立ち上げ/lolipop for gamers launch
takumakume
0
3k
ホモグラフドメインを検出してみた/detect homograph domain
takumakume
0
800
ソフトウェアの継続的アップデートをコンテナ化によって加速させる/Accelerate continuous software updates with containerization
takumakume
0
5.6k
KubernetesにおけるSBOMを利用した脆弱性管理/Vulnerability_Management_with_SBOM_in_Kubernetes
takumakume
2
3.1k
Other Decks in Technology
See All in Technology
10年間のブログ発信を振り返って見えたWebアプリケーションエンジニアとしての軌跡
stefafafan
0
150
MCP Appsを作ってみよう
iwamot
PRO
4
690
Agent Skills設計で柔軟性と硬さのバランスが難しい話
nassy20
0
140
[チョークトーク資料]AWS DevOps Agent を使いこなす / AWS Dev Ops Agent Chalk Talk AWS Summit Japan 2026
kinunori
2
510
iAEONの段階的リアーキテクト戦略 / iAEON's_Gradual_Re-architecture_Strategy
aeonpeople
0
230
IaC コードを資産へ:AWS CDK 社内ライブラリと横断展開 / aws-summit-japan-2026
gotok365
2
720
MUSUBI 田中裕一『AIと共に行う「しごとのリデザイン」- スモールバックオフィス編』AI Ops Lab #4
musubi
0
230
スタートアップにAmazon EKSは早すぎる? マルチプロダクト戦略を加速する Platform Engineeringの実践 / Is Amazon EKS Too Soon for Startups? Practical Platform Engineering to Accelerate a Multi-Product Strategy
elmodev09
0
190
ザ・データベース、MySQL ~ OSC 2026 Sendai ~
sakaik
0
120
気づかぬうちにセキュリティ負債を生むAPIキー運用
sgwrmctk
0
180
Kiroで書いた 設計書 が AI レビューの 採点基準 になる
ezaki
0
130
RAG を使わないという選択肢
tatsutaka
1
260
Featured
See All Featured
Context Engineering - Making Every Token Count
addyosmani
9
970
Done Done
chrislema
186
16k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
590
Discover your Explorer Soul
emna__ayadi
2
1.1k
Prompt Engineering for Job Search
mfonobong
0
350
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
390
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
630
AI: The stuff that nobody shows you
jnunemaker
PRO
8
720
The SEO identity crisis: Don't let AI make you average
varn
0
490
Code Reviewing Like a Champion
maltzj
528
40k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
210
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