時間 : 6/12至今

貢獻項目

完善新人GCP Training專案

  • S : 公司新進員工對GCP常常缺乏基本知識,新進職員需做一個平台專案至GCP上。
  • T : 完成新人GCP培訓專案。
  • A : 過程中與同期新人互相討論,除了完成功能外,也完善整個目標。從資料表服務權限的細維度到GCP的CICD都有完善的過一遍與紀錄。
  • R : 後續新人進來能有完整的明確紀錄參考,減少新人上手的時間和縮短學習曲線。

資料: Code(已同步到行內), PPT(已同步到行內), 筆記參考(已同步到行內)

詳細描述 剛入職需要做一個圖片上傳系統,上傳過程中需要做圖片壓縮。系統開發至少需要用到一項雲端服務。基本上此專案只需要用到一項雲端服務,例如Cloud SQL,不過後續實作我們使用Cloud SQL、KML、Cloud Storage、Cloud Run、Cloud Build等雲技術完成。並確實落實微服務最小職責設計,將新人專案的價值性拉到最後,過程也留下完整的筆記與程式碼,讓後續新進來的新人可以有最完善的參考價值。

協助開發設計Cloud Java SDK Interface

  • S : 雲端發展部AP部門需要額外封裝三大雲雲端SDK去設計API給其他部門使用。
  • T : 設計Cloud API Interface。
  • A : 實際設計pubsub、redis、kms,過程中順便Review Net Core版本的實體API設計是否有問題。
  • R : 完成Java版的Cloud SDK Interface,並同時Review完Net Core版本不合理之處請同仁後續協助修改。全面性會大大提高整體框架的健壯性。
詳細描述 AP Team需封裝不同雲平台的SDK為API Lib給其他部門使用,過程需思考介面要如何開才能符合GCP、AWS與Azure都可實作的介面。思考設計過程中,也同步審核之前Net Core設計的版本是否有不合理之處。例如Storage API不該提供刪除機制卻提供或是KMS加解密是否有提供完善的實作方式。這些都看到不少問題,並在Java Cloud SDK這部分去做改善優化,同時協助記錄Net Core版本需修改之處,以便後續同步Java Cloud SDK。

協助規劃AP API文件統一格式

  • S : For部門須提供Cloud API給其他部門使用,過程需有一個完善可閱讀的API文件。
  • T : 負責規劃API文件統一格式。
  • A : 統整C#與Java的API工具,過程盡量用Code Generator方式去處理API文件。
  • R : 成功導入API Code Generator Tool與流程,在撰寫程式碼過程後,可以自動生成API文件省去手動撰寫時間,並能整合至同一個平台閱讀。提高了效率,還確保了文檔的一致性和準確性。

資料: API文件規範(已同步到行內)

協助統整目前雲端架構與業務流程圖格式

  • S : For部門專案文件統一,系統架構、雲端架構、業務流程圖需要有一個統一格式。
  • T : 審視目前部門設計圖格式是否有少考量到什麼。
  • A : 整理現有文件,除了審視內文外並做統整分類。
  • R : 以業務流程,系統架構及雲端架構清楚將文件分類,內文部分也做統一統整整理。甚至能讓新人快速理解該如何畫出部門文件的架構與流程圖。這個項目對於公司的長期發展非常有價值。一個清晰、統一的架構和流程圖會使新進員工更快地了解公司業務和技術架構。

部門內TDD技術分享

  • S : 部門月技術分享
  • T : 設計TDD Workshop,並與部門人員做分享
  • A : 研讀TDD,並思考如何講解,因TDD涉略非常多概念,需思考好的情境去帶出觀念,這部分花了不少時間。
  • R : 部門人員反映非常好,並能清楚理解TDD價值核心與急速開發價值。TDD(測試驅動開發)是一種能提高代碼質量和開發效率的方法。分享不僅提高了團隊的技術水平,還鼓勵了大家對最佳實踐的探索。另外也整理一版閱讀版,讓後續新人進來可以直接閱讀。

資料: 講課PPT(已同步到行內)詳細閱讀版(已同步到行內)

GraalVM與Native Image 使用價值技術釐清

  • S : 因專案需求,需使用Quarks框架開發微服物,此框架會牽扯到GraalVM與Native Image,需釐清這兩個技術點特性。
  • T : 理解並記錄GraaVM與Native Image技術內容
  • A : 理解並記錄GraaVM與Native Image技術內容,並做一個清楚的筆記紀錄。
  • R : 釐清GrralVM與Native Image技術關鍵核心,並在筆記清楚交代與傳統JVM實作差異點。這兩個項目相當專業,涉及到具體的技術實施和效能評估。對專案的項目實作上有實質的幫助。

資料: 釐清整理記錄(已同步到行內)

Quarkus技術釐清與實作

  • S : 因專案需求,需使用Quarks框架開發微服物,但Quarkus API為Reactive寫法,會與一般API寫法有很大不同。因此需釐清這一塊,並實作測試。
  • T : 使用Quarkus,並用Reactive寫法完成Web API
  • A : 使用Quarkus實作Reactive Web,並用K6壓測工具實測。
  • R : 清楚交代Reactive、Blocking與Not Blocking寫法差異性與為何在大流量可以有好的效益性,K6壓測實測結果,確認在大流量狀況確實Reavtive會有較好的Performance。

資料: 釐清整理記錄(已同步到行內)

MongoDB技術使用釐清與實作

  • S : 因專案需求,Quarkus使用DB段需使用MongoDB服務。因Quarkus為Reactive寫法,需Check DB段在實作是否與一般情況不同。
  • T : 實作Quarkus連線MongoDB並寫入與撈取資料。
  • A : 實作Quarkus連線MongoDB並寫入與撈取資料,並用K6壓測工具實測。
  • R : 確定在Infra,DB Client物件Reactive寫法與一般寫法確實不太一樣,且實測發現Quarkus提供的MongoDB Reactive物件使用上有效能問題,得出在使用MongoDB這一段還是建議使用官方所提供的SDK才能確保較好的穩定性。

Keycloak技術使用快速入門整理

  • S : 因專案需求,需實作SSO,最後選擇Keycloak Solution來完成這件事情。因此需做個簡單使用Survery。
  • T : Survery Keycloak實際使用,並整合Web API串接Keycloak服務
  • A : 開發Web API Lab Code串接Keycloak,並整合Google OAuth2認證。最後做一個整體的筆記紀錄。
  • R : Keycloak服務串接完成,筆記部份分成觀念與實作兩個Part,除了理解Keycloak使用,內容也能讓完全不懂認證授權流程的人可以清楚整個理解。

待改進的項目

不熟悉雲服務

雖然透過新人專案,有將GCP的服務幾乎全都過一遍。但細節部分以及較複雜的應用還不夠熟悉。對於此點我有兩個Plan

    1. 將之前新人專案的筆記以寫書的方式完善,並投稿2024年鐵人幫文章比賽,這部分預計2024過年前會完成。
    1. 2023 11月底前會完成ACE證照考試。
    1. 在實際的雲專案,落實並釐清每一個技術環節,以目前同仁互動良好,持續進行中。

不熟悉K8S

    1. 目前已參加K8S讀書會,並在2023 11月初開始準備CKA考試
    1. 在實際雲專案中,落實GKE的使用並細部釐清深度概念。

不熟悉後端某些技術服務實作與安全認證

後端有些服務,例如Kafka、Keycloak以及安全認證流程因之前沒接觸過,所以這部分認知會較弱無法在會議中提出問題討論,對於此點有幾個Plan

    1. 在專案實作過程中,一遇到不太清楚的除了問之外,會完整的落實理解(例如藉著理解Keycloak使用,落實理解身分識別、認證、授權、權限管控、OAuth2是什麼,並做很詳細的筆記留存於團隊)
    1. 列出後端Skill Tree,並釐清那些環節不清楚自行Study。目前自己有計畫自我兩天會去釐清一些技術觀念,會將這部份整合至每日技術研讀中。