本实践由腾讯云与西门子数字化工业软件授权发布,未经允许不得转载。
本文档介绍了西门子企业级应用开发平台Mendix应用快速托管到腾讯云容器服务(简称TKE)的最佳实践。该方案仅用于非生产环境的快速部署,如果需要生产环境的高可用方案可联系咨询。
Mendix应用快速托管到腾讯云容器服务TKE。
适用于采用西门子企业级应用开发平台Mendix开发的应用,快速托管到腾讯云容器服务TKE的场景。
1.3 Mendix应用托管到腾讯云容器服务优势
简单易用。只需启动容器集群,并指定想要运行的任务,腾讯云容器服务帮用户完成所有的集群管理工作。
高效部署。依托腾讯云稳定容器服务,可将您打包完整的mendix应用镜像快速托管至容器环境,实现高效部署。
安全可靠。资源高度隔离,构建高度安全可靠的应用程序。
低成本。只需为存储和运行应用程序的云服务资源(例如云服务器、云硬盘等)付费,无需投入资金构建、安装、运维、扩展自己的集群管理基础设施。
名词 |
解释 |
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 |
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应用。
腾讯云容器服务TKE支持mendix应用以托管方式快速部署。用户只需创建工作节点即刻开展业务。管理节点完全托管在腾讯云容器服务TKE,节省资源和运维成本。
为了顺利完成本次实践,您需要提前做好以下准备工作:
登录腾讯云控制台,注册并实名认证后,登录腾讯云账号(前往链接: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
首先登陆腾讯云官网https://cloud.tencent.com,在搜索框中输入“专有网络”进行搜索
点击进入VPC的控制台,根据业务选择地域,本文以广州地区为例,点击”新建“
进入如下页面,按照实际情况完成VPC创建
在控制台,在云产品下拉框,选择“容器服务”点击进入
点击”镜像仓库”->“我的镜像”->“命名空间”,在对应地域创建命名空间,注意不要和已存在的命名空间重名,然后点击“我的镜像”,创建镜像仓库“mendix-test”。
在可以访问公网的机器上拉取已经构建好的Mendix应用的docker镜像,适当调整公网带宽有助于加快镜像的下载速度。
镜像来源于Docker hub仓库的镜像,详见:https://hub.docker.com/r/qs0qdd/heartracking
若要自行构建Mendix应用的docker镜像,可以参考:https://github.com/mendix/docker-mendix-buildpack
以下为具体操作步骤:
用命令行工具登录用于推送镜像的机器:
下载Mendix镜像文件:
wget https://mendix-1300555551.cos.ap-chengdu.myqcloud.com/heartracking.tar
安装Docker并启动服务:
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo
https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io
systemctl start docker.service
docker version
登录腾讯云镜像仓库,需要先在控制台设置访问密码。
docker login --username=100008538562 ccr.ccs.tencentyun.com
参考控制台上的使用指引,进行镜像的导入和推送。
推送完成后,点击进入之前创建的镜像仓库Mendix,查看镜像信息。
在控制台,进入“容器服务”的“集群”页面,选择地域后,点击“使用模板新建”创建Kubernetes集群:
点击“标准集群”创建标准托管集群:
在“集群信息”页面选择之前创建好的VPC网络,分配好容器网络CIDR,然后点击“下一步”:
在worker配置中根据实际情况选择可用区和节点网络,托管版 Kubernetes只需创建 Worker 节点,Master 节点由容器服务创建并托管。创建Worker节点选择1台即可,然后点击“下一步”:
配置worker节点云服务器的登录方式,然后点击“下一步”:
最后,进入“信息确认”页面,点击“完成”,进入集群创建过程,此过程需要等待10分钟左右:
在容器服务控制台上点击“集群”,进入刚创建好的集群中,然后在“工作负载”中新建deployment。
填入工作负载名字,选择对应命名空间,类型选择deployment,然后在选择镜像时,直接在Docker hub镜像那一栏搜索postgres进行选择。
接着需要给容器启动添加环境变量POSTGRES_DB、POSTGRES_USER、POSTGRES_PASSWORD。
最后进行service设置,这里访问方式选择“仅在集群内访问”,然后点击创建。
回到集群页面,在“工作负载”点击新建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公众号