Mendix基于腾讯云部署最佳实践

本实践由腾讯云与西门子数字化工业软件授权发布,未经允许不得转载。

1.  概述

本文档介绍了西门子企业级应用开发平台Mendix应用快速托管到腾讯云容器服务(简称TKE)的最佳实践。该方案仅用于非生产环境的快速部署,如果需要生产环境的高可用方案可联系咨询。

1.1   应用范围

Mendix应用快速托管到腾讯云容器服务TKE。

1.2   场景描述

适用于采用西门子企业级应用开发平台Mendix开发的应用,快速托管到腾讯云容器服务TKE的场景。

1.3   Mendix应用托管到腾讯云容器服务优势

  •   简单易用。只需启动容器集群,并指定想要运行的任务,腾讯云容器服务帮用户完成所有的集群管理工作。

  •   高效部署。依托腾讯云稳定容器服务,可将您打包完整的mendix应用镜像快速托管至容器环境,实现高效部署。

  •   安全可靠。资源高度隔离,构建高度安全可靠的应用程序。

  •   低成本。只需为存储和运行应用程序的云服务资源(例如云服务器、云硬盘等)付费,无需投入资金构建、安装、运维、扩展自己的集群管理基础设施。

2.  名词解释

名词

解释

Mendix

Mendix是西门子公司的一款低代码、高效开发平台,不管你是否懂代码,都可以在其平台上快速的构建应用,实现创新价值。

详见:https://www.mendix.com/

腾讯微服务平台

TSF

腾讯微服务平台 (Tencent Service Framework,TSF) 是一个围绕着应用和微服务的 PaaS 平台,提供应用全生命周期管理、数据化运营、立体化监控和服务治理等功能。TSF  拥抱 Spring Cloud 、Service Mesh  微服务框架,帮助企业客户解决传统集中式架构转型的困难,打造大规模高可用的分布式系统架构,实现业务、产品的快速落地。

详见:https://cloud.tencent.com/product/tsf

腾讯云容器服务

TKE

腾讯云容器服务(Tencent Kubernetes Engine ,TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务。腾讯云容器服务完全兼容原生 kubernetes API ,扩展了腾讯云的云硬盘、负载均衡等  kubernetes 插件,为容器化的应用提供高效部署、资源调度、服务发现和动态伸缩等一系列完整功能,解决用户开发、测试及运维过程的环境一致性问题,提高了大规模容器集群管理的便捷性,帮助用户降低成本,提高效率。

详见:https://cloud.tencent.com/product/tke

VPC  

私有网络(Virtual Private Cloud,VPC)是基于腾讯云构建的专属云上网络空间,为用户在腾讯云上的资源提供网络服务,不同私有网络间完全逻辑隔离。用户可以自定义网络环境、路由表、安全策略等;同时,私有网络支持多种方式连接 Internet、连接其他 VPC、连接用户的本地数据中心,助力用户轻松部署云上网络。

详见:https://cloud.tencent.com/product/vpc

CVM

云服务器(Cloud Virtual Machine,CVM)为用户提供安全可靠的弹性计算服务。 只需几分钟,用户就可以在云端获取和启用 CVM,用于实现自身的计算需求。

详见:https://cloud.tencent.com/product/cvm

3.  Mendix

3.1  Mendix简介

Mendix是西门子公司的一款企业级、高效开发平台,可以帮助企业快速构建应用,节省开发时间。不管你是否懂代码,都可以在其平台上通过可视化的方式,快速构建自己的创意应用。

3.2  基于Kubernetes部署Mendix

Mendix官网文档介绍了如何在kubernetes集群上部署Mendix应用。其部署架构图如下所示:

整个运行环境以PostgesSQL作为数据库进行本地文件存储,通过deployment方式进行部署启动,能够方便有效地控制pod的运行数量和生命周期,通过标签选择可以更方便进行pod的调度。

Mendix应用本身使用StatefulSet方式启动,StatefulSet是一种给Pod提供唯一标志的控制器,它可以保证部署和扩展的顺序。对于数据存储类应用来说,每个pod都是有状态的,因此需要通过StatefulSet的方式进行调度。

官方文档详见:https://docs.mendix.com/developerportal/deploy/run-mendix-on-kubernetes

目前用户在使用该方案进行部署时,存在以下痛点:

*    需要自建容器集群和仓库,日常运维工作负担太重

*    通过编写yaml文件进行容器启动,对于初学者有较高的学习成本

因此,为解决以上痛点问题,本文提供了基于腾讯云容器集群服务的Mendix部署最佳实践。

解决方案,能更加方便快捷地部署Mendix应用。

4.  服务开发

腾讯云容器服务TKE支持mendix应用以托管方式快速部署。用户只需创建工作节点即刻开展业务。管理节点完全托管在腾讯云容器服务TKE,节省资源和运维成本。

5.  准备工作

为了顺利完成本次实践,您需要提前做好以下准备工作:

  • 登录腾讯云控制台,注册并实名认证后,登录腾讯云账号(前往链接:https://cloud.tencent.com)。

  • 确认腾讯云账户余额大于100元。

  • 若使用主账号进行登录,则默认已有所有资源的访问权限;若使用子账号进行登录,则需要提前授予相关权限,可前往(https://cloud.tencent.com/document/product/598/10600)查看如何使用CAM策略进行授权一台可以访问公网的机器(可在腾讯云CVM页面进行购买),用于上传Mendix应用镜像容器服务TKE基于 Kubernetes 且为声明式服务,本身不收取任何费用,按用户实际使用的负载均衡(CLB)、云硬盘(CBS) 盘等资源进行收费。容器服务TKE涉及产品的计费模式详见:https://cloud.tencent.com/document/product/457/6770

6.  创建容器服务集群

6.1    创建专有网络VPC

首先登陆腾讯云官网https://cloud.tencent.com,在搜索框中输入“专有网络”进行搜索

点击进入VPC的控制台,根据业务选择地域,本文以广州地区为例,点击”新建“

进入如下页面,按照实际情况完成VPC创建

 

6.2     创建镜像仓库


在控制台,在云产品下拉框,选择“容器服务”点击进入

点击”镜像仓库”->“我的镜像”->“命名空间”,在对应地域创建命名空间,注意不要和已存在的命名空间重名,然后点击“我的镜像”,创建镜像仓库“mendix-test”。

 

6.3     上传Mendix镜像

在可以访问公网的机器上拉取已经构建好的Mendix应用的docker镜像,适当调整公网带宽有助于加快镜像的下载速度。

镜像来源于Docker hub仓库的镜像,详见:https://hub.docker.com/r/qs0qdd/heartracking

若要自行构建Mendix应用的docker镜像,可以参考:https://github.com/mendix/docker-mendix-buildpack

以下为具体操作步骤:

6.3.1      登录机器

用命令行工具登录用于推送镜像的机器:

6.3.2      下载Mendix容器镜像

下载Mendix镜像文件:

wget https://mendix-1300555551.cos.ap-chengdu.myqcloud.com/heartracking.tar

6.3.3      安装Docker

安装Docker并启动服务:

yum install -y yum-utils  device-mapper-persistent-data  lvm2   yum-config-manager --add-repohttps://download.docker.com/linux/centos/docker-ce.repoyum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io systemctl start docker.servicedocker version

6.3.4      登录镜像仓库

登录腾讯云镜像仓库,需要先在控制台设置访问密码。

docker login --username=100008538562 ccr.ccs.tencentyun.com

6.3.5      导入并推送镜像

参考控制台上的使用指引,进行镜像的导入和推送。

推送完成后,点击进入之前创建的镜像仓库Mendix,查看镜像信息。

6.4      创建容器集群

在控制台,进入“容器服务”的“集群”页面,选择地域后,点击“使用模板新建”创建Kubernetes集群:

点击“标准集群”创建标准托管集群:

在“集群信息”页面选择之前创建好的VPC网络,分配好容器网络CIDR,然后点击“下一步”:

在worker配置中根据实际情况选择可用区和节点网络,托管版 Kubernetes只需创建 Worker 节点,Master 节点由容器服务创建并托管。创建Worker节点选择1台即可,然后点击“下一步”:

配置worker节点云服务器的登录方式,然后点击“下一步”:

最后,进入“信息确认”页面,点击“完成”,进入集群创建过程,此过程需要等待10分钟左右:

7.  部署Mendix容器集群

7.1      部署数据库

在容器服务控制台上点击“集群”,进入刚创建好的集群中,然后在“工作负载”中新建deployment。

填入工作负载名字,选择对应命名空间,类型选择deployment,然后在选择镜像时,直接在Docker hub镜像那一栏搜索postgres进行选择。

接着需要给容器启动添加环境变量POSTGRES_DB、POSTGRES_USER、POSTGRES_PASSWORD。

最后进行service设置,这里访问方式选择“仅在集群内访问”,然后点击创建。

7.2      部署Mendix应用

回到集群页面,在“工作负载”点击新建deployment、类型选择StatefulSet,镜像选择之前在机器上推送的镜像。

在环境变量中新增两项,其中ADMIN_PASSWORD是Mendix应用的管理员密码,DATABASE_ENDPOINT是Mendix应用数据库访问连接串。

配置service,选择公网访问方式,设置端口为80,然后点击完成并等待应用创建。

此时,可以看到两个容器应用已经正常运行中。

点击“服务与路由”,可以查看到Mendix应用已绑定的CLB的访问IP。

在浏览器上直接输入IP进行访问,输入用户名mendix和密码,点击“Sign in”。

如图显示是Mendix应用的效果展示页面,至此已完成了mendix应用在腾讯云上的部署流程。


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

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公众号

谢谢阅读!

猜你喜欢

转载自blog.csdn.net/Mendix/article/details/115224567