Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Future of mruby in HTTP Server - RubyKaigi 2015

The Future of mruby in HTTP Server - RubyKaigi 2015

As the HTTP/2 RFC was published, implementations of HTTP/2 have been actively developed. In this session, from the standpoint of an author of an extension mechanism using mruby for typical HTTP/1.x and HTTP/2 servers like apache, nginx and H2O, I show the possibility of design using mruby in HTTP server with new special features of HTTP/2 like server push. I explain how to design the complex web service system using both HTTP/1.x and HTTP/2 servers based on the need for HTTP/2 considering the changes in the architecture of Web service systems.

MATSUMOTO Ryosuke

December 21, 2015
Tweet

More Decks by MATSUMOTO Ryosuke

Other Decks in Technology

Transcript

  1. GMO Pepabo, Inc. Principal Engineer MATSUMOTO, Ryosuke @matsumotory 2015/12/11 RubyKaigi

    2015 5IF'VUVSFPGNSVCZ JO)5514FSWFS .JEEMFXBSF$POpHVSBUJPOBT$PEF
  2. !NBUTVNPUPSZ  ."546.050 3ZPTVLF  1SJODJQBM&OHJOFFSBU(.01FQBCP *OD  8FCPQFSBUJPO EFWFMPQNFOUBOESFTFBSDI

     )BOEMFBDPNQBOZXJEFJOUFSOFUUFDIOPMPHZ  044 "DBEFNJD3FTFBSDI &OHJOFFSJOH  IUUQSFTFBSDINBUTVNPUPSKQ
  3. $POUFOUT  )551JOUSPEVDUJPO  )551DIBSBDUFSJTUJDT  4FSWFSQVTI  1SJPSJUJ[BUJPO 

    NSVCZJO)5514FSWFSEFTJHOQPMJDZ  NSVCZJO)5514FSWFS  $PODMVTJPOBOE'VUVSFSFTFBSDIQMBO
  4. )5511SPCMFNT  /PU.VMUJQMFYJOH  SFRVFTUSFTQPOTFQFS355ʢ3PVOE5SJQ5JNFʣ  )BSEUPSFBMJ[F)551QJQFMJOJOHJOQSBDUJDF  4FOENVMUJQMFSFRVFTUTXJUIPVUXBJUJOHGPSUIF DPSSFTQPOEJOHSFTQPOTFTJO355

     /FFEUPTZODISPOJ[FUIFPSEFSTPGSFRVFTUTBOE SFTQPOTFT  "TMPXSFRVFTUIBOEMJOHCMPDLTUIFTVCTFRVFOUPQFSBUJPOT  )BSEUPEFUFSNJOFXIFUIFSUPSFTFOESFRVFTUTMJLF1045  .BOZCVHTBOEOPOTUBOEBSEPQUJPOT
  5. )551ʢ3'$ʣ  &⒏DJFOUMZTFOEEBUBCZ355  6TFlGSBNFTzUPTFOEEBUB  l'SBNFTzBSFTFOUPOBlTUSFBNz  .VMUJQMFYFETUSFBNTPOTJOHMF5$1TFTTJPO 

    *UJTQPTTJCMFUPTFOEPWFSSFRVFTUT GSBNFT  TJNVMUBOFPVTMZ  .VMUJQMFYJOHSFEVDFTF⒎FDUTPGMBUFODZ  4USFBNTBSFMBSHFMZJOEFQFOEFOUPGFBDIPUIFS  NVMUJQMFYJOHPGSFRVFTUTFOBCMFTF⒏DJFOUVTFPG CBOEXJEUI
  6. .BKPS)5514FSWFST  )0CZ!LB[VIP  5IF0QUJNJ[FE)551BOE)5514FSWFS  OHIUUQYCZ!UBUTVIJSP@U  )551SFGFSFODFJNQMFNFOUBUJPO TFSWFSBOEMJCSBSJFT

     TVQQPSUT)551DPOOFDUJPOXJUICBDLFOETFSWFS NBZCFPOMZMJCSBSZ   5SVTUFSE)5514FSWFSCZ!NBUTVNPUPSZ  CZ!NBUTVNPUPSZ OPUNBKPS VTJOHMJCOHIUUQ  "QBDIFIUUQEW  OHJOYW  "MMPGUIFNBSFDPOUSPMMBCMFCZVTJOHNSVCZ
  7. .BOZNBOZNBOZDIBSBDUFSJTUJDTʜ  5PEBZ`TUPQJDTBSFUIFTFUXPGFBUVSFTDMPTFMZ SFMBUFEUPNSVCZ  4FSWFSQVTI  1SJPSJUJ[BUJPO  'PSSFGFSFODF

     ʮ)551࣌୅ͷ΢ΣϒαΠτઃܭʯ "SDIJUFDUTPGUIF XFCTJUFTGPSUIF)551FSB CZ!LB[VIP  IUUQZBQDBTJBPSHUBMLTIPXEFBECFBEDEDB  ʮ)551࣌୅ͷ8FCʯ 8FCPWFS)551 CZ!+YDL  IUUQZBQDBTJBPSHUBMLTIPXFBFGCFBBCEDB
  8. 4FSWFSQVTICZCBDLFOE)551TFSWFS  3FRVFTUGSPOUTJEF)551TFSWFSUPEPTFSWFSQVTICZBEEJOH-JOLIFBEFS  'SPOUTFSWFSDBOQVTIUPBDMJFOUEJSFDUMZCFGPSFGPSXBSEJOHUPBCBDLFOE $MJFOU )551 SFWFSTFQSPYZ )551 CBDLFOE

    TFSWFS )551DPOOFDUJPO )551DPOOFDUJPO "EE-JOLIFBEFS -JOLJOEFYKTSFMQSFMPBE 'PSXBSESFRVFTU (&5JOEFYUYU 3FTQPOTF TFSWFSQVTIJOEFYKT 3FTQPOTF JOEFYUYU
  9. 4FSWFSQVTICZCBDLFOE)551TFSWFS  $VSSFOUMZPOMZOHIUUQYDBONBLF)551DPOOFDUJPOGPSCBDLFOETFSWFS  $VSSFOUMZXFTIPVMEVTF-JOLIFBEFSFWFOJGBCBDLFOETFSWFSTVQQPSUT)551  *OUIFGVUVSFUIFSFJTTPNFQPTTJCJMJUZPGSFUVSOJOH164)@130.*4&TFOEGSPNB CBDLFOETFSWFS  5IFSFBSFTPNFQSPCMFNT

    FHIPXUPNBOBHF4&55*/(4CFUXFFOUXPIPQT $MJFOU )551 SFWFSTFQSPYZ OHIUUQY )551 CBDLFOE TFSWFS )551DPOOFDUJPO )551DPOOFDUJPO "EE-JOLIFBEFS -JOLJOEFYKTSFMQSFMPBE 'PSXBSESFRVFTU (&5JOEFYUYU 3FTQPOTF TFSWFSQVTIJOEFYKT 3FTQPOTF JOEFYUYU
  10. 1SPCMFNTBOETPMVUJPOTPGTFSWFSQVTI  5IFQSPCMFNPGCSPXTFSDBDIF  "TFSWFSDBO`UEFUFDUBCSPXTFSDBDIF  4FOEJOHBSFRVFTUUPEFUFDUBDBDIFXBTUFTF⒏DJFODZ HBJOFEXJUITFSWFSQVTI  )0IBTDBDIFBXBSFTFSWFSQVTI

     .BOBHFJOGPSNBUJPOBCPVUDBDIFCZOFXIFBEFS OPXVTJOH $PPLJFʣFBDIPUIFS  #PUIDMJFOUTBOETFSWFSTTIPVMEJNQMFNFOUUIJTGFBUVSF  !LB[VIPNBEFBESBGU  IUUQLB[VIPHJUIVCJPIUUQDBDIFpOHFSQSJOU  *XBOUUPDPOUSPMTFSWFSQVTICZVTJOHNSVCZ
  11. 4FSWFS1VTIXJUI4FSWJDF8PSLFS  3FTFBSDIGPSF⒏DJFODZJNQSPWFNFOUXJUI TFSWFSQVTICZ!+YDL  IUUQKYDLIBUFOBCMPHDPNFOUSZTFSWJDFXPSLFSDBTQFS  6TF48UPDPOUSPMDBDIFJOTUFBEPGCSPXTFS  48DBMDVMBUFDBDIFpOHFSQSJOU

    QSPYZBSFRVFTU BOEBEEIFBEFS  &OBCMFUPVTFDBDIFBXBSFTFSWFSQVTIFWFOJG CSPXTFSTEPO`UTVQQPSU  5IFSFBSFTPNFQSPCMFNTʜ TFFUIFXFCQBHF
  12. 1SJPSJUJ[BUJPODPOUSPMPOTFSWFSTJEF  )0TFSWFSPQUJNJ[FTQSJPSJUJ[BUJPO  8IFODMJFOUTQSPWJEFOPQSJPSJUJ[BUJPOJOGPSNBUJPO  )0TFSWFTHJWFQSJPSJUZUPDPOUFOUTXIJDINBZ JNQSPWFpSTUQBJOUUJNF  "MUIPVHIJO3'$QVTIJOHDPOUFOUTTIPVMEGPMMPX

    SFRVFTUDPOUFOUT )0BMTPDPOUSPMTQSJPSJUJ[BUJPOXIFO QVTIJOHEBUB  FHHJWJOHUPQQSJPSJUZUP$44PS+4 )5.-PWFS JNBHFT  *XBOUUPDPOUSPMQSJPSJUJ[BUJPOCZVTJOHNSVCZ
  13. 5IJOHT*LFFQJONJOE  )JHIQFSGPSNBODF  5POPUCFPWFSIFBE  1SFWFOUNFNPSZVTBHFGSPNJODSFBTJOHMJOFBSMZ  -PXMFBSOJOHDVSWF 

    4JNQMFDMBTTFTBOENFUIPET  6OJpFETQFDJpDBUJPOT  6TFNSCHFN˞ GPSFYQBOEJOH ˞NSVCZWFSTJPOPG$3VCZHFN
  14. )JHI1FSGPSNBODF  6TJOHNSVCZFOBCMFTUPLFFQQFSGPSNBODFBOE QSPEVDUJWJUZ  -JHIUJNQMFNFOUBUJPOXJUIGPMMPXJOH+*4  $PNQJMJOHUPCZUFDPEFTJOBEWBODFHFUTVQTQFFE  8IFOUIFOVNCFSPG3VCZDPEFFYFDVUJPO

    JODSFBTFT MJHIUXFJHIUJOUFSQSFUFSIBTBO BEWBOUBHFJOTQFFE  4FFUIFQBQFSGPSNPSFEFUBJMT˞ ˞দຊ྄հɾԬ෦णஉ NPE@NSVCZɿεΫϦϓτݴޠͰߴ଎͔ͭলϝϞϦʹ֦ுՄೳͳ8FCαʔόͷػೳ֦ ுࢧԉػߏ ৘ใॲཧֶձ࿦จࢽ 7PM /P QQ ೥݄
  15. NSVCZNFFUT)551  )5514FSWFSTFNCFEEFEXJUINSVCZIBWFCFFO BQQFBSFE  )0ɺOHIUUQYɺ5SVTUFSE  "QBDIFBOEOHJOYTVQQPSU)551  NPE@NSVCZPSOHY@NSVCZFOBCMFUPVTFSVCZJOBQBDIF

    PSOHJOY  )BWFQMBOUPTVQQPSUTFSWFSQVTIDPOUSPMXJUINSVCZ  5IFUJNFNBZDPNFTPPOXIFONSVCZJO)5514FSWFSJT DPNNPO  *BNpMMFEXJUIEFFQFNPUJPOBTUIFDSFBUPSPGNPE@NSVCZ BOEOHY@NSVCZ
  16. %FTZODISPOJ[BUJPOPGTZODISPOPVTDBMM  1SPCMFNTPGNSVCZJOIUUQE  TZODISPOPVTQSPDFTTJOH FH%#BDDFTT  CMPDLTBFWFOUMPPQPGIUUQEQSPDFTT  3FUVSOUPIUUQQSPDFTTBGUFS%#BDDFTT

     5IJTJTKVTUBOJEFB  SFGNSVCZͰಉظݺग़ΛඇಉظԽ͢Δ࿩ʢ΋͘͠͸)0ͷNSVCZϋϯυϥͰωοτϫʔΫΞΫηε͢Δ࿩ʣIUUQ CMPHLB[VIPPLVDPNNSVCZIUNM
  17. 5$1-BZFSXJUINSVCZ  5$1-PBE#BMBODJOHXJUINSVCZ  &YUFOETUSFBNNPEVMFPGOHJOY  IUUQICNBUTVNPUPSKQFOUSZ  &YBNQMFT 

    'PSXBSE5$1QBDLFUTPG'MVFOUEGSPNNBOZ TFSWFSTUPCBDLFOETFSWFST  %FMJWFSHSBQITPG5$1QBDLFUTHFOFSBUFECZ CBDLFOETFSWFSXJUIOHJOYSFWFSTFQSPYZ  $FOUSBMMZDPOUSPMTFUUJOHTGPSQSPYZTFSWFS  IUUQICNBUTVNPUPSKQFOUSZ
  18. 5IF)VHF/VNCFSPG4FSWFST 'MVFOUE /PSJLSB (SPXUI'PSFDBTU 'MVFOUE /PSJLSB (SPXUI'PSFDBTU 'MVFOUE /PSJLSB (SPXUI'PSFDBTU

    )551$MJFOU 'MVFOUE 'MVFOUE OHY@NSVCZ 5$1-PBE#BMBODFS )5513FWFSTF1SPYZ 5$1 )551 4DBMFPVU
  19. 4UBUJTUJDBMBVUPNBUFETFSWFSDPOUSPM  8SJUFDPEFXIJDIEFDMBSFTQFSGPSNBODFTBTFSWFS NVTUBDIJFWF  3FTPVSDFDPOUSPMCZDPEF  "VUPNBUJDDPOUSPMGPDVTJOHPODIBOHFTJOTFSWFS SFTPVSDFT 

    "VUPOPNPVTMZDPOUSPMTFSWFSTFUUJOHT  "VUPNBUFpOFUVOJOHTXIJDIIBWFCFFONBOVBMMZ PQFSBUFE  &OHJOFFSTTQFOENPSFUJNFUPBDIJFWFIJHIMFWFM JEFBT
  20. NSVCZJO)5514FSWFS  -FUTUSZ)551 TFSWFSQVTIFUD CZDPOUSPMMJOH)0PSOHIUUQY XJUINSVCZ  %POPUGPSHFU5SVTUFSE  "OEEFTJHODPPQFSBUJPOCFUXFFO)551BOE)551TFSWFST

    VTJOHNPE@NSVCZPSOHY@NSVCZ  .BZTFOTFUIFDPOWFOJFODFPGDPOUSPMMJOHTFSWFSQSPDFTTXJUI NSVCZ  .BZDPNFVQXJUIBIJHIMZTPQIJTUJDBUFEDPPQFSBUJPO BSDIJUFDUVSFT  -FU`TEFWFMPQNPSFBEWBODFEXFCTZTUFNTVTJOHNSVCZJO)551 TFSWFS