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
Haconiwa: プログラムによる組み立て可能性と拡張性を持つLinuxコンテナ
Search
KONDO Uchio
March 13, 2018
Technology
1.4k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Haconiwa: プログラムによる組み立て可能性と拡張性を持つLinuxコンテナ
情報処理学会第80回全国大会 発表資料
KONDO Uchio
March 13, 2018
More Decks by KONDO Uchio
See All by KONDO Uchio
大規模レガシーテストを 倒すための CI基盤の作り方 / #CICD2023
udzura
5
2.6k
Ruby x BPF in Action / RubyKaigi 2022
udzura
0
320
Narrative of Ruby & Rust
udzura
0
280
開発者生産性指標の可視化 / pepabo-four-keys
udzura
3
1.9k
Talk of RBS
udzura
0
510
Re: みなさん最近どうですか? / FGN tech meetup in 2021
udzura
0
870
Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition -
udzura
2
830
Device access filtering in cgroup v2
udzura
1
1k
"Story of Rucy" on RubyKaigi takeout 2021
udzura
0
950
Other Decks in Technology
See All in Technology
「ピッケル本」日本語版は4.0(第6版)が出版されるべき / pickaxe4-nagoyark05
kakutani
2
270
え、こんなに早く改修できるの?──新人エンジニアとスクラムマスターの2人が語る、AI×アジャイル開発の現場
ysasago
2
640
AIに任せた品質は、誰が見立てるのか - AI時代のテストマネジメント
nakanao
3
2.7k
AIエージェントを最高のパートナーに育てる方法|評価と判断軸を育てる5つのステップ
koichiaoki
1
160
SREへの勘違いに気づいた後の話
tomodakengo
0
130
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
880
登壇の自信を奪う3匹のオバケ / 3 Ghosts That Rob You of Your Confidence in Public Speaking
pauli
9
1.1k
積み重なった技術負債への挑戦 〜初手としての全社ゴト化〜
techtekt
PRO
0
1.5k
`t*(42&t>>10)`だけで音楽が鳴る、Swiftで実装するBytebeat / iOSDC Japan 2026
yutailang0119
0
130
越境するなら専門用語を使うな高校校歌 / If you wanna cross border, you shouldn't use jargon
vtryo
0
150
CLIライブラリ開発を支える技術
htnabe
0
140
Claude Codeを「使うほど育つ」AI秘書にするノウハウ
minorun365
PRO
33
30k
Featured
See All Featured
New Earth Scene 8
popppiees
4
2.6k
Paper Plane (Part 1)
katiecoart
PRO
2
11k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.1k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
It's Worth the Effort
3n
188
29k
Raft: Consensus for Rubyists
vanstee
142
7.7k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
880
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
280
Transcript
ۙ౻Ӊஐ࿕ / ϖύϘݚڀॴɾGMOϖύϘגࣜձࣾ 2018.03.13 ใॲཧֶձୈ80ճશࠃେձ Haconiwa: ϓϩάϥϜʹΑΔɼΈཱͯՄೳੑͱ ֦ுੑΛ࣋ͭLinuxίϯςφ
γχΞɾϓϦϯγύϧΤϯδχΞ ۙ౻Ӊஐ࿕ / @udzura http://blog.hogehoge.com Uchio Kondo ϖύϘݚڀॴ/ٕज़ج൫νʔϜ
1. ͡Ίʹ 2. ίϯςφΛར༻ͨ͠Φʔτεέʔϧͷ՝ 3. ఏҊख๏: Haconiwa 4. ຊख๏Λར༻ͨ͠ΞʔΩςΫνϟɾγεςϜͷྫ 5.
·ͱΊ ࣍
1. ͡Ίʹ 2. ίϯςφΛར༻ͨ͠Φʔτεέʔϧͷ՝ 3. ఏҊख๏: Haconiwa 4. ຊख๏Λར༻ͨ͠ΞʔΩςΫνϟɾγεςϜͷྫ 5.
·ͱΊ ࣍
• Πϯλʔωοτ/͜ͱWebͷϢʔβ͕૿͑ͯɼΠϯλʔωοτʹެ։͞Εͨ αʔϏεͷӡ༻ऀͷ՝͕૿͑ͨ • ྫ͑ιʔγϟϧϝσΟΞʹΑΔʮόζʯʮԌ্ʯ • ྫ͑DoS/DDoS߈ܸ • ͜ͷΑ͏ʹɼಥൃతͳΞΫηεͷٸ্ঢ/ٸܹͳෛՙ্ʹ͞Β͞Εͨ߹ͷ ղܾࡦͷҰͭͱͯ͠ɼΦʔτεέʔϧʹ͕ू·͍ͬͯΔ
લఏ: ಥൃΞΫηε૿ͷӡ༻తରॲ
• Φʔτεέʔϧ: ෛՙঢ়گʹԠ͡γεςϜΛߏ͢ΔαʔόΛޮతʹ૿ ݮ͢Δख๏ • Φʔτεέʔϧʹ͓͍ͯɼαʔόϦιʔεΛͳΔ͘ߴʹ૿Ճɾݮগͤ͞ Δඞཁ͕ੜ·ΕΔ • ैདྷͷαʔόϦιʔεͷԾԽٕज़ʢϋΠύʔόΠβܕ/ϗετܕʣͱൺͯ ىಈ͕ߴͰɼϦιʔε੍ޚͷཻ͕ࡉ͔͍ίϯςφܕԾԽ͕ීٴͭͭ͋͠
Δ ͦͷ্Ͱ: ΦʔτεέʔϧˠίϯςφܕԾԽͷ
• ݱঢ়ීٴ͍ͯ͠ΔίϯςφܕԾԽͷख๏ʹ͍͔ͭ͘՝͕͋Δ 1. σϑΥϧτͰෆཁͳػೳؚΊΦʔϧΠϯϫϯͰ༗ޮʹͳΔ 2. ֦ுੑʹ͘͠ɼཁ݅ʹ߹ΘͤΔ͜ͱ͕ࠔͳ • ͜ΕΒಛʹɼߴ͍ूੵੑΛཁٻ͢ΔWebϗεςΟϯάج൫Ͱʹ • ͜ΕΒͷ՝Λղܾ͢Δख๏ͱͯ͠։ൃͨ͠ίϯςφϥϯλΠϜHaconiwa
ʹ͍ͭͯఏҊ͢Δ ίϯςφܕԾԽΛऔΓר͘՝
1. ίϯςφܕԾԽ: ϗετܕͱҧ͍ɼϗετOSͱΧʔωϧΛڞ༗͠σόΠ εͷԾԽΛߦΘͳͣɼϓϩηεϕʔεͷಠཱڥͱͨ͠ԾԽܗࣜ 2. ίϯςφ: ίϯςφܕԾԽܗࣜʹ͓͍ͯɼOSػೳʹΑΓಠཱੑΛ༩͞Ε ͨͦΕͧΕͷϓϩηε·ͨͦͷάϧʔϓɽΠϯελϯεͱݺͿ 3. ίϯςφϥϯλΠϜ:
্ड़ͷίϯςφͷىಈɼఀࢭɼͱ͍ͬͨϥΠϑαΠΫϧ Λཧ͢ΔͨΊͷιϑτΣΞ ༻ޠͷఆٛ ίϯςφ ϥϯλΠϜ ίϯςφ ʢϗετͷ-JOVY04ʣ
1. ͡Ίʹ 2. ίϯςφΛར༻ͨ͠Φʔτεέʔϧͷ՝ 3. ఏҊख๏: Haconiwa 4. ຊख๏Λར༻ͨ͠ΞʔΩςΫνϟɾγεςϜͷྫ 5.
·ͱΊ ࣍
1. ΠϯελϯεͷՃॲཧ͕Ͱ͋Δ 2. ϋʔυΣΞϦιʔεͷར༻ޮ͕͍ 3. ۭ͖Ϧιʔε֬ೝͷͨΊͷεέδϡʔϦϯάͷԆ 4. εέʔϦϯά͖͢ঢ়گݕͷϦΞϧλΠϜੑ͕͍ দຊΒ(*)ʹΑΔΦʔτεέʔϧͷ՝
'BTU$POUBJOFS࣮ߦڥͷมԽʹૉૣ͘దԠͰ͖Δ߃ৗੑΛ࣋ͭγεςϜΞʔΩςΫνϟʢൃදࢿྉʣ IUUQTTQFBLFSEFDLDPNNBUTVNPUP@SGBTUDPOUBJOFSTIJYJOHIVBOKJOHGBMTFCJBOIVBOJTV[BPLVTIJ ZJOHEFLJSVIFOHDIBOHYJOHXPDIJUVTJTVUFNVBLJUFLVUJZB
• ϗετܕϋΠύʔόΠβܕͱൺֱͨ͠߹ • 1, 3. ʹ͍ͭͯ: ίϯςφىಈఀࢭ͕ߴͰ͋Γɼ͍͍ͯΔ • 2. ʹ͍ͭͯ:
ίϯςφʹϓϩηε๛ͳAPIʹΞΫηεͰ͖ɼϦιʔε੍ޚ Λࡉ͘Ͱ͖Δɽ͍͍ͯΔ • 4. ʹ͍ͭͯϓϩηεͱ͍͏ಛੑ্ࢹΛৄࡉ͔ͭܰྔʹͰ͖Δͱߟ͑ΒΕ Δ͕ɼຊจͰߟ͍ͯ͠ͳ͍ ՝ʹରͯ͠ίϯςφΛར༻ͨ͠߹
• Docker: https://www.docker.com/ • LXC: https://linuxcontainers.org/lxc/introduction/ • ͜ΕΒͷίϯςφϥϯλΠϜʹؔͯ͠ɼIEEE Cloud Computingࢽͷ
“Containers and Cloud: From LXC to Docker to Kubernetes” ίϥϜΛ͡ Ίɼհهࣄʹ͍ͱ·͕ͳ͍ Ұ୴ͷ݁: ίϯςφܕԾԽͷ࠾༻
1. ෆཁͳػೳΛ؆୯ʹআ֎Ͱ͖ͳ͍ 2. γεςϜཁ݅Λຬͨ͢Α͏ͳ֦ு͕؆୯ʹͰ͖ͳ͍ ͞ΒͳΔ՝: طଘͷίϯςφϥϯλΠϜͷ
• ͜͜·Ͱʹ͋͛ͨΑ͏ͳίϯςφϥϯλΠϜɼσϑΥϧτͰଟ͘ͷίϯς φΛ࣮ݱ͢Δػೳ͕ηοτͰ༗ޮʹͳΔ • ར༻ऀͱͯ͠ৄࡉΛؾʹͤͣԾڥΛར༻Ͱ͖ΔϝϦοτͰ͋Δ • ҰํͰɼಛʹϦιʔεޮूੵੑͱ͍͏؍͔ΒɼಛఆͷػೳΛແޮԽͨ͠ ͍ͱ͍͏धཁ͕ଘࡏ͢Δ • ྫ͑ɼOSͷrootfsΛ࠶ར༻͍ͨ͠ɼωοτϫʔΫΛࣗͰ੍ޚ͍ͨ͠ଞ
• ཧ্ͲͷΑ͏ͳίϯςφϥϯλΠϜͰՄೳͰ͋Δ͕ɼDockerͳͲͷ ߹໌֬ʹυΩϡϝϯτ͕ଘࡏ͠ͳ͍ͳͲɼར༻͕͍͠ ෆཁͳػೳΛ؆୯ʹআ֎Ͱ͖ͳ͍
• ઌड़ͷIEEEͷίϥϜͰίϯςφͷΫϥελϦϯάʹKubernetes͕ར༻Ͱ ͖Δͱड़͍ͯΔ • Kubernetes: https://kubernetes.io/ • Ұํɼݱࡏͷঢ়گͰɼKubernetesͱDockerͷΈ߹ΘͤͳͲطଘͷΫϥε λϦϯάελοΫͰ࣮ݱ͕͍͠ཁ݅͋Δ •
ϗεςΟϯά༻్ͷ߹ɼߴूੵੑ͕ٻΊΒΕΔͷͰɼίϯςφࣗͷঢ়ଶ ʹΑΓϦιʔεׂΓͯΛมߋ͢ΔͳͲɼࡉ͔͍ࣗݾ੍ޚ͕ٻΊΒΕΔ γεςϜཁ݅Λຬͨ͢Α͏ͳ֦ு͕؆୯ʹͰ͖ͳ͍
1. ඞཁɾෆཁͳػೳͷΈ߹ΘͤΛར༻ऀ͕؆ܿʹهड़Ͱ͖Δ͜ͱ 2. γεςϜཁ݅Λຬͨ͢Α͏ͳ֦ு͕؆୯ʹͰ͖Δ͜ͱ ϗεςΟϯά༻్Λఆ͢Δͱɼྫ͑: ᶃ ίϯςφͷىಈɾఀࢭͳͲͷϥΠϑαΠΫϧΠϕϯτɼίϯςφىಈޙҰ ఆظؒޙΛܖػͱ࣮ͯ͠ߦ͞ΕΔॲཧ͕هड़ՄೳͰ͋Δ͜ͱ ᶄ ֎෦ͷ
HTTP API ͱͷ࿈ܞɼίϯςφػೳҎ֎ͷOSػೳͷ׆༻ͳͲ͕Մ ೳʹͳΔߴ͍֦ுੑ͕͋Δ͜ͱ ίϯςφʹ͓͚Δ՝Λղܾ͢Δʹ
1. ͡Ίʹ 2. ίϯςφΛར༻ͨ͠Φʔτεέʔϧͷ՝ 3. ఏҊख๏: Haconiwa 4. ຊख๏Λར༻ͨ͠ΞʔΩςΫνϟɾγεςϜͷྫ 5.
·ͱΊ ࣍
Haconiwa • චऀΒʹΑΔίϯςφϥϯλΠϜͷ ͍࣮ͪɼ2016ʹެ։ • ΦʔϓϯιʔειϑτΣΞͰ͋Δ
• ඞཁɾෆཁͳػೳͷΈ߹ΘͤΛར༻ऀ͕؆ܿʹهड़Ͱ͖Δ͔: • Έ߹ΘͤΛϥϯλΠϜͷػೳͱͯ͠αϙʔτ͠ɼޙड़͢Δmrubyͱ͍͏ ΈࠐΈ෦ݴޠ(DSL)Λར༻͠هड़ੑߴ͘ॻ͚Δ • ϥΠϑαΠΫϧΠϕϯτɼίϯςφىಈޙҰఆظؒޙΛܖػͱͨ͠ॲཧ: • DSLͰ༷ʑͳछྨͷϑοΫॲཧΛαϙʔτ͍ͯ͠Δ •
֎෦ͷ HTTP API ͱͷ࿈ܞ࣮ͳͲߴ͍֦ுੑ: • DSLͰͷϓϩάϥϛϯάɼ֎෦ϥΠϒϥϦͷຒΊࠐΈ͕Մೳ ՝ʹରͯ͠ͷHaconiwa
Haconiwaͷ ৄࡉͳػೳ
• Linuxίϯςφͷ࡞ʢචऀϓϩηεΛίϯςφԽ͢Δͱදݱ͢ΔʣΛෳ ͷػೳɾγεςϜίʔϧͷΈ߹ΘͤͰ࣮ݱ͢ΔɽͦΕΒͷػೳྨͰ͖ɼ ·ͨHaconiwaʹ͓͍ͯࣗ༝ʹΈ߹Θ͕ͤՄೳͰ͋Δ 1. OSϦιʔεͷػೳ: chrootγεςϜίʔϧɼLinux Namespace 2. OSϦιʔεͷ੍ݶػೳ:
cgroupsɼrlimitγεςϜίʔϧ 3. εʔύϢʔβݖݶͷׂ: Linux Capability 4. γεςϜίʔϧͷϑΟϧλػߏ: seccomp 3.1. ίϯςφԾԽػೳͷରԠ
ରԠػೳͷਤදʢ࣮ݱ͢ΔγεςϜίʔϧܝࣔʣ ྨ ໊শ ৄࡉ 04Ϧιʔεͷִ DISPPU ͋ΔαϒσΟϨΫτϦʹల։ͨ͠04ͷϑΝΠϧγε ςϜʹೖΓɼผͷ04ͷΑ͏ʹݟͤΔ
04Ϧιʔεͷִ -JOVY/BNFTQBDF TFUOT VOTIBSF ຊདྷ04ͰάϩʔόϧͳϦιʔεʢϗετ໊ɼ/*$ͳ Ͳʣʹ໊લۭؒΛ࡞ΓɺผͷϦιʔεΛ࣋ͨͤΔ 04Ϧιʔεͷ੍ݶ DHSPVQT DHSPVQGTΛར༻ ҙͷϓϩηεΛάϧʔϐϯά͠$16ɼϝϞϦɼॴ ଐϓϩηεͳͲΛ੍ݶ͋Δ͍ܭଌ͢Δ 04Ϧιʔεͷ੍ݶ SMJNJU QSMJNJU جຊతʹϓϩηεπϦʔ୯ҐͰ$16ɼϝϞϦɼϑΝ Πϧهड़ࢠͳͲΛ੍ݶ͢Δ ݖݶׂ -JOVY$BQBCJMJUZ QSDUM MJCDBQ εʔύϢʔβͷ࣋ͭಛݖΛز͔ͭʹׂ͠ɼҰ෦Λ ༩͋Δ͍ണୣ͢Δ γεςϜίʔϧ ϑΟϧλ TFDDPNQ TFDDPNQ MJCTFDDPNQ γεςϜίʔϧͱͦͷҾͷ݅͝ͱʹɼͦͷݺͼग़ ͠Λ੍ݶɾڐՄ͢Δ
• ͪ͜ΒදʹҰཡ͢Δ 3.2. ϑοΫػߏͷରԠ ໊শ ৄࡉ ϥΠϑαΠΫϧϑοΫ ىಈɼGPSLޭɼఀࢭɼࣦഊͱ͍ͬͨίϯςφͷϥΠϑαΠΫϧʹ ؔΘΔΠϕϯτ͝ͱʹҙͷॲཧΛ࣮ߦͰ͖Δ
λΠϜΞτϑοΫ ىಈޭޙɺίϯςφຊମͷॲཧͱඇಉظͷܗͰɼҰఆ࣌ؒܦա ޙʹҙͷॲཧΛ࣮ߦͰ͖ΔɽΠϯλʔόϧͷҰճ͚ͩͷܗ ΠϯλʔόϧϑοΫ ىಈޭޙɺίϯςφຊମͷॲཧͱඇಉظͷܗͰɼҰఆ࣌ؒͷΠ ϯλʔόϧΛऔͬͯҙͷॲཧΛఆظ࣮ߦͰ͖Δ γάφϧϋϯυϥ ίϯςφΛཧ͢ΔϓϩηεʢεʔύʔόΠβʣʹҙͷλΠϛϯ άͰಛఆͷγάφϧΛૹ͢ΔͱɺҙͷॲཧΛ࣮ߦͰ͖Δ
• ଞͷίϯςφϥϯλΠϜͰϥΠϑαΠΫϧΠϕϯτΛϕʔεͱͨ͠ϑοΫػ ߏΛαϙʔτ͍ͯ͠Δ • ྫ: Docker(ϥΠϑαΠΫϧΠϕϯτΛࢹ͢ΔHTTP APIΛ༻ҙ)ɼLXC(ઃఆ ϑΝΠϧͰҙͷίϚϯυΛ࣮ߦࢦఆՄೳ) • ҰํͰɼλΠϜΞτΠϯλʔόϧϑοΫʹؔͯ͠ݱࡏHaconiwaͷΈ͕
ίϯςφϥϯλΠϜΈࠐΈͰαϙʔτ͢Δ • ͜ͷϑοΫɼޙड़ͷFastContainerͷΑ͏ͳίϯςφͷੜଘظؒΛࢦఆ͢ Δػೳͷ࣮ݱͱ૬ੑ͕ྑ͍ ิ: ϑοΫػߏʹ͍ͭͯͷଞ࣮ͱͷൺֱ
• HaconiwamrubyͱݺΕΔܰྔͳRubyͷ ࣮ΛΈࠐΜͰ͍Δ • ίϯςφͷઃఆϑοΫॲཧΛ DSL(Domain Specific Language)Ͱهड़͠ɼ HaconiwaʹΈࠐΜͩmrubyͰධՁ͠ɼөɾ࣮ߦՄೳͰ͋Δ 3.3.
εΫϦϓτݴޠmrubyͷΈࠐΈ
• ͍ΘΏΔCRubyͱޓੑ͕͋Δจ๏ • εΫϦϓτݴޠʹ׳Εͨ ར༻ऀͰ͋ΕಡΈ͘͢ ೃછΈ͍͢Ͱ͋Ζ͏ͱ ߟ͑ΒΕΔ DSL ͷྫ
• mrubyʹmrbgemsͱݺΕΔ֎෦ϥΠϒϥϦͷΈ͕͋Δ • HaconiwaʹΈࠐ·ΕΔmrubyΛϏϧυ͢ΔࡍʹɼΠϯλʔωοτͳͲΛܦ ༝ͯ͠ಛఆͷػೳΛ࣮ݱͨ͠mrbgemsΛμϯϩʔυ͠ɼػೳίʔυΛ mrubyͦͷͷͱಉࠝ͢Δ͜ͱ͕Մೳͱͳ͍ͬͯΔ • ୯ମͷmrbgemͷ։ൃRubyݴޠ͋Δ͍CݴޠΛར༻͠൚༻తʹՄೳ • ࣮ࡍචऀΒɼઌड़ͨ͠ίϯςφؔ࿈ػೳͷར༻Λ୯ମͷgemʹ͍ͯ͠Δ
ิ: mrubyͷΤίγεςϜΛར༻֦ͨ͠ுੑ
• චऀΒʹΑΔʮmrubyΛར༻ͨܰ͠ྔίϯςφΫϥυج൫ͷݚڀ։ൃΛհ͠ ͨmrubyͷେنɾߴෛՙςετʯ͕2017Ruby Association։ൃॿ(*) ʹ࠾͞Ε͍ͯΔ • Haconiwaͷ։ൃʹ͓͍ͯɼຊॿʹΑΔRubyΞιγΤʔγϣϯ͔Βͷϝϯ λʔʢ·ͭͱΏ͖ͻΖࢯʣͷΞυόΠε͕Ұॿʹͳͬͨ͜ͱΛه͢Δ ิ: RubyΞιγΤʔγϣϯΑΓͷॿ
IUUQXXXSVCZPSKQKBOFXT
1. ͡Ίʹ 2. ίϯςφΛར༻ͨ͠Φʔτεέʔϧͷ՝ 3. ఏҊख๏: Haconiwa 4. ຊख๏Λར༻ͨ͠ΞʔΩςΫνϟɾγεςϜͷྫ 5.
·ͱΊ ࣍
• චऀΒ৽نʹίϯςφΛཧ͠ɺΫϥελϦϯάΦʔέετϨʔγϣϯʹ ར༻͢ΔΞʔΩςΫνϟΛߟҊͨ͠ɽͦΕΛFastContainerͱݺͿ • FastContainerͷಛ: • ίϯςφΛɺඞཁʹͳΔ·Ͱىಈͤͣɼ·ͨෆཁʹͳͬͨΒഁغ͢Δ • ίϯςφͷىಈͷཻϦΫΤετ୯Ґ͝ͱͳͲॆʹਫ਼៛ʹ͢Δ •
ίϯςφΛ॥ͤ͞Δ͜ͱͰɼγεςϜશମͷ߃ৗੑΛ࣮ݱ͢Δ • ϥΠϒϥϦΞϓϦέʔγϣϯͷࣗಈަɼϚΠάϨʔγϣϯͷ࣮ݱͳͲ FastContainer: ίϯςφཧΞʔΩςΫνϟ
• FastContainerΛ࣮ݱ͢Δݱࡏͷ࣮(*)ʹɼHaconiwa͕࠾༻͞Ε͍ͯΔ • ࣮֘ͷ࠾ͷཧ༝: • ઃఆΈ߹ΘͤՄೳੑʹΑΓɼػೳΛௐ͠ىಈΛܰྔʹͰ͖ͨ ʢαʔϏεͱߟ͑Δͱࡉ͔͘ूੵੑ੍͕ޚͰ͖ͨϝϦοτͰ͋ͬͨʣ • ֦ுੑɼ͜ͱλΠϜΞτϑοΫػೳʹΑΓɼҰఆظؒͷఀࢭͱ͍͏ FastContainerͷཁ݅Λ༰қʹ࣮ݱͰ͖ͨ
FastContainerͱHaconiwa ϩϦϙοϓʂϚωʔδυΫϥυ (.0ϖύϘ IUUQTNDMPMJQPQKQ
• ϖύϘݚڀॴΑΓจ(*)ɾൃදࢿྉ(**)͕ग़͍ͯΔͨΊɼࢀরͯ͠΄͍͠ FastContainer ʹؔ͢Δؔ࿈ใ IUUQTTQFBLFSEFDLDPNNBUTVNPUP@S GBTUDPOUBJOFSTIJYJOHIVBOKJOHGBMTFCJBO IVBOJTV[BPLVTIJZJOHEFLJSVIFOHDIBOH YJOHXPDIJUVTJTVUFNVBLJUFLVUJZB IUUQTSBOEQFQBCPDPNBSUJDMF
JPUNBUTVNPUPSZ
1. ͡Ίʹ 2. ίϯςφΛར༻ͨ͠Φʔτεέʔϧͷ՝ 3. ఏҊख๏: Haconiwa 4. ຊख๏Λར༻ͨ͠ΞʔΩςΫνϟɾγεςϜͷྫ 5.
·ͱΊ ࣍
• ΠϯλʔωοτɾWebϢʔβͷ֦େʹΑΓɺαʔϏεӡ༻ऀ༧ଌͰ͖ͳ͍ ෛՙ্ͳͲʹରԠ͠ͳ͚ΕͳΒͣɼΦʔτεέʔϧʹ͕ू·Δ • ͦͷج൫Ͱίϯςφ͕ීٴ͢Δ͕ɼϗεςΟϯάͰͷར༻ʹ՝ • ՝Λड͚Haconiwa͕࣮ݱͨ͠ಛ: • Έ߹ΘͤՄೳੑ: ίϯςφΛ࣮ݱ͢ΔػೳΛࣗ༝ʹΈ߹ΘͤՄೳ
• ֦ுੑ: ϑοΫͷ࣮ߦಛԽͨ͠ػೳͷ࣮͕༰қ • FastContainerͱ͍͏ΞʔΩςΫνϟͰར༻͠αʔϏεΠϯ͍ͯ͠Δ ·ͱΊ
• ଞͷίϯςφϥϯλΠϜ͕αϙʔτ͢ΔҰ෦ػೳ͕ະ࣮ • ۩ମతʹMandatory Access Control(SELinux/AppArmorଞ)ͱͷ࿈ܞͳͲ • ϑοΫػߏɼྫ֎ػߏͳͲΛΑΓ҆ఆ͍ͤ͘͢͢͞Δ • ར༻ऀ͕·ͩগͳ͘ɼใগͳ͍
• ΤίγεςϜΛॆ࣮ͤ͞ΔɽυΩϡϝϯτͪΖΜͰ͋Δ͕ɼHaconiwa Λར༻ͨ͠ίϯςφཧΛ؆୯ʹମݧͰ͖ΔΑ͏ͳOSSݕ౼͢Δ ՝ͱࠓޙͷHaconiwa
• HaconiwaݱࡏɼFastContainerΞʔΩςΫνϟͱͷซ༻ͷΈ͕ࣄྫͱͳͬͯ ͍Δɽ·ͨɼFastContainerͱΈ߹ΘͤͰॳͷ՝ͷղܾΛࢼΈ͍ͯΔ • FastContainerͷ࣮ݱʹ࠷ద͍ͯ͠Δ͜ͱݴ͑ΔͩΖ͏ • ࠓޙɼHaconiwa͕͍ࣗ࣋ͬͯΔ 1)Έ߹ΘͤՄೳੑ 2)֦ுੑ ͦΕͧΕ͕
ଞͷΞʔΩςΫνϟɼOSSͷॾπʔϧͱͷ࿈ܞͷ্Ͱ༗ޮͰ͋Δ͜ͱΛ࣮ ূ͍͖͍ͯͨ͠ • ͦͷͨΊʹଞͷπʔϧͱͷ࿈ܞੑΛߴΊΔ͜ͱΛߟ͍͑ͯΔ ΤίγεςϜʹؔ͢Δ՝ͷิ
• ຊจɼڞஶऀͷ΄͔ҎԼͷํʑΑΓॿݴɾఏҊΛ͍͍͍ͨͩͯΔɽ • भେֶ Ԭଜߞೋઌੜɼౢ٢ོઌੜɼּݪٛߊઌੜ • GMOϖύϘݚڀॴސ ྗ݈ٕ࣍ज़࢜ • ΫοΫύου
ాߞҰ͞Μ • ຊจͷ༰ɼฏ29 ࠃཱใֶݚڀॴΫϥυར׆༻࣮ূ࣮ݧʹ͓ ͚ΔՌͷҰ෦Λར༻͍ͯ͠Δ ँࣙ