Mendix架构体系概述(一)

Mendix  Architecture

Mendix是一个高效的aPaaS环境,建立在现代开放的云原生架构之上,具有可扩展性,可自由部署到几乎所有的基础架构,包括Docker,Kubernetes和Cloud-Foundry。该平台的无状态服务器架构支持按需纵向和横向扩展,而我们的公共云提供自助扩展,默认情况下具有高可用性(HA)。整个平台提供开放性和可扩展性的钩子,从用于自定义模型扩展的客户端和服务器端API到平台API和我们的开源模型SDK,它允许您将Mendix与现有工具(CI/CD和DevOps)集成,并构建脚本来管理、监控和修改应用程序的核心元数据。

 

Mendix平台背后的关键架构原则是什么?

Mendix平台是为企业应用的需求而设计的,这些应用是可维护的、高性能的、可扩展的,可以通过应用以下架构原则来处理企业系统和集成的复杂性:

  1. 模型驱动的开发

  2. 代码生成的模型解释

  3. 微服务,容器和部署标准化

  4. 无状态

  5. 开放性和可扩展性

  6. 12-Factor APP原则

 

Mendix平台架构的主要组成部分是什么?

Mendix平台是一个集成的应用程序平台即服务(aPaaS),用于企业应用程序的设计,构建,测试和部署。它包括一个用于应用程序组合管理,需求收集,监控和操作的开发人员门户、用于快速可视化应用程序开发的桌面和Web建模环境,以及一个包含数百个可重用组件、连接器和构建块以加速开发的综合应用程序商店。

 

Mendix运行时如何支持12-Factor云原生应用?

在云的时代,会有更多的应用程序迁移到云端,基于云的架构设计和开发模式需要一套全新的理念去承载,于是云原生思想应运而生,而针对云原生应用开发的最佳实践原则,12-Factor脱颖而出,虽然它不是严格意义上的一套架构原则,但12-Factor App方法是一套针对云原生应用程序的最佳实践,它涵盖以下几点:

  1. 代码库 - 存储代码库并通过打包进行部署

  2. 依赖关系 - 所有的依赖关系都是应用程序模型的一部分

  3. 配置 - 通过约束在应用程序模型中定义

  4. 支持服务 - 可在部署时进行配置

  5. 构建,发布,运行 - 独立构建和运行

  6. 流程 - 无状态

  7. 端口绑定 - 应用程序应该是独立的

  8. 并发性 - 通过流程扩展

  9. 可分配性 - 可以根据需要停止和启动运行时实例

  10. 开发/生产等价 - 跨测试和生产的一致环境

  11. 日志 - 通过CF Firehose收集日志

  12. 管理进程 - 在一个模型中提供管理员和应用程序代码

 

Architecture Principles

Mendix平台背后的关键架构原则如何解释?

在整个Mendix平台中,我们采用嵌入式(技术)原则来保证企业级应用程序。对于Mendix来说,“企业级”意味着应用程序是可维护的、可执行的和可扩展的。这也意味着应用程序可以应对企业系统的所有功能的复杂性,从而可以集成到任何企业环境中。

 

Mendix如何支持模型驱动的开发?

模型驱动开发(MDD)已经成为实现快速应用程序开发的主要方法之一。由于MDD使用可视化模型来定义应用程序逻辑、流程流和用户界面,因此MDD使开发人员和业务人员都能够快速构建应用程序,而无需进行劳动密集型的低级编码。因此,它比传统的编程语言(如C#和Java)要快得多。为了让业务人员积极参与应用程序的设计和开发,我们完全采用了可视化MDD方法。MDD提供了一个优秀的沟通机制来协调业务和IT人员之间的“障碍”,从而确保更高的质量和更成功的结果。

 

Mendix如何将模型解释优先于代码生成?

Mendix 运行时直接执行模型,这意味着模型实际上是应用程序,而不是中介。与可视化建模设计实际生成代码的方法(例如Java或.NET)不同,Mendix的模型解释方法具有许多独特的特性和优势。

 

Mendix如何利用微服务,容器和部署标准化?

微服务提供的软件架构最适合小型敏捷DevOps团队。 这种体系结构最能从容器的质量中获益。容器使您能够以自动化的方式在任何云中部署应用程序,并确保质量、可重复性和速度。部署标准化使小型DevOps团队能够处理与操作相关的任何事情。

 

无状态在Mendix中是如何运作的?

现代Web规模的应用程序利用无状态体系结构作为支持更大的可伸缩性和弹性的手段。无状态性通过允许根据需要轻松添加额外资源来支持不断增加的用户或处理负载,从而支持水平可伸缩性。每个用户请求和每个事务都可以由任何一个可用的运行时实例来处理。如果您的性能需要您处理更多的事务或用户请求,您可以简单地添加另一个运行时实例来解决部分的流程。由于状态是在运行时之外管理的,因此可以通过更容易地将故障从一个运行时实例转移到另一个运行时实例来提高弹性。

 

Mendix提供怎样的开放性和可扩展性?

开放性是任何现代应用程序平台的基本架构要求,这意味着该平台应允许应用程序轻松共存,且能利用其他应用程序和应用程序服务。这也意味着平台本身应该适合您的IT环境,并支持您的核心开发流程与标准。

企业功能和非功能需求极难从纯模型驱动的开发方法中处理,可扩展性对于满足企业应用程序的所有实际功能和非功能需求至关重要。如果模型解释不允许您更改生成的代码,则必须具有扩展性才可行。

 

Mendix为什么遵循12-Factor App原则?

虽然不是严格的一套架构原则,但12-Factor App方法(最初由Heroku团队开发)是一套最佳实践,其目的是帮助您避免在构建云原生应用时出现的一系列常见的系统性错误。


更多信息,请访问以下链接:

Mendix官网:https://www.mendix.com/zh/

Mendix行业解决方案:https://solutions.mendix.com/

Mendix平台指南:https://www.mendix.com/evaluation-guide/

Mendix动画展示:https://www.mendix.com/demos/

Mendix公众号

 

谢谢阅读!

 

 

你可能感兴趣的:(Mendix架构体系概述(一))