作者 | 陈泽涛(硬之城产品总监)& 洛浩(阿里云云原生高级架构师)
硬之城成立于 2015 年,是一家以电子元器件 BOM 整体供应为核心,为中小科技型硬件企业提供 BOM 标准化、BOM 报价、BOM 采购、BOM 交付和 SMT 一站式 PCBA 服务的电子产业数字供应链与智能制造平台。作为入选阿里云首期云原生加速器的企业,硬之城此前也获得了阿里云首批产品生态集成认证,通 过云原生加 速器项目携手阿里云共建更加丰富的云原生产业生态圈,加速云原生落地。
背景
电子产业互联网的需求是离散和复杂多变的,相比传统的代码开发,每一个市场需求的研发都需要耗费不少的研发资源投入到对应的需求开发中。这其中不仅有代码开发的工作,而且前期与工程师间的沟通工作也占用了不少资源。这不仅让每个需求都会消耗不少的研发成本,而且市场的需求也需要等待研发完成才能响应。这也是为什么硬之城选择做低代码平台的原因。
我们在实际的业务中,会频繁的收到来自市场的需求,这些需求还存在一部分不确定性和尝试性的需求。为此一直让我们的研发资源相当紧张。低代码平台的打造,不仅让没有编程基础的业务可以快速上手,让各业务部门都可以搭建自己的管理应用,大大缓解了研发资源紧张的问题。
在我们实际的使用过程中,发现低代码平台不仅可以覆盖许多简单的需求研发,而且许多常规的、复杂的需求也可以通过低代码平台完成。特别在不确定性和尝试性的需求,由于此类需求本身存在不稳定性,需求变更的情况非常普遍。这时由于低代码的迭代成本和门槛低,业务可以直接在后台修改应用,以达到快速的响应市场目标。
目前我们低代码平台使用 Java 和 Nodejs 开发,后端采用 SpringBoot,前端采用 Vue,基于 ECS 进行部署时,采用 Shell 脚本发布,并基于 Nginx 负载到多台主机。但是我们经常会碰到服务器资源占用不平衡,运维成本高,操作权限分配繁琐等问题,这给我们整个团队的协作造成了困扰,为此我们一直在寻找对应的解决方案。
一直到我们发现可以实现全托管、免运维、高弹性的 SAE 平台。SAE 支持开源微服务、开源定时任务框架、Web 应用的全托管。为此我们进行了架构搭建,发现 SAE 可以合理分配应用和服务器之间的资源,以及应用动态伸缩灵活性。这有效的降低了服务器运维门槛,避免风险操作,简化了我们团队成员对应用蓝绿发布的操作流程,提升了发布安全性和可靠性。
通过一段时间的使用,我们目前可以通过云效流水线发布 SAE 应用,镜像构建存储都缓存到阿里云镜像库,每位该项目的开发人员都能通过流水线发布应用,并且基于阿里云 RAM 系统可以很好的控制权限,发布效率大大提升,每一个 SAE 应都对应有独立的节点,不需要考虑应用是要选取发布到哪一台主机,只需要做好 SLB 负载均衡,实际资源用多少付费多少,也不需要操心服务器的各种机器维护问题,明显提升了运维工作的效率。对应用本身来说,就是人效的提升,更加方便简洁的步骤就能完成一个应用的部署周期。
对于运维管理上来说,就是更加轻便,少了很多诡异的操心事。对于整个微服务架构来说就是脉络更加清晰,可扩展性更强,只需要点一下即可扩展更多更强的负载能力。公司做成本预算的时候也能更加可控,不需要一堆服务器和 IP。
硬之城低码平台未来规划及愿景
未来我们期望业务与技术能并行。适合业务自行管理的需求,业务自身可以通过低代码就可以快速的完成他自己的需求上线,并自行维护。对于非常复杂及存在技术门槛的需求,此时技术人员才介入,让技术人员更专注的解决高价值、高技术的问题。
这不仅让业务可以快速响应市场需求,也让技术人员有更多的精力去解决企业的技术问题。最终让企业的业务人员和技术人员都流动起来,专注起来,以此来让企业更加有活力。
SAE 针对 SaaS 场景的方案及优势
通过硬之城的实践,我们也能感受到 SAE 对开发和运维效率的极大提升,如下图所示,这其实是因为 SAE 结合了容器、Serverless、微服务的优点,打造一站式应用开发部署平台。
对下屏蔽了 K8s 等资源维护的复杂性,对上提供全应用生命周期管理、微服务治理、APM、弹性管理等能力,可以让用户更简单的完成容器化、应用迁移、业务上云。
同时对于已经实现了微服务化、或者仍然处于单体架构的存量应用,SAE 也可以支持 “0” 代码改造迁移。如下图,假定业务是基于 ECS 部署的,如果想提升业务的弹性能力以更好的应对流量波动,或者就是单纯的想简化资源的管理和运维等繁琐的事情,那么 SAE 就可以直接把 ECS 替换掉,也就是把部署在 ECS 上的业务代码在 SAE 平台上重新部署即可,前端安全、后端数据库等资源的部署和使用仍然保持不变。
这里需要提醒下,如果是基于 ECS 自建的数据库、消息中间件等带强状态的服务,是不适合迁移到 SAE 上的,毕竟一旦发生弹性伸缩,就会造成 “状态数据” 的缺失,如果不是对价格非常敏感,建议这部分服务可以迁移到云上的 PaaS 产以取得更好的稳定性。
基于以上两点,我们就可以再进一步的扩展,针对大部分 SaaS 企业客户,我们发现有两类业务诉求:
一类是采用订阅制的 SaaS 企业,打造自身的服务平台,对外提供像订票、餐饮服务、机酒、出行、ERP、HRP 等服务。这类企业核心关注的是垂直业务领域的竞争力和敏捷迭代,以保证自身能够快速响应市场。同时这类业务对弹性也存在着较大的诉求,那么基于 SAE 构建弹性微服务能力、或者弹性容器就非常的契合,既可以让用户聚焦业务开发,同时平台提供资源管理、弹性、应用管理等一体化的能力,极大的简化了运维成本,还能通过弹性来提升资源利用率,达到节省资源成本的目的。SAE 还可以和 Jenkins 或者云效联动构建流水线,来提升整体的开发部署效率。
还有一类 SaaS 企业会承接很多独立部署的需求,把自身构建的业务平台在最终客户的阿里云账号或者 IDC 里进行单独交付。针对阿里云上部署的服务,就会面临着开资源、部署、后期运维等一系列流程,尤其是最终客户的技术能力参差不齐,那么如何能快速完成业务部署、并简化后期的排障和维护工作就显得尤为重要。在这里,SAE 提供了基于 terraform 的一键部署方式,可以把业务代码+SAE 资源、VPC 网络、SLB、数据库等构成业务系统的全部产品资源,分钟级部署并拉起,具备极强的可复制性。
如下图所示,再加上 SAE 自带的 APM 监控能力和弹性免运维的特性,对于后续交付最终客户后,也能极大降低维护成本。
Serverless 已经成为云计算的下个十年,期望阿里云的 Serverless 能力,能够给越来越多的用户带来便捷,简化用云的成本,把复杂留给自己,简单留给用户。
深圳前海硬之城信息技术有限公司(简称硬之城)成立于 2015 年 8 月,总部位于中国深圳。
硬之城致力于解决电子产业采购难、制造难、效率低、产业链协同弱等痛点,加快硬件创新产品的制造周期,提高产业链的生产和流通效率。硬之城基于 SAE 低代码跑出产业互联网应用创新加速度。实现硬件从 “方案设计”、“元器件交付” 到 “生产制造” 等电子产业链重要环节数字化和智能化转型升级。
硬之城紧紧围绕客户项目交付,为企业提供覆盖全生命周期的一站式数字化供应链服务,将客户从复杂、繁琐的供应流程中释放出来,集中精力专注于自身产品和技术,助力客户快速发展。与传统供应链相比,硬之城打造的数字化供应链管理体系,将中小批量硬件生产制造时间由 2-3 个月缩短为 2-3 周,实现硬件制造效率极大提升,有效增强中小型硬件企业的竞争力。
戳此处了解更多 SAE Job 的功能优势,和众多开源任务框架“低门槛”迁移的方案!