iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 1
0
Modern Web

來做一個Netlfix吧!! 全端大補包計畫系列 第 1

[Day1] 啟程! 目標是做一個Netflix - 賽前心得及規劃

會學到什麼?

怕我下面太多廢話的可以略過

在建立這個系統中預計可以學到:

  1. 前端我會使用React 建立介面
  2. 規劃資料庫(MongoDB)
  3. Gateway建構(可能會用GraphQL或Spring)
  4. 推薦系統(python)
  5. 微服務(Expess.js)
  6. 影片串流(Nginx)

往後可能會想到功能往後加

為什麼是全端計畫?

就像各行各業的專家、匠人
針對不同問題使用不同工具解決
我希望網頁技術也一樣可以針對不同的問題使用不同技術解決
比如說:

  1. gateway用整合好的框架(Laravel, Loopback, Spring)
  2. 爬蟲使用Python
  3. 效能可以用(Nodejs, Go, Rust )建立微服務

那我也希望在建立個人仿生Netflix
也使用不同的工具解決整合成一個完整的系統

為什麼要做微服務

微服務的架構很多種板上也很多大大解釋
就不額外多做解釋了

但最主要的概念就是把服務拆開讓某個部門工程師可以專心維護該系統
例如: 電商購物平台 (如果把整份程式碼都包在一起,那可能中間出問題就直接炸服務了!!)
如果把服務拆成: 會員系統(Oauth),推薦系統(人工智慧部門),流量分析部門
這樣就以後每個團隊都可以做該服務的管理跟維護
以後擴充其他服務就不用在重作會員系統(每個服務都重做一份會員系統不會很煩嗎><)

來源: Oracle Cloud

為什麼要做Netflix

其實最主要的原因就是Netflix
是我在研究所讀書期間放鬆的心靈糧食

製作影片串流平台也是一個大的學問
想試試如果從零開始做起
我能做到什麼樣的進展?能夠做多少功能呢?

規劃架構

以下是我規畫的架構
這是使用Draw.io畫的

會員系統會參考Oauth來實作~
這個流程稍微解說一下

好的會員機制可以做一次永留傳~
建置的方法可以參考Oauth的方式製作
在進入系統前 如果沒有認證就會導入會員登入(認證)
認證好後帶Token進入gateway去請求服務


P.S.
Token在製作時可能會有人好奇Oauth會常看到id_token以及access_token有什麼差?

id_token類似我們中華民國身分證 代表你的個人身分~辨識你是誰?比如說我是Roni 系統(政府)就可以找到我的相關資料

access_token類似公司門禁卡或竹科工程師門禁系統(服務是否有權限) 你再過服務(公司大門)的時候總不會拿身分證去刷門禁系統吧,當然不同廠房或部門(服務)可能也會有不同權限類別擋住你


進入服務前都進入一個Gateway 它可以幫我們整理好資料再回傳給使用者並且確保使用者有認證
我會在往後解釋更詳細一點~

廢話結束辣
下周就開始寫CODE

參考資源

Oracle Cloud


下一篇
[Day2] 註冊Line Login 為登入服務
系列文
來做一個Netlfix吧!! 全端大補包計畫3

尚未有邦友留言

立即登入留言