Tag: 2V0-21.23

  • 云平台分类

    1、雲端運算與虛擬化 可以說虛擬化是雲端運算的技術基石,同時雲端運算也是虛擬化技術的進一步發展、變革和昇華。 透過對實體設備進行虛擬化,包括運算虛擬化、儲存虛擬化、網路虛擬化等技術,將 IT 基礎資源進行池化,對上層應用屏蔽底層實體設備,進一步提高資源利用率和系統的穩定性。 虛擬化最早的使用場景多為企業內部使用,這也是企業私有雲得以快速推廣實施的重要原因之一。 但相比虛擬化,雲端運算在彈性伸縮、租戶管理、按需調配及編排、自助計費、 IT 營運等方面得到了長足的補充、提高和完善,並且可以支援超大規模的計算和存儲,跨 區域的網路架構等。 雖然雲端運算最早是基於虛擬化這項技術基石,但隨著近幾年的快速發展, 雲端運算已經完美支援ironic 裸設備、 Docker 容器化等技術,並且相互補充、相互完善,共同促進了整個雲 計算生態圈的發展與完善,為不同的應用場景提供不同的最佳技術實務。 2、雲端運算與容器化 容器化是最近幾年呼聲很高、討論很熱的一種技術解決方案,大有取代雲端運算、雲端平台的風頭,網路上也有類似的論調。 對此,我以為容器化應該是雲端運算的組成部分之一,跟虛擬化技術一樣,可以成為雲端運算的技術基石之一,並且二者在某種程度(穩定性、安全性以及主機隔離性 )上,二者應該是可以互相補充、互相完善的。 容器化比較適合輕應用部署,其對微服務具有天然的支持,透過工具鏈構築DevOps 持續交付平台,可以大大的提高交付效率,特別對於需求多變、迭代頻繁的業務場景,可以極簡地縮短 交貨時間、提高交付效率,同時也可以快速應對訪問量陡增陡減情況下的快速伸縮。 但是,對於傳統的中大型系統(微服務拆分後,比較適合容器化部署,但收益不是很大,因為其係統需求和訪問都相對比較穩定,變化不大)以及數據庫應用不是很適合,就 關係型資料庫不適合容器部署方面,有以下幾點原因: (1) 資料安全方面的問題:由於容器底層技術的限制性和資料庫底層開發相容方面的考慮,容器運行資料庫會存在資料安全的問題,特別是容器異常或是崩潰,資料庫未完全關閉的情況下 ,會損壞資料; (2) 資料庫效能方面的問題:追求關係型資料庫或資料倉儲的高效能時,我們往往會採用裸金屬的方式部署,屏蔽作業系統的一部分瓶頸,或是直接在最佳化之後的OS 上部署,同時 資料庫的效能大多出在IO 方面,採用容器部署運行資料庫,層級複雜、 IO 負載進一步提高,會大大影響資料庫的讀寫效能,與資料庫高效能最佳實務相悖。 (3) 天然的對立面:容器技術特別適合部署運行無狀態的服務,並且其資料持久化依賴於外置設備,而資料庫是典型的有狀態的持久化的服務,二者存在對立的情況,強行 在容器跑資料庫需要考慮狀態持續性以及資料持久化兩大因素。 (4) 資源隔離方面:容器技術在資源隔離方面較虛擬化計畫差不少, Docker 是利用 Cgroup 實現資源限制的,只能限制資源消耗的最大值,而不能隔絕其他程式佔用自己的資源。 如果其他應用程式過渡佔用實體機資源,將會影響容器裡資料庫的讀寫效率。 需要的隔離等級越多,獲得的資源開銷就越多。 鑑於資源隔離的先天不足,在容器整體規劃方面,如果產生統一伺服器上既有應用又有資料庫,那麼在效能方面會相互影響,而在資料庫的最佳實務中,應用程式和資料庫是要分開部署 ,其二者對伺服器資源的需求也是大不一樣的。 但是仍有部分企業將資料庫部署在容器中,特別是 MySQL ,我認為這也是有一定業務場景支持,也是比較合適的。 如:對負責系統進行微服務拆分和資料庫拆分,每個服務對應相應的資料庫,二者綁定較深,這種情況下為了便於管理和擴展,是適合容器部署的,但是在擴展方面 需要結合資料庫的高可用和讀寫分離架構進行;另外還有一種是比較適合運行的,如資料庫本身就是分散式的資料庫且所儲存的資料並不敏感,安全性要求不高,如網站的流量 分析、搜尋的索引詞儲存等,可以利用分佈資料庫的分片來增加實例數,進而增加吞吐量。 3、…