gydtep 发表于 2021-10-24 19:35:17
预测性维护是机器学习和AI对制造产生影响的特别富有成果的领域。实际上,根据凯捷(Capgemini)的研究,将近30%的制造业AI实施与机械和生产工具维护相关。这使得预测性维护成为当前制造中使用最广泛的用例。gydtep 发表于 2021-10-25 13:21:46
支持不同的技术栈的实现,比如对于同一个 API 接口,其服务实现采用 Java 。前端应用可以使用 JavaScript ,而服务器端应用可以使用 Golang 进行服务调用等等。这样可以让开发组织可以根据自己的技能栈和系统要求灵活选择合适的技术。gydtep 发表于 2021-10-25 17:11:03
3、在大多数情况下,由于缺乏跨多个系统的分布式事务支持,维护数据一致性是非常具有挑战性的。开发者可能需要权衡可用性和一致性之间的关系。比如通过Event Sourcing(事件溯源)实现最终一致性gydtep 发表于 2021-10-26 14:44:29
首先是“Failures can and will happen”,我们需要提升服务器的可替换性。在业界有一个非常流行的隐喻:“Pets vs. Cattle”,宠物和家畜。我们面对一个架构选择:对于应用所在服务器我们是需要精心伺候,防止系统宕机,出现问题后不惜一切代价抢救 (Pet);gydtep 发表于 2021-10-26 18:17:24
这样既达到了去中心化的目的,保障了系统的可伸缩性;也实现了服务治理和业务逻辑的解耦,二者可以独立演进不相互干扰,提升了整体架构演进的灵活性;同时服务网格架构减少了对业务逻辑的侵入性,降低了多语言支持的复杂性。gydtep 发表于 2021-10-26 19:17:10
上图是Istio的架构,逻辑上分为数据平面和控制平面。数据平面负责服务之间的数据通信。应用和以 sidecar 方式部署的智能代理 Envoy 成对出现。其中由 Envoy 负责截获和转发应用网络流量,收集遥测数据并且执行服务治理策略。gydtep 发表于 2021-10-26 19:51:12
在最新的架构中, istiod 作为控制平面中负责配置的管理、下发、证书管理等。Istio 提供了一系列通用服务治理能力,比如:服务发现和负载均衡,渐进式交付(灰度发布),混沌注入与分析,全链路追踪,零信任网络安全等。可以供上层业务系统将其编排到自己的IT架构和发布系统之中。gydtep 发表于 2021-10-26 20:51:17
服务网格在架构上实现了数据平面与控制平面的分离,这是一个非常优雅的架构选择。企业客户对数据平面有着多样化的需求,比如支持等多样化协议(如Dubbo),需要定制化的安全策略和可观测性接入等。服务控制平面的能力也是快速变化的,比如从基础的服务治理,到可观测性,到安全体系,稳定性保障等等。但是控制平面与数据平面之间的API是相对稳定的。gydtep 发表于 2021-10-27 10:24:15
此外是 “Fail fast, fail small, recover quickly” 。立即失效(Fail fast)是一个非常反直觉的设计原则,它背后的哲学是既然故障无法避免,问题越及早暴露、应用越容易恢复,进入生产环境的问题就越少。gydtep 发表于 2021-10-27 15:48:04
不同的外部中间件通过 Java Connector Architecture 规范实现与应用服务器的插拔。应用通过 JNDI 在运行时实现与具体资源的动态绑定。Java EE 将系统的 cross-cutting concern下沉到应用服务器来解决,让开发者只关注应用的业务逻辑,开发效率有了较好的提升