$30 off During Our Annual Pro Sale. View Details »

Go が支えるインフラストラクチャサービス / Go in Gehirn Web Services

Go が支えるインフラストラクチャサービス / Go in Gehirn Web Services

2015.12.06 Go Conference 2015 Winter

Kohei YOSHIDA

December 05, 2015
Tweet

More Decks by Kohei YOSHIDA

Other Decks in Programming

Transcript

  1. Go ͕ࢧ͑Δ
    ΠϯϑϥετϥΫνϟαʔϏε
    Kohei YOSHIDA / yosida95
    Gehirn Inc.

    View Slide

  2. ࣗݾ঺հ

    View Slide

  3. https://twitter.com/yosida95

    https://github.com/yosida95

    https://yosida95.com/
    ٢ా ߉ฏ / yosida95

    Software Engineer at Gehirn Inc.

    View Slide

  4. NHK EςϨʮχοϙϯͷδϨϯϚʯ
    http://www.nhk.or.jp/jirenma/20150829.html

    View Slide

  5. Gehirn Inc.
    http://www.gehirn.co.jp/

    View Slide

  6. Mission
    ೔ຊΛ΋ͬͱ҆શʹ͢Δ

    View Slide

  7. Security
    ϖωτϨʔγϣϯςετ

    ੬ऑੑϋϯυϦϯάαʔϏε | http://gs3.jp/
    Disaster Prevention
    ؾ৅৘ใͷ഑৴ | @UN_NERV
    Infrastructure
    Gehirn Infrastructure Services

    View Slide

  8. Go ͕ࢧ͑Δ
    ΠϯϑϥετϥΫνϟαʔϏε

    View Slide

  9. 2015.04.01
    Public Preview
    2012.11.22
    1st Release

    View Slide

  10. Scrap and Build
    ೔ͷ໨Λݟͳ͔ͬͨίʔυ

    View Slide

  11. GWS02
    طଘαʔϏεͷ Go ͰͷϦϓϨʔε

    ΑΓຬ଍Ͱ͖ΔαʔϏεΛ໨ࢦ͓ͯ͠ଂೖΓ
    GehirnInc/GOpenID
    Go ͷ Open ID 2.0 Provider

    Open ID Connect ΁Ҡߦ

    View Slide

  12. Concept
    ϕετϓϥΫςΟεͷఏڙ

    View Slide

  13. Services
    ఏڙதͷαʔϏε

    View Slide

  14. Gehirn RS2 Plus
    ϨϯλϧαʔόʔαʔϏε

    QEMU ʹΑΔ׬શԾ૝Խ

    Apache / Nginx / TCP ( FastCGI / WSGI / HTTP )
    Gehirn DNS
    DNS ίϯςϯπαʔόʔ

    κʔϯͷόʔδϣϯ؅ཧ

    όʔδϣϯ੾Γସ͑࣌ͷ TTL ͷࣗಈௐ੔

    View Slide

  15. Gehirn MTA
    ϝʔϧૹड৴ API

    ૹ৴ : SMTP / HTTP API

    ड৴ : Gehirn EDJ
    Gehirn EDJ
    Πϕϯτϋϒ

    ಺༰: ϝϯςφϯε / Gehirn MTA ड৴ etc…

    ௨஌: HTTP Push / Slack / Pushover etc…

    View Slide

  16. Golang Scene
    Go ͷ࢖ΘΕํ

    View Slide

  17. Gehirn RS2 Plus
    STQBHFOU
    Ծ૝Ϛγϯʹৗற͢ΔσʔϞϯ

    !
    ઃఆϑΝΠϧฤू

    ίϚϯυ࣮ߦ

    ϥΠϒϥϦͳͲఏڙ؀ڥͷΞοϓσʔτ

    !
    Debian Package (.deb) Ͱ഑෍

    View Slide

  18. View Slide

  19. Gehirn RS2 Plus
    4OBQTIPU
    VM ΠϝʔδͷόοΫΞοϓ

    !
    มߋͷΈอଘ͢Δ૿෼όοΫΞοϓ

    ෮ݩ΋มߋ෼ͷΈద༻

    ৑௕σʔλετΞ Gehirn KVS ʹอଘ

    !
    ϗετϚγϯͰಈ࡞

    View Slide

  20. Gehirn MTA
    4.51αʔόʔ
    (PͰϑϧεΫϥον
    ϝʔϧͷૹ৴ɾड৴
    ֎෦αʔόʔ΁ͷ഑ૹ
    ഑ૹεςʔλεͷϋϯυϦϯά
    ར༻ঢ়گͷ؂ࢹ3BUF-JNJUJOH
    ϝʔϧύʔαʔ
    CPVODFϝʔϧͷύʔε
    (FIJSO&%+഑ૹલͷલॲཧ

    View Slide

  21. Gehirn EDJ
    Πϕϯτ؂ࢹ

    Gehirn MTA ͷΠϕϯτͷαϒεΫϥΠϒ

    !
    ΠϕϯτϧʔςΟϯά

    ഑ૹํ๏͝ͱʹ୲౰ϫʔΧʔ΁ׂΓৼΔ

    !
    !
    Πϕϯτ഑ૹ
    4MBDL΍*3$ɺ)551)PPLͳͲ΁ͷ഑ૹ

    View Slide

  22. Why use Go
    ͳͥ Go Λ࢖͏͔

    View Slide

  23. Battery Included
    ඪ४ϥΠϒϥϦ͕ॆ࣮͍ͯ͠Δ
    DSZQUPDPNQSFTTOFU
    ฒྻॲཧΛ༰қʹهड़Ͱ͖Δ
    DIBOOFMHPSPVUJOFTFMFDU
    ෳ਺ͷฦΓ஋FYDFQUJPO͕ͳ͍
    ΤϥʔΛඞͣॲཧ͢Δ
    ྫ֎Λ௫ΈଛͶͳ͍
    !
    ωοτϫʔΫαʔόʔΛॻ͖΍͍͢

    View Slide

  24. Static Link / Cross Compile
    Ϣʔβʔʹ഑෍͠΍͍͢
    ίϯύΠϧͯ͠όΠφϦͻͱͭ഑෍͢Δ͚ͩ
    !
    σϓϩΠ͠΍͍͢
    ΫϩείϯύΠϧͯ͠4ʹ഑ஔ
    ֤αʔόʔ͕μ΢ϯϩʔυ࣮ͯ͠ߦ͢Δ͚ͩ

    View Slide

  25. Easy to Scale
    σϓϩΠ͠΍͍͢
    ૉૣ͍ԣల։
    ωοτϫʔΫαʔόʔΛॻ͖΍͍͢
    ΫϥελΛߏ੒͠΍͍͢
    %JTUSJCVUFE$PNQVUJOH
    αʔυύʔςΟʔ
    IBTIJDPSQNFNCFSMJTU
    DPSFPTFUDESBGU

    View Slide

  26. Conclusion
    ·ͱΊ

    View Slide

  27. Go ͸ΠϯϑϥαʔϏεͰੜ͖Δ
    େྔͷσʔϞϯ

    ഑෍ɾσϓϩΠ͕༰қ

    !
    ๲େͳॲཧ΍Ϧιʔε

    ෼ࢄίϯϐϡʔςΟϯά

    ΫϥελϦϯά

    !
    ωοτϫʔΫαʔϏε

    SMTP ɺ DNS

    ݎ࿚ʹॻ͚Δ

    ஗͘ͳ͍

    View Slide