雲端架構部署救星!介紹 Terraform 是如何大幅改善雲端基礎建設的建立流程

  1. 過去在建立基礎架構時有許多痛點
  2. Terraform 是什麼?
  3. Terraform 如何運作
  4. Terraform 基本檔案結構
    1. providers.tf
    2. main.tf
      1. BigQuery Dataset
      2. BigQuery Tables
      3. Pub/Sub Topic
      4. Pub/Sub Subscriptions
    3. variables.tf
    4. terraform.tfvars
    5. outputs.tf
  5. 總結
    1. Terraform 注意事項與缺點
    2. Terraform 帶來的好處
  6. 後記
  7. 參考資料

過去在建立基礎架構時有許多痛點

當我們想要在雲端上建立各種服務時,通常都是透過 UI 的方式進行,但當架構越來越複雜,甚至還需要整組搬遷的時候,就會遇到很多困難,例如重新設定後可能剛好忘記 region 是設在哪、這個專案是用哪一個 Docker image,或這台機器的規格到底是幾個 CPU 多少記憶體。

整體來說,傳統建立基礎架構時會遇到以下的痛點

  • UI 操作過程繁雜
  • 大量人工操作,易出錯且難以維持一致性,增加除錯時間
  • 難以自動化,導致部署效率低
  • 無法版本控管、追蹤變更,增加操作風險
  • 無法重複利用,缺乏模組化設計,每次建立的成本都很高

所以我們過去在建立基礎架構時,常常需要花費大量時間與人力,效率太差,甚至可能會有許多都是重複性高的操作,而 Terraform 就是可以解決這些痛點的重要工具。

Terraform 是什麼?

Terraform 是一種「基礎架構即程式碼」工具 (Infrastructure as Code, Iac) ,讓我們使用人類易讀的設定檔中定義雲端和地端資源,並可對這些檔案進行版本控管、可重複使用和分享共用,讓所有基礎架構能在配置和管理上達成一致。

Terraform 如何運作

Terraform 主要是透過 Providers 來跟特定的雲端 API 做溝通,例如 GCP providers, AWS providers 等

在使用 Terraform 時主要有三個步驟:

閱讀更多»

資料傳輸效能提升 70%!實測 GCP 的 gcloud storage 與 gsutil 指令的差異

  1. 前言
  2. 什麼是 gsutil 指令?
  3. 什麼是 gcloud 指令?
  4. 官方建議使用 gcloud storage 取代 gsutil
  5. 自行實測結果
    1. 實測環境
    2. 實測結果表
    3. 實測 1:複製一個 249.1 MiB 小型檔案
      1. gsutil cp: 5.4 sec
      2. gcloud storage cp: 3.2 sec ( Speed Up 40% )
    4. 實測 2:複製一個 1.0 GiB 大型檔案
      1. gsutil cp: 24 sec
      2. gcloud storage cp: 6.3 sec ( Speed Up 74% )
  6. 總結
  7. 補充資料

前言

在資料工程師的工作中,常會使用雲端 Google Cloud Platform (GCP) 的 Google Cloud Storage (GCS) 作為 Data Lake 儲存一些非結構化資料,而操作 GCS 的指令我都是用 gsutil 來進行,但近期發現有另一個指令是 gcloud storage ,所以這篇文章記錄我針對這兩種指令實測後發現的差異,以及官方文件的建議。

什麼是 gsutil 指令?

  • gsutil 是一個 Python application,主要用來讓使用者可以透過 Command Line 操作 Cloud Storage,操作包含:
    • Creating and deleting buckets.
    • Uploading, downloading, and deleting objects.
    • Listing buckets and objects.
    • Moving, copying, and renaming objects.
    • Editing object and bucket ACLs.

什麼是 gcloud 指令?

  • gcloud 是 GCP 主要的 CLI 工具,用途更廣不限於 GCS,操作包含:
    • Manages authentication, local configuration and developer workflow.
    • Interactions with the Google Cloud APIs.
閱讀更多»

[Streamlit] 解決部署錯誤:Failed to create the application reverse proxy

最近在使用 Streamlit 並且使用 Streamlit cloud 進行部署的時候,在 App 跑完部署的背景流程之後,遇到一個黑畫面顯示:

{"Code":2,"RawMessage":"Failed to create the application reverse proxy"}

上網查也找不到解法,後來發現是因為我裡面有用到 Database 的 credentials(我是用 MongoDB),但忘記把他新增到 Settings 裡面的 Secrets 裡面,如下圖的地方

新增上去之後重新整理頁面,App 就可以正常執行了。