

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 判斷適用於 MES 的最佳專用技術
<a name="technologies"></a>

在您將 MES 分解為微服務，並根據對業務成果的影響排定開發優先順序之後，下一個任務是確定特定微服務和整個系統的技術堆疊。一般而言，MES 及其微型服務本身就是包含應用程式或運算層，以及持久性或資料庫層的雙層應用程式。使用者介面通常是所有微服務之間的共用服務。使用者介面的不同元件對於每個微服務都是唯一的，或者每個微服務可以有自己的微使用者介面元件。這些微服務會有不同的運算和資料儲存需求，可能需要其他技術堆疊，如下圖所示。例如，使用關聯式資料庫執行長時間運算可能是某些微服務的最佳選擇，而事件驅動的隨需運算和 NoSQL 資料庫可能更適合其他微服務。 AWS 為每個技術層提供廣泛的選項，因此您可以根據微服務的目的選擇最佳服務。

![適用於 MES 的專用技術選項](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/mes-on-aws/images/db-compute-ui.png)


下列各節說明運算和資料庫的可用選項，並說明如何根據微服務的功能需求來選取適當的技術。

## 運算
<a name="technologies-compute"></a>

傳統上，企業一律使用執行個體 （長時間執行的運算） 執行運算操作。執行個體可讓您在方塊中取得應用程式的所有資源。透過雲端運算，您有多種運算方式。除了傳統的長時間執行運算之外，您還可以使用較小的運算單位，例如容器，您可以在其中建置較小的微型服務以快速移動且方便攜帶，或是事件驅動的無伺服器運算，其中伺服器和叢集全都由 管理 AWS。

### 長時間執行的運算
<a name="technologies-compute-long"></a>

MES 中的某些運算密集型和長時間執行的微服務需要高效能或持久性運算資源，例如，處理從 PLM 收到的大型設計檔案、處理機器學習模型的品質檢查影像和影片、透過結合所有微服務的資料來執行資料分析，或使用機器學習根據歷史資料預測模式。當微型服務需要長時間執行的運算能力來實現低延遲應用程式和功能，例如自動可擴展性、廣泛的作業系統支援和硬體支援時，[Amazon Elastic Compute Cloud (Amazon EC2)](https://aws.amazon.com/ec2/) 是一種可在雲端中提供安全、可調整大小的運算容量的服務。Amazon EC2 也可以用於繼承自舊版應用程式的架構元件，並遷移至雲端，而無需立即進行現代化。

### 容器
<a name="technologies-compute-containers"></a>

MES 中的大多數微服務，例如生產排程、生產執行、品質管理等，都不需要高效能運算。這些服務並非事件驅動，但會持續執行。在這種情況下，容器由於其可攜性、隔離性和可擴展性優勢，在微服務型架構內運算資源時，是最熱門的選擇之一，尤其是在需要一致的執行期環境和有效率的資源使用率時。

當容器可以滿足微服務的運算需求時，您可以使用來自 的[容器協同運作服務](https://aws.amazon.com/containers/) AWS，例如 Amazon Elastic Kubernetes Service (Amazon EKS) 或 Amazon Elastic Container Service (Amazon ECS)。這些服務可讓您更輕鬆地管理基礎基礎設施，以建置安全的微服務、選擇正確的運算選項，以及以高可靠性跨 AWS 整合。

### 事件驅動和無伺服器運算
<a name="technologies-compute-serverless"></a>

微服務型架構包含根據事件啟動的任務，例如處理來自 ERP 和 PLM 的資料，以及為維護管理員或主管產生警示，以將機制分派至 欄位。 [AWS Lambda](https://aws.amazon.com/lambda/)是這類案例的理想選擇，因為它是事件驅動的無伺服器運算服務，可隨需執行應用程式任務。Lambda 不需要管理執行時間和伺服器。若要建立 Lambda 函數，您可以使用支援的其中一種語言撰寫程式碼，例如 NodeJS、Go、Java 或 Python。如需支援語言的詳細資訊，請參閱 [Lambda 文件中的 Lambda 執行時間](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)。

## 資料庫
<a name="technologies-db"></a>

傳統的單體 MES 主要使用關聯式資料庫。關聯式資料庫非常適合大多數使用案例，但只是少數幾個案例的最佳選擇。使用微服務型 MES，您可以為每個微服務選取最佳的專用資料庫。 AWS 提供[八個資料庫系列](https://aws.amazon.com/products/databases/)，包括關聯式、時間序列、索引鍵值、文件、記憶體內、圖形和分類帳資料庫，以及目前超過 15 個專用資料庫引擎。以下是適用於 MES 特定微服務的資料庫範例。

### 關聯式資料庫
<a name="technologies-db-relational"></a>

有些 MES 微服務必須維護資料完整性、原子性、一致性、隔離和耐久性 (ACID) 合規，以及交易資料的複雜關係。例如，可能需要微服務來存放工作訂單與產品、BOMs、廠商等的複雜關係。關聯式資料庫最適合此類服務。[Amazon Relational Database Service (Amazon RDS)](https://aws.amazon.com/rds/) 可以滿足所有此類需求。這是受管服務的集合，可協助您在雲端中設定、操作和擴展資料庫。它提供八個熱門資料庫引擎的選擇 ([Amazon Aurora PostgreSQL 相容版本](https://aws.amazon.com/rds/aurora/)、[Amazon Aurora MySQL 相容版本、 Amazon RDS for PostgreSQL](https://aws.amazon.com/rds/postgresql/)、[Amazon RDS for MySQL](https://aws.amazon.com/rds/mysql/)、[Amazon RDS for MariaDB](https://aws.amazon.com/rds/mariadb/)、[Amazon RDS for SQL Server](https://aws.amazon.com/rds/sqlserver/)、[Amazon RDS for Oracle](https://aws.amazon.com/rds/oracle/) 和 [Amazon RDS for Db2](https://aws.amazon.com/rds/db2/))。

### 金鑰值、NoSQL 資料庫
<a name="technologies-db-nosql"></a>

有些 MES 微服務會與來自機器或裝置的非結構化資料互動。例如，在賣場上執行的各種品質測試結果可能有許多格式，而且可能包含不同類型的資料，例如通過/失敗值、數值或文字。有些 甚至可能有參數來支援材料分析中的內容或合成測試。在這種情況下，關聯式資料庫的剛性結構可能不是最佳選項，NoSQL 資料庫可能更適合。[Amazon DynamoDB](https://aws.amazon.com/dynamodb/) 是全受管、無伺服器、鍵值的 NoSQL 資料庫，旨在以任何規模執行高效能應用程式。

### 時間序列資料庫
<a name="technologies-db-time-series"></a>

機器和感應器會在製造過程中產生大量資料，以測量隨時間變化的值，例如程序參數、溫度、壓力等。對於這類時間序列資料，每個資料點都包含時間戳記、一或多個屬性，以及隨時間變更的值。企業可以使用此資料來深入了解資產或程序的效能和運作狀態、偵測異常，以及識別最佳化機會。企業必須以具成本效益的方式即時收集這些資料，並有效率地存放資料，這有助於組織和分析資料。傳統的單體 MES 不會有效地使用時間序列資料。時間序列資料收集和儲存主要是歷史資料和其他較低層級 OT 系統的函數。Microservices 和雲端提供使用時間序列資料的機會，並將其與其他脈絡化資料結合，以釋放寶貴的洞見和流程改進。[Amazon Timestream](https://aws.amazon.com/timestream/) 是一種快速、可擴展且無伺服器的時間序列資料庫服務，可讓您更輕鬆地每天儲存和分析數兆個事件，速度高達 1，000 倍，且只需關聯式資料庫成本的十分之一。另一個使用時間序列資料的受管服務是 [AWS IoT SiteWise](https://aws.amazon.com/iot-sitewise/)。這是一項受管服務，可讓工業企業跨多個工業設施收集、存放、組織和視覺化數千個感應器資料串流。 AWS IoT SiteWise 包含的軟體可在位於設施現場的閘道裝置上執行，持續從歷史或專業工業伺服器收集資料，並將其傳送至雲端。

### 雲端儲存空間
<a name="technologies-db-storage"></a>

MES 處理許多非結構化資料格式，例如工程繪圖、機器規格、工作指示、產品影像和現場、訓練影片、音訊檔案、資料庫備份檔案、階層式資料夾和檔案結構中的資料等。傳統上，企業會將這些類型的資料存放在 MES 應用程式層。雲端儲存解決方案提供業界領先的可擴展性、資料可用性、安全性和效能。雲端儲存的重要優點是幾乎無限制的可擴展性、改善資料的彈性和可用性，以及降低儲存成本。企業也可以使用雲端儲存服務來為工業資料湖、分析和機器學習應用程式提供更好的使用 MES 資料。 AWS 提供儲存服務，例如 [Amazon Simple Storage Service (Amazon S3)](https://aws.amazon.com/s3/)、[Amazon Elastic Block Store (Amazon EBS)](https://aws.amazon.com/ebs/)、[Amazon Elastic File System (Amazon EFS)](https://aws.amazon.com/efs/) 和 [Amazon FSx](https://aws.amazon.com/fsx/)。為微服務選擇正確的儲存選項取決於您對延遲和速度、作業系統、可擴展性、成本、用量和資料類型的需求。從架構的角度來看，您也可以為相同的微型服務選擇多個選項。

## 使用者介面
<a name="technologies-ui"></a>

MES 使用者群組可以是多樣化的。其中可能包括接收和倉儲辦事員、物料處理常式、機器操作員、維護人員、生產排程器和生產管理員。這些使用者及其任務會影響 MES 的使用者介面 (UI) 設計。例如，從辦公室的桌面工作之辦事員的 UI 與在車間使用手持裝置的物料處理常式的 UI 不同。這種各種 UI 要求也決定了基礎技術的選擇。在微服務型 MES 架構中，UIs 會經常升級，而且會經歷自己的生命週期階段，例如開發、交付、測試和監控，以及使用者參與。 為[前端 Web 和行動 UI](https://aws.amazon.com/products/frontend-web-mobile/) AWS 提供廣泛的服務，以支援 UI 生命週期階段的挑戰。UI 生命週期中使用的兩個重要 AWS 服務為：
+ [AWS Amplify](https://aws.amazon.com/amplify/) 提供一組工具，用於前端 Web 或行動應用程式中的資料儲存、身分驗證、檔案儲存、應用程式託管，甚至是 AI 或 ML 功能。您可以為 iOS、Android、Flutter、Web 或 React Native 應用程式建立具有即時和離線功能的跨平台後端。
+ [AWS AppSync](https://aws.amazon.com/appsync/) 會建立無伺服器 GraphQL 和發佈/訂閱 (pub/sub) APIs，透過單一端點簡化應用程式開發，以安全地查詢、更新或發佈資料。