要讓 Terraform 能有複用性,我們需要加入一些參數化變數來增加彈性,也就是為 module 的 parameter,而且在 root module 中定義好的 variable,可以根據需求來覆蓋。 Terraform Input Variables 的功能,讓我們可以宣告變數,並有幾種方式可以傳入自訂義 variable values:

  • command line
  • .tfvars
  • Environment 讀取

以下會簡單介紹這些方式和優缺點。

Continue reading

所謂的兩字串互為 Anagrams ,意思就是兩個字串中,字母出現的次數都一樣,只是位置不同,比如題目說的 ate 、 eat 、 tea 它們就都互為 Anagrams 。如何判斷兩字串是否互為 Anagrams 是關鍵解題點,這題雖然歸為 Medium ,但是偏向 easy 的,需要注意的點是:

  • 熟悉一些 java 內建常用的字串處理 function ,寫起來會比較簡潔。
  • 想到使用 map 結構來儲存分組資料。

Continue reading

現今應用程式發展迅速, app 的更新也變得越來越頻繁,在微服務、DevOps、Cloud-native 的迭代過程中,最終都需要上線。上線就需要部署;需要部署就意味著有修改;修改則意味著有風險,要如何在盡量不影響 user 的前提下,讓 app 升版呢 ? 這時就有一些部屬策略可以考慮。對於 Deployment Strategies 有一些基本的專有名詞和觀念,例如 :

  • Recreate
  • Rolling
  • Blue-Green
  • Canary

對於應該使用哪種 Deployment Strategy 、它們的工作原理、優缺點等等,以下會做些基本介紹。

Continue reading

當我們在編寫 Kubernetes Pod 相關的 yaml spec 時,有時會針對 spec.containers ,設置啟動時要執行的命令及其參數,而 Kubernetes 提供 commandargs,兩種方式可以選擇。但這時候就會出現一些疑問 :

  • 這兩個差異是甚麼 ?
  • Docker Image 中如果自帶 ENTRYPOINT 和 CMD ,若 Kubernetes 再設置 commandargs 會發生甚麼事情呢 ?

以下就來簡單說明一下。

Continue reading

templatefile 是 Terraform 的一個內置函數,可讓 Terraform 在運行時,根據變量動態生成文件內容 。 templatefile 函數的基本用法是:

  • 定義一個模板文件,其中包含要插入變量的佔位符。
  • 在 Terraform code 中,您可以使用 templatefile 函數來讀取模板文件,並提供要插入的變量。

最後 Terraform 會動態生成文件內容,並將其輸出。

Continue reading

Avro

Avro 是一個 data serialization 框架 ,是 Apache Hadoop 下的一個子項目,是一個可跨多種程式語言和平台的傳輸資料格式。Avro 可使用 JSON 格式來描述 data structure,並且支持架構演進,保持向後、向前的相容性。 Avro 也提供了編解碼和二進制格式,使得在高吞吐量的應用場景中非常有用且高效。

Continue reading

cloc 全名是 Count Lines of Code , 為一個計算 code 和設定檔行數的 CLI 工具,是使用 Perl 語言開發的開源統計工具。cloc 支援非常多程式語言、平台、格式的統計,可以快速地計算一個 project 中所有文件的行數、空行、註釋行等等。有時候在寫一些報告會用到,可以幫助整理資料。

Continue reading

terraform archive 是一個 HashiCorp 公司提供的一個 Provider,可以讓使用者在 Terraform 中,將指定的目錄或檔案打包(例如 zip )。

雲端上運行的無伺服器計算服務非常熱門,著名的如 AWS Lambda 、 Azure Functions、GCP Cloud Functions,也常使用 terraform 工具來進行部屬。這時再使用 terraform archive ,方便地把例如 python code 打包成 zip,簡便地部署到服務上。

Continue reading

tar是 Unix 和類 Unix 系統上常用的壓縮工具,名字來自於 tape archive 的縮寫, tar 可以將多個文件或目錄打包成一個檔案。單純 .tar 檔案是沒有壓縮資料的,只是把好多目錄與資料夾打包起來變成一個大檔案而已;如果要有壓縮資料的功能,要使用 .tar.gz 壓縮檔案,是最常見的壓縮檔案格式。

Continue reading

這題是要求 Binary Tree 的 diameter ,要注意一下 diameter 的定義並不等於深度 ! 根據題目中的例子,可了解所謂 diameter 的定義,是兩點之間的最遠距離。雖然 Binary Tree 的 diameter 並不等於深度,但是和深度有非常大的關係,所以解法用 DFS 是比較直觀的想法。(雖然題目難度說是 easy,但我個人覺得應該算初階 medium…)

Continue reading

Author's picture

李昀陽 YunYang Lee

Welcome to my Tech Note. You can read some of the chapters below.

Software Engineer

Taiwan