云計算的歷史與定義 (History and Definition of Cloud Computing)
歷史 (History)
????????云計算的概念化始于很久以前,早在1963年。麻省理工學院從美國國防高級研究計劃局獲得研究資金,用于開發一種“計算機可同時被兩人或更多人使用”的技術。在早期的云計算版本中,被稱為原始云計算,只有兩到三名用戶可以使用云計算服務。目前尚不清楚誰最先發明了云計算的概念。根據許多歷史學家的說法,美國計算機科學家約翰·麥卡錫(John Maccarthy)首次提出了“實用計算”(utility computing)的云計算理念。另一些人認為JCR Licklider最早發明了云計算。JCR Licklider是第一個創建ARPANET(互聯網的早期版本)的人,這也是后來的云計算的基礎。
????????虛擬機的概念在1970年代出現,可以像真實計算機一樣運行完整的操作系統。隨著互聯網的發展,這一概念也在演變,企業開始提供“虛擬”私有網絡作為租賃服務。虛擬計算機的使用在1990年代變得流行。這促進了現代云計算的發展。1999年,Salesforce提供了更傳統的商業云計算服務。2002年,亞馬遜通過推出其首個零售云計算服務Elastic Compute Cloud(EC2)加入了這一行列。同年,谷歌推出了其首個云計算服務Google Docs。
????????到2010年,像AWS、微軟和OpenStack這樣的公司已經開發出了相當功能齊全的私有云。在2011年和2012年,IBM和甲骨文分別推出了其云計算服務,稱為IBM SmartCloud和Oracle Cloud。
定義 (Definition)
????????根據亞馬遜的定義,“云計算是通過互聯網按需交付IT資源,并采用按使用付費的定價模式。與購買、擁有和維護物理數據中心和服務器不同,你可以從像亞馬遜網絡服務(AWS)這樣的云提供商那里按需訪問技術服務,如計算能力、存儲和數據庫。”
????????根據IBM的定義,“云計算是通過互聯網按需訪問計算資源——應用程序、服務器(物理服務器和虛擬服務器)、數據存儲、開發工具、網絡功能等——這些資源由云服務提供商(CSP)在遠程數據中心托管。CSP以月度訂閱費或按使用量計費的方式提供這些資源。”
參考資料:
A Brief History of Cloud Computing - DATAVERSITY
What is Cloud Computing? - Cloud Computing Services, Benefits, and Types - AWS
What Is Cloud Computing? | IBM
業務驅動因素和技術 (Business Drivers and Technology)
業務驅動因素 (Business drivers)
????????鑒于業務驅動因素在塑造云計算方面的重要性,我們應嘗試識別個別驅動因素。以下是迄今為止影響云計算技術演變的驅動因素,未來可能還會出現其他驅動因素。
????????容量規劃,是將計算資源(計算機、網絡、人員)與未來需求相匹配的過程。提供內部計算的組織必須確保購買足夠的計算機、網絡和人員以滿足未來的需求。云系統通過供應商負責容量增長或減少、計算機和網絡的獲取和維護以及維持設備運行所需的人員而演變。
????????當云計算服務的提供成本低于組織提供計算服務的成本時,會產生成本節約。多個因素使云提供商能夠以比客戶自己提供更低的價格提供相同的服務。技術專長、硬件和軟件維護、電力和冷卻費用、安全和行政支持在考慮到擁有眾多客戶的供應商的規模時,均可以更低的成本提供。
????????組織的敏捷性,即組織快速變化的能力,也通過使用云服務得到增強。組織因多種原因而變化,如新戰略、并購、政府法規變化等。減少處置或升級現有基礎設施和人員的費用和難度有助于提高組織的敏捷性。需要注意的是,這里我們討論的是基礎設施的敏捷性,而不是應用程序本身,這些應用程序在組織發展時仍需更改或合并。
技術 (Technology)
????????從云計算提供商的角度來看,有幾項技術的發展使云系統更具可行性。
????????公用計算:云服務提供商擁有、運營和管理計算和其他基礎設施。訂閱者/消費者在需要時按租賃或按使用量付費的模式訪問這些資源。
????????計算機集群:一組計算機相互連接并在緊密耦合的環境中協同工作,在許多方面看來,這些計算機就像是形成了一臺單一的計算機。
????????網格計算:一個由各種計算資源組成的網絡,像超級計算機一樣協同工作來處理和執行資源密集型應用程序。它支持異構硬件。它是一種硬件架構,將各種計算資源關聯起來以實現主要目標。網格用于處理對超級計算機而言過于龐大的各種科學或技術任務,需要大量的計算能力或訪問大量數據。
????????云計算:共享計算資源,而不是擁有專門的本地服務器或個人設備來處理應用程序。它支持和促進動態可擴展且通常是虛擬化的資源,這些資源作為通過互聯網提供的服務提供。
參考資料:
Introductory Chapter: Cloud Computing | IntechOpen
活動1 (Activity 1)
-
“彈性”(elastic)在云計算中是什么意思?
“彈性”在云計算中指的是根據需求自動調整計算資源的能力。當需求增加時,云系統能夠快速擴展資源以滿足需求;當需求減少時,系統可以縮減資源以節約成本。這種能力使得云計算可以靈活適應變化的工作負載需求。
-
“可擴展”(scalable)在各種云計算定義中是什么意思?云計算用戶的可擴展性是什么?
“可擴展”指的是系統能夠根據需求增加或減少資源的能力。在云計算中,用戶的可擴展性意味著他們可以根據需要靈活地擴大或縮小計算資源。這可以通過水平擴展(增加更多的服務器或節點)或垂直擴展(增加單個服務器的資源,如CPU或內存)來實現。
術語 (Terminologies)
????????像大多數技術領域一樣,云計算有許多術語和概念需要熟悉。在本節中,我們將介紹一些基本的云術語和概念。隨著我們在未來的話題中深入研究云計算細節,你需要了解更多內容。
- 云(Cloud):一個全球計算網絡的隱喻,由運行應用程序、存儲數據和提供內容和服務的遠程服務器組成。云使數據能夠從聯網設備在線訪問,而不僅僅是從本地計算機訪問。
- 云計算(Cloud computing):一種計算資源的交付模式,其中各種服務器、應用程序、數據和其他資源被集成并通過互聯網提供。資源通常是虛擬化的,用戶通常只為所使用的服務付費。
- 云消費者(Cloud consumers):云提供商的客戶。云提供商管理云IT資源,而云消費者管理本地IT資源。
- 云服務提供商(Cloud service provider):一家提供基于云的平臺、基礎設施、應用程序或存儲服務的公司,通常需要支付費用。
- 擴展(Scaling):根據云消費者的需求處理增加或減少的資源能力。通常提到兩種擴展類型:
- 水平擴展(Horizontal scaling):擴展和收縮。水平擴展(擴展)涉及增加更多數據庫或使用稱為分片的數據分區方法將大型數據庫劃分為更小的節點。
- 垂直擴展(Vertical scaling):向上擴展和向下擴展。垂直擴展(向上擴展)允許根據需要增加或減少計算能力或數據庫。
- 云服務(Cloud service):一種專門設計用于允許從云外部訪問的API。服務可以提供任何類型的資源,包括計算資源、軟件、平臺、數據庫等。
- 服務級別協議(SLA):云提供商與云消費者之間關于提供服務的協議。通常是人類級別的協議,規定了服務屬性、行為和限制的合同。
- 虛擬化(Virtualization):創建計算環境的虛擬版本的行為,包括計算機硬件、操作系統和存儲設備。組織使用虛擬化將單臺物理計算機變為多臺共享主機資源的虛擬機。
參考資料:
https://azure.microsoft.com/en-ca/resources/cloud-computing-dictionary/
活動2 (Activity 2)
-
云應用和互聯網有什么區別?
云應用是通過互聯網訪問的應用程序,運行在云基礎設施上,而不是本地計算機或專用服務器上。互聯網則是一個全球性的網絡基礎設施,連接各種設備和系統,提供數據交換和通信的平臺。簡單來說,云應用是互聯網的一種具體應用形式,利用互聯網來提供服務。
-
在上述云計算圖中顯示了哪些IT資源在云內,哪些在云外?
云內的IT資源通常包括虛擬機、存儲、數據庫、網絡設備和應用程序等。這些資源由云服務提供商管理和維護。云外的IT資源包括用戶的本地設備(如個人電腦、移動設備)和本地網絡設施,這些資源由云消費者管理。
-
水平擴展和垂直擴展有什么區別?每種擴展的限制是什么?
-
水平擴展(Horizontal scaling): 增加更多的服務器或節點,以處理更多的工作負載。例如,將一個大型數據庫拆分成多個較小的數據庫(分片)。這種方法的限制在于可能需要更多的協調和管理,復雜度增加。
-
垂直擴展(Vertical scaling): 增加單個服務器的資源,如CPU、內存等,以提高其處理能力。其限制在于物理硬件的最大容量,一旦達到上限,就無法再進一步擴展。
-
-
為什么云提供商會通過API提供對數據庫IT資源的訪問,而不是直接提供訪問?(考慮幾個原因)
- 安全性: API可以設置訪問權限和控制,以確保只有授權的用戶和應用程序才能訪問數據。
- 管理和監控: 通過API訪問可以更容易地監控和管理數據庫使用情況,進行日志記錄和審計。
- 抽象層次: API提供了一層抽象,使用戶無需了解底層數據庫的具體實現細節,簡化了使用。
- 可擴展性和彈性: 通過API訪問,可以更靈活地處理資源分配和負載均衡,確保系統的可擴展性和彈性。