Experience GCP


昨天去參加 Google 第一次在台灣辦的活動 Google Cloud onBoard,看到很多讓人興奮的東西。

花一點時間玩了 GCP 的 Compute, Storage, Networking 部分,順便跟 AWS 比較。

VM - Compute

  • Instance Type 可以自訂,最小有 一個共用 vCPU + 0.6GB
    • 配上 10GB 的空間,每月約 $6.57 USD,持續使用會自動打折變成 $5.00
    • 相當於 AWS EC2 的 t2.nano
  • 也有類似 AWS 的 C, R, M, I 系列的 Instance Type,
    • 最高等級有 32 core, 240G

詳細跟 AWS 的比較:Google Cloud Platform for AWS Professionals: Compute

VM - Storage

  • VM Storage 有 SSD 和 Standard 兩種
  • VM Storage 最大可以到 65,536 GB = 64 TB
  • SSD Type:
    • 64TB IOPS R/W: 15,000 / 15,000
    • 持續總處理能力上限 (MB/秒): 240 / 240
    • Storage 的大小只要到 500 GB, IOPS 就會到頂了: 15000
  • Standard Type:
    • 64TB IOPS R/W: 3000 / 15,000
    • 持續總處理能力上限 (MB/秒): 180 / 120
  • Storage 的 IOPS 會隨著空間大小而自動調整,沒有 AWS io1 那種 provisioned IOPS 的概念
  • 可以加密
  • 最大可以到 64TB, AWS EBS 最大到 16TB

Networking

  • 一個 Project 就有自己的 Networking,預設就會在每個 Region 都建立一個對應的 CIRD Range.
    • 每個 Region 的 Networking 叫做 Subnetworks,有點像是 AWS 的 VPC
    • Subnetworks CIDR 可以更改,但只能變大。AWS VPC Subnet 是無法更改的。
  • Project 之間的 Networking 預設是不通的,需要打通要透過 XPN, Cross-Project Networking 串通。
  • 沒有看到類似 AWS VPC 中 Network ACL 概念的設計
  • 預設 Region 之間是互通的!也就是不用串 Site to Site VPN!也不用管 Network Topologies!

更多和 Network 相關的筆記,請參閱: Study Notes - VPC in GCP

Load Balancer

Cloud Storage

  • 類似 AWS S3, 依照成本、存取頻率分成 Multi-Regional, Regional, Nearline, Coldline
  • bucket name 跟 S3 一樣是 global level
  • bucket 可以個別設定存取權限, 也可以直接將 object 設定為公開
  • 可以直接刪除整個 bucket
    • S3 則一定要把 bucket 清空才能刪除 bucket, 而且清空 bucket 要透過 cli 的 recursive 參數才行
    • S3 在 AWS Console 無法直接刪除 bucket 裡面的資料
  • 移轉: GCP Storage 可以直接移轉其他資料源,像是 S3,指定 s3 path, credential 就可以移轉。
  • Storage 沒有 S3 Lifecycle, Versioning, Events 等概念
    • 他預設的 Bucket Type 可以是一種 Lifecycle 用法,只是沒有 S3 方便
    • 沒有辦法整個 bucket 公開
  • Storage 的儲存方式可以調整,像是:
    • Multi-Regional 可以改成 Coldline or Nearline, 但不能改成 Regional
    • Regional 可以改成 Nearline or Coldline, 但不能改成 Multi-Regional
    • Nearline 可以改成 Coldline or Multi-Regional, 但不能改成 Regional
    • Coldline 可以改成 Nearline or Multi-Regional, 但不能改成 Regional
    • 上面有三個都不能轉換成 Regional, 可能可以透過其他方式
  • GCP Storage 在 Console 上操作反應很快,S3 比較沒那麼順

Cloud SDK, Rest, Cloud Shell

這三個算是 GCP 的三大神器!很吸引開發者!

特別是在 Console 上可以在異動資源的時候,同時提供 REST or CLI,下次就可以很快速的程式化。我曾經在 AWS Feedback 也送類似的建議,不過都沒下文 XD

這樣的設計不是啥很新的想法,但卻很方便。以前在用 phpmyadmin 時就有類似的功能,直接把 SQL 轉成 PHP 語法。


專案 Project

GCP 的資源管理是以 Project 為單位,用 Networking 來看,每個 Project 有點像是一個獨立的 AWS Account。所以在規劃上要很清楚對於公司來講,什麼叫做一個 Project,在 GCP 上要怎麼管理那些資源,如果真的切很多個 Project,然後資源又要共享,互通,那麼就相當於 AWS 上很多個 VPC 要串接,那 可能 就會遇到非常複雜的 Routing 問題。

參閱: From One to Many - Evolving VPC Design

底下是官方建議,利用 Project 把 Prod, Test, Dev 環境切開來的使用方式:

參考自:Google Cloud Platform for AWS Professionals: Management

GCP 的學習資源

習慣 AWS 的學習資源,不管是 Documentation, YouTube, Blog, …. 滿習慣從這些地方快速吸收 AWS 的新資訊,或者更深入的研究。特別像是 AWS YouTube 尚有很清楚的等級分別 10X 代表簡介, 20X 代表 Getting Start, 30X 代表進階課程, 40X 代表專家等級。難易度從數字就很容易分辨。

另外 AWS 所有的文件都有線上版, PDF, Kindle 版,我習慣用 PDF 看,隨時可以離線閱讀。

GCP 目前看到有 Documentation, 但是沒有找到 PDF. YouTube 也有類似的 playlist:

Certifications

GCP 目前有三張 Certifications

結論

GCP 最吸引我的就是他的 Global Infrastructure,Google 花很多錢在打造自己的網路骨幹 (Backbone),讓所謂的 Cross Region 這件事本來非常困難,而且高成本的事情,變得像是 LAN 一樣的輕鬆。

GCP 另外讓人興奮的就是 Global 的分散式資料庫 Spanner,這是讓所有 Developer 期待的!Container / K8S 是內建 GCP,Google 的 Load Balancer 也是 Global Level 的設計,AI / ML 更是 Google 的強項!

GCP 文件有一篇給熟悉 AWS 的文章:Google Cloud Platform for AWS Professionals, 除了基本的比較,也有細分的部分:

在 Public Cloud 領域,如果說 AWS 是出社會工作已久的資深前輩,那麼 GCP 應該就是年輕且有著絕佳天資的明日資星!

另外一家 A 開頭的我就先忽略,常看到社群三天兩頭有人在抱怨不穩定 XDD

延伸閱讀

參考資料


Comments