iT邦幫忙

2022 iThome 鐵人賽

DAY 21
2
DevOps

從零開始的 Jenkins 之旅系列 第 21

第二十一天 Jenkins 之旅: 我的 BI 報表 Pipeline (1)

  • 分享至 

  • xImage
  •  

前言

這幾天一直在想要如何豐富這次的鐵人賽,畢竟寫一次很累所以想說盡量不要留下遺憾。所以剩下的鐵人賽沒意外的話,會選一個我自己覺得有趣的主題,然後在剩下的時間內以 Jenkins 為主軸,配合著前二十天介紹的語法組合出一個小小的 Side Project 。

是不是有 Bug XD

之前如果大家打開鐵人賽的頁面,點選主題 devops 以及選取熱門文章列表,可以看到以下畫面
https://ithelp.ithome.com.tw/upload/images/20220921/20151613Z4mrThQiW6.png

但是有趣的事情來了,讓我們滑到頁面底下,可以看到可以選取下一頁的按鈕。
https://ithelp.ithome.com.tw/upload/images/20220921/20151613LSegEv3Ved.png

因為在熱門文章第一頁已經很久沒看到我寫的文章,所以在自信心驅使之下,讓我想看看自己的名字會在第幾頁會出現呢?於是我按下了進入第二頁的按鈕 “2” ,但是頁面將我導入到「最新文章」的第二頁,而「非熱門文章」的第二頁...... ( BTW 現在好像修好了XD)

但是沒關係,我還是任性,想要自己做一個以這次鐵人賽為主題的 BI 報表。對!就是這麼突然,所以其實不管 ithome 官方有不有修好那個 bug 我都是想做 XD

ithome 的 developer 最棒了

Planning 一下

CI/CD Pipeline

既然現在我們要來做鐵人賽的分析,那我們就 infra 層來做一個簡單的規劃吧~

首先,為了要配合 Jenkins 這個主題,所以元件的限制上我們會選擇 Jenkins 作為我們的 CI/CD server,再來 Git 我們會使用 Github,最後部署平台私心想用 kubernetes 所以就是這樣 XD
https://ithelp.ithome.com.tw/upload/images/20220921/20151613QbR3P1dyHy.png

簡單說明一下上面的流程圖

  1. 準備爬蟲的 script
  2. 準備一條 CI pipeline 來建立 docker image
  3. push docker image 到 github 的 container registry
  4. 準備一條 CD pipeline,將我們在 kubernetes 上的 helm chart 更新。
  5. 執行 k8s cronjob 去執行 ithome 的爬蟲

Data Pipeline

再來是 data pipeline 的部分,我也會以 Jenkins 為核心,將 data pipeline 建立在 Jenkins 上。爬蟲寫入的第一個落地的 db 我使用的是 MongoDB。接著會進行簡單的資料品質測試,這部分會使用開源軟體 piperider,再來最終會將爬蟲資料寫入 Cloud Storage 由 Google Data Studio 來做 BI 報表的呈現。
https://ithelp.ithome.com.tw/upload/images/20220921/20151613I5IawoZqFE.png

  1. 資料寫入 MongoDB
  2. 撰寫 Data pipeline 的 Jenkinsfile
  3. 建立 Data pipeline
  4. 爬蟲資料的檢查
  5. 舊資料的清理
  6. Google Data Studio 的 BI 呈現,大概會長下面圖片這樣。

大概會像下面這樣子。
https://ithelp.ithome.com.tw/upload/images/20220921/20151613zCZO3cU9TL.png

專案連結

https://github.com/ben4932042/ithome-crawler
https://github.com/ben4932042/ithome-jenkins


上一篇
第二十天 Jenkins 之旅:Multibranch Pipeline (2)
下一篇
第二十二天 Jenkins 之旅: 我的 BI 報表 Pipeline (2)
系列文
從零開始的 Jenkins 之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言