Spanner 🔧,跟 Cloud SQL 一樣,是一種 RDBMS (Relational Database Management System),它同時包含了關聯式資料庫與非關聯式資料庫的優點,支援 SQL 的語法,然後很貴。
Spanner 最大的優點是它可以達成 Horizontal
Scalable 的資料結構,它可以處理 PB 等級的資料,而且有極高的可靠性(SLA 高達 99.999%),適合使用於金融與庫存等應用上。
Spanner 是 Google 開發的酷酷資料酷系統,他們也為此發了紙 Spanner: Google’s Globally-Distributed Database,但我是沒有很想看啦QQ。
Cloud Spanner Architecture Cloud Spanner 會同時將資料放在多個 Zone 中,這些 Zone 可以跨 Region,使用者可以自己設定,想要將資料放在哪個 Region,透過這種概念達到極高的可用性。
多個 Region 間的資料,會透過 Google 的光纜進行同步,並且透過原子鐘來校對時間,確保其原子性。
Spanner 與 RDBMS / N-RDBMS 比較 圖片來源:Google Cloud
ITHome 鐵人賽
真ㄉ有可能在 30 天內搞懂 Cloud ㄇ ?__?
昨天介紹完了儲存各種檔案可以使用的 Cloud Storage,今天要來介紹另外一個很常見的儲存服務:SQL。相信有架過網站的人都知道 SQL 的重要性, SQL 屬於一種 RDBMS (Relational Database Management System),關聯性資料庫系統,相較於非 RDBMS 的資料庫系統,我們通常會稱為 NoSQL。
在通常的情況下,如果我們需要架設一個 SQL 的 Server , 可能會先準備一台伺服器,安裝完作業系統後,再使用 Docker;或直接安裝 SQL 的資料庫程式,建立一個資料庫的伺服器。
如果透過了 Cloud SQL,我們可以將這一系列的事情全部交給 Google,僅需要一鍵開啟一台 Cloud SQL 的機器即可。
Cloud SQL 目前支援 MySQL 、 PostgreSQL 與 Microsoft SQL Server 的資料庫服務。
Cloud SQL 還有以下幾種優點:
Automatic update如果各大 SQL 服務出現了重大的漏洞與更新,Google 可以自動化的將服務更新。Automatic replication- Cloud SQL 支援自動複製,可以直接複製一台當前的 SQL 機器,提供備份或測試等多種使用情境。Managed backups- Cloud SQL 可以負責自動化的管理備份,每個 instance 最多可以管理 7 個備份。Scaling- 可以讓擴展機器,將目前的機器硬體規格升級成更高級 需要重新開機 SQL 性能 透過 Cloud SQL 選擇的 instance 會對 SQL 的效能進行最佳化,最高可以使用:
...
ITHome 鐵人賽
真ㄉ有可能在 30 天內搞懂 Cloud ㄇ ?__?
介紹完了虛擬機器與網路後,接下來要跟各位介紹的是關於雲端的儲存方案。Google Cloud 有許多雲端儲存的服務可以供大家選擇,例如 Cloud Storage 、 Cloud SQL 、 Cloud Spanner 、 Cloud Datastore 與 Cloud Bigtable。今天會與各位介紹最直觀,最直覺的 Cloud Storage。
簡介 Cloud Storage 主要可以用來儲存各種 Binary 的檔案,例如圖片檔、壓縮檔等。根據新聞報導,包含了蘋果、抖音等各大公司,背後都有使用到 Google Cloud 的 Storage 服務,蘋果更是使用到了 8 Exabytes 之多。如果沒有意外的話,Google Drive 背後就是運行 Cloud Storage 的服務。
Cloud Storage 預設會將所有資料進行加密,並使用 HTTPS / TLS 進行傳輸。可以取得 HTTPS 的直接連結,作為圖床使用。
Cloud Storage 不能算是一種檔案系統,它是透過 Bucket 的方式儲存不可變(immutable) 的檔案;不過也有第三方的工具 Cloud Storage FUSE 可以將 Cloud Storage 掛載成虛擬的網路硬碟。
Class Cloud Storage 分成了 4 種不同的 Class , 分別是 Multi-regional 、 Regional 、 Nearline 與 Coldline,他們的價格與使用情境有許多的不同。
...
ITHome 鐵人賽
真ㄉ有可能在 30 天內搞懂 Cloud ㄇ ?__?
今天來介紹虛擬網路的部分,既然我們都有各種的虛擬機器、虛擬服務,那想當然,這些服務就是透過虛擬網路進行連線。虛擬網路如同現實網路一樣,也有許多需要在意與設定的地方,例如 IP 、 Routing 或防火牆等。
VPC 虛擬私人網路 (VPC, Virtual Private Cloud) , 就如同現實生活中的 LAN , 可以將虛擬網路彼此的進行連接或隔離。 一個 Project 預設可以有 5 個虛擬網路,這些網路除了自己使用之外,也可以跟其他的 Project 互相共享。這些虛擬網路中的 IP 沒有嚴格的限制範圍;我們也可以設定自己在歐洲與亞洲的機器於同一個區網內。我們也可以藉由 Cloud VPN 等方式將自己地端的設備接入雲端,Cloud VPN 相關技術將於之後的文章再跟大家介紹。
VPC 在 Google Cloud 中有三種模式,分別是 Default 、 Auto 與 Custom
Default Mode 在每一個 Project 中都會預設一個 Default Mode 的網路,他們在每一個 Region (可跨 Zone) 中都是一個 Subnet,所以,它有預設的防火牆 Rule。事實上, Default Mode 的 VPC 網路,就是透過接下來要介紹的 Auto Mode 生出來的。
Auto Mode Auto Mode 如同 Default Mode,它會自動生成,每一個 Region 中會有一個 Subnet,而每一個 Subnet 預設的 IP Range 使用了 /20 的子網路遮罩,最高可以擴充為 /16。
...
ITHome 鐵人賽
真ㄉ有可能在 30 天內搞懂 Cloud ㄇ ?__?
今天要來介紹的是雲端的虛擬機器 (VM),屬於雲端 IaaS 最具有代表的一項產品。相信有許多讀者應該都有在自己電腦上使用虛擬機的經驗吧?例如 Virtual Box 或 VMWare 等程式,虛擬機在實用上有非常多的優點。
虛擬機的優點 虛擬機最大的優點就是可以與實體機器隔離,做任何的事情都不會影響到原始的機器。除此之外,在假設 Host 電腦的效能與容量足夠的前提下,我們也可以隨時地變更虛擬機的硬碟大小、CPU大小、硬碟容量等。我們也可以直接針對整台虛擬機的映像(image)檔案進行快照(snapshot),作為即時的備份使用。
如果我們有很多台的虛擬機,也可以建立虛擬的網路將他們互相連起來;有關雲端的虛擬網路 (VPC),我們會留到明天再跟各位進行介紹。
上述這些虛擬機的優點,無論是地端與雲端的設備都可以運用的到,而雲端的機器由於是交由服務商進行管理,所以對於正常使用者來說,我們可以視為 host 的機器將近是無限大,想要開多少都沒有問題!
vCPU 與 Throughput 一個 vCPU 等同於一個硬體的超值行續 (Hyper-Theread),以目前的 GCP 規定,一台的 VM 最多可以開 96 個 vCPU 。
一個 vCPU 的 網路吞吐量 (throughput) 為 2Gbps。到目前為止,若使用一台大於等於 16顆 vCPU 的裝置,其網路的 throughput 最高為 32Gbps。如果開啟特殊的虛擬機,例如使用到高級 GPU 的 V4 或是 V100 ,則可以到 100 Gbps。
Storage 虛擬硬碟方面,在 GCP 上面也有幾種選擇,分別是 Standard 、 SSD 與 Local SSD。不同的硬碟選擇,想當然的,就是他們的性能與價格有所差距,大家可以依照自己的需求選擇最適合的硬碟解決方案,而這三種硬碟分別的差距如下:
Standard可以理解成普通的電腦機械式硬碟 透過網路連接上 VM 它們的容量可以視需求彈性的增加(只能增加不能減少) 最大值在每台 VM 上可以有 257 個 TB 最便宜SSD- 相對於 Standard ,可以有更高的 IOPS 透過網路連接上 VM 也可以在線的增加容量(只能增加不能減少) 最大值在每台 VM 上可以有 257 個 TB 價格其次Local SSD- 比起 SSD 有更高的吞吐量,且低延遲 直接硬體的連接在 VM 上 關閉、刪除 VM 後,資料就會被刪除 通常拿來作為 swap 使用 單顆 Local SSD 最大容量為 375GB 一台 VM 最多可以連結 8 顆 Local SSD VM Access 通常我們訪問雲端的 VM 都是藉由網路的方式,在大多數情況下, Linux 的作業系統我們會使用預設為 22 Port 的 SSH,而 Windows 作業系統則會使用預設為 3389 Port 的遠端桌面連線 (RDP)。
...
ITHome 鐵人賽
真ㄉ有可能在 30 天內搞懂 Cloud ㄇ ?__?
今天要來介紹的是,剛進入雲端一定會面對到的部分:Project以及 IAM。我覺得這個相關的主題會是雲端裡面數一數二無聊的 QQ,但以一個完整的雲端架構而言,這卻是非常非常重要的部分。特別是 IAM 這個主題,單純這個主題,事實上身為一個雲端管理者、架構師,就可以上一整個月的課程了。
Project 任何的 GCP 服務,都會屬於一個 Google Cloud Console 的 Project,無論是管理 API 、 管理計費方式、增加其他的協作者等都是基於 Project 為單位,而一個 Project 底下則可以有許多的資源 (Resources)。
一個 Project 可以包含非常多的使用者,且每個 Project 都是一個獨立的單位,獨立的隔間,他們會分開的計費。
每一個 Project 會有三個相關的識別屬性
Project ID可以自己定義,它必須是 Global Unique 的 設定完後就不可更改Project Name- 可以自己定義,不需要 Unique 設定完後仍然可以再次修改Project Number- 不可自行定義,由 GCP 自動產出 不可自行更改 Project 階層式管理 GCP 也可以透過階層式的進行管理,以一個公司為例,通常會使用組織節點 (Organization Node),而一個公司底下可能會有不同的部門,這個時候就可以透過資料夾 (Folders) 進行管理,而每一個部門底下也可能會有多個 Project;每個 Project 底下則又可以有多個 Resources,範例如下圖所示。
圖片來源:Google Cloud Creating and managing Folders
不同的資料夾間,可以設定不同的 IAM 權限管理政策,通常來看,整個公司架構的樹狀圖中,位居越高位的管理權限越大,而越下面的權限越低。
IAM Identity and Access Management (IAM),身分以及訪問權限管理,是雲端管理之中,最最重要的一件事情。如果一個 IAM 的階層管理做得越完善,越齊全,就越不可能會遇到一些看起來很荒謬的事情。
...
ITHome 鐵人賽
真ㄉ有可能在 30 天內搞懂 Cloud ㄇ ?__?
今天的內容會跟各位介紹 Google Cloud 相關的基礎知識,希望不會不小心的講成像業配文QQ,先聲明,我沒有拿到 Google 給我的任何 $$ QQ。
GCP 提供了多種類型的服務 GCP 的服務,從低層級到高層級,包含了 IaaS 、 Hybrid 、 PaaS 、 Serverless logic 與 Automated elastic resources。越低層級的內容,使用者可以控制的參數就越多,設定也比較複雜;越高層級的服務須要設定的參數就越少,可以快速且方便的使用,不過相對應的,彈性與客制化程度就比較低。特別是機器學習的部分,Google 提供了許多方便的 API 供大家使用,這些 API 甚至可以讓不會寫程式的人快速的接入各種方便的應用。
以下為 GCP 常見的服務列表
運算資源Compute Engine Kubernetes Engine App Engine Cloud Functions ……儲存資源- Bigtable Cloud Storage Cloud SQL Cloud Spanner Cloud Datastore ……大數據- BigQuery Pub/Sub Dataflow Dataproc Datalab ……機器學習- Natural Language API Vision API Machine Learning Speech API Translate API …… Google Network 根據資料顯示, Google 目前在全世界的網路下,成載了世界的 40% 的流量,是世界上最大的網路商。它的海底光纜的總長度更超過了 10 萬公里,投資了數十億美元建至,確保了 Google 各種服務的穩定性。
...
ITHome 鐵人賽
真ㄉ有可能在 30 天內搞懂 Cloud ㄇ ?__?
講到雲端相關的議題,一定會看到的就是 IaaS 、 PaaS 與 SaaS。這幾個名詞可以算是雲端的三種層次,雖然我覺得,很多時候某些雲端服務不一定可以明確的區分他屬於哪一種層次,不過,其實也沒有太重要XD。既然大家都這麼的愛用,那我們就還是來了解一下他們分別的意義吧!
IaaS (Infrastructure as a Service) IaaS,基礎設施即服務,可以算是以雲端的角度而言,與地端的機器最相近的服務。如果用過 vCenter 等裝置的話應該可以想像,它就是可以在雲端開啟虛擬機器。就算沒有接觸過任何的虛擬機器也沒關係,我們可以想像成,就是在雲端幫我們準備了一台我們定義好規格的電腦。
使用 IaaS ,我們等同於可以直接的管理,控制整台電腦的所有功能,舉凡硬碟存取,網路存取,也可以完整的訪問 CPU 以及 Memory ,提供了最大的可控制性。但俗話說的好,能力越大,責任越重,在 IaaS 的環境底下,使用者虛擬主機上遇到的所有軟體相關問題,雲端的服務商也都不需要負責,雲端服務商只負責,並保證機器是可以被正常的運行的。
PaaS (Platform as a Service) PaaS,平台即服務,相較於 IaaS ,我們不需要在意機器這麼底層的東西。較底層的基礎設施、作業系統與程式相關,都由雲端的廠商進行處理,使用者甚至不需要處理任何的軟體更新等問題。
假如說,我們的需求是需要架設一個 MySQL 的 Server。如果以地端的機器,或是以 IaaS 為角度來看的話,我們通常會先需要準備一台電腦,安裝一個 Linux 的作業系統,這個時候,會需要考量要使用到 Ubuntu 、Debian、 CentOS 等;等待安裝好了作業系統,接下來要安裝 MySQL 的 Server,這個時候又要考量說,我們的服務是否需要放在 Docker 的 Container 中,或是 MySQL 需要安裝多少的版本。
上述的這些問題,如果我們使用了 PaaS 中的資料庫相關服務,滑鼠點兩下,選擇開啟一台 Cloud SQL,等待幾分鐘的時間,雲端的廠商就全自動地幫我們處理好這樣的需求了!
SaaS (Software as a Service) SaaS,軟體即服務,這相信是大家目前都已經有接觸的一種雲端服務。基本上我們可以直接把這邊的 Software 視為一種產品。舉例來說 Google Drive 就算是一種 SaaS 的產品。我們可以開心的使用 Google Drive ,大家從來都不會在意或想過說:Google Drive 背後跑的是怎麼樣的作業系統,是 Linux 嗎? Google Drive 背後有沒有使用到 Hadoop 的 HDFS 之類的技術? 作為一個使用者來看,我們完全不需要在意以上所說的這些事情!只需要專注地使用我們的服務就好!
...
ITHome 鐵人賽
真ㄉ有可能在 30 天內搞懂 Cloud ㄇ ?__?
Cloud ?? 今天來跟各位介紹一下到底什麼是雲端。
4ㄉ,所謂的雲端就是先教會電腦怎麼飛行,而通常的飛機都會在大氣的平流層之中,也就是距離地面 7 至 11Km 到 50Km 之間,平流層的特性是氣流會相對比較穩定。 相較之下,平流層下面的對流層通常就是雲會出現的區域,也就是我們考慮的雲端。
而電腦領域的雲端呢,則會讓我想到這張圖。
對於雲端而言,跟大多數的普通人聊到「雲端」,大家的第一反應可能會想到「雲端硬碟」,沒錯!這就算是一個最基本的雲端相關的應用。
所謂的雲端我認為可以簡單的分為,雲端的儲存與雲端的運算,而雲端的雲,指的只是我們看不到,摸不到的遠端伺服器,這些伺服器都會由各大營運的設備商進行維護。要感謝的人太多了,所以就謝天吧;資料的來源太多了,所以就說從天上來的吧,我覺得,或許這就是雲端之所以稱做雲端的理由。相較於我們摸的到的機房伺服器而言,雲端有許多的優點,當然不乏也有一些缺點。
雲端的優點 通常來說,我覺得雲端設備最大的優點就是:不需要自己管理實體的設備。比起自己在家裡的電腦,總是要提心吊膽不小心踢到插頭;放在公司機房裡面的伺服器設備,也需要時刻的注意門禁、空調等各種實體的維護。如果使用了雲端的服務,使用者只需要顧慮使用層面的問題,不需要思考實體層面的因素,因為這些問題全權的交由服務商處理!
雲端可以透過大量的異地備份,確保資料的安全性。舉例來說,如果我有一筆非常重要的資料,可能放一份在公司;放一份在住家;放一份在好朋友的家裏……。假設有一天,台北市,或是整個台灣對全世界的網路因故斷掉了,這些資料依然無法在國外被取用。通常雲端設備商會在許多的國家與區域設置據點與資料中心,例如 Google 在台灣的彰濱工業區就有設立資料中心。我們可以將重要資料同時放在台灣、美國、英國、日本……世界的各個角落。就算其中有一個國家突然爆炸了(?,我們也可以透過其他的伺服器取得我們的資料。
雲端設備比起地端的設備,也有擴充性的優勢,假設機構內需要添購新的伺服器,通常會需要跑一系列的請購流程,並等待物流配送、安裝,十分的曠日廢時。而若使用了雲端的設備,如果我們需要添購、增加一台新的伺服器,在網頁上點一點,甚至是透過指令控制,1分鐘內就有辦法安排好,並使用一台全新,乾淨的伺服器。設備更新方面也是,我們隨時可以透過雲端,要求一台全新的機器,並把程式與資料自動的轉移。
雲端設備的在許多情境下也可以降低成本,假設我們需要透過高級的 CPU 、 GPU 進行一系列的運算。需求可能是每個月須要執行一次,而執行一次的時間是數個小時。在這種情形下我們也可以透過短期的租用雲端伺服器,使用完畢後就把機器還給人家,需要付的錢也就只有租用的時間而已。
雲端的缺點 講了那麼多雲端的優點,接下來當然也要跟各位分享一下雲端相關的缺點。首先,我覺得雲端最大的缺點就是安全與隱私相關的問題。畢竟無論如何,資料與設備就是放在服務商的地方,就算服務商如何地進行保證,透過各種的白皮書進行說明,我們仍然可能對於資料的安全性進行懷疑。說不定該公司哪一天,可能基於任何的理由,做出侵犯用戶資料隱私的事情。例如近期的 iCloud 相關新聞,無論是否是極權國家,政府都可能會透過各種的手段要求營運商交出資料,而交出資料後,任何人都無法保證會被怎麼樣的使用。當然,面對這些疑慮,這些公司也有提出了許多的解決方案。
除了安全與隱私的缺點之外,我們還需要考量到雲端的傳輸速度,雖然雲端可以讓我們不用管理大量的伺服器與硬碟,但資料想要拿回來使用時,終究還是要透過網路。如果有數百 TB 、甚至 PB 等級的資料,透過網路的傳輸往往曠日廢時。目前雲端相關的解決方法主要是可以透過 Peering (對等連線), 等專線的方式,成本通常都不便宜。
雲端還會有一些靈活性相關的問題,假設我們在 Google Cloud 上使用了某些的雲端服務,如果未來想要移植到 Amazon 的 AWS;或是 Microsoft 的 Azure 上,通常都不見得會太容易;有時候我們使用了任何的一個雲端營運商的服務,很可能就會被對他產生依賴,未來也有可能會被養、套、殺,一切都要看業者的良心。
總結 雲端運算是由於網路速度變快,而開始發展出來的新概念,通常雲端都會由服務商代理我們管理機器,我們可能永遠都看不到自己在雲端上跑的機器實際上長什麼樣子。雲端最大的優點就是靈活性,我們可以快速的將服務部屬在世界各地;而雲端的缺點則是安全性、速度與可能對雲端服務商產生依賴性等問題。我們的生活已經逐漸的離不開雲端,了解一些基礎的雲端知識是非常實用的!
今天的文章差不多就到這邊,預計明天會跟各位介紹幾個常見的雲端名詞 IaaS、PaaS 與 SaaS 等!
ITHome 鐵人賽
真ㄉ有可能在 30 天內搞懂 Cloud ㄇ ?__?
真ㄉ有可能在 30 天內搞懂 Cloud ㄇ ?__?
不可能,好,大家掰掰
哈囉大家好,打ㄍㄟ厚,我是目前就讀天大地大台科大的 Steven Meow,這是我第一次參加鐵人賽,希望可以順利的持續30天,把文章給順利寫完!
開賽的第一天,輕鬆一點的跟大家聊聊,為什麼我想要寫這個主題。在今年的三月多,我參加了由 Google 舉辦的 Cloud Student Sprint Project。我覺得這個計畫是一個滿硬的計畫 QQ ,花了三個月的時間,透過了許多的線上課程以及資源,學會了 Google Cloud 的基礎知識,並在計畫的最後報考了 Google Cloud Associate Cloud Engineer 的證照。很幸運的,我通過惹!!!
本系列的文章將使用 Google Cloud 當作主要的介紹對象,提供給已經有一點點程式與作業系統基礎的讀者們,並預計以以下幾個內容開始做發想:
雲端概述 雲端 Project 與 IAM 雲端運算 雲端儲存 雲端解決方案的選擇等 Google Cloud 官方的 Document 與大多數的網頁資源皆以英文為主,雖然目前 Google Cloud 已經有了中文化的界面,不過常常有與多翻譯上的誤差,不方便理解 QQ ,因此本系列的文章預計在相關的專有名詞上主要會使用英文,而解說的部分則是中文。(我才……才不是為了怕不小心打出晶晶體而提早位自己辯護呢! ><
除了這篇內容之外,我也有報名 Security 組的比賽,題目是 「我想學滲透測試喵喵喵喵!!!!」 內容主要會介紹常見的滲透測試流程與工具,會比較多實作的東東,也請大家多多支持與愛護!
ITHome 鐵人賽
真ㄉ有可能在 30 天內搞懂 Cloud ㄇ ?__?