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
クラウドネイティブな開発環境への移行/Move to the cloud native d...
Search
Takuma Kume
December 04, 2019
Technology
700
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.7k
【新卒研修】共通言語としてのSRE/SRE as a common language
takumakume
0
320
DDoSとの終わりなき戦い2025/endless_battle_with_ddos_attack_2025
takumakume
3
200
事業部CTOの現在地(パネルディスカッション)/Current-location-of-Division-CTO
takumakume
0
260
ロリポップ! for Gamersを支えるインフラ/lolipop for gamers infrastructure
takumakume
0
1.9k
ロリポップ! for Gamersの立ち上げ/lolipop for gamers launch
takumakume
0
3.1k
ホモグラフドメインを検出してみた/detect homograph domain
takumakume
0
870
ソフトウェアの継続的アップデートをコンテナ化によって加速させる/Accelerate continuous software updates with containerization
takumakume
0
5.8k
KubernetesにおけるSBOMを利用した脆弱性管理/Vulnerability_Management_with_SBOM_in_Kubernetes
takumakume
2
3.3k
Other Decks in Technology
See All in Technology
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
2
380
サーバーフルコンピューティング?AWS Lambda
iwatatomoya
1
240
AI Made Us Faster at Solving the Wrong Problems
marceloancelmo
0
160
今こそ知りたいAmplifyGen2
mkdev10
2
150
AI時代だからこそ推したい!Gitコマンド再入門
munakata
0
150
検証フェーズはAIの回答を判断するための学習機会
toru_kubota
2
500
組み立てて楽しむ AWS Blocks 入門
kmiya84377
0
210
契約書画像からの情報抽出に特化した視覚接地モデルを育てる話
sansantech
PRO
1
140
私の推しは「聞いてから進む」AIです -AI-DLCに一人でアプリを作らせた話
yama3133
1
170
雪かき部 #7 もう怖くない!SELECT文!
foursue
0
280
Lambda MicroVMsが分からなすぎたので使い所を1から考えてみた
tsukuboshi
2
390
全人類(ほぼ)AWS Organizations の上でAWSを利用している、その世界を知る話
htan
0
110
Featured
See All Featured
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
210
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Marketing to machines
jonoalderson
1
5.8k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
420
WENDY [Excerpt]
tessaabrams
14
40k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
320
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
340
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
420
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
490
Making the Leap to Tech Lead
cromwellryan
135
10k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
460
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