Introduction of LINE LIVE

Introduction of LINE LIVE

Streaming Conference #6 @LINE
Kazuhiro Osawa ( @yappo )

53850955f15249a1a9dc49df6113e400?s=128

LINE Developers

March 27, 2019
Tweet

Transcript

  1. LINE LIVE ΞϓϦͷઃܭࢥ૝ Kazuhiro OSAWA, LINE Corporation.
 2019/03/27 Streaming Conference

    #6 @LINE αʔόฤ
  2. @yappo https://github.com/yappo ࣗݾ঺հ େ୔࿨޺ LINEגࣜձࣾ ։ൃ3ηϯλʔॴଐ LINE LIVE ։ൃ୲౰ϚωʔδϟͳͲ

  3. લʑճͷ͋Β͢͡ • LINE LIVE System Overview • HLS Hack •

    ٸͳ഑৴੾அ࣌ͷϑϩʔ • Chat System Overview • LOVE Architecture https://www.slideshare.net/linecorp/a-7-architecture-sustaining-line-live
  4. લճͷ͋Β͢͡ • Elasticsearch Ͱ࡞ͬͨϥϯΩϯάγεςϜ • PC഑৴ͷ࣮૷಺༰ • RabbitMQಋೖظ • ͜ͷ1೥Ͱ͢΂ͯ

    Kafka ʹϦϓϨʔε • LINE ͷதʹ LIVE ͷ native code Λ࣮૷ https://www.slideshare.net/linecorp/update-of-line-live-over-the-past-year
  5. Service History https://www.slideshare.net/linecorp/a-7-architecture-sustaining-line-live

  6. ࠓճͷ࿩͢಺༰

  7. Tech Stack ͷࠓੲͦͯ͠ ͦͷબ୒ΛԿނ͔ͨ͠? +࠷ۙͷ؀ڥͳͲ

  8. Android iOS Web •Vue.js, Vuex •hls.js •axios •Webpack •Angular.js (CMS)

    •Swift 100% •ishkawa/APIKit •Starscream (WebSocket) •PromiseKit •MVC, MVVM, Redux •UIKit •Kotlin30% • ৽ن͸શ෦Kotlin •RxJava2 •Dagger2 •OkHttp3 + Retrofit2 •MVVM, Redux Current Clients Tech Stack Native Client ʹؔͯ͠͸࣍ͷηογϣϯͰৄࡉઆ໌͋Γ·͢
  9. CORE CHAT CMS •Spring •Spring Boot •Akka •Redis PubSub •MySQL

    •Avans •Jesque •Redis •MySQL •Memcached OLD Server Components • ٕज़తόοΫάϥϯυ͕ଟछଟ༷ͳϝϯόʔͰ։ൃΛ։࢝ͨ͠ • ͦΕͧΕͷಘҙͳٕज़બ୒ΛߦͬͯαʔϏε։ൃΛ։࢝ͨ͠ • ֤छίϯϙʔωϯτʹ͸ɺߋʹෳ਺ͷΞϓϦέʔγϣϯʹࡉ෼Խ͞Ε͍ͯΔ • ࣾ಺ͷଞͷαʔϏεͰڞ௨ԽͰ͖Δ෦෼͸ઐ༻ͷνʔϜͰ։ൃ • Τϯίʔμαʔό΍ετϨʔδ΍RTMP഑৴ϞδϡʔϧͳͲ
  10. CORE CHAT CMS •Spring •Spring Boot •Akka •Redis PubSub •MySQL

    •Spring Boot •Kafka •Redis •MySQL •Elasticsearch Current Server Components • Ұൠతͳ Java Application ͷߏ੒ʹมߋ͍ͯ͠Δ • ֤छϛυϧ΢ΣΞ΋ࣾ಺ͷҰൠߏ੒͕Ͱ͖͖ͯͨͷͰҰൠతͳ΋ͷʹҠߦ • ࣾ಺ͷ Private Cloud ΋੔͖ͬͯͨͷͰɺҠ͠ସ͑Λৗ࣌ߦ͍ͬͯΔ • ͜͜1ʙ2೥͸Կ͔͠ΒͷҠߦλεΫΛ࣮ࢪ͍ͯ͠Δ • αʔό୆਺΋౰ॳΑΓഒۙ͘ʹ૿͖͍͑ͯͯΔ LINE Bot •Spring Boot •Kafka •MySQL
  11. ֤ίϯϙʔωϯτ΋छྨ͝ͱʹ ٕज़ελοΫ΋ҧ͍ͬͯͨ ϦϦʔε౰ॳ WAF Ҡߦޙ core Avans Spring Boot 2.1.3

    ؅ཧը໘ Spring 4.3.x Spring Boot 2.2.x (༧ఆ) chat Spring Boot 1.4.x Spring Boot 2.2.x (༧ఆ) for LINE Bot Spring Boot 1.5.x Spring Boot 2.1.3 ։ൃνʔϜ͕एׯ෼͔Ε͍ͯͨɺͱ͔͍͏Α͋͘Δཧ༝ɻ ※2019/03/25 ͷࢿྉ͔Βൈਮ
  12. શϦϙδτϦ αʔόͷछྨ: 27

  13. System Diagram for Public

  14. Chat Diagram for Public

  15. • γεςϜϝτϦΫε • Grafana • Kibana • Ξϥʔτ௨஌ • IMON

    (https://www.slideshare.net/linecorp/observability-at-line) • Prometheus • ϩά؂ࢹ • IMON • Kibana • ϓϩϑΝΠϦϯά • Spring Boot Admin, VisualVM, Java Flight Recorder, jcmd, etc ֤छ؅ཧπʔϧ
  16. Spring Boot Admin ͰJVMͷҰݩ؅ཧ໨ࢦ͢ ※·ͩະಋೖͷ ίϯϙʔωϯτ͸ଟ਺͋Δ

  17. • ֤छίϯϙʔωϯτͷ౷ഇ߹ͯ͠࠷దԽΛ͍͖͍ͯͨ͠ • Storage Access ࠷దԽ • Logging ӡ༻؂ࢹϨϕϧͷ޲্ •

    Client <-> Server ͷ௨৴࠷దԽ • ഑৴஗Ԇͷվળ • MediaServer ͷϦϓϨʔε (ϦϓϨʔεޙʹ LIME ͱͯ͠ OSS ެ։༧ఆ) • https://www.slideshare.net/linecorp/how-does-line-effectively-handle-media- content ΍͍͖͍ͬͯͨ͜ͱ͸ଟ͍
  18. • ֤छίϯϙʔωϯτͷ౷ഇ߹ͯ͠࠷దԽΛ͍͖͍ͯͨ͠ • Storage Access ࠷దԽ • Logging ӡ༻؂ࢹϨϕϧͷ޲্ •

    Client <-> Server ͷ௨৴࠷దԽ • ഑৴஗Ԇͷվળ • MediaServer ͷϦϓϨʔε (ϦϓϨʔεޙʹ LIME ͱͯ͠ OSS ެ։༧ఆ) • https://www.slideshare.net/linecorp/how-does-line-effectively-handle-media- content ΍͍͖͍ͬͯͨ͜ͱ͸ଟ͍ ࠾༻΋
  19. THANK YOU