時間也過太快了吧?我的 2024 年度回顧
2025 年正式到來!各位去年過得還好嗎?其實相較於 2023 年,我總覺得 2024 年時間過得飛快,一下子就結束了的感受特別強烈,難道是因為 2023 年實在是太充實,而去年實在是太混了嗎?話雖這麼說,我在去年年初定下的目標幾乎都有實現,而下班後也有嘗試學習一些新的事物,只是我想不太起來是什麼事情了。沒辦法,年紀到了就是會這樣 🤪。
我想寫年度回顧就是為了這個目的,好好的回想一下去年到底做了哪些事情,然後在年末看是要給自己獎勵一下,跟自己說一聲辛苦了,還是要鞭策自己一下,提醒自己明年不能再混下去了都可以。
那麼話不多說,接下來就來一一回想去年做了什麼事情吧!
上班除了摸魚還會幹嘛?
去年依舊是被公司前輩們 Carry 的一年。因為我們部門主要是負責公司內部網路與雲端服務,所以需要大量的網路基礎知識與雲端服務操作知識,前者一直都不是我的強項,後者則是越來越上手了,我甚至可以自主規劃新服務應該使用哪一種架構與哪一些雲端服務。我去年參與了不少很有趣的專案,挑其中兩個讓我印象深刻的專案來說說吧。
內網架構翻新
去年我們嘗試將內網架構進行翻新,除了升級路由軟體與 VPN 軟體,還將複雜的網路架構與路由規則納入版本控制。這麼做一方向是想更方便的管理網路資源,另外一方面是想更輕鬆的升級軟體,這樣就能確保軟體處在最新的版本,提升內部網路的資訊安全。
在這個專案中,我碰到非常多我第一次聽到的網路技術與工具,例如 BGP 協定、IPSec 協定、VXLAN Tunnel、FRRouting 與 strongSwan … 等,可謂是五花八門。
因為網路不是我的強項,所以 BGP 的規則與 VPN 的設定都是交給前輩處理,我則是協助撰寫 Terraform 腳本來管理網路資源,並使用 GitHub Action 來自動化部署的流程。
不得不說伺服器的維運是真的有許多眉眉角角需要注意,有時候一個設定沒做好,就有可能導致伺服器無法連上網,或是直接當機死去。例如我們前陣子就有因為程序的日誌寫入設定沒做好,而導致硬碟被塞滿,機器直接死去,也無法登入,只能刪除重新開一個新的機器。
幸好現在有 Terraform、Prometheus 與 Grafana 這些方便的工具,讓我們在部署資源與監控資源狀態上都非常方便。真的有點難想像過去沒有這些工具時要怎麼管理這些數量眾多的網路資源。
Don't be a network engineer.
by 我的網路大神前輩
使用 Azure Policy 去檢查是否有過期的憑證
因為我們公司的憑證非常多,為了避免忘記更新憑證而導致產品或服務失效,我們有一個用來檢查憑證是否快過期的內部服務。只是這個內部服務並沒有涵蓋到 Azure Key Vault 上的憑證,所以我們去年把這個洞補起來。
一開始我嘗試使用 Key Vault 的 API 來處理,結果卻撞牆,我發現 Key Vault 只要開啟了某兩個用來加強安全的設定,那麼即使我對 Key Vault 擁有管理員權限,也無法透過 API 取得憑證的過期時間,第一個是幫 Key Vault 加上防火牆,第二個是將 Key Vault 放在內網中。如果只有一少部分人開啟這些設定倒還好,偏偏我們公司內部的政策是鼓勵大家開啟設定,所以我有一大堆憑證的過期資訊無法取得。
與 Azure 支援人員溝通後,他建議我可以使用 Azure Policy 來取得快過期的憑證。Policy 是用來檢查資源是否符合規定的服務,你可以在 Policy 中建立客製化的政策來規範組織中對雲端資源的操作,例如建立 VM 時只能選取特定的機型,或是憑證的有效期限應該大於一個月。根據支援人員的建議,我在 Policy 中設定好政策並部署之後,就能成功的透過 Policy 的 API 取得快過期的憑證。
這個專案之所以讓我印象深刻,不是因為它有多困難,而是沒想到在 Azure 中,你即使有權限,也還是有可能會被阻擋。
Azure 中的某些設計真的很微軟。
by 我
下班後的各種有趣嘗試
說完了上班都在幹嘛,接下來就要來說說我下班後都做了哪些事情。
有點可惜的是,2023 年開始與工程師朋友們舉辦的各種技術分享會,在去年年初就斷掉了,主要原因是大家好像都莫名的開始忙起來了,連我自己也是。很長一段時間都沒有相約在一起講幹話,或是分享最近在研究什麼酷酷的東西,所以這個活動就這麼斷掉了。希望 2025 年這個活動能復活 🥲。
第一次自己規劃自由行
去年 6 月又去了日本,這次是跟弟弟一起去的。相較於 2023 年第一次去日本都是有人幫忙規劃好行程,這次我挑戰自己來規劃行程。不得不說規劃行程是真的很麻煩,除了要訂好機票飯店,要去哪裡玩?時間怎麼安排?吃飯要吃什麼?移動路線怎麼規劃?這些問題都讓我在行程規劃中思考了很久。不過這些辛苦,都在我看到富士山之後被徹底忘記了。第一次看真的好壯觀阿!
如果你是哈利波特的粉絲,又懶得排行程,非常推薦可以逛很久的哈利波特影城。裡面有很多電影中的佈景與各種精緻的拍攝道具。當初在逛影城的時候,真的有一種置身魔法世界的感覺。
今年 2 月又要再去一次日本,這次要挑戰自駕與露營,希望可以順利完成挑戰!
寫了一個個人介紹網頁
某次接觸了 Svelte 這個前端框架後,我就一直很喜歡 Svelte 那種接近 JavaScript 原生的寫法。因為學新技術最快的方式就是直接使用它來進行實作,所以我去年用 SvelteKit 製作了一個自己的個人介紹頁,除了簡單的介紹了我自己的經歷與與我擅長哪些技術,我也在上面分享了我的筆記、簡報與作品。歡迎大家來認識我 🤣。
部落格又又又搬家了
我的部落格又搬家啦!從最早的 Monolith 架構,到前一年的做成容器部署在 K3s 上,我去年年初又搬家到 AWS Lambda 上了,之前搬家的原因是想碰碰不同類型的工具與服務,而這次搬家的原因則是想省錢。以小流量的網站來說,部署在 Lambda 上幾乎不用花錢,實在是太香了!
伴隨著部落格的搬家,我的資料當然也要一起搬家了。資料庫一開始是使用 PlanetScale 的免費方案,結果搞笑的是,資料才搬過去沒多久,PlanetScale 就宣布停止免費方案了 (是我帶 💩 嗎?)。所以我後面又搬家到有提供免費額度的 Neon,並將資料庫從 MySQL 改為使用 PostgreSQL,結果過一陣子發現 Neon 的免費額度其實給的不算太多,我的小部落格居然快要撞到免費額度的上限了。為了避免撞到上限,我索性又將資料搬家到 Xata,並在那裡定居一段時間了。
定居在 Xata 上的時光很美好,也讓我的荷包很健康,但從 Lambda 訪問 Xata 上的資料庫是走公有網路,總讓我感覺心裡毛毛的,所以我一直很想要將資料庫與 Lambda 放在同一個內網底下。最直覺的方案就是使用 AWS RDS,但是真的太貴了。
然後某天我看到一篇文章,文章中說以 SQLite 做為小網站的資料庫完全是綽綽有餘的,於是我花了點時間研究,成功的讓 Lambda 可以使用 SQLite 當成資料庫,也寫了一篇文章分享做法。
你現在看的部落格,背後就是使用 SQLite 做為資料庫喔 😊!
回顧 2024 年年初定下的目標
分享我在下班後做了哪些酷酷的事情後,接下來該來面對現實了。
當初在 2024 年訂下的目標,我總共完成哪幾項呢?
提升英語口說能力
應該算有吧?去年我利用通勤時間看了很多英文影片與並複習了許多基本文法。我感覺自己跟前輩說英文有稍微順暢了一點,不會再常常講到一半卡詞了,但是仍有很大的進步空間,我希望自己未來能夠很順暢的與英文母語人士進行溝通。
繼續成為套件的 Contributor
去年我花了一些時間去看自己常用套件的程式碼,並嘗試提出了幾個 PR,其中有一個修改函式錯字的 PR 被成功合併。所以這個目標算是有完成吧?雖然這真的是簡單到我覺得提出來都有點丟臉的程度 🤣。
起死回生的目標,來寫一個套件吧!
成功完成目標!某天想到也許我可以為部落格文章開發一個動態的預覽圖套件,當我沒有為文章上傳預覽圖時,文章也可以根據標題動態產生一個預設的預覽圖。
根據這個想法,我開始研究怎麼用 PHP 來產出圖片。在經過一陣子的開發後,我終於發布了我的第一個 PHP 套件「Preview」。套件的使用方式很簡單,只要寫幾行程式碼。
use Yilanboy\Preview\Image\Builder;
(new Builder())
->size(width: 1200, height: 600)
->backgroundColor('#14b8a6')
->header(text: 'DocFunc', color: 'white', fontSize: 50)
->title(text: "時間也過太快了吧?\n2024 年度回顧", color: 'white', fontSize: 60)
->output();
就能在瀏覽器中顯示以下的圖片。
這個套件是用 PHP 的 GD Library 開發的,開發的過程雖然不困難但很有趣,那段時間我一直沉迷用 PHP 來畫圖。只可惜因為在 Lambda 上遇到某些問題,我現在還沒辦法將這個套件運用在自己的部落格中。等未來解決這個問題,我再發一篇文章跟大家分享 🤣。
一定要完成!用 Tauri 寫出一個 App
說一定要完成,結果就是連個影子都沒有 🤣。其實開發桌面 App 一直是我很想嘗試的事情,但好像也跟之前想寫套件一樣遇到不知道要寫什麼 App 的窘境。今年真的不能再這樣下去了,連我自己都知道這個目標好像拖了很多年。
我一直都很喜歡 Rust 強大的記憶體管理機制,偶爾也會用 Rust 來寫一些小工具。例如去年我用 Rust 寫了一個 AWS 帳單通知。每天都會跟我說這個月目前在 AWS 累積花了多少錢。
2024 的目標盤點起來,好像只有用 Tauri 寫 App 這個目標沒有實現,其它目標都有做到,也許去年我還是過的蠻充實的吧?
希望在 2025 年可以完成的新目標
在訂下 2025 年的目標之前,我想要反省一下。我發現過去幾年的目標都訂得有點抽象,沒有一個實際的標準可以去衡量目標的完成程度,所以今年,我決定為所有目標都訂下一個明確的標準!
舉辦 5 個技術分享會
2023 年的技術分享會停辦真的讓我覺得很可惜,希望今年可以復辦這個活動。2023 年我一共分享了 11 個技術主題,今年就不貪心了 🤪,我希望跟朋友分享 5 個技術主題就好
為什麼不更多一點呢?因為目標訂得太大,人就容易懶惰阿。
用 Tauri 寫出一個計算機 App
雖然這個目標我拖了很久,但其實前置作業我都準備好了 ✌️。Tauri 可以使用 SvelteKit 來做為前端,這部分我已經透過個人網站的開發稍稍搞懂了該怎麼使用 SvelteKit,而後端需要的 Rust 我也有一定的基礎,並也嘗試用 Rust 開發了一些日常小工具。萬事俱備,只欠東風,剩下的就是開啟一個新的 Tauri 專案然後開始寫程式碼。至於何時開始?只能交給未來的我去決定了 🤪。
2025 年,我希望可以用 SvelteKit + Tauri 來寫出一個簡單的計算機 App。沒做到我就…安排到明年的目標中 😆。
通過日文檢定 N3
聽強者朋友說日文檢定 N3 與 N2 有一個很大的 Gap,N3 以下都很簡單,那麼我就不要為難自己了,只追求 N3 就好。希望今年透過這個目標來認真學習日文,這樣子以後旅日應該會更方便也更順暢了吧? 而不是只會說 これ (這個) 與 それ (那個)。
おたがいにがんばろうね (讓我們一起加油吧!)
多益英文測驗考到 700 分
其實我的大學母校畢業門檻就是要求多益要 550 分以上,但是也可以選擇通過英檢中級初試來達到畢業門檻,所以當年我就這麼成功的逃脫了多益的試煉。事後回想起來,真的是年輕不懂事,英文是很值得下苦功去學習的語言,而且當你可以跟英文母語人士用英文交流時,其實你也會有滿滿的成就感。
所以 2025 年,我決定回去挑戰當年逃避掉的多益試煉,希望可以考到 700 分以上。
考到 CCNA (Cisco Certified Network Associate) 認證
說到這個也很好笑,我其實去年就想考一張 CCNA 認證來學習網路基礎知識,只是前輩一直跟我說這跟 AWS SAA 認證一樣,考試內容是一回事,你實際會碰到的又是另外一回事,沒有必要特別去考認證,但有鑑於今年碰到的網路問題真的是太多太多了,我還是希望自己可以多充實在網路領域上的知識。
我彷彿能聽到前輩又在叫我不要去當網路工程師了,但我也想幫上忙阿!
結語
原本我覺得 2024 年過得很快,是因為我太混了,但是寫完年度回顧後才發現,其實我好像也是蠻認真的在過生活的 🤣。如同開頭所言,我想這就是寫回顧的好處吧。回顧過往,才能更清楚的看見自己的成長與不足,並為未來做好準備,努力試著離心目中理想的自己更進一步。
新的一年,不免俗的一樣要祝大家新年快樂!同時也祝各位在新的一年…
能夠離你心目中理想的自己更進一步