Virtual Private Cloud 虛擬私有雲網路,簡寫為 VPC、網路、VPC Network、Network 等等都可以,是 Google 使用 Andromeda(/ænˈdrɑː.mə.də/) 網路虛擬化技術實現的一個雲端資源,提供如 GCP-VM、GKE、Serverless Workloads 或 App Engine 等等雲端服務的「網路功能」,能讓 User 高自由度的建立管理和優化網路架構。對應其他的雲端服務是 :
- Amazon Web Services (AWS) : Amazon VPC
- Microsoft Azure : Azure Virtual Network
GCP-VPC 和 AWS-VPC 架構上蠻不一樣的,GCP-VPC 是全球性的,只要在同一個 GCP-VPC 內,就算不同 Region 也能使用 Internal IP ; 但如果是不同的 GCP-VPC 就算在同一個 Region 下也不能互相通訊。而 AWS-VPC 是針對 Region 來設計的,故 AWS-VPC 只要跨 Region 就不是內網無法直接溝通,需再多做其他設定才能連線到彼此。
Instance Template 是一個用於定義 GCP VM 配置的模板,其中包括如 machine type、bootdisk、startup script 等等 VM 的屬性,經常和 Managed Instance Groups 結合使用來自動創建 VM 。對應其他的雲端服務是 :
- Amazon Web Services (AWS) : Launch Template
- Microsoft Azure : 沒有直接類似的,在 Virtual Machine Scale Sets 內直接設定 VM 所需參數
概念上就是做好 VM 的模板,讓 VM 啟動完成後直接就可以達到我們想要的狀態,從這個方向出發的話 Instance Template 其實和 Startup Script、Custom Image 都蠻類似的,等等都會介紹和比較一下。
Compute Engine 是託管在 Google 雲端上基礎架構即服務 (IaaS) 產品,其他的稱呼還有 compute engine instance 、 virtual machine instance 、 VM instance。 對應其他的雲端服務是 :
- Amazon Web Services (AWS) : EC2
- Microsoft Azure : Virtual Machine
啟動前可以訂製自己需要的 Machine Type ,例如 CPU、memory、disk 等等;再來 Boot disk OS 也可自行選擇 Linux 、 Windows 等等操作系統;針對容器虛擬化,可能使用專門優化來運行容器的 Container-Optimized OS (COS) image 在虛擬機上啟動容器服務。最後關於備份資料,GCP 也有提供相應的服務來面對災難發生時的處理。
曾經在使用 gcloud CLI 時,有遇到自己錯誤理解的部分,是關於 gcloud 管理的兩組 credentials :
gcloud auth application-default login
: 是用於應用程式的 credential ,此 command 會管理 GCP Client Libraries 等套件會用到的 credential 稱為 Application Default Credentials (簡稱ADC)gcloud auth login
: 此 command 只會授權 gcloud CLI 工具權限,讓它可以使用 user credential 訪問 GCP 雲端資源,同時把當前的 account activate除了以上講解,這兩個還有什麼不同呢 ? 接下來再多做一些探討。
gcloud CLI 全稱是 Google Cloud Command Line Interface ,是創建和管理 GCP 雲端資源的「命令行」 工具,還捆綁了專用的子工具例如 BigQuery(bq CLI)、 Kubernetes 集群(kubectl CLI) 可配合使用,是隸屬在 Cloud SDK 內的。對應其他的雲端服務是 :
- Amazon Web Services (AWS) : AWS CLI
- Microsoft Azure : Azure CLI
雖然可以使用 gcloud 來撰寫 script 自動化執行許多常見的任務,但實務上更多是會用例如 Terraform 等 IaC 工具來部屬和管理雲端資源, gcloud 現在基本上用最多是在初始化帳戶如 :管理身份驗證(manage authentication),或是自定義本地配置(customize local configuration),這些如權限管理、Project 設定、Billing 有關的功能會是 gcloud CLI 主要使用的地方。
Language Server Protocol 簡稱 LSP ,是微軟於 2016 製定的 Protocol 協定,專門用來輔助 Visual Studio Code 開發用的,目標是讓 Code-Editor 能便利地支援更多的程式語言。設計理念是把語言撰寫領域模型如:自動補全、引用定義、類型檢查器等等,這些提供輔助功能的部分拆出去用「公定的介面」來做溝通,給各自領域的人開發。
LSP 專門用於描述 Code-Editor 中,用戶行爲與響應之間通訊方式和傳輸資料結構,像是 VSCode 的 IntelliSense 提供的 auto-completion 就可以基於這個協定支援更多不同的 coding language。 現在支援 LSP 的 Code-Editor 也不少,除了 VSCode 還有 Eclipse 、 Vim 、 NeoVim 都已經支援了,可以在 langserver.org 可以看到各個 client 的支援狀況。