内幕⎮解密低代码平台Zion的技术架构

这篇具有很好参考价值的文章主要介绍了内幕⎮解密低代码平台Zion的技术架构。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文内容来自一场与低代码开发平台 Zion 的CTO蒋耀锴的一次技术对话,如果你想要体验Zion低代码搭建应用的能力,可以点击阅读原文进行快速体验

Zion是一个云原生低代码开发平台,通过平台的云IDE能让用户快速地完成微信小程序、商城、协作类应用、个人网站的开发,它的目标是显著降低构建应用程序的门槛,使其能够更快速度、更低成本得满足来自业务人员的需求。

低代码 Trending

低代码这个概念最近两年很流行,其实低代码这个概念并不是这两年才出来的,它也代表了一种软件开发的流派,开发人员可以在图形界面中开发应用程序,低代码开发人员无需编写数千行复杂的代码,而是通过拖放可视化模型来创建具有用户界面、数据集成和交互逻辑的完整应用程序,让组织可以更快地将应用程序投入生产。

在谷歌搜索中查看low code这个关键词的搜索指数,可以发现从2019年开始,低代码的搜索热度就一直保持在50 以上,最近一年多更是维持在 80 以上的热度并一直持续走高。

zion 低代码,低代码,架构

从低代码这个关键词的搜索历史可以看出来,市场对少量代码参与就能制作出应用程序的需求一直存在,只不过由于技术成熟度等问题,市场上提供低代码构建应用程序的服务商并不多。

那为什么从2018、2019年开始低代码的热度又上来了呢?我猜是因为低代码这个市场从大蓝海,没什么人愿意做的领域变成了有越来越多玩家入局,提供低代码应用开发的平台。这个从我们这几年科技媒体的宣传和各个互联网公司的造势也能看出来些苗头,在2020年的时候像我们能叫的上名的互联网公司都有发布自己的低代码开发平台。

是哪些技术的革新,促使这么多公司涌入低代码开发平台这个赛道的?

低代码与云原生

前段时间云原生低代码平台--Zion 的CTO,恰巧看了一些我在公众号上发布的Kubernetes 相关的文章,觉得我对 Kubernetes 的使用和实战经验的分享,他们在做平台架构时也遇到过。于是就邀请我体验一下他们的低代码平台,聊了聊他们在整个平台的架构对Kubernetes 的应用。

接下来大家跟随我的文章一起看看他们这个平台是怎么在 Kubernetes 集群上运作起来,以及通过 Kubernetes 在调度、租户隔离、成本控制等方面上的一些经验,尤其租户隔离和成本控制我想才是低代码平台能发展起来的一个很重要的原因。

Zion这个英文名字看起来还是很有禅意的,平时看篮球的朋友们可能对这个名字比较熟悉,现在NBA新奥尔良鹈鹕队的球星锡安·威廉森的名字就是这个单词,不过中文互联网上网友们一般爱叫他"胖虎"

zion 低代码,低代码,架构

言归正传,Zion(载航)是函子科技创业团队,打造的一个低代码开发平台。用户通过Zion提供的开发平台能快速搭建一个微信小程序或网页类应用投产到上线。

多说一句载航这个名字真的不错,即音译了Zion这个单词,也表达了平台承载着租户的需求和信任远航的愿景。不过我们今天的主题是探讨怎么用云原生这些技术实现一个低代码开发平台,如果有想利用Zion平台打造一个自己的小作品的朋友们,可以访问Zion的官网体验一下,还是挺容易上手的。

Zion官网 https://www.functorz.com/?channel=wgdbd ,点击本文“阅读原文”链接可直达。

首先当你在Zion开发平台上每新建一个项目的时候呢,Zion的系统引擎其实是会给我们在Kubernetes集群里分配一个项目单独的命名空间,项目使用的各种 Kubernetes 系统资源比如Deployment、Service、Pod、存储等,都通过Namespace来完成隔离。

下图其实只是Zion集群中现存的Namespace的一小部分

zion 低代码,低代码,架构

每个Namespace都对应一个租户,里面主要由数据库、数据库代理、Redis缓存以及用SpringBoot的 Java Web服务构成。

zion 低代码,低代码,架构

租户项目的数据库、缓存其背后是由云服务器高效存储作为底层存储的PV,通过PVC绑定给租户对应的Namespace,实现数据存储针对租户的隔离。

Zion 的数据库使用的是PG、至于为什么不用MySQL我们后面再聊,先来看看Zion是怎么利用 Kubernetes 这些云原生技术搭建平台的。

云原生架构出低代码平台

我通过用低代码IDE创建应用的主要界面和功能步骤给大家介绍在Zion提供的所见即所得的应用构建能力背后依托了哪些技术、大概的实现思路。

首先作为一个低代码应用构建平台,Zion 提供了一套十分强大的图形界面给用户,用户可以很快地拖拽出应用的主要界面

zion 低代码,低代码,架构

我们可以把界面作为画板,像操作绘图软件一样在上面添加需要的元素以及具有交互行为的控件。

zion 低代码,低代码,架构

整个应用的界面、页面元素和控件这些其实都跟项目的数据表相对应,打开控制台的数据Tab,在这里我们可以对这些成员的基本属性进行一个完备地设置。

zion 低代码,低代码,架构

等我们确认提交创建应用后,Zion会把这些数据模型对应成库表持久化到租户Namespace的DB中去。等应用发布预览后就会由 Kubernetes 的Deployment、StatefulSet 这些控制器在租户命名空间里对我们一开始介绍的Web Service、PG数据库、Cache 进调度创建出各自的Pod。

zion 低代码,低代码,架构

这里我们看到每个空间里还有DB备份的Pod,它的状态是Completed。其实这里是运用了 Kubernetes 的 CronJob 控制器来定时完成对租户数据库的备份,已完成的备份会上传到云存储上,以应对租户应用的灾难性恢复。

因为Zion上跑了有将近40000个单租户应用、应用发布的打包同样应用了Kubernetes的 Job 控制器,在单独集群里使用 Job 控制器对租户要发布的应用进行实时打包。

zion 低代码,低代码,架构

Job 是 Kubernetes 中专门用于执行像应用打包这样的一次性任务的控制器,让平台对应用的发布打包即有更好的流程控制,又不用担心打包过程中影响其他Deployment的调度运行。

技术上遇到的困难

关于用 Kubernetes 搭建一个有上万租户的低代码应用构建平台,Zion在发展过程中也遇到了不少困难,踩过了不少坑,其中尤为突出的是在对 Ingress 的使用探索上。

一般企业在使用 Kubernetes 集群时对外暴露服务使用的 Ingress Controller 都是 Ingress Nginx,本质它是一个 Nginx,当平台里有上万个应用,每个应用往往会通过多个 Ingress 暴露不同的服务,这就导致最终承载这些 Ingress 的Nginx的配置会变成几百万行,造成Reload时间很长。

Zion的技术团队在解决这个问题时,采用的是 Nginx和Lua结合的方案,通过在Ingress Controller 中 把固定的Location路由转变为通过Lua的规则来动态计算的方式,避免了巨大的Nginx配置从而极大缩短了Nginx Ingress Controller 刷新需要时间。

使用云原生的成本优势

当然上面我们展示的都是付费的单租户用户拥有的资源,你可能会想这样看来资源也挺浪费的,毕竟每个用户不管是游客还是重度用户都得给他们在 Kubernetes 集群上分配命名空间赋予对应的资源。

其实针对免费使用服务的用户他们采取的是同一命名空间承载多租户的策略,多租户的应用在整体架构上跟单租户没有太大区别,但是同一命名空间的服务资源会承载400 ~ 500 个普通租户的应用。

针对这些租户应用,命名空间中的Web服务、数据库等都是共享的,数据库用Scheme针对租户进行逻辑隔离,会通过 URL PATH上携带的类似 tenant_code 的信息将请求路由给对应的数据库Scheme。平台也只为这些体验用户分配200M的DB存储空间,且针对长期不活跃用户进行空间回收,能够很好地控制初期用户在体验平台能力上的硬件成本。

总结

这里我们再总结下使用 Kubernetes 搭建低代码应用构建平台的优势:通过 Kubernetes 对集群资源的抽象我们可以把机器节点抽象成多种职责单一的资源,通过 Deployment、StatefulSet、Job、CronJob这些控制器来分别调度平台系统的Web服务、数据库、一次性任务、周期任务,此外还有PV、PVC对存储空间和挂载行为的抽象,这些特性通力合作既能满足平台不同租户对算力、存储等多方面的需求,又保持了良好的扩展性。 

关于Zion低代码应用构建平台在发展过程中对DB、搜索分词系统的选型推荐它们CTO在公司内部做的两个分享

  • CTO技术笔记|Zion无代码搜索方案详解

  • 创始人说|Zion数据库的选择之旅

Zion 平台目前支持个人和企业用户的入驻,个人用户体验各种功能并发布小程序/网站不需要付费,如果对定制化有更多要求可以升级个人付费版,支持更多配置化功能,如果是企业定制化开发平台也有专门的团队去对接支持,

大家可以点击“阅读原文”,或者扫码下方二维码体验一下低代码制作发布应用的整个过程文章来源地址https://www.toymoban.com/news/detail-593970.html

到了这里,关于内幕⎮解密低代码平台Zion的技术架构的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《WebKit 技术内幕》之三(2): WebKit 架构和模块

    2.基于 Blink 的 Chrominum 浏览器结构 2.1 Chrominum 浏览器的架构及模块         Chromium也是基于WebKit(Blink)开发的,并且在WebKit的移植部分中,Chromium也做了很多有趣的事,所以通过Chromium可以了解如何基于WebKit构建浏览器。,更进一步说,chromium也做了很多技术创新,将很多

    2024年01月18日
    浏览(33)
  • Wireshark (四) wireshark解密HTTPS(1),网络安全架构师必备技术

    Wireshark配置Secret log 抓取https服务器流量 打开浏览器 访问我们安装好的https服务器 打开wireshark 进行抓包无法查看到http的流量包 流量包被tls进行了加密 使用(Pre)-Master-Secret的keylog日志文件解密 配置环境变量导出文件 浏览器和一些客户端应用程序会将使用的TLS密钥导出到一

    2024年04月27日
    浏览(39)
  • 电商商业平台技术架构系列教程之:电商平台安全与风控

    作者:禅与计算机程序设计艺术 随着互联网的飞速发展、电商的蓬勃发展、线上线下的数字化转型,传统商业模式逐渐成为历史,而随之而来的新型商业模式又将诞生在各个领域。比如以“服务”为代表的互联网零售、以“支付”为代表的电子商务、以“物流”为代表的快递

    2024年01月22日
    浏览(47)
  • 电商商业平台技术架构系列教程之:电商平台云计算与弹性伸缩

    作者:禅与计算机程序设计艺术 随着互联网的飞速发展,电子商务的蓬勃发展,电商平台越来越成为推动互联网企业转型升级、提升竞争力的重要工具。其规模也越来越庞大,运营成本也越来越高。如何快速、低成本地处理海量订单、海量用户数据、大量实时业务数据、流量

    2024年02月08日
    浏览(39)
  • 电商商业平台技术架构系列教程之:电商平台安全与隐私保护

    作者:禅与计算机程序设计艺术 电商市场快速增长、平台竞争激烈、数据隐私保护意识逐步提升,是当前数字化转型行业面临的一系列技术挑战和问题。在消费者心目中,电商是一个开放、透明、安全、无国界的新生事物。然而,由于电商平台高度复杂、架构层次多样、系统

    2024年02月08日
    浏览(49)
  • 进出口跨境电商软件平台系统开发,源码技术架构

    一、进出口跨境电商软件平台系统开发需做好相应的前期准备,如确定市场、了解政策、推广宣传等。 欢迎名片沟通探讨 确定目标市场:选择合适的目标市场。需要了解目标市场的消费习惯、政策法规以及竞争情况。 了解海关相关政策:针对不同国家或地区的海关政策可能

    2024年02月08日
    浏览(74)
  • ZooKeeper技术内幕

    从系统模型、序列化与协议、客户端工作原理、会话、服务端工作原理以及数据存储等方面来向揭示ZooKeeper的技术内幕,更深入地了解ZooKeeper这一分布式协调框架。 将从数据模型、节点特性、版本、Watcher和ACL五方面来讲述ZooKeeper的系统模型。 ZooKeeper的视图结构和标准的Uni

    2024年02月10日
    浏览(38)
  • 金融私有云IAAS领域、云平台领域、架构领域、新技术领域的技术展望

    【摘要】 本文展望了金融私有云IAAS领域、云平台领域、架构领域、新技术领域的技术发展,包括需求背景、优势、缺点、应用场景,供金融同行参考。 在新一轮科技革命和产业变革的背景下,从金融数字化角度来看,金融行业对于科技的要求越来越高,也日益聚焦于金融科

    2023年04月10日
    浏览(53)
  • TiDB(9):技术内幕之调度

    1 为什么要进行调度 先回忆一下上一篇TiDB 技术内幕 - 存储提到的一些信息,TiKV 集群是 TiDB 数据库的分布式 KV 存储引擎,数据以 Region 为单位进行复制和管理,每个 Region 会有多个 Replica(副本),这些 Replica 会分布在不同的 TiKV 节点上,其中 Leader 负责读/写,Follower 负责同

    2024年02月12日
    浏览(28)
  • TiDB(8):技术内幕之计算

    1 关系模型到 Key-Value 模型的映射 在这我们将关系模型简单理解为 Table 和 SQL 语句,那么问题变为如何在 KV 结构上保存 Table 以及如何在 KV 结构上运行 SQL 语句。 假设我们有这样一个表的定义: SQL 和 KV 结构之间存在巨大的区别,那么如何能够方便高效地进行映射,就成为一

    2024年02月12日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包