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
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
940
Other Decks in Technology
See All in Technology
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
130
2026/09/10 Spring_Bootから_Jakarta_EE_MicroProfileへの移行
megascus
0
140
【視聴者参加型!】AWSセキュリティアンチパターンクイズ
syoshie
0
450
20260903 Tokyo Jazug Night #62 | Azure エンジニアよ、 その環境は本当にセキュアか?
olivia_0707
1
620
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
240
2026-09-04 SRE Tech Talk #15 怠惰なTerraform / Lazy Terraform
masasuzu
0
210
全員がプロダクトへ向き合う組織を持続成長させるために——組織づくりのフライホイールと4象限 / The Flywheel Model and Four Quadrants for Organizational Design
hiro_torii
3
870
Driving AI Adoption Using In-House GPUs to Serve Qwen
po3rin
2
460
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
280
いま、生成AIにKaggleをどこまで 任せられるか — ROGIIコンペでの進め方とTips
k951286
3
1.4k
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
240
Sigmaユーザーのための有用リソース一挙公開 & Sigmaで使えるMCP #sigma_ucj /useful-resources-for-sigma-computing-users-and-mcps-with-sigma
shinyaa31
0
140
Featured
See All Featured
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
400
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
520
The Language of Interfaces
destraynor
162
27k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
720
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
310
Accessibility Awareness
sabderemane
1
200
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
690
How to Think Like a Performance Engineer
csswizardry
28
2.8k
Tell your own story through comics
letsgokoyo
1
1.1k
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 ࠃཱใֶݚڀॴΫϥυར׆༻࣮ূ࣮ݧʹ͓ ͚ΔՌͷҰ෦Λར༻͍ͯ͠Δ ँࣙ