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

インフラエンジニアのWEBアプリ入門

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

 インフラエンジニアのWEBアプリ入門

y8c 2017の発表資料です。

Avatar for Shuhei Ozawa

Shuhei Ozawa

May 26, 2017
Tweet

More Decks by Shuhei Ozawa

Other Decks in Programming

Transcript

  1. ࡞͍ͬͯΔ΋ͷ Collect-Qiita ཁ݅ • Qiitaͷ࠷৽هࣄऔಘͱݕࡧ • ϩάΠϯػೳ • ηογϣϯอ࣋ •

    ͓ؾʹೖΓػೳ(Ԍ্த) 7 Y8 2017 2017/05/27 - Ozawa Shuhei ( @oza_shu )
  2. Collect-QiitaͰඞཁͱͳΔٕज़ • Qiitaͷ࠷৽هࣄऔಘͱݕࡧ • GET,POST,ϧʔςΟϯά,ςϯϓϨʔτ,FORMॲཧ • ϩάΠϯػೳ • DB࿈ܞ, ηΩϡϦςΟ

    • ηογϣϯอ࣋ • Ωϟογϡ, HTTPϓϩτίϧ • ͓ؾʹೖΓػೳ • DB࿈ܞ, Ajax?? 9 Y8 2017 2017/05/27 - Ozawa Shuhei ( @oza_shu )
  3. WEBΞϓϦ͕͓͢͢Ίͷཧ༝ • ೲظ΍ٛ຿͕ͳ͍ • ػೳ௥Ճͯ͠Ԍ্ͯ͠΋͍͍ • ඞཁͳٕज़͕ଟذʹ౉Δ • ৭Μͳٕज़ֶ͕΂ָ͍ͯ͠ʂ •

    αʔό্Ͱಈ͍͍ͯΔ෺͕ͳΜͳͷ͔஌ΕΔ • ͲΜͳٕज़͕࢖ΘΕ͍ͯΔͷ͔஌Δͷָ͍͠ʂ • ॻ͘ͱಈ͘ʂ͢͝ʔ͍ʂͨͷ͠ʔ͍ʂ ɹ- ! 12 Y8 2017 2017/05/27 - Ozawa Shuhei ( @oza_shu )
  4. ίʔυྫ(1) PIDΛΈͯΈΑ͏ # ݱࡏͷϓϩηεΛฦ͢ import os print ("My pid:", os.getpid())

    $ python3 3_processes_have_pid.py My pid: 10592 15 Y8 2017 2017/05/27 - Ozawa Shuhei ( @oza_shu )
  5. ίʔυྫ(2) ϑΝΠϧσΟεΫϦϓλ # ϑΝΠϧσΟεΫϦϓλׂ͕Γ౰ͯΒΕ͍ͯΔ͔ΈͯΈΑ͏ if __name__ == "__main__": with open("/etc/passwd")

    as passwd: print(passwd.fileno()) passwd.closed try: print(passwd.fileno()) except ValueError: print("The file already has closed") # ϑΝΠϧΛด͡Δͱফ͑Δ $ python3 5_processes_have_file_descriptors_closed_file.2.py 3 The file already has closed 16 Y8 2017 2017/05/27 - Ozawa Shuhei ( @oza_shu )
  6. fork()ؾʹͳͬͯ͘Δ ϓϩηε͕Fork͞ΕΔͬͯͲ͏͍͏͜ͱ͚ͩͬ? ࢠϓϩηε͸਌ϓϩηεͰ࢖ΘΕ͍ͯΔશͯͷϝϞϦͷίϐʔΛҾ͖ܧ͙ ϑΝΠϧσΟεΫϦϓλ(ιέοτ)΋ • prefork • ίϐʔɾΦϯɾϥΠτʢCoWɺCopy on Writeʣ

    • ԿͰκϯϏϓϩηεͬͯͳΔΜ͚ͩͬ • ϓϩηεؒ௨৴ • ύΠϓॲཧ,ετϦʔϜ,ϝοηʔδ • γάφϧॲཧ • ϓϩηεάϧʔϓ,ηογϣϯάϧʔϓ 18 Y8 2017 2017/05/27 - Ozawa Shuhei ( @oza_shu )
  7. TCPαʔόͷ࣮૷ • echoαʔόͷ࣮૷͸؆୯ • socketϞδϡʔϧ͕ศར • ෳ਺ͷΫϥΠΞϯτ͔Βͷ઀ଓʹରԠͤͯ͘͞ • Ϛϧνϓϩηε΍ϚϧνεϨουɺΠϕϯτۦಈ •

    I/O(C10K໰୊) • thread,queue,select(),epoll() • GunicornͷίʔϧυϦʔσΟϯά 22 Y8 2017 2017/05/27 - Ozawa Shuhei ( @oza_shu )
  8. ·ͱΊ • ϓϩάϥϛϯάͷ࣍ͷҰา͕Θ͔Δ • ো֐ରԠͰιʔείʔυϨϕϧͰಈ࡞Λ௥͑Δ • ϓϩτίϧ΍௿ϨΠϠͳීวతͳٕज़ֶ͕΂Δ • ٕज़Λ௥͏॥؀ •

    ٕज़Λ௥͏͜ͱ͸ͨͷ͍͠ʂ • ٕज़ͷ࿩୊ͰϑϨϯζ΋Ͱ͖Δʂ • ٕज़ͷ࿩Λ͠ͳ͕Βɺ͓ञΛҿΉͷͨͷ͍͠ʂ 25 Y8 2017 2017/05/27 - Ozawa Shuhei ( @oza_shu )