Share
Embed
ユーザー体感を向上するWebサービス基盤技術に関する研究 / pepaken-infra-rand
ペパボ研究所によるWebサービスのユーザ体感と技術者体感に関する研究
ペパボ研究所 主席研究員 松本亮介 / Pepabo R&D Institute, GMO Pepabo, Inc.
2017.06.20 ペパボ研究所の研究紹介
Webサービス利用者のユーザー体感(User Sensation)の改善
Webサービス提供側の技術者体感(Engineer Sensation)の改善
MATSUMOTO Ryosuke PRO
June 20, 2017
Transcript
46 slides
-
ϖύϘݚڀॴʹΑΔWebαʔϏεͷϢʔβମײͱٕज़ऀମײʹؔ͢Δݚڀ ϖύϘݚڀॴ ओ੮ݚڀһ দຊ྄հ / Pepabo R&D Institute, GMO Pepabo,
Inc. 2017.06.20 ϖύϘݚڀॴͷݚڀհ ϢʔβʔମײΛ্͢Δ WebαʔϏεج൫ٕज़ʹؔ͢Δݚڀ -
ਓؒͷൃ vs ج൫ٕज़(ػց)ͱࢲͷݚڀ 5 ج൫ٕज़ ػց ϓϩμΫτ ਓؒͷൃ ਓͷମྗɾਫ਼ਆͷݶք ਓͷମྗɾਫ਼ਆͷݶք
ਓྗͰࢧ͑ଓ͚Δ ਓྗͰ͛ଓ͚Δ ਓྗͰࢧ͑ଓ͚Δ ϓϩμΫτͷݶքͷ෯ ج൫ٕज़ ػց ϓϩμΫτ ਓؒͷൃ ػցͰࢧ͑ଓ͚Δ ϓϩμΫτͷݶքͷ෯ • ॎ࣠ϓϩμΫτ։ൃɾӡ༻ͷίετͱݴ͑Δ • ج൫ٕज़ͷݶքΛ͑Δ͘ਓͰΧόʔ͍ͯ͠Δ • ॎ࣠ͷίετΛ͘ɺԣ࣠ͷݶքͷ෯Λ͛Δͨ Ίͷݚڀ։ൃΛߦ͍ͬͯΔ দຊͷݚڀ -
• WebαʔϏεར༻ऀͷϢʔβʔମײ(User Sensation)ͷվળ • WebαʔϏεར༻ऀͷແҙࣝԼʹ͓͚Δշదͳײ֮ͷఏڙ • ͨΓલʹී௨ʹҧײͳ͍͘ଓ͚ΒΕΔ͜ͱͷշద͞ • WebαʔϏεఏڙଆͷٕज़ऀମײ(Engineer Sensation)ͷվળ
• ͨΓલʹγεςϜͷ҆ఆੑΛอͪɺਓͷڧ੍հೖΛݮ 6 ࢲͷݚڀςʔϚ -
1. ηΩϡϦςΟͱੑೳͷཱ྆ʹؔ͢Δݚڀ 2. ηΩϡϦςΟͷͨΊͷӡ༻ٕज़ͱੑೳվળͷݚڀ 3. มԽ͠ଓ͚Δ͜ͱʹΑΔ҆ఆੑΛ࣮ݱ͢Δج൫ٕज़ͷݚڀ 9 ຊεϥΠυͰ3ͭͷݚڀΛհ দຊ྄հ, Ԭ෦णஉ,εϨου୯ҐͰݖݶΛߦ͏WebαʔόͷΞΫηε੍ޚΞʔΩςΫνϟ,ిࢠ
ใ௨৴ֶձจࢽ Vol.J96-B, No.10, pp.1122-1130, Oct 2013. -
• ݖݶΛLinuxεϨουੜɾഁغͷίετͰ࣮ݱ • εϨου୯ҐͰݖݶΛ੍ޚ͢ΔͷͰ࣮ෳࡶ • εϨουͷੜഁغϓϩηεͱൺͯेഒίετ※1 11 εϨου୯ҐͰݖݶ ※1 Gu
Yan, Bu-Sung Lee, Wentong Cai, "Evaluation of Java thread performance on two different multithreaded kernels." ACM SIGOPS Operating Systems Review, Vol. 33, No. 1, pp. 34-46, 1999. -
1. ηΩϡϦςΟͱੑೳͷཱ྆ʹؔ͢Δݚڀ 2. ηΩϡϦςΟͷͨΊͷӡ༻ٕज़ͱੑೳվળͷݚڀ 3. มԽ͠ଓ͚Δ͜ͱʹΑΔ҆ఆੑΛ࣮ݱ͢Δج൫ٕज़ͷݚڀ 15 ຊεϥΠυͰ3ͭͷݚڀΛհ • দຊ྄հ,
Ԭ෦ णஉ, mod_mruby: εΫϦϓτݴޠͰߴ͔ͭলϝϞϦʹ֦ுՄೳͳWebαʔόͷػೳ ֦ுࢧԉػߏ, ใॲཧֶձจࢽɼVol.55, No.11, pp.2451-2460, Nov 2014. • দຊ྄հ, ࡾ ༔հ, ྗ ݈࣍, ܀ྛ ݈ଠ, ߴूੵϚϧνςφϯτWebαʔόͷେنূ໌ॻཧ, ใॲཧֶձݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ʢIOTʣ,2017-IOT-37(1), 1-8, 20175݄. -
• αʔόϓϩηεىಈ࣌ʹશͯͷূ໌ॻΛಡΈࠐΉ • ىಈ͕࣌ؒ͘ӡ༻ͷޮ͕ѱ͍ • αʔόϓϩηεͷϝϞϦ༻ྔଟ͍ • ϝϞϦ༻ྔʹىҼͯ͠ۃʹੑೳྼԽ͢Δॲཧ༗Γ • ৽͍͠ϗετͱূ໌ॻՃ࣌ʹϓϩηε࠶ىಈ͕ඞཁ
• HTMLը૾ͷ੩తϑΝΠϧेͳͰಈ࡞ 17 ैདྷख๏ͷಛ -
• ϦΫΤετ୯ҐͰূ໌ॻͷॲཧΛશͯߦ͏ • αʔόϓϩηεىಈ࣌ؒඇৗʹૣ͍ • ϓϩηεͷϝϞϦ༻ྔେ෯ʹݮ • ϝϞϦ༻ྔʹىҼͨ͠ۃʹੑೳྼԽ͢Δղܾ • ৽نূ໌ॻΛϓϩηε࠶ىಈ͢Δ͜ͱͳ͘ద༻Մೳ
• ੩తϑΝΠϧͷੑೳͷΦʔόʔϔουʹͳΒͳ͍͔͕؊ 18 ఏҊख๏ͷಛ -
10ສϗετͷূ໌ॻಡΈࠐΈ࣌ͷ֤छൺֱ 19 8FCαʔόϓϩηεىಈ࣌ͷ ϝϞϦ༻ྔ ϝϞϦ༻ྔ .#ZUFT
ϓϩηεͷϝϞϦ༻ྔ ैདྷख๏ ఏҊख๏ 8FCαʔόϓϩηεͷ ىಈ࣌ؒ ࣌ؒ ඵ ϓϩηεىಈ࣌ؒ ैདྷख๏ ఏҊख๏ -
ߴूੵʹϗετΛऩ༰ͨ࣌͠ͷfork()ੑೳൺֱ 20 8FCαʔόϓϩηεͷDMPOF γεςϜίʔϧ࣮ߦ࣌ؒ ʢ$(*Ͱར༻͞ΕΔγεςϜίʔϧʣ ࣮ߦ࣌ؒ NTFD
ϗετ ϗετ ϗετ ϗετ ैདྷख๏ ఏҊख๏ -
• ECࢧԉαʔϏεɾϗεςΟϯάαʔϏεڞʹಋೖࡁΈ • ຊख๏ͷཁૉٕज़Ͱ͋Δngx_mruby΄΅શαʔϏεͰ׆༻ • ngx_mrubyੈքதͷWebϑϨʔϜϫʔΫੑೳίϯςϯετ ͷRuby෦Ͱ5େձ࿈ଓੈք1Ґ※1 22 ࣾͰಋೖࡁΈ ※1
TechEmpower Web Framework Benchmarks(Plaintext, JSON serialization, Ruby), https:// www.techempower.com/benchmarks. -
1. ηΩϡϦςΟͱੑೳͷཱ྆ʹؔ͢Δݚڀ 2. ηΩϡϦςΟͷͨΊͷӡ༻ٕज़ͱੑೳվળͷݚڀ 3. มԽ͠ଓ͚Δ͜ͱʹΑΔ҆ఆੑΛ࣮ݱ͢Δج൫ٕज़ͷݚڀ 24 ຊεϥΠυͰ3ͭͷݚڀΛհ দຊ྄հ, ࡾ
༔հ, ྗ ݈࣍, ܀ྛ ݈ଠ, FastContainer: WebΞϓϦέʔγϣϯίϯςφͷىಈΛϦΞΫςΟϒʹܾఆ ͢ΔίϯςφཧΞʔΩςΫνϟ, ใॲཧֶձݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ʢIOTʣ,2017-IOT-38, 20176݄. -
• ఆൣғͷ࣭࠷େԽΛతʹ͠ͳ͍ • γεςϜͷཁૉͷఀࢭ͔ΒىಈॲཧͷޮԽʹண • γεςϜͷཁૉͷఀࢭঢ়ଶΛڐ༰͢ΔγεςϜ • ৗʹఀࢭͱىಈ͕॥Մೳͳ߃ৗੑΛ࣋ͭγεςϜΛࢦ͢ • ॥Մೳ
= Մ༻ੑ͕ߴ͘ৗʹมԽՄೳͳج൫͕࣮ݱͰ͖Δ 26 Մ༻ੑߴ͘มԽʹڧ͍ج൫Λ࡞Δʹʁ -
มԽ͠ଓ͚Δ͜ͱ͔ΒಘΒΕΔ҆ఆੑ 27 ϗετ" ϗετ" ϗετ" ϗετ" ϗετ" Πϯλʔωοτ ϗετ" ϗετ"
ϗετ" ͕ͯఀࢭ Ԡతʹىಈ Ԡతʹ εέʔϧΞοϓ ऩ༰αʔόA ऩ༰αʔόB HTTPϦΫΤετ Ԡతʹ εέʔϧΞτ • ϗετͷىಈͱఀࢭΛ॥ • ৗʹ॥͠ଓ͚ΔΞʔΩςΫνϟ • มԽ͠ଓ͚Δ͜ͱʹΑΔ҆ఆੑ • ॥ͷվળΛٻ ৗʹมԽՄೳͰ͋ΔͨΊಥൃతͳΞ ΫηεूதͷΑ͏ͳมԽʹੑͷ ͋ΔΞʔΩςΫνϟΛ࣮ݱՄೳ -
• WebαʔϏεར༻ऀͷϢʔβʔମײ(User Sensation)ͷվળ • WebαʔϏεఏڙଆͷٕज़ऀମײ(Engineer Sensation)ͷվળ • ݚڀ։ൃΛ௨ͯ྆͠ํͷମײΛվળ͍ͯ͘͠ • ج൫ٕज़ͷվળΛ௨ͯ͠ਓ͕ࢧ͑Δ͖ྖҬΛΑΓߴʹ
• WebαʔϏεج൫ͷݶքΛ͑ɺϓϩμΫτͷݶքΛ͑Δ 34 WebαʔϏεج൫ٕज़ͷݚڀհ -
• দຊ྄հ, Ԭ෦ णஉ, mod_mruby: εΫϦϓτݴޠͰߴ͔ͭলϝϞϦʹ֦ுՄೳͳWebαʔό ͷػೳ֦ுࢧԉػߏ, ใॲཧֶձจࢽɼVol.55, No.11, pp.2451-2460,
Nov 2014. • দຊ྄հ, Ԭ෦णஉ,εϨου୯ҐͰݖݶΛߦ͏WebαʔόͷΞΫηε੍ޚΞʔΩςΫνϟ,ి ࢠใ௨৴ֶձจࢽ Vol.J96-B, No.10, pp.1122-1130, Oct 2013. • দຊ྄հ, ݪক࢘, দԬً, େنڞ༗ܕWebόʔνϟϧϗεςΟϯάج൫ͷηΩϡϦςΟͱ ӡ༻ٕज़ͷվળ, ใॲཧֶձจࢽ, Vol.54, No.3, pp.1077-1086, Mar. 2013. 38 จࢽจ -
• Yoshiharu Tsuzaki, Ryosuke Matsumoto, Daisuke Kotani, Shuichi Miyazaki, Yasuo
Okabe, A Mail Transfer System Selectively Restricting a Huge Amoount of E-mails, Workshop on Resilient Internet based Systems (REIS 2013), Dec. 2013. • Hiroki Okamoto, Ryosuke Matsumoto, Yasuo Okabe, Design of Cooperative Load Distribution for Addressing Flash Crowds Using P2P File Sharing Network, IEEE 37th Annual International Computer Software and Applications Conference (COMPSAC2013), July 2013. • Ryosuke Matsumoto, Yasuo Okabe, Access Control Architecture Separating Privilege by a Thread on a Web Server, The 12th IEEE/IPSJ International Symposium on Applications and the Internet (SAINT2012), pp.178-183, July 2012. 39 ࠃࡍձٞʢࠪಡ͖ʣ -
• দຊ྄հ, Ԭ෦ णஉ, mod_mruby: εΫϦϓτݴޠͰߴ͔ͭলϝϞϦʹ֦ுՄೳͳWebαʔό ͷػೳ֦ுࢧԉػߏ, Πϯλʔωοτͱӡ༻ٕज़γϯϙδϜ2013จूɼ2013ɼ79-86 ʢ2013-12-5ʣ, 201312݄.
• দຊ྄հ, ݪক࢘, দԬً, ൚༻ੑͷߴ͍େنڞ༗ܕWebόʔνϟϧϗεςΟϯάج൫ͷη ΩϡϦςΟͱӡ༻ٕज़ͷվળ, Πϯλʔωοτͱӡ༻ٕज़γϯϙδϜ2011จू,2011,31-38 (2011-11-24) , 201112݄. 40 ࠃൃදʢࠪಡ͖ʣ -
• দຊ྄հ, ࡾ ༔հ, ྗ ݈࣍, ܀ྛ ݈ଠ, FastContainer: WebΞϓϦέʔγϣϯίϯςφͷى
ಈΛϦΞΫςΟϒʹܾఆ͢ΔίϯςφཧΞʔΩςΫνϟ, ใॲཧֶձݚڀใࠂΠϯλʔωο τͱӡ༻ٕज़ʢIOTʣ,2017-IOT-38, 20176݄. • ࡾ ༔հ, দຊ ྄հ, ྗ ݈࣍, ܀ྛ ݈ଠ, ΞΫηεස༧ଌʹجͮ͘ԾαʔόͷܭըతΦʔ τεέʔϦϯά, ใॲཧֶձݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ʢIOTʣ,2017-IOT-38, 2017 6݄. • দຊ ྄հ, ࡾ ༔հ, ྗ ݈࣍, ܀ྛ ݈ଠ, ߴूੵϚϧνςφϯτWebαʔόͷେنূ໌ॻ ཧ, ݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ʢIOTʣ,2017-IOT-37(1),1-8 (2017-05-18) , 2188-8787. 41 ޱ಄ൃද -
• ࡾ ༔հ, দຊ ྄հ, ྗ ݈࣍, ܀ྛ ݈ଠ, ಛநग़ثͷֶशͱߪങཤྺΛඞཁͱ͠ͳ͍ྨࣅը
૾ʹΑΔؔ࿈ݕࡧγεςϜ, ݚڀใࠂΠϯλʔωοτͱӡ༻ٕज़ʢIOTʣ,2017-IOT-37(4),1- 8 (2017-05-18) , 2188-8787. • দຊ྄հ, ాฏ ߁࿕, ࢁԼ , ܀ྛ ݈ଠ, ಛྔநग़ͱมԽݕग़ʹجͮ͘Webαʔόͷߴू ੵϚϧνςφϯτํࣜʹ͓͚ΔϦιʔεͷ੍ࣗޚΞʔΩςΫνϟ, ใॲཧֶձݚڀใࠂΠϯ λʔωοτͱӡ༻ٕज़ʢIOTʣ,2017-IOT-36(26), 1-8, (2017-02-24). • দຊ ྄հ, ܀ྛ ݈ଠ, ಛྔநग़ͱมԽݕग़ʹجͮ͘WebαʔόϦιʔεͷ੍ࣗޚΞʔΩ ςΫνϟ, Πϯλʔωοτͱӡ༻ٕज़γϯϙδϜ2016จू(IOTS2016), Vol.2016, pp.101, 201612݄ 42 ޱ಄ൃද -
• দຊ྄հ, ηΩϡϦςΟͱੑೳཁ݅Λಉ࣌ʹຬͨ͢αʔόϗεςΟϯάٕज़ͷ࠷৽ಈ, ୈ39ճΠ ϯλʔωοτٕज़ୈ163ҕһձݚڀձɹ-ITRC meet39-, 20165݄. • দຊ྄հ, ਓೳWEBαʔόʔͷ҉ҋΛٹ͏,
IPSJ-ONE 2016, 20163݄. 43 ޱ಄ൃද -
• দຊ྄հ, Think IT ฤू෦, ΤϯδχΞͷͨΊͷAIೖ ୈ2෦ ࣄྫฤɿAI࠷લઢͷݱ͔Β ʙۀ քผAIͷऔΓΈ
GMOϖύϘ AIͰWebγεςϜΛ੍ࣗޚ͢ΔʮͳΊΒ͔ͳγεςϜʯͷऔ ΓΈ, ΠϯϓϨε Think IT ฤू෦, 20177݄. • দຊ྄հ, ୳͠ʹߦ͜͏ࣗͷॴ - اۀͱֶज़ݚڀͷަࠩͰɺߴΈΛࢦ͢, Ϧόωεใࢽ ֶ෦ɾӃੜͷͨΊͷݚڀΩϟϦΞɾब׆ใࢽʰincuɾbeʱvol.35, 201612݄ɽ • দຊ྄հ, ਓೳ͕Τϒαʔόͷҟৗঢ়ଶΛݟ͚ͭɺαʔόཧऀΛٹ͏ʙ͜Εͬͯ ੜ໋ʁ, Տ߹क़ΈΒ͍Ϳϓϥε, 201610݄ɽ • দຊ྄հ, ࣗΒΛཧͰ͖Δɺੜ໋ͷΑ͏ʹݟ͑ΔΠϯλʔωοτٕज़ͷݚڀ։ൃʹΉ দຊ྄ հઌੜΠϯλϏϡʔ, Տ߹क़ΈΒ͍Ϳϓϥε, 201610݄ɽ 44 ֶձࢽɾۀࢽղઆ -
• দຊ྄հ, ܀ྛ݈ଠ, ̢̜̤ϖύϘɺ̖̞ͰαʔόʔӡӦޮߴΊΔ࣍ੈܕγεςϜ։ൃ, ץۀ৽ฉ ϩϘοτχϡʔε, 20168݄ɽ • দຊ྄հ, ܀ྛ݈ଠ,
AI࠷લઢͷݱ͔ΒʲGMOϖύϘʳʮͳΊΒ͔ͳγεςϜʯͷऔΓΈ, ࿈ࡌ: σΟʔϓϥʔχϯάɾਓೳ ࠷લઢ 2016, 20167݄. • দຊ྄հ, ܀ྛ݈ଠ, ʮGMOϖύϘݚڀॴʯઃཱɺΨνͳֶज़ݚڀͰϗεςΟϯάαʔϏεࠩ ผԽɺॴɾ܀ྛ݈ଠࢯɺओ੮ݚڀһɾদຊ྄հࢯ, INTERNET Watch τϐοΫ ۀքಈ ا ۀ ΠϯλϏϡʔ, 20167݄. • দຊ྄հ, ʲಛผاըʳ շదɾՁ֨ɾ҆શΛ࣮ݱͨ͠”࣍ੈϗεςΟϯά”ͷൿີʹഭΔ!, Ϛ ΠφϏχϡʔεITاۀ ηΩϡϦςΟಛผاը, 20165݄. 45 ֶձࢽɾۀࢽղઆ