

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 确定适用于 MES 的最佳专用技术
<a name="technologies"></a>

在将 MES 分解为微服务并根据对业务结果的影响确定开发优先级之后，下一个任务是确定特定微服务和整个系统的技术堆栈。通常，MES 及其本质上的微服务是两层应用程序，包括应用程序或计算层以及持久层或数据库层。用户界面通常是所有微服务之间的共享服务。UI 的不同组件可以是每个微服务所独有的，或者每个微服务可以有自己的 micro-UI 组件。这些微服务将具有不同的计算和数据存储要求，可能需要其他技术堆栈，如下图所示。例如，使用关系数据库进行长时间运行的计算可能是某些微服务的最佳选择，而事件驱动的按需计算和 NoSQL 数据库可能更适合其他微服务。 AWS 为每个技术层提供了广泛的选项，因此您可以根据微服务的目的选择最佳服务。

![适用于 MES 的专用技术选项](http://docs.aws.amazon.com/zh_cn/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 El [astic Compute Cloud (Amazon EC2) 是一项在云中提供安全、可调整大小的计算](https://aws.amazon.com/ec2/)容量的服务。Amazon EC2 还可用于架构组件，这些组件继承自传统应用程序并迁移到云端，无需立即进行现代化改造。

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

MES 中的大多数微服务，例如生产调度、生产执行、质量管理等，都不需要高性能计算。这些服务不是由事件驱动的，而是始终如一地运行。在这种情况下，容器是基于微服务的架构中最受欢迎的计算资源选择之一，因为容器具有便携性、隔离性和可扩展性优势，尤其是在需要一致的运行环境和高效的资源利用率的情况下。

当容器可以满足微服务的计算要求时，您可以使用来自 AWS的[容器编排服务](https://aws.amazon.com/containers/)，例如亚马逊 Elastic Kubernetes Service (Amazon EKS) 或亚马逊弹性容器服务 (Amazon ECS) 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/)可以满足所有这些需求。它是一系列托管服务，可帮助您在云中设置、操作和扩展数据库。[https://aws.amazon.com/rds/oracle/](https://aws.amazon.com/rds/oracle/)

### 键值，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系统的职能。微服务和云提供了使用时间序列数据并将其与其他情境化数据相结合的机会，以解锁宝贵的见解和流程改进。[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 S3)、亚马逊[弹性区块存储 (Amazon EBS)、亚马逊弹性文件系统 (Amazon EFS)、亚马逊[弹性文件系统 (亚马逊 EFS) 和亚马逊](https://aws.amazon.com/efs/)等存储](https://aws.amazon.com/ebs/)服务](https://aws.amazon.com/s3/)。 FSx](https://aws.amazon.com/fsx/)为微服务选择正确的存储选项取决于您对延迟和速度、操作系统、可扩展性、成本、使用量和数据类型的要求。从架构的角度来看，您也可以为同一个微服务选择多个选项。

## 用户界面
<a name="technologies-ui"></a>

MES 用户组可以多种多样。他们可能包括收货和仓库文员、物料搬运工、机器操作员、维护人员、生产调度员和生产经理。这些用户及其任务会影响 MES 的用户界面 (UI) 设计。例如，在办公室办公桌上工作的职员的用户界面与在车间使用手持设备的物料处理人员的用户界面不同。这种多样的用户界面要求也决定了底层技术的选择。在基于微服务 UIs 的 MES 架构中，它们会经常升级，并且会经历自己的生命周期阶段，例如开发、交付、测试和监控以及用户参与。 AWS 为[前端 Web 和移动 UI 提供了一系列广泛的服务，可支持 U](https://aws.amazon.com/products/frontend-web-mobile/) I 生命周期阶段的挑战。用户界面生命周期中使用的两项重要 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 publish/subscribe 和（pub/sub APIs ），通过单个端点来安全地查询、更新或发布数据，从而简化应用程序开发。