GCP IP Address 經常是分配給 GCP VM Instance 和 GCP Load-Balancer 使用,讓他們可以和 GCP 其他雲端資源,或者是外部公共網路上的系統通訊。IP Address 劃分也蠻多的,會使用以下種類來描述不同的類型:

  • Internal IP Address <=> External IP Address
  • Private IP Address <=> Public IP Address
  • Ephemeral IP Address <=> Static IP Address
  • Regional IP Address <=> Global IP Address

此篇會全部做簡單的介紹。而在使用 IP Address 也常發生一些使用上的疏忽,例如一直 reserve IP 卻沒有使用它,因為 IP 算是稀有資源,如果有保留固定 IP ,就算沒有使用還是會持續計費的,而且會更貴!

Continue reading

GCP - VPC 概述

Virtual Private Cloud 虛擬私有雲網路,簡寫為 VPC、網路、VPC Network、Network 都可以,是 Google 使用 Andromeda(/ænˈdrɑː.mə.də/) 網路虛擬化技術實現的一個 global 的雲端資源,提供 GCP-VM、GKE、serverless workloads 和 App Engine 等等雲端服務的網路功能,讓 User 可以高自由度地建立、管理和優化網路架構。對應其他的雲端服務是 :

  • Amazon Web Services (AWS) : Amazon VPC
  • Microsoft Azure : Azure Virtual Network

GCP-VPC 和 Amazon VPC 設計蠻不一樣的。GCP-VPC 是全球性的,只要在同一個 GCP-VPC 內,就算不同 region 也能使用 Internal IP ; 但如果是不同的 VPC ,就算在同一個地區 region 也不能互相通訊。而 Amazon VPC 是針對 Region 來設定的,只要跨 region 就不是內網的概念。

Continue reading

Instance Template 一個用於定義 VM instance 配置的模板,其中包括如 machine type、bootdisk、startup script 等等實例屬性,經常和 Instance Groups 結合使用來自動創建 VM instance。對應其他的雲端服務是 :

  • Amazon Web Services (AWS) : Launch Template
  • Microsoft Azure : 沒有直接類似的,需在 Virtual Machine Scale Sets 內直接設定 VM 所需參數設定

概念上就是做好 VM 的模板,讓 VM 啟動完成後直接就可以達到我們想要的狀態,從這個方向出發的話: Startup Script、Custom Image、Instance Template 都蠻類似的,等等都會介紹和比較一下。

Continue reading

Compute Engine 是託管在 Google 雲端上基礎架構即服務 (IaaS) 產品,其他的稱呼還有 compute engine instancevirtual machine instanceVM 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 也有提供相應的服務來面對災難發生時的處理。

Continue reading

Language Server Protocol 簡稱 LSP ,是微軟於 2016 所定的一個協定,專門用來輔助 Visual Studio Code 開發用的,目標是讓 Code-Editor 能便利地支援更多的程式語言。設計理念是把語言撰寫領域模型如:掃描器、剖析器、類型檢查器等這些提供輔助功能的部分,拆出去用公定的介面來做溝通,給各自領域的人開發。

LSP 專門用於描述 Code-Editor 中,用戶行爲與響應之間通訊方式傳輸資料結構,像是 VSCode 的 IntelliSense 提供的 auto-completion 就可以基於這個協定,支援更多不同的 coding language。 現在支援 LSP 的編輯器也不少,不是只有 VSCode ,還有 Eclipse、Vim、NeoVim、都已經支援了,在 langserver.org 可以看到各個 client 的支援狀況。

Continue reading

整合式開發環境 Integrated Development Environment 簡稱為 IDE ,是一種程式開發軟體,通常只針對特定語言,且有應用程式生命週期管理 ALM 功能 ; 另一方面文字編輯器 Text Editor 通常只提供如複製、剪下、貼上、搜尋、取代等文字操作功能,但現在兩個已經沒有區分的這麼明顯,原因就是 VSCode 的出現很大了融合了兩者。 VSCode 其定位採用核心是 <Text Editor + code understanding + debug>,並以檔案夾作為專案管理,保持輕量與高性能,但還是提供強大的支援語法。

與許多程式編輯器一樣,VSCode 也採用通用 layout,設計理念是希望可以提供簡單直覺的工具,讓使用者可以直觀的選取檔案並閱覽、編輯檔案,本文章首先討論 Workbench 的定義和介紹 vscode layout 各個名稱。

Continue reading

Author's picture

李昀陽 YunYang Lee

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

Software Engineer

Taiwan