雲端服務

雲端服務 Google Cloud Platform (9)

教學目標

初步了解 Google 雲端平台中網路服務的基本概念。

重點概念

首先 Google Cloud Platform 有五大類型的服務,分別為運算和主機服務、儲存服務、網路服務、大數據服務和機器學習服務。所謂網路服務主要能夠協助我們進行跨資源的負載平衡流量處理,建立 DNS 記錄,以及將現有的網路連線至 Google 網路。

接著在 Google Compute Engine 中主要提供一組虛擬機器實體的網路服務集合,其中包括網路、防火牆和路由,每個實體僅能夠連線至一個網路,並且每個專案皆有一個預設網路。此外我們也能夠在專案中建立其它網路,但是不能夠在專案之間共享網路。防火牆規則主要是控管進行網路實體的流量,預設網路中皆具有一組預設的防火牆規則,我們也能夠建立自客製的規則。路由則是允許我們在實體中實作進階的網路功能,像是建立虛擬私有網路 (Virtual Private Networks,VPN),路由主要會指定虛擬實體的封包要如何進行處理。

再來若我們的網站或應用程式已經在 Google Compute Engine 上執行時,則我們將能夠透過網路負載平衡器將工作負載分散至多個實體中,網路負載平衡器允許我們根據傳輸的 IP 協定資料在同一個區域中的伺服器實體之間分配流量,像是若我們想要滿足增加網路存取量的需求,則網路負載平衡就會是合適的解決方案之一。此外透過 HTTP/HTTPS 負載平衡器能夠讓我們跨區域分配流量,以利確保將請求路由至最近的區域,或者當發生故障或容量過大的情況時,能夠立即傳送至下一個最近區域的正常運作的實體。當我們能還能夠透過 HTTP/HTTPS 負載平衡器根據容類型分配流量,像是我們會將一台伺服器定位為專門提供靜態內容,另一台伺服器定位為專門提供動態內容,皆透過負載平衡器將每個不同請求指向適合的伺服器。

最後我們還能夠在 Google Cloud Platform 中使用相同的基礎架構發佈和維護網域名稱系統 (Domain Name System,DNS) 的記錄。此外若我們有一個想要連接至 Google Cloud Platform 資源的現有網路,則 Google Cloud Interconnect 提供了三種進階的連線選項,分別為 Carrier Interconnect 、 Direct Peering Connection 和 Cloud VPN。所謂 Carrier Interconnect 主要是讓我們能夠透過使用服務提供商提供的高可用性和低延遲的連線,讓我們將基礎架構連線至 Google 網路,當然也能夠建立 VPN Tunnel 專用網路。所謂 Direct Peering Connection 主要是讓我們在企業網路和 Google 網路之間建立對等的連線。所謂 Cloud VPN 主要是讓我們透過 IPsec 安全連線將現有網路連線至 Google 網路。

相關資源

雲端服務 Google Cloud Platform (8)

教學目標

初步了解 Google 雲端平台中儲存服務的基本概念。

重點概念

首先 Google Cloud Platform 有五大類型的服務,分別為運算和主機服務、儲存服務、網路服務、大數據服務和機器學習服務。所謂儲存服務主要提供不同類型的雲端儲存服務,雲端儲存服務的產品主要有 Google Cloud Storage、Google Cloud Bigtable、Google Cloud Datastore、Google Cloud SQL、Google Cloud Spanner、Google BigQuery、Persistent Disk 和 Google Drive 等。

接著我們將會根據不同的需求選擇適當的雲端儲存服務的產品,詳細資訊請參考官方網站。至於要如何根據需求有效選擇雲端儲存服務的產品,我們主要會先決定資料是否需要結構化,若不需要結構化資料且也不需要 SDK 時,則建議使用 Google Cloud Storage,但若需要 SDK 時,則建議使用 Cloud Storage for Firebase。若需要結構化資料,則我們會再判斷是否需要針對工作負載進行分析,若需要且更新頻繁和低延遲,則建議使用 Google Cloud BigTable,但若更新不頻繁和能夠接受高延遲,則建議使用 Google BigQuery。但若不需要針對工作負進行分析,則我們會再判斷資料是否為關聯性資料,若是關聯性資料且需要進行水平擴展,則建議用 Google Cloud Spanner,反之若不需要水平擴展,則建議使用 Google Cloud SQL。此外若不是關聯性資料且也不需要 SDK 時,則建議使用 Google Cloud Datastore,但若需要 SDK 時,則建議使用 Cloud Firestore for Firebase。

再來我們需要針對不同的使用案例選擇最適當的雲端儲存服務,像是若我們需要儲存網站龐大的客戶即時點擊資料時,假設每秒至少 10,000 ,最大 15,000 點擊數,並且儲存的資料必須在未來能夠進行資料科學和使用者體驗團隊的分析應用,則建議使用 Google Cloud BigTable 雲端儲存服務。或者若我們計劃升級龐大資料至雲端中,並且商業分析師將會需要透過 SQL 介面進行存取時,則建議使用 Google Cloud BigQuery 雲端儲存服務。

使用案例 雲端儲存服務
儲存媒體或二進位檔案儲存 Google Cloud Storage
文件資料庫 Google Cloud Datastore
快速掃描資料 Google Cloud BigTable
線上交易處理 Cloud SQL、Cloud Spanner
線上分析處理 BigQuery

最後我們也能夠選擇在Google Cloud Compute 使用永久磁碟建立雲端儲存系統,像是在 Google Cloud Compute 中建立 MongoDB 為文件資料庫的雲端儲存系統,或者在 Google Cloud Compute 中建立 MySQL 為線上交易處理的雲端儲存系統。但是建議還是根據不同需求和使用案例使用適當的雲端儲存服務,以利後續的管理和維運。

相關資源

雲端服務 Google Cloud Platform (7)

教學目標

初步了解 Google 雲端平台中運算和主機服務的基本概念。

重點概念

首先 Google Cloud Platform 有五大類型的服務,分別為運算和主機服務、儲存服務、網路服務、大數據服務和機器學習服務。所謂運算和主機服務主要是在無服務器的環境中工作,使用應用程式平台,並且透過容器技術獲得大量的彈性,以利建構基於雲端的基礎架構,同時獲得最大的控制權和靈活性。

接著 Google Cloud Platform 主要提供運算和託管的選項,我們能夠透過 Google Cloud Functions 雲端服務建立無伺服器環境的的工作,透過 Google App Engine 雲端服務建立被控管的應用程式平台,透過 Google Kubernetes Engine 雲端服務以容器叢集技術進行彈性且快速的部署,透過 Cloud Compute Engine 建立虛擬機器的雲端架構。

再來所謂 Google Cloud Functions 主要是功能即服務 (Functions as a Service,FaaS),其建立和提供無伺服器的執行環境,讓我們能夠撰寫單一用途的功能,並且整合至雲端架構中,像是的資料處理操作、視頻編碼轉換、物聯網資料串流轉換、行動後端功能、… 等。所謂 Google App Engine 主要是平台即服務 (Platform as a Service),其提供平台能夠讓我們在平台上建立應用程式,並且當應用程式需要更多運算資源時,平台將會自動擴系統資源,並且自動進行安全更新。所謂 Google Kubernetes Engine 主要是容器即服務 (Containers as a Service,CaaS) ,其是建立在開源碼 Kubernetes 系統上,除了公有雲架構之外,還能夠提供內部部署的混合雲之彈性,能夠讓我們專注於應用程式,而非部署和整合至託管環境中。所謂 Google Compute Engine 主要是基礎架構即服務 (Infrastructure as a Service,IaaS) ,其提供強大的運算基礎架構,並且我們有責任選擇和設定所需要使用的平台元件,並且進行系統管理和資源監控。

最後我們更能夠整合多個雲端服務,像是 Google App Engine 雲端服務與 Google Compute Engine 雲端服務整合應用提供更可靠的雲端架構。此外若我們需要架設網站,但是對於雲端服務不熟悉,則建議先選用 Google Compute Engine 雲端服務,但若是要使用平台即服務的雲端服務,則建議選用 Google App Engine 雲端服務,再來若是需要增強網站的功能,則建議選用 Google Compute Engine 雲端服務。

相關資源

雲端服務 Google Cloud Platform (6)

教學目標

初步了解 Google 雲端平台中專案的基本概念。

重點概念

首先在 Google Cloud Platform 雲端服務中將會分配和使用任何雲端資源皆必須屬於一個專案 (Project),我們可以將專案當成正在建構的組織實體。所謂專案主要是由描述應用程式的設定、權限和其它中繼資料所組成。

接著在專案中的資源皆可以輕鬆協同工作,像是透過內部網路進行通訊,但是需要遵守區域之的規則。此外請注意每個專案包括的資源在專案邊界內皆是保持分離,這時我們僅能夠透過外部網路進行連接。因此當我們需要建立能夠重複使用和設定機制的開發、測試和正式部署隔離機制的應用程式環境時,我們就能夠建立一個用於開發和測試的專案,以及建立另一個用於正式環境的專案,以利開發人員和測試人員可以存取彼此開發與測試環境中的資源,但是他們皆無法存取正式環境的資源。

再來在雲端服務中每個專案皆有名稱、識別碼和碼號,像是專案名稱為 Example Project,專案識別碼為 example-id,專案編號為 12345678910。其中每個專案識別碼在 GCP 中皆是唯一不重複,並且一互建立了一個專案,雖然我們能夠刪除這個專案,但是其識別碼皆不能夠再被使用了。此外一個專案當成一個命名空間,其代表著每個專案中的每個資源皆必須具有唯一的名稱,但是若資源名稱位於不同的專案中時,則我們能夠重複使用該資源名稱。

最後每個專案皆會與個計算費用的帳號進行關聯,同時多個專案將能夠將其雲端資源的使用計入相同的帳號中。若我們需要在 Google 雲端平台上進行部署時採用最小權限模式, 以利將管理的職責分配,以利開發應用程式的專案的進行,此時我們則應該要建立兩個 G Suite 帳號來管理使用者,一個帳號用於所有開發的專案應用程式,和另一個帳號針對所有正式的專案應用程式。

相關資源

雲端服務 Google Cloud Platform (5)

教學目標

初步了解 Google 雲端平台全域、區域和區域集合資源的基本概念。

重點概念

首先 Google Cloud Platform ,簡稱 GCP,其主要是由一系列的物理資產和虛擬資源所組成。這些資源包含在 Google 全球的資料中心中,地區主要包括美國中部、西歐和東亞。每個區域 (Region) 皆是區域集合 (Zone),這些區域集合在區域內彼此皆是隔離,其中每個區域皆由一個名稱所組成進行識別,像是 東亞地區的 A 區域集合被命名為 asia-east1-a。

接著我們能夠將雲端服務中的軟體和硬體視為服務,這些服務主要提供針對底層資源的存取應用。同時當我在 GCP 上開發專屬的網站或應用程式時,更能夠將這些服務進行整合應用所需的基礎架構,以利建構出解決問題的雲端方案。

再來在雲端服務中不同的區域和區域集合的任何資源皆能夠存取其它某些資源,主要有全域、區域和區域集合三種類型的資源,所謂全域資源主要是包括預先設定的硬碟映像檔、磁碟快照和網站,皆能夠被其它資源存取。所謂區域資主要是包括靜態外部 IP 位址,僅能夠被區域內容的資源存取。所謂區域集合資源則主要是包括虛擬機器的實體、類型和硬碟,則僅能被相同區域集合內的資源進行存取。因此資源操作的範圍取決於我們正在使用資源的類型,像是建立網路就會是全域資源的操作,預留 IP 位址就會是區域資源的操作,建立虛擬機器實體就會是區域集合資源的操作。

最後當我們使用雲端服務一段時間之後,若想要開始優化雲端應用程式時,則了解不同區域和區域集合之間的互動關係就會非常重要,像是若我們是新創 IoT 分析公司,則我們會將車輛的位置儲存至 Google Cloud Storage (GCS) 的區域桶 (Regional Bucket) 中,此時若我們需要確認車輛的狀態,則建議移動所有車輛資料至相同的區域中,並且執行 Google Cloud Dataproc 叢集以最且成本效益和處理效率的方式進行資料整合的任務。

相關資源