基于 Golang 构建高可扩展的云原生 PaaS(附 PPT 下载)

在这里插入图片描述

作者|刘浩杨
来源|尔达 Erda 公众号

本文整理自刘浩杨在 GopherChina 2021 北京站主会场的演讲,微信添加:Erda202106,联系小助手即可获取讲师 PPT。

前言

当今时代,数字化转型概念在 ToB 领域非常火热,越来越多的企业需要数字化转型,因此越来越多的厂商涌入了 ToB 市场,端点就是其中一员。

端点的核心业务是给企业提供从采购、交易、履约、仓储到零售全链路的数字化转型解决方案。围绕这个目的,我们建立了一整套面向云原生的企业数字化软件产品,其中:

  • PaaS 平台 Erda 是技术底座。
  • Trantor 是具有 HPAPaaS 能力的研发底座,运行在 Erda 之上,提供低代码和高效开发的能力。
  • Gaia 是完整的业务能力平台,覆盖计划、寻源、采购、营销、服务、销售、交易、履约、结算等企业供应链业务领域,提供会员营销、全渠道运营、SRM 采购和在线销售平台等业务产品。

通过这几层能力的组合,使我们具备了生产可定制 SaaS 化产品的能力,为企业客户提供端到端的解决方案,满足各行业不同客户的各类需求。所以可以看到在这个分层的企业数字化研发体系中,我们通过 PaaS 平台向下屏蔽复杂的基础设施,使整个业务系统拥有架构多云之上的能力;同时,PaaS 平台也向上提供微服务研发和治理的技术中台能力,让上层用户能够更专注于业务系统自身的构建。

接下来,简单介绍一下我们在构建 Erda 过程中的思考,文章后半部分将回到技术本身,来分享一下我们如何使用 Golang 实现云原生的 PaaS 平台。

在这里插入图片描述

软件交付面临的问题和挑战

端点从 2012 年成立到现在,一直聚焦在企业级软件开发和交付上,我们也从最开始的软件定制交付,到今天使用标准软件 + 二开机制解决定制需求的方式交付。在这个过程中,我们遇到的问题可以总结为以下 4 点:

  1. 随着交付规模的快速增长,开发和交付团队要如何提效?
  2. 业务软件系统如何适配复杂的客户部署环境?
  3. 大规模交付的部署过程需要可被标准化。
  4. 交付上线后需要持续保障业务稳定性。

如今,敏捷开发是一个相对普及的概念,我们在做软件交付的时候,也需要把开发流程从传统的瀑布式开发转变为敏捷开发,比如一个理想的开发方式是:使用项目协同工具来管理研发过程的需求、任务、缺陷;使用 gitflow 来管理功能需求的开发;使用自动化的流水线实现持续集成;然后基于容器化来部署我们的软件;部署之后触发自动化测试来验证功能的正确性。同时,像 API 网关、微服务治理、容器服务、流计算等这些在互联网公司流行的技术,也逐渐开始受到大型传统企业的青睐,这对我们的要求也是进一步提高。

为了解决这些问题,我们就需要一个完整的 DevOps 平台来支撑整个研发交付的流程,来达到提高研发效能的目的。
在这里插入图片描述

刚才讲了在研发过程中的问题,接下来聊一下在需求开发完成后,去企业提供的环境进行交付的环节。

在我们做过的客户里面,有自建机房用 zstack 来提供虚拟化,也有采购阿里云、腾讯云、或者微软云 azure 的 ECS,还有的会提供现成的容器环境但管理接口不同,比如 Rancher 和 OpenShift,这些情况我们都碰到过。甚至最近的一个项目里,客户提供的是 arm 架构的运行环境。

因为这些企业提供的环境千差万别,所以交付就变成了一件很痛苦的事情。

回顾计算机软件的发展历史,我们知道 java 是现在很流行的一个开发语言和平台,java 能流行的很大一个原因是因为它提出了 Java 虚拟机,通过编译 Java 代码到通用的字节码,再由运行时去即时编译字节码到不同平台的汇编方式来实现“一次编写,到处运行”。那么,我们构建的软件系统是否也可以像 java 一样 “一次打包,到处运行”?说到这里,可能很多人都会想到:基于 Docker 和 Kubernetes 作为软件的运行时也可以让我们的软件制品屏蔽掉不同的部署环境。但是,管理不同环境下的 Kubernetes 也是一件很复杂的事情,我们需要一个平台来向上承载不同的业务系统,向下管理资源和应用调度。

我们今天的做法是通过一个多云管理平台来解决这个问题。
在这里插入图片描述

很多软件系统在验收交付上线后,如果没有一个完整的平台实时监控、洞察系统的健康状态,将会导致各种问题(稳定性、异常、错误、攻击)时有发生,严重影响业务的正常运行。保证业务稳定性也是我们可以提供给客户的核心服务之一。

在之前的案例里,我们利用 PaaS 上监控的高度扩展性,帮助一家排名世界 500 强的外企搭建了一套云上的统一监控运维平台,真正实现了从云产品,比如 SLB、WAF、ECS、RDS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值