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
Shu Adachi
May 26, 2023
Technology
0
220
コンテナ入門
Shu Adachi
May 26, 2023
Tweet
Share
More Decks by Shu Adachi
See All by Shu Adachi
マイクロサービス始めてみよう!
shuadachi
1
400
2023/3/24 IBM Cloud + SPSS Modeler Flow でデータ分析をやってみよう!
shuadachi
0
94
IBM Cloud + SPSS Modeler Flow でデータ分析をやってみよう!
shuadachi
0
300
Other Decks in Technology
See All in Technology
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
270
LangSmith入門―トレース/評価/プロンプト管理などを担うLLMアプリ開発プラットフォーム
os1ma
5
740
コードファーストの考え方。 Amplify Gen2から学ぶAWS次世代のWeb開発体験
yoshiitaka
2
380
20分で完全に理解するGrafanaダッシュボード
hamadakoji
5
910
LayerXにおけるLLMプロダクト開発の今までとこれから
layerx
PRO
4
750
令和最新版 Ruby プロファイラ "Pf2" のご紹介
osyoyu
0
130
自己改善からチームを動かす! 「セルフエンジニアリングマネージャー」のすゝめ
shoota
6
1k
【基本】データベース設計
oracle4engineer
PRO
2
200
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
2
330
ルーターでプレゼンする
puhitaku
1
3.3k
Building Dashboards as a Hobby
egmc
0
380
【NW X Security JAWS#3】L3-4:AWS環境のIPv6移行に向けて知っておきたいこと
shotashiratori
1
670
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
228
130k
Web development in the modern age
philhawksworth
203
10k
Statistics for Hackers
jakevdp
790
220k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
20
1.8k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
jQuery: Nuts, Bolts and Bling
dougneiner
59
7.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
20
1.6k
What's new in Ruby 2.0
geeforr
337
31k
Into the Great Unknown - MozCon
thekraken
14
1k
Building Your Own Lightsaber
phodgson
100
5.7k
Transcript
࣌։࢝Ͱ͢ɻ গʑ͓͍ͪͩ͘͞ɻ © 2023 IBM Corporation 1
© 2023 IBM Corporation 2
3 "HFOEB Φʔϓχϯά ࠲ֶ σϞ 2"Ϋϩʔδϯά
© 2023 IBM Corporation
ࣗݾհ ຊ*#.ΧελϚʔɾαΫηεɾϚωʔδϟʔ ཱਹ 4IV"EBDIJ -JOLFE*O 5XJUUFS த༎ଠ :VUB/POBLB -JOLFE*O
5XJUUFS
ຊͷతͱΰʔϧ n త – ࠲ֶɾσϞΛ௨ͯ͠ɺίϯςφͱԿ͔ɺಛརΛ͓͑͢Δ n ΰʔϧ – ίϯςφʹ͍ͭͯ
zΒͳ͍z͔Β zͳΜͱͳͬͯ͘Δz – σϞγφϦΦΛຊηογϣϯऴྃޙʹࢼͯ͠Β͏ n ରऀ – ίϯςφٕज़ʹڵຯͷ͋Δॳֶऀ *#.$PSQPSBUJPO
4MJEP *#.$PSQPSBUJPO IUUQTBQQTMJEPFWFOUK5L2XIP'5EXBTOC"1 &WFOU$PEFEPKPQN n 23ίʔυΛಡΈऔΔ͔ɺ8FCFYΑΓ͝ճ͍ͩ͘͞
࠲ֶΞδΣϯμ *#.$PSQPSBUJPO ʮίϯςφʯʹೖΔલʹ • $MPVE/BUJWFʹ͍ͭͯ ίϯςφٕज़ͱ •
ίϯςφ֓ཁ • ίϯςφͷΈ • ίϯςφΤϯδϯ • ίϯςφͷϝϦοτ • ίϯςφԽͷҙ σϞ ·ͱΊ
࠲ֶΞδΣϯμ *#.$PSQPSBUJPO ʮίϯςφʯʹೖΔલʹ • $MPVE/BUJWFʹ͍ͭͯ ίϯςφٕज़ͱ •
ίϯςφ֓ཁ • ίϯςφͷΈ • ίϯςφΤϯδϯ • ίϯςφͷϝϦοτ • ίϯςφԽͷҙ σϞ ·ͱΊ
$MPVE/BUJWFͷఆٛ $/$' $MPVE/BUJWF$PNQVUJOH'PVOEBUJPO ͷܝ͛Δࢥͷݩʹɺͷ*5ؔ࿈ஂମ͕ू݁ ͯ͠׆ಈ͍ͯ͠·͢ɻ ͭ·Γɺ$/$'ͷఆٛۀքͱͯ͠ެࣜͳݟղͱΈͳ͢͜ͱ͕Ͱ͖·͢ɻ ҎԼ(JU)VCʹͯެ։͞Ε͍ͯΔ$MPVE/BUJWCFͷఆٛͰ͢ɻ IUUQTHJUIVCDPNDODGUPDCMPCNBJO%&'*/*5*0/NE ఆٛ͋Δ͚ͲɺΑ͘Θ͔Βͳ͍ʜ
*#.$PSQPSBUJPO
$MPVE/BUJWFͷత *#.$PSQPSBUJPO తͱͯ͠ʮΫϥυΛపఈతʹར༻ͯ͠Ϗδωε՝Λղܾ͠ɺސ٬ମ ݧΛ্ͤ͞Δʯ͜ͱͰ͢ɻ ߟ͑ํϓϩηεΛ͜Ε·Ͱͷʮσʔληϯλʔͱͯ͠ͷΫϥυʯ͔Β ʮϏδωε্ͷࠩผԽཁҼͱͯ͠ͷΫϥυʯʹҠߦ͍͖ͯ͠·͢ɻ ΫϥυωΠςΟϒʹΑͬͯࠩผԽΛਤΕΔཧ༝ʁ ࢢͷχʔζΛଊ͑ͨਝͳΞϓϦέʔγϣϯͷ։ൃɾຊ൪ϦϦʔεΛ ࣮ݱग़དྷΔ͔ΒͰ͢ɻ
࠲ֶΞδΣϯμ *#.$PSQPSBUJPO ʮίϯςφʯʹೖΔલʹ • $MPVE/BUJWFʹ͍ͭͯ ίϯςφٕज़ͱ •
ίϯςφ֓ཁ • ίϯςφͷΈ • ίϯςφΤϯδϯ • ίϯςφͷϝϦοτ • ίϯςφԽͷҙ σϞ ·ͱΊ
ۙͳੈքʹ͓͚Δίϯςφ ۙͳͱ͜ΖͰɺೖΕ༰ثΛࢦ͠େ͖͞ɾ༻్͞·͟·Ͱ͢ɻ ͳͯ͘ͳ͍Ͱ͕͢ɺ͋Εཧͯ͠ ݶΒΕͨεϖʔεΛ༗ޮ׆༻Ͱ͖ͨΓͱԿ͔ͱศརͰ͢ɻ Ҡಈ͢ΔࡍதΛͭͮͭҠಈ͢ΔͷͰͳ͘ ༰ثΛಈ͔͚ͩ͢ͳͷͰָͰ͢Ͷɻ *#.$PSQPSBUJPO ϓϥενοΫͷίϯςφΛ૾͢Δਓ ଟ͍ͷͰͳ͍Ͱ͠ΐ͏͔ʁ
ྲྀۀքʹ͓͚Δίϯςφ ߦ͖ઌ͝ͱʹίϯςφʹՙΛ·ͱΊɺίϯςφ୯ҐͰ ધྻंτϥοΫʹͦͷ··ੵΈࠐΈɺతʹӡͼ·͢ɻ ଟ͘ͷखॱͱϧʔϧͰӡ༻͞Ε͓ͯΓɺαΠζ༻్ͳͲΛࠃࡍతʹ ඪ४Խ͍ͯ͠·͢ɻ ͦΕʹΑΓɺେྔͷ՟ΛՄೳͳݶΓૣ͘ίετͰ؆୯ʹͦͯ͠ ҆શʹӡͿ͜ͱ͕࣮ݱͰ͖͍ͯ·͢ɻ ͜ͷΑ͏ʹྲྀۀքͰʮίϯςφʯʹΑΔྲֵ໋ྀ͕͓͖·ͨ͠ɻ ੈلͷ࠷େͷൃ໌ͱ͍ΘΕ͍ͯ·͢
*#.$PSQPSBUJPO
*5ʹ͓͚Δίϯςφ *#.$PSQPSBUJPO *5Ͱίϯςφͷ֓೦ҰॹͰ༰ثͰ͢ɻ ͦͷ༰ثʹೖΕΔͷɺΞϓϦέʔγϣϯͱΞϓϦέʔγϣϯΛಈ࡞ ͤ͞ΔͷʹඞཁͳϛυϧΣΞϥΠϒϥϦͳͲʹͳΓ·͢ɻ ྲྀͷίϯςφͱಉ༷ʹࠝแ͢ΔͨΊͷϧʔϧ͕ఆ·͍ͬͯ·͢ɻ ΞϓϦέʔγϣϯ ϛυϧΣΞ ϥΠϒϥϦ
࠲ֶΞδΣϯμ *#.$PSQPSBUJPO ʮίϯςφʯʹೖΔલʹ • $MPVE/BUJWFʹ͍ͭͯ ίϯςφٕज़ͱ •
ίϯςφ֓ཁ • ίϯςφͷΈ • ίϯςφΤϯδϯ • ίϯςφͷϝϦοτ • ίϯςφԽͷҙ σϞ ·ͱΊ
ίϯςφͷΈ શମ૾ *#.$PSQPSBUJPO ίϯςφΤϯδϯ
ίϯςφΤϯδϯ ίϯςφͷΈ ࠝแ *#.$PSQPSBUJPO खॱॻΛݩʹඞཁͳͷΛࠝแ͠·͢ɻ ͜ͷ࡞ۀΛʮϏϧυ #VJME ʯͱݺͼɺ खॱॻͷ͜ͱΛʮ%PDLFSGJMF$POUBJOFSGJMFʯͱݺͼ·͢ɻ
ίϯςφΤϯδϯ ίϯςφͷΈ λά *#.$PSQPSBUJPO ࠝแͨ͠ͷΛʮΠϝʔδ *NBHF ʯͱݺͼɺ อ͢ΔͨΊʹݿͷૹঢ়ΛషΓ͚·͢ɻ ͜ͷ࡞ۀΛʮλά͚
5BH ʯͱݺͼ·͢ɻ
ίϯςφΤϯδϯ ίϯςφͷΈ ൃૹ *#.$PSQPSBUJPO ૹঢ়ʹهࡌ͞Ε͍ͯΔݿʹҠಈ͠·͢ɻ ͜ͷ࡞ۀΛʮϓογϡ 1VTI ʯͱݺͼɺ ݿͷ͜ͱΛʮϨδετϦ
3FHJTUSZ ʯͱݺͼ·͢ɻ
ίϯςφΤϯδϯ ίϯςφͷΈ ࣮ߦ *#.$PSQPSBUJPO ݿ͔Βग़ݿͯ͠։ࠝͯ͠ར༻͠·͢ɻ ग़ݿ࡞ۀΛʮϓϧ 1VMM ʯͱݺͼɺ ։ࠝͯ͠ར༻͢Δ͜ͱΛʮϥϯ
3VO ʯͱݺͼ·͢ɻ
ίϯςφͷΈ ίϯςφΤϯδϯ *#.$PSQPSBUJPO ίϯςφΤϯδϯ Ϣʔβʔ͔ΒͷࢦࣔΛड͚औΓ֤छ࡞ۀΛ࣮ߦͯ͘͠Ε·͢ɻ ͜ͷ͜ͱΛʮίϯςφΤϯδϯʯͱݺͼ·͢ɻ
࠲ֶΞδΣϯμ *#.$PSQPSBUJPO ʮίϯςφʯʹೖΔલʹ • $MPVE/BUJWFͷఆٛͱత ίϯςφٕज़ͱ •
ίϯςφ֓ཁ • ίϯςφͷΈ • ίϯςφΤϯδϯ • ίϯςφͷϝϦοτ • ίϯςφԽͷҙ σϞ ·ͱΊ
ίϯςφΤϯδϯʹ͍ͭͯ͏গ͠ ίϯςφΤϯδϯʹ͍͔ͭ͘छྨ͕͋Γ·͕͢ɺ ͦͷதͰ༗໊ͳͷ͕%PDLFSࣾͷ։ൃ͢Δʮ%PDLFSʯͰ͢ɻ %PDLFSʹ%PDLFS%FTLUPQͱ͍͏(6*Ͱૢ࡞Ͱ͖Δ ศརͳΞϓϦέʔγϣϯఏڙ͞Ε͍ͯ·͢ɻ ͔͠͠ɺແঈͰ͍͑ͯͨσεΫτοϓΞϓϦ ݄͔ΒҰఆنҎ্ͷاۀͰͷར༻͕༗ྉԽ͞Ε·ͨ͠ɻ IUUQTXXXEPDLFSDPNCMPHVQEBUJOHQSPEVDUTVCTDSJQUJPOT *#.$PSQPSBUJPO
ίϯςφΤϯδϯʹ͍ͭͯ͏গ͠ ͦ͜Ͱࠓճհ͢Δͷͻͱͭͷସखஈͱͯ͠ͷʮ1PENBOʯͰ͢ɻ 1PENBO3FE)BU͕ࣾ։ൃ͠ɺݱࡏΦʔϓϯιʔεͱͯ͠ެ։͞Εͯ ͍·͢ɻ ͪΖΜσεΫτοϓΞϓϦ͋Γ·͢ʂ %PDLFSͱൺֱͨ͠1PENBOͷڧΈΛҰ෦հ • ΦʔϓϯιʔεͷͨΊɺແঈͰར༻Մೳ •
ίϯςφ࣮ߦʹSPPUݖݶ͕ඞཁͳ͍ͨΊɺηΩϡϦςΟཧੑΛ্Մೳ • %PDLFSͱͷޓੑ͕ߴ͍ͨΊɺ%PDLFSͰ͍ͬͯΔίϚϯυΛྲྀ༻Մೳ *#.$PSQPSBUJPO
࠲ֶΞδΣϯμ *#.$PSQPSBUJPO ʮίϯςφʯʹೖΔલʹ • $MPVE/BUJWFʹ͍ͭͯ ίϯςφٕज़ͱ •
ίϯςφ֓ཁ • ίϯςφͷΈ • ίϯςφΤϯδϯ • ίϯςφͷϝϦοτ • ίϯςφԽͷҙ σϞ ·ͱΊ
ίϯςφͷಛ ίϯςφҎԼͷಛΛ͍࣋ͬͯ·͢ɻ • ܰྔ • εέʔϥϒϧ • ։ൃޮͷ্ •
ϚΠΫϩαʔϏεͱͷੑ͕ߴ͍ • Πϛϡʔλϒϧͳӡ༻͕Մೳ • %FW0QTͷ࣮ݱ *#.$PSQPSBUJPO ࠓ͜͜Λਂ۷Γ͓ͯ͠͠͠·͢
ίϯςφܰྔ ίϯςφ04Λඞཁͱ͠ͳ͍ɺͱͯܰྔͰ͢ɻ Ծαʔόʔͱൺֱ͢Δͱίετޮʹ༏Ε͍ͯ·͢ɻ *#.$PSQPSBUJPO ԾԽαʔόʔ 04 ϛυϧΣΞ ΞϓϦ ϥΠϒϥϦ
ίϯςφ ϛυϧΣΞ ΞϓϦ ϥΠϒϥϦ
ίϯςφεέʔϥϒϧ ൟؓʹ߹ΘͤͯγεςϜߏΛॊೈʹมߋ͢Δ͜ͱ͕ՄೳͰ͢ɻ ·ͨɺίϯςφܰྔͳͷͰεέʔϧΞτʹ͔͔Δ࣌ؒαʔόίε τ͑Δ͜ͱՄೳͰ͢ɻ *#.$PSQPSBUJPO ϋʔυΣΞ ίϯςφΤϯδϯ ϗετ04 ϛυϧΣΞ
ΞϓϦ ϥΠϒϥϦ ϛυϧΣΞ ΞϓϦ ϥΠϒϥϦ ϋʔυΣΞ ϋΠύʔόΠβʔ ϗετ04 04 ϛυϧΣΞ ΞϓϦ ϥΠϒϥϦ 04 ϛυϧΣΞ ΞϓϦ ϥΠϒϥϦ ԾϚγϯͰಉ͡ ༷ͳ͜ͱͰ͖Δ͕ɺ ࣌ؒίετ͔͔ Δ
ίϯςφ։ൃޮ͕ߴ͍ • ϩʔΧϧڥͰಈ࡞ͯͨ͠ͷʹ ςετڥͰಈ͔ͳ͍ • ɺڥΛߏங͢Δͷ͕େม • ڥ͝ͱͷҠಈ͕େม *#.$PSQPSBUJPO
ಈ࡞ڥ ΞϓϦ ಈ࡞ڥ ΞϓϦ ಈ࡞ڥ ΞϓϦ ߏங࡞ۀ ߏங࡞ۀ ߏங࡞ۀ ϩʔΧϧڥ ςετڥ ຊ൪ڥ ಈ࡞ڥ ΞϓϦ ϩʔΧϧڥ ςετڥ ຊ൪ڥ ಈ࡞ڥ ΞϓϦ ಈ࡞ڥ ΞϓϦ ߏங࡞ۀ ߏங࡞ۀ ߏங࡞ۀ • ಈ࡞ʹඞཁͳͷ͕ύοέʔδԽ͞Ε ͍ͯΔ͔ΒͲͷڥͰಉ༷͡ʹಈ͘ • ಈ࡞ڥแ͞Ε͍ͯΔ͔Βߏங࡞ ۀ͕ෆཁ • ύοέʔδԽ͞Ε͍ͯΔ͔ΒҠಈָ
ίϯςφԽͷҙ *#.$PSQPSBUJPO ΞϓϦέʔγϣϯͷಛੑʹΑͬͯίϯςφԽͷʮ͖ʯʮෆ͖ʯ͕͋Γ·͢ɻ ίϯςφԽ͕Մೳ͔ʁϝϦοτΛڗडͰ͖Δ͔ʁ͜ΕΛݟۃΊΔඞཁ͕͋Γ·͢ɻ ϚΠΫϩαʔϏεԽ͕Մೳ͔ʁ – ػೳຖʹ͞ΕͨϚΠΫϩαʔϏε͕ίϯςφʹ͍͍ͯ·͢ɻ ׂ͕ՄೳͳΒܭըతʹίϯςφԽ͍͖ͯ͠·͠ΐ͏ɻ
ϦϦʔεසߴ͍͔ʁ – සൟͳߋ৽͕͋ΔͳΒίϯςφԽ͢ΔϝϦοτΛڗडͰ͖·͢ɻ γεςϜཁ݅Λຬ͍ͨͯ͠Δ͔ʁ – αʔυύʔςΟͷͷͰϥΠηϯεಈ࡞ཁ݅Ͱίϯςφಈ࡞͕ڐՄ͞Ε͍ͯ ͳ͔ͬͨΓอূ͞Εͳ͍έʔε͋Γ·͢ͷͰͦ͜ҙ͠·͠ΐ͏ɻ
࠲ֶΞδΣϯμ *#.$PSQPSBUJPO ʮίϯςφʯʹೖΔલʹ • $MPVE/BUJWFʹ͍ͭͯ ίϯςφٕज़ͱ •
ίϯςφ֓ཁ • ίϯςφͷΈ • ίϯςφΤϯδϯ • ίϯςφͷϝϦοτ • ίϯςφԽͷҙ σϞ ·ͱΊ
ίϯςφͷΈΛ1PENBO %FTLUPQͰσϞ *#.$PSQPSBUJPO ίϯςφΤϯδϯ 1PENBO #VJME 5BH 1VTI 1VMM
3VO
࠲ֶΞδΣϯμ *#.$PSQPSBUJPO ʮίϯςφʯʹೖΔલʹ • $MPVE/BUJWFʹ͍ͭͯ ίϯςφٕज़ͱ •
ίϯςφ֓ཁ • ίϯςφͷΈ • ίϯςφΤϯδϯ • ίϯςφͷϝϦοτ • ίϯςφԽͷҙ σϞ ·ͱΊ
ίϯςφԽͷσϝϦοτ *#.$PSQPSBUJPO ίϯςφԽͷσϝϦοτɺϚΠΫϩαʔϏεԽʹΑͬͯࡉׂ͔͘͞ΕΔ͕ނʹ ӡ༻͕ෳࡶԽ͍͢͜͠ͱͰ͢ɻ αʔόʔ ͕গͳ͚ΕͲͷαʔόʔͰɺ Ͳ͏͍ͬͨ༻్ͷίϯςφ͕ಈ࡞ ͍ͯ͠Δͷ͔Ѳ͠ͳ͕Βཧ ՄೳͰ͢ɻ
͔͠͠ɺ͕૿͑ΔͱͲͷαʔόʔ ʹͲ͏͍ͬͨ༻్ͷίϯςφ͕ಈ࡞ ͍ͯ͠Δͷ͔Ѳ͕ࠔʹͳΓ·͢ɻ αʔόʔ αʔόʔ αʔόʔ αʔόʔ αʔόʔ αʔόʔ αʔόʔ αʔόʔO
ίϯςφԽͷσϝϦοτ *#.$PSQPSBUJPO ίϯςφԽͷσϝϦοτɺϚΠΫϩαʔϏεԽʹΑͬͯࡉׂ͔͘͞ΕΔ͕ނʹ ӡ༻͕ෳࡶԽ͍͢͜͠ͱͰ͢ɻ αʔόʔ ͕গͳ͚ΕͲͷαʔόʔͰɺ Ͳ͏͍ͬͨ༻్ͷίϯςφ͕ಈ࡞ ͍ͯ͠Δͷ͔Ѳ͠ͳ͕Βཧ ՄೳͰ͢ɻ
͔͠͠ɺ͕૿͑ΔͱͲͷαʔόʔ ʹͲ͏͍ͬͨ༻్ͷίϯςφ͕ಈ࡞ ͍ͯ͠Δͷ͔Ѳ͕ࠔʹͳΓ·͢ɻ αʔόʔ αʔόʔ αʔόʔ αʔόʔ αʔόʔ αʔόʔ αʔόʔ αʔόʔO ίϯςφཧΦʔέετϨʔγϣϯπʔϧ ʮ0QFO4IJGUʯʹ͓ͤ͠·͢ɻ
·ͱΊ n $MPVE/BUJWFࢢͷมԽʹॊೈʹରԠ͢Δత͕͋Δ n ͦͷͨΊʹίϯςφٕज़ඞਢʹͳΔ n ίϯςφʹΞϓϦಈ࡞ʹඞཁͳ෦͕ೖ͍ͬͯΔ n ίϯςφʹऔΓѻ͍ํ
ϧʔϧ ͕ఆΊΒΕ͍ͯΔ n ίϯςφ͕૿͑ΔͱΦʔέετϨʔγϣϯπʔϧͷ׆༻͕ඞཁ *#.$PSQPSBUJPO
ॳΊͯͷ#MVF(SFFO%FQMPZNFOU։࠵ʂ *#.$PSQPSBUJPO IUUQTJCNEFWFMPQFSDPOOQBTTDPNFWFOU
ࢀߟ63- *#.$PSQPSBUJPO $/$'$MPVE/BUJWF%FGJOJUJPOW ϦϯΫ ΫϥυɾωΠςΟϒجૅࣝղઆ ϦϯΫ 1PENBO %FTLUPQͷެࣜΠϯτϩ ϦϯΫ
σϞͷखॱࢿྉ ϦϯΫ 1PENBO %FTLUPQͷΠϯετʔϧखॱ 8JOEPXT ϦϯΫ 1PENBO %FTLUPQͷΠϯετʔϧखॱ .BD ϦϯΫ
͝ࢀՃ͋Γ͕ͱ͏͍͟͝·ͨ͠ ͪΐͬͱฉ͖͍ͨʂͳͲ ͓ؾܰʹ4/4Ͱ࣭͍ͩ͘͝͞ ཱਹ 4IV"EBDIJ -JOLFE*O 5XJUUFS த༎ଠ :VUB/POBLB -JOLFE*O
5XJUUFS