Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Haconiwa: プログラムによる組み立て可能性と拡張性を持つLinuxコンテナ
KONDO Uchio
March 13, 2018
Technology
4
840
Haconiwa: プログラムによる組み立て可能性と拡張性を持つLinuxコンテナ
情報処理学会第80回全国大会 発表資料
KONDO Uchio
March 13, 2018
Tweet
Share
More Decks by KONDO Uchio
See All by KONDO Uchio
Narrative of Ruby & Rust
udzura
0
5
開発者生産性指標の可視化 / pepabo-four-keys
udzura
2
480
Talk of RBS
udzura
0
110
Re: みなさん最近どうですか? / FGN tech meetup in 2021
udzura
0
430
Dockerとやわらかい仮想化 - ProSec-IT/SECKUN 2021 edition -
udzura
1
310
Device access filtering in cgroup v2
udzura
0
310
"Story of Rucy" on RubyKaigi takeout 2021
udzura
0
250
生産性を可視化したい! / SUZURI's four keys
udzura
11
4.6k
@udzura at prog-lang-sys-ja
udzura
0
31
Other Decks in Technology
See All in Technology
Red Hat Summit 2022 の概要とオススメセッションのご紹介
rhpej
1
200
Power BIのモバイルと都 +1 / Tokyo
ishiayaya
0
130
How We Foster Reliability in Diversity
nari_ex
PRO
8
1.6k
220428event_karibe_part
caddi_eng
0
180
実験!カオスエンジニアリング / How to Chaos Engineering
oracle4engineer
PRO
0
110
tfcon-2022-cpp
cpp
5
4k
ここらでGPSマルチユニットが如何に使いやすいか本気で説明するから聞きなさい
mitsuzono
0
180
220428event_ogura_part
caddi_eng
0
170
僕の Microsoft Teams (+α) 便利技紹介 2022年春
taichinakamura
0
1.8k
220428event_overview
caddi_eng
1
200
Adopting Kafka for the #1 job site in the world
ymyzk
1
210
Accelerating ZOZOTOWN Modernization with Istio
yokawasa
0
210
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
126
5.4k
Fireside Chat
paigeccino
11
1.2k
A better future with KSS
kneath
225
15k
Reflections from 52 weeks, 52 projects
jeffersonlam
337
17k
Principles of Awesome APIs and How to Build Them.
keavy
113
15k
Web development in the modern age
philhawksworth
197
9.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
119
28k
The Straight Up "How To Draw Better" Workshop
denniskardys
225
120k
Keith and Marios Guide to Fast Websites
keithpitt
404
21k
Web Components: a chance to create the future
zenorocha
303
40k
Imperfection Machines: The Place of Print at Facebook
scottboms
253
11k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
11
4.6k
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 ࠃཱใֶݚڀॴΫϥυར׆༻࣮ূ࣮ݧʹ͓ ͚ΔՌͷҰ෦Λར༻͍ͯ͠Δ ँࣙ