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
260
コンテナ入門
Shu Adachi
May 26, 2023
Tweet
Share
More Decks by Shu Adachi
See All by Shu Adachi
マイクロサービス始めてみよう!
shuadachi
1
540
2023/3/24 IBM Cloud + SPSS Modeler Flow でデータ分析をやってみよう!
shuadachi
0
110
IBM Cloud + SPSS Modeler Flow でデータ分析をやってみよう!
shuadachi
0
350
Other Decks in Technology
See All in Technology
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
30k
2025年になってもまだMySQLが好き
yoku0825
8
4.2k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.7k
【Grafana Meetup Japan #6】Grafanaをリバプロ配下で動かすときにやること ~ Grafana Liveってなんだ ~
yoshitake945
0
360
Grafana Meetup Japan Vol. 6
kaedemalu
1
330
AWS環境のリソース調査を Claude Code で効率化 / aws investigate with cc devio2025
masahirokawahara
2
1.4k
Language Update: Java
skrb
2
280
BPaaSにおける人と協働する前提のAIエージェント-AWS登壇資料
kentarofujii
0
120
ヒューリスティック評価を用いたゲームQA実践事例
gree_tech
PRO
0
570
250905 大吉祥寺.pm 2025 前夜祭 「プログラミングに出会って20年、『今』が1番楽しい」
msykd
PRO
1
510
AI駆動開発に向けた新しいエンジニアマインドセット
kazue
0
260
研究開発と製品開発、両利きのロボティクス
youtalk
1
480
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Rails Girls Zürich Keynote
gr2m
95
14k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Facilitating Awesome Meetings
lara
55
6.5k
Scaling GitHub
holman
463
140k
Navigating Team Friction
lara
189
15k
Producing Creativity
orderedlist
PRO
347
40k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Documentation Writing (for coders)
carmenintech
74
5k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
A Modern Web Designer's Workflow
chriscoyier
696
190k
Writing Fast Ruby
sferik
628
62k
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