這幾天一直在想要如何豐富這次的鐵人賽,畢竟寫一次很累所以想說盡量不要留下遺憾。所以剩下的鐵人賽沒意外的話,會選一個我自己覺得有趣的主題,然後在剩下的時間內以 Jenkins 為主軸,配合著前二十天介紹的語法組合出一個小小的 Side Project 。
之前如果大家打開鐵人賽的頁面,點選主題 devops 以及選取熱門文章列表,可以看到以下畫面
但是有趣的事情來了,讓我們滑到頁面底下,可以看到可以選取下一頁的按鈕。
因為在熱門文章第一頁已經很久沒看到我寫的文章,所以在自信心驅使之下,讓我想看看自己的名字會在第幾頁會出現呢?於是我按下了進入第二頁的按鈕 “2” ,但是頁面將我導入到「最新文章」的第二頁,而「非熱門文章」的第二頁...... ( BTW 現在好像修好了XD)
但是沒關係,我還是任性,想要自己做一個以這次鐵人賽為主題的 BI 報表。對!就是這麼突然,所以其實不管 ithome 官方有不有修好那個 bug 我都是想做 XD
ithome 的 developer 最棒了
既然現在我們要來做鐵人賽的分析,那我們就 infra 層來做一個簡單的規劃吧~
首先,為了要配合 Jenkins 這個主題,所以元件的限制上我們會選擇 Jenkins 作為我們的 CI/CD server,再來 Git 我們會使用 Github,最後部署平台私心想用 kubernetes 所以就是這樣 XD
簡單說明一下上面的流程圖
再來是 data pipeline 的部分,我也會以 Jenkins 為核心,將 data pipeline 建立在 Jenkins 上。爬蟲寫入的第一個落地的 db 我使用的是 MongoDB。接著會進行簡單的資料品質測試,這部分會使用開源軟體 piperider,再來最終會將爬蟲資料寫入 Cloud Storage 由 Google Data Studio 來做 BI 報表的呈現。
大概會像下面這樣子。
https://github.com/ben4932042/ithome-crawler
https://github.com/ben4932042/ithome-jenkins