什麼是運算?
在雲端運算中,「運算」一詞是描述有關軟體運算的概念與物件。它是用於讓任何程式運算成功所需的處理能力、記憶體、網路、儲存裝置以及其他資源時會提及的通用術語。
舉例來說,執行機器學習演算法或是 3D 圖形轉譯功能的應用程式需要許多隨機存取記憶體 (RAM) 和多個 CPU 才能成功執行。在本例中,需要的 CPU、RAM 和圖形處理器將會被稱為運算資源,而應用程式將會是運算密集型應用程式。
讓我們來看看一些運算常見問題,藉此瞭解現代運算中所使用的術語。
什麼是運算資源?
運算資源是可測量的運算能力,可以根據運算活動要求、分配和耗用這些資源。運算資源的一些例子包括:
CPU
中央處理器 (CPU) 是任何電腦的大腦。CPU 的測量單位稱為毫核 (millicore)。應用程式開發人員可以指定在執行其應用程式以及處理資料時所需的分配 CPU 數量。
記憶體
記憶體的測量單位為位元組。應用程式可以提出高效執行時需要的記憶體要求。
如果應用程式是在單一實體裝置上執行,則他們對該裝置的運算資源的存取權限會受到限制。但是如果應用程式是在雲端上執行,它們可以同時透過許多實體裝置存取更多處理資源。讓我們進行深入瞭解。
什麼是雲端運算?
雲端運算是涉及透過網際網路提供電腦資源之任何事物的通用術語。使用者可以按需求存取大量的運算能力。他們可以按分鐘數或是時數購買,並且依照他們運算活動的需要盡可能使用最多或是最少的數量。
雲端運算的歷史
傳統而言,Web 應用程式會在固定實體伺服器上進行託管。應用程式所需的運算能力被限制在它所執行的伺服器上。網站擁有者可以購買多台伺服器或是單一伺服器內的空間,但是他們必須支付固定價格,與使用情況無關。他們也必須管理與維護他們自己的電腦伺服器基礎設施。
在今日,應用程式可以透過靈活的方式使用許多不同實體裝置的運算資源。雲端提供者擁有廣大的運算資源集區,集區中包括伺服器和實體資料中心。企業可以透過集區託管應用程式以及存取這些運算資源。提供者充分管理和優化資源,為使用者提供靈活性、可擴展性和效率。使用者只需要維護其應用程式;運算基礎設施管理則是由雲端提供者完成。
會計軟體:雲端運算的例子
讓我們來看看會計軟體的例子。幾十年前,企業必須在其內部實體硬體上購買和安裝軟體。軟體功能僅限基礎硬體可以使用。長久下來,系統的記憶體會用完或需要更新,硬體故障可能會遺失重要的商業資料。
在今天,會計軟體開發人員可以在雲端執行軟體。使用者可以透過存取任何網站的相同方式存取該軟體,並且根據他們的需要購買分層方案。軟體應用程式會透過雲端使用運算能力,軟體本身則可依照需要擴展。不需要擔心客戶把他們的資料搞丟。
什麼是微型服務?
微型服務 (也稱為微型服務架構) 是形成眾多服務,並且用於軟體應用程式的架構樣式。
企業應用程式一般會內建在三個主要部分:
- 用戶端使用者介面 (應用程式或 HTML 網頁,其在最終使用者裝置上執行)
- 資料庫 (存放應用程式資料)
- 伺服器端應用程式 (定義作業的功能性與邏輯性工作)
這種單體架構樣式不僅不夠靈活且難以修改。系統中某個部分的小幅變更會需要重新部署全部內容。
在另一方面,微型服務架構會將應用程式設計為具有非集中式管理的一系列功能服務。微型服務會嘗試解決單一問題,例如資料搜尋、記錄功能或是 Web 服務功能。這些微型服務可以單獨進行部署、使用其本身的運算資源,同時彼此通訊。
例如,新聞應用程式可以由獨立的微型服務組成,例如體育新聞、犯罪新聞、全球新聞等。每個微型服務將會管理其本身內容的檢索與排序。也可以視需要擴充或縮減其規模。在大型運動賽事期間,體育微型服務會使用額外處理能力,但是在比賽結束後,規模將會縮減。
什麼是虛擬機器?
虛擬機器是透過雲端獲得運算能力的基本建置區塊。虛擬機器是可以執行和實體電腦相同功能的軟體,包括執行應用程式和作業系統。它是實體電腦的數位版本。虛擬機器可以執行程式與作業系統、儲存資料、連接至網路,以及執行其他運算功能。它們也可能需要維護 (例如更新以及系統監控)。
虛擬機器可以在許多基礎實體機器上執行,為應用程式提供成功執行所需的運算能力。雲端運算讓使用者有能力隨需部署與擴展虛擬機器。它可在安全和隔離的環境中提供擔保的運算資源,無需管理實體伺服器的經常費用。
什麼是 Amazon EC2 執行個體?
在 AWS 運算服務中,虛擬機器被稱為執行個體。AWS EC2 提供具有 CPU、記憶體、儲存裝置以及聯網資源等不同組態的各種執行個體類型,使得使用者能夠根據應用程式的需要定制運算資源。
執行個體有五種類型:
一般用途執行個體
一般用途執行個體可平衡運算、記憶體與聯網資源,也可用於各種工作負載。這些執行個體非常適合以相同比例使用這些資源的應用程式,如 Web 伺服器和程式碼儲存庫。
運算優化執行個體
運算優化執行個體是用於執行需要快速網路效能、廣泛可用性以及每秒高輸入/輸出 (I/O) 作業的高效能運算應用程式。科學與財務建模與模擬、大數據、企業資料倉儲,以及商業智慧是此應用程式類型的例子。
加速運算執行個體
加速運算執行個體使用硬體加速器或協同處理器執行函數 (例如,浮點數計算、圖形處理或資料模式比對),這比在 CPU 上執行的軟體更有效率。
記憶體優化執行個體
記憶體優化執行個體使用高速、固態硬碟基礎設施以提供超快速存取資料並提供高效能。這些執行個體非常適合需要較多記憶體以及較少 CPU 功率的應用程式,例如開放原始碼資料庫以及即時大數據分析。
儲存優化執行個體
儲存優化執行個體專為需要對本機儲存上的超大型資料集進行高序列讀取及寫入存取的工作負載所設計。這些執行個體經過優化,能為應用程式提供每秒數萬次低延遲隨機的輸入/輸出操作 (IOPS)。
什麼是容器?
在軟體發佈之前,必須進行測試、封裝以及安裝。 軟體部署是指準備應用程式以便在電腦系統或是裝置上執行的過程。
Docker 是開發人員在部署軟體會使用的工具。它可在封裝應用程式程式碼並且在任何系統上執行時提供標準的方法。它會將軟體程式碼及其附屬程式碼在容器內部合併。容器 (或是 Docker 影像) 隨後可以透過 docker 引擎在任何平台上執行。Amazon Elastic Container Service (ECS) 是可高度擴展的高效能容器管理服務,可支援 Docker 容器,並允許您在 Amazon EC2 執行個體的受管叢集上輕鬆執行應用程式。如此可確保無論環境為何,皆可進行快速、可靠以及一致的部署。
醫院預約應用程式:Docker 的例子
例如,一間醫院希望建立一套看診預約應用程式。最終使用者可以在 Android、iOS、Windows 電腦、MacBook 或是透過醫院網站使用應用程式。如果是在每個平台上單獨部署程式碼,在維護上可能會遇到很大的挑戰。相反地,可以使用 Docker 建立一個預約應用程式的通用容器。該容器可以在任何地方執行,包括像是 AWS 這樣的運算平台。
什麼是使用 AWS 雲端的無伺服器運算?
無伺服器運算是指透過外部管理的基礎伺服器基礎設施的應用程式開發。諸如 AWS Lambda 之類的無伺服器服務具有自動擴展功能、內建的高可用性和按價值付費的計費模式。
無伺服器運算是描述讓軟體開發公司可以進行創新並更快地回應變更的服務、實務和策略的一種方式。由於免除了營運成本,團隊可以快速發佈應用程式、獲得反饋意見,並且改善其軟體。
例如,某間科技新創公司製作出一款可搜尋與篩選大學課程的應用程式。在應用程式推出時,公司可以採取無伺服器模式,並且專注在完善使用者體驗和系統方面。藉由使用全受管的硬體基礎設施,相關費用可以轉為對行銷的投資。
什麼是運算資源的 Elastic Load Balancing?
負載平衡是在雲端運算環境中平均分配運算資源與工作負載的過程。進行負載平衡是為了要減少延遲並且維持處理時間,即使是在對於應用程式有高度需求的情況下。負載平衡器能夠智慧地分配在雲端環境中運作的多台應用程式伺服器之間的用戶端要求。
Elastic Load Balancing 能夠讓使用者發揮最大的應用程式效能與可靠性。它可在多個目標 (例如 Amazon EC2 執行個體、容器、IP 地址、AWS Lambda 功能和虛擬伺服器) 之間自動分配傳入的應用程式流量。它能夠處理不同的應用程式流量負載、降低成本,並且有效地向上或向下擴展應用程式以符合需求
電子商務:Elastic Load Balancing 的例子
例如,線上電子商務商店會執行應用程式以排序當日的最佳交易。作為運算密集型應用程式,它會使用雲端運算與負載平衡來管理需求。如此會在週末、耶誕假期以及需求激增時的其他季節性高峰自動使用額外處理資源。在其他日子,如果需求趨緩,將會縮減運算規模。如果沒有負載平衡,商店即使在業績清淡的日子仍然必須支付高峰使用費用,進而使得利潤減少。
什麼是運算服務?
運算服務也稱為基礎構架即服務 (IaaS)。運算平台 (例如 AWS 運算) 提供了一個虛擬伺服器執行個體與儲存裝置,以及讓使用者將工作負載轉移至虛擬機器的 API。使用者已分配運算能力,並且可以依需要開始、停止、存取與設定其電腦資源。
如何在不同的 AWS 運算服務之間進行選擇
如何選擇最佳的 AWS 基礎設施取決於您的應用程式需求、生命週期、程式碼大小、需求以及運算需要。看看下面三個例子:
- 如果想要在 AWS 環境中部署提供各種不同效能優勢的精選隨需執行個體,可以使用 Amazon Elastic Compute Cloud (EC2)。
- 如果想要在 EC2 執行個體叢集間執行包裝成為容器的 Docker 功能應用程式,可以使用 Amazon Elastic Container Service (Amazon ECS)。
- 如果想要使用僅有數毫秒的運算資源執行自己的程式碼,以回應無伺服器環境中的事件導向觸發程序,可以使用 AWS Lambda。
AWS 運算服務有哪些優勢?
AWS 運算服務提供最廣泛、最深入的運算功能。使用 AWS 運算取得的關鍵優勢包括:
適用於工作負載的正確運算
Amazon EC2 (Amazon Elastic Compute Cloud) 透過處理器、儲存體和聯網選項,為管理您的應用程式基礎設施提供精細控制。Amazon Elastic Container Services (Amazon ECS) 提供執行容器的選擇與靈活性。
內建安全性
AWS 明顯提供比第二大雲端供應商更多的安全性、合規和控管服務以及關鍵功能。AWS Nitro System 在芯片層級建置安全,持續監控、保護和驗證執行個體硬體。
成本最佳化
使用 AWS 運算時,您只為所需的執行個體或資源依使用情況付費,無需長期合約或複雜的授權。
靈活性
AWS 提供多種建置、部署方式,讓應用程式能夠快速進入市場。例如,Amazon Lightsail 是使用簡單的服務,提供您建置應用程式或網站時所需的一切。