1. 程式人生 > >你必須知道的雲端計算知識(下)

你必須知道的雲端計算知識(下)

最近訂閱學習了《深入淺出雲端計算》專欄,一口氣學完之後,做了一些總結筆記形成此文,特分享與你,希望對你有所幫助!本文為下半部分,主要總結了PaaS篇的核心要點。

一、PaaS篇

1、正確評估和理解PaaS

  PaaS的核心概念是Platform-as-a-Service,即雲端計算提供的平臺類服務。它是抽象和可複用的單元,讓使用者將更多精力放在業務邏輯上。

  PaaS的核心優勢在於生產力/效率,尤其體現在搭建和運維層面。

  怎樣學習和研究PaaS呢?可以參照以下幾個維度:

  (1)第一維度:服務是否帶有內生的執行環境;

  (2)第二維度:PaaS服務存在的位置和範圍及給予你的控制粒度;

  (3)第三維度:服務是否是“有狀態的”;

  (4)第四維度:支援PaaS的虛擬機器是否對外暴露;

  怎樣衡量和評估PaaS呢?由於PaaS的核心在於封裝,既帶來了效率優勢也帶來了靈活性上的犧牲,因此我們需要檢查PaaS服務的限制,它們有:功能遮蔽、版本選擇、效能極限、更新頻率、版本陷阱;

  此外,當雲上官方的PaaS不滿足需求時也可以考慮第三方PaaS。

2、物件儲存服務

  物件儲存的主要功能:它是雲上建立的一種“網盤”,可以儲存任意結構化的和非結構化的二進位制檔案,使用者可以隨時上傳下載、修改刪除。物件儲存服務保證了資料的可靠性、可用性和擴充套件性。

  物件儲存和雲硬碟的區別:

  (1)訪問的介面和形式不同 => 雲硬碟作為虛擬機器的塊儲存裝置而存在,物件儲存本質是一個網路化的服務;

  (2)物件儲存內本身不存在一個真正的檔案系統,它是一個鍵值形式的儲存服務;

  (3)物件儲存的巨大容量,能夠輕鬆容納PB級的大容量資料;

  物件儲存的高階特性:

  (1)儲存分層 => 設定訪問頻率從高頻到低頻等不同的儲存級別;

  (2)生命週期管理 => 允許設定一定的過期規則,自動執行一些清理操作;

  (3)物件的版本管理 => 啟用此特性會自動記錄版本號以便進行回滾和恢復;

  總的來說,物件儲存的應用場景就是一切需要儲存資料的地方!

3、應用託管服務

正確理解應用託管服務

  應用託管服務本質是為應用提供一個隔離的獨立執行環境,讓使用者只專注於業務邏輯而無須關注運維。

  目前主流雲廠商的該項服務的產品有:AWS ElasticBeanstalk、阿里雲Web應用託管服務(Web+)、Azure應用服務(Azure App Service)。

應用託管的增值服務

  (1)監控:針對Web應用的特點而進行的HTTP層面的監控,基於這些監控指標可以指定相應的報警規則;

  (2)擴充套件:既包含了底層機器配置的垂直擴充套件,也包含了機器數量層面的水平擴充套件;

  (3)整合:與其他PaaS服務的整合很方便,與雲上DevOps元件和流程的無縫對接;

4、雲上資料庫服務

理解資料庫服務

  資料庫PaaS服務是將資料庫服務搬到雲上,讓使用者更方便輕鬆地使用、管理和維護資料庫。

  資料庫PaaS服務和傳統關係型資料庫的共同點:外部互動層面,保持了和原版資料庫幾乎一致的程式設計介面和使用體驗。

  和傳統關係型資料庫的差異點:搭建、運維和管理層面實現了相當程度的智慧化和自動化,極大提升使用者友好度,降低使用門檻。

  雲上資料庫最具代表的高階特性:

  (1)支援讀寫分離 => 只需在後臺略加操作配置即可完成;

  (2)支援自動調優 => 自帶有效能分析和改進模組幫助發現效能熱點;

新一代雲原生資料庫

  目前主流雲原生資料庫產品有:AWS Aurora、阿里雲 PolarDB、Azure Cosmos DB;

  目前雲原生資料庫的特點:

  (1)更強的可擴充套件性 => 儲存規模和算力;

  (2)更高的可用性和可靠性 => 預設多副本高可用;

  (3)支援多種資料模型 => 相容關係型與NoSQL;

  (4)低成本啟動 => 自然地跟隨業務增長,經濟適用;

資料庫服務為何能不斷佔領市場

  除了上面提到的易用性和豐富功能性外,雲廠商能夠端到端地掌控影響一個數據庫的設計和效能的所有因素,為它配備了最新最好的軟硬體組合。

  藉助雲端計算平臺,雲資料庫擁有非常好的流量入口,Gartner甚至大膽預測到2023年全球3/4的資料庫都會跑在雲上!

使用雲資料庫的建議

  如果是老的應用遷移/與自建資料庫保持高度相容性的場合 => 使用經典RDS服務

  如果應用場景中資料量大、效能要求高/沒有歷史負擔 => 直接考慮雲原生資料庫服務

5、雲上大資料服務

理解雲上大資料服務

  大資料是技術手段,而云是一種資源和能力的載體!如果雲是一艘航母,是一個大型綜合作戰品臺,那大資料就好比戰鬥機,在航母上就是艦載機。

雲上大資料的特點

  (1)簡單易用,方便管理:大大降低了學習和應用大資料技術的門檻

  (2)儘可能的保證了相容性:和熟知的大資料技術別無他樣

  (3)解耦了大資料架構中的計算和儲存:儲存端一般優先選擇物件儲存,計算端叢集可以動態地建立和銷燬

  (4)提供了很多增值服務:如效能監控、Jupyter Notebook等;

主流雲廠商的大資料服務

  (1)大資料計算:AWS EMR、阿里雲 MaxCompute / E-MapReduce、Azure HDInsight

  (2)大資料儲存:AWS S3(EMRFS)、阿里雲 OSS / JindoFS、Azure Blob Storage / Data Lake Storage Gen2

 基於阿里雲MaxCompute的日誌大資料分析案例

6、雲上容器服務

容器和雲的關係

  一方面,容器和雲是相輔相成的:雲承載著容器的執行,容器生態也驅動著雲的發展。

  另一方面,容器與雲廠商力推的一些雲服務存在競爭和替代關係:其實部分PaaS服務也可以使用IaaS服務來實現,又如Google積極創立和發展CNCF推動容器應用標準化。

雲上Kubernetes服務的特點

  (1)雲端的多租戶特性,可以免除在Master節點方面的開銷;

  (2)雲廠商做了很多工作,使得K8s可以和IaaS/PaaS元件有很好的的整合;

  (3)易部署多叢集,保證不同的叢集有更好的隔離性;

 騰訊雲TKE產品架構

雲上容器映象服務

  雲廠商都提供了自己的容器映象服務,如AWS ECR、Azure ACR等。

 騰訊雲容器映象服務助力實現容器持續部署

全託管容器例項服務

  “全託管”思想在容器服務商的體現有以下幾個點:

  (1)不用關心底層基礎設施;

  (2)AWS Fargate、阿里雲彈性容器例項等;

  (3)適合有容器映象且想要儘快在雲上跑起來的場景;

 Azure Container Instance容器例項服務建立容器例項

7、無伺服器計算服務

理解無伺服器計算

  無伺服器:“無伺服器”是雲端計算中資源抽象的極致體現,使用者感覺不到伺服器的存在,可以專注於業務邏輯而不再關心基礎設施;

  無伺服器計算服務:完全遮蔽計算資源,引導不再關心底層環境,主流的無伺服器計算服務有AWS Lambda、阿里雲函式計算 以及 Azure Functions。

無伺服器計算的計費機制

  兩個指標:呼叫次數 和 呼叫時長。

  適合場景:偶爾觸發、短時間執行的工作。

無伺服器計算是多面手

  (1)事件模型是無伺服器的核心程式設計模型和執行邏輯;

  (2)雲上Serverless服務一般都配套提供了多種多樣的觸發器;

  (3)多樣的外部互動方式也讓無伺服器計算能夠對外訪問,並向下遊輸出;

  (4)以工作流的方式進行雲函式等事件處理單元的組合和編排;

無伺服器計算服務的限制

  無伺服器計算服務的主要限制還是在於它是一個受限的環境,比如:冷啟動的延時、記憶體的限制、雲函式的執行時長、併發數上限等等。

8、雲上AI服務

開箱即用的API服務

  這類服務將非結構化資料處理分析的通用需求場景,進行了封裝和開放。非結構化資料包括:影象、視訊、語音、文字等等。

  我們可以通過雲端標準的API和SDK來進行呼叫,一般按呼叫次數進行收費。

  現在各領域的AI服務有:

  (1)計算機視覺:人臉識別、物體檢測、OCR、安全掃描等;

  (2)自然語言處理:機器翻譯、文字分析等;

  (3)語音類智慧服務:語音識別、語音合成等;

  (4)視訊類智慧服務:視訊分析、使用者內容審查等;

 百度雲圖片識別服務識別到花瓶和水杯

構建自己的AI模型

  實際應用中,很多企業都需要按照特定的需求來構建自己的定製模型,是普遍而常見的場景。

  因此,雲廠商開始提供幫助使用者構建AI模型的基礎設施服務:

  (1)主流的產品有:AWS SageMaker、Azure Machine Learning 以及 阿里雲機器學習平臺PAI;

  (2)適合的物件由:資料科學家、演算法工程師;

  此外,雲上機器學習服務可以幫助進行貫穿生命週期的模型構建和管理:

  (1)資料準備:集成了資料標註相關的功能簡化操作難度;

  (2)模型訓練:內建常見機器學習和深度學習演算法 以及 也相容開源的機器學習和深度學習框架;

  (3)模型釋出和部署:簡化了模型部署和推理呼叫操作難度;

 百度雲EasyDL定製化影象識別模型訓練報告

二、結束語

1、再看雲端計算

  (1)雲端計算是一個載體和平臺,承載著從IaaS到PaaS林林總總的能力;

  (2)每項能力中既包含了資源,也體現了技術,並且以產品和服務的形態開放;

  (3)雲的承載性是雲得以包羅永珍,並且與時俱進的根本原因;

2、雲原生的本質

  (1)雲原生的本質是用於構建現代雲端應用的一系列架構理念,以及幫助這些理念落地的技術支撐和最佳實踐;

  (2)雲原生的核心理念包括無狀態、分散式、服務化、彈性擴充套件等等;

  (3)雲原生的狹義的定義:特指容器化、容器編排和微服務架構,此外雲廠商在宣傳K8s服務和產品時所說的“雲原生”;

  (4)雲原生的廣義視角:只要是適合在雲上執行,具備和符合雲上架構特點的應用,都可以說是屬於“雲原生”範疇;

3、面向未來的建議

  (1)跟隨雲的發展腳步來不斷提升自己:比如考取雲廠商的認證(比如阿里雲ACP認證)、參加雲端計算大會、積極參與雲生態等;

  (2)用雲來構建和開展你的業務:讓雲在手中發揮最大的作用和價值,抓住機會上雲用效率贏取競爭優勢;

推薦考取阿里雲ACP認證(考證不是主要目的)

三、腦圖分享

點此檢視完整腦圖

參考資料

何愷鐸,極客時間《深入淺出雲端計算》專欄(推薦訂閱學習)

 

 

作者:周旭龍

出處:https://edisonchou.cnblogs.com

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連結。