Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

運用 Cloud Pub/Sub 實作 PIXNET 跨產品動態整合 #modernWeb2018

1,018 views

Published on

透過 Cloud Pub/Sub 實作 Timeline 跨產品的動態整合系統
高清版 https://goo.gl/FHhJ9P

Published in: Software
  • Be the first to comment

運用 Cloud Pub/Sub 實作 PIXNET 跨產品動態整合 #modernWeb2018

  1. 1. PIXNET 邦 運用 Cloud Pub/Sub 實作 PIXNET 跨產品動態整合 PIXNET - Win Yu #kylinyu.win↵
  2. 2. PIXNET 邦 高級平台軟體工程師 at PIXNET Hello! 余晟麟 Win Yu kylinwin kylinyu.win
  3. 3. PIXNET 邦 學生 會眾 講者
  4. 4. PIXNET 邦 Before the Story 高彈性 Cloud Pub/Sub 場景介紹 動態設計 架構總覽 回顧與結語
  5. 5. PIXNET 邦 場景介紹
  6. 6. PIXNET 邦 News Feeds in Timeline
  7. 7. PIXNET 邦 需求這樣開始
  8. 8. PIXNET 邦 部落格 PIXstyleMe 邦邦 PIXgoods PIXNET 產品
  9. 9. PIXNET 邦 部落格 美妝、潮流 興趣集結 購物、訂位 PIXNET 產品
  10. 10. PIXNET 邦 使用者行為 User Behavior 設定 登入 留言 購物 關注 追蹤 分享 給分發文 https://clevertap.com/blog/https://clevertap.com/blog/listen-and-learn-why-its-important-to-understand-mobile-user-behavior//https://clevertap.com/blog/listen-and-learn-why-its-important-to-understand-mobile-user-bavior/https://clevertap.com/blog/listen-and-learn-wh y-its-important-to-understand-mobile-user-behavior/
  11. 11. PIXNET 邦 目的 分析使用者在不同產品的使用習慣 提供 News Feed Timeline 增加使用者的互動與回訪
  12. 12. PIXNET 邦 Main Idea
  13. 13. PIXNET 邦 文章前台 管理後台 PIXNET Blog
  14. 14. PIXNET 邦 文章前台 管理後台 PIXNET Blog
  15. 15. PIXNET 邦 文章前台 管理後台 PIXNET Blog PIXstyleme ?
  16. 16. PIXNET 邦http://eiki.hatenablog.jp/entry/meteo_fall
  17. 17. PIXNET 邦 文章前台 管理後台 PIXNET Blog PIXstyleme
  18. 18. PIXNET 邦 文章前台 管理後台 PIXNET Blog PIXstylemePIXgoods ?
  19. 19. PIXNET 邦http://eiki.hatenablog.jp/entry/meteo_fall
  20. 20. PIXNET 邦 文章前台 管理後台 PIXNET Blog PIXstylemePIXgoods
  21. 21. PIXNET 邦
  22. 22. PIXNET 邦 設定完就可以產生動態匯集頁 就像 Hub 一樣,線插就可擴充使用
  23. 23. PIXNET 邦 諸神黃昏之際,只剩我佛淡定 我佛系工程師
  24. 24. PIXNET 邦 你要加幾個產品,我都加給你 我覺得可以!
  25. 25. PIXNET 邦 特色 / 限制
  26. 26. PIXNET 邦 不用處理多媒體 允許不同平台發出跨產品通用性設計 Timeline 時序性
  27. 27. PIXNET 邦 不用處理多媒體 允許不同平台發出跨產品通用性設計 Timeline 時序性 我們通常只看最新的動態 同一個產品又允許多方輸入 e.g. 前台 / 後台 Feed 類型是使用者的行為 而非社群貼文
  28. 28. PIXNET 邦 動態設計
  29. 29. PIXNET 邦 動態
  30. 30. PIXNET 邦 我們的 Feed 是 User Behavior? 使用者的 特定行為 所產生的動態 > Different from Facebook, Twitter. 動態要存什麼資訊?
  31. 31. PIXNET 邦 人事時地物 其實動態資料的組成就是 英文句型文法 ● Subject: 主詞 ● Verb: 動詞 ● Object: 受詞 ● OC: 補語 ● Latitude, Longitude: 地理座標 ● timestamp
  32. 32. PIXNET 邦 通用性 跨產品
  33. 33. PIXNET 邦 # Verb 1 新增 2 分享 3 發佈 4 給分 5 關注 6 …. 共用規範表 (Standards) # Noun 1 會員 2 討論 3 連結 4 留言 5 文章 6 …. Subject, Object
  34. 34. PIXNET 邦 # subject verb object is_show 1 1 1 2 1 2 1 2 3 1 3 1 3 5 1 4 1 5 1 0 5 2 1 5 1 6 … … … … 自定義 產品 行為規範 說明 Sb 新增 了 討論 Sb 分享 了 連結 Sb 發佈 了 文章 Sb 關注 Sb 討論 新增 了 文章 …
  35. 35. PIXNET 邦 時序性 Timeline
  36. 36. PIXNET 邦 Timeline 其實就是 Stack First In Last Out Timeline 永遠都從最新的開始瀏覽 沒有人動態倒過來看的 我們也沒有要提供這種功能 XD 用 PK 就可以實踐
  37. 37. PIXNET 邦 訂閱(追蹤)產生動態
  38. 38. PIXNET 邦 8 Latest Oldest1 2 7 6 5 4 3 動態的產生 動態池
  39. 39. PIXNET 邦 每個人都有自己的動態池 Feed Pool (Stack)
  40. 40. PIXNET 邦 8 7 6 5 4 3 8 req 1 req 2 1 2 7 6 5 4 3 取得 Timeline 動態
  41. 41. PIXNET 邦 資料儲存 Shared By Products in MySQL feeds feedpools subscriptionsstandards ● 該服務有哪些紀錄規則 ● 管理訂閱名單 ● 動態池● 動態個體
  42. 42. PIXNET 邦 高彈性 Cloud Pub/Sub
  43. 43. PIXNET 邦 還記得我嗎?
  44. 44. PIXNET 邦 Cloud Pub/Sub?
  45. 45. PIXNET 邦 Cloud Pub/Sub is a fully-managed real-time messaging service that allows you to send and receive messages between independent applications. 官網說明
  46. 46. PIXNET 邦 Cloud Pub/Sub 架構總覽 Many to Many
  47. 47. PIXNET 邦 以 部落格 產品為例 主題 管理 後台 文章頁 前台 部落格動態 Timeline 部落格行為 Publisher Publisher Topic Subscription Subscriber Subscriber
  48. 48. PIXNET 邦 ● 多對多特性 ○ 多組 Publisher 多組 Subscriber ● Queue 的優勢 ○ 高併發、應用架構的緩衝 ● 微服務特性 ○ 鬆耦合 (Loose coupling) ● 接收方式 ○ Push/Pull 高彈性
  49. 49. PIXNET 邦 其他的方案呢? AWS SQS RabbitMQ Redis - 沒有支援多對多 - 常見作法要搭配 SNS - 本身沒 直接 支援 push - 但可以透過 Lambda 實現 - 量大寫入時有效能問題 - Memory-Based Node 壞 了資料不見 - 方案純熟 - 實踐多種應用 Pattern - 支援 Push/Pull - 自行管理 或 CloudAMQP
  50. 50. PIXNET 邦 選 Queue 我要注意 ● 場景應用模式 ● 訊息順序性 (FIFO) ● 效能考量 ● 管理成本 ● 有無支援 Transaction ● 能否駕馭
  51. 51. PIXNET 邦 ● 場景應用模式 ● 有沒有保證順序性 ● 效能考量 ● 管理成本 ● 能否駕馭 ● 有無支援 Transaction Solution = $ + Boss
  52. 52. PIXNET 邦 http://queues.io/ 33 projects.
  53. 53. PIXNET 邦 架構總覽
  54. 54. PIXNET 邦 架構關係 - Read Web Server Database
  55. 55. PIXNET 邦 架構關係 - Write Web Server Database Job Queue Data analysis Cloud Pub/Sub
  56. 56. PIXNET 邦 架構總覽 Web Server Database Job Queue Data analysis Cloud Pub/Sub
  57. 57. PIXNET 邦 高容錯 Server 倒了,訊息還在 pubsub 內 Database 倒了, 訊息還在 Job Queue 中Cloud Pub/Sub Web Server Database Job Queue
  58. 58. PIXNET 邦 2 月 3 月 4 月 5 月 6 月 prewarm 資料預儲 資料
  59. 59. PIXNET 邦 2 月 3 月 4 月 5 月 6 月 Timeline 上線,首頁改版 13 million feeds 40 million feeds
  60. 60. PIXNET 邦 回顧與結語
  61. 61. PIXNET 邦 選擇對的方案之外,靈活的軟體設計也是支撐架構的關鍵
  62. 62. PIXNET 邦 彈性的架構與設計,才能因應 (敏捷的) 需求
  63. 63. PIXNET 邦 回顧利弊並持續演進
  64. 64. PIXNET 邦 Thank you! Any questions? kylinwin kylinyu.win
  65. 65. PIXNET 邦 Vector Icons by Matthew Skiles Presentation template designed by Slidesmash Photographs by unsplash.com and pexels.com CREDITS Special thanks to all people who made and share these awesome resources for free:

×