代码零改动Serverless架构升级?这家在线编程教育企业是这么做的!

简介: 风变科技前端架构师Function认为任何架构设计都是历史下的产物,脱离实际情况谈最优解都是不切实际的想法,如何在有限的人力资源和更优的方案中取得平衡,就像一栋大厦,工程师设计出结构稳定和考虑长远的方案(可扩展性),施工人员不偷工减料(代码质量),那么这座大厦才能长久屹立,也能更好的面对新工程不断改造。

背景

风变科技——一个希望通过技术去推动下一代基础教育的组织,旗下产品包括第一代的熊猫书院(读书类产品)、第二代的熊猫小课(泛学科综合学习平台),以及现在的风变编程(成人python教育)和风变人生设计(个人职业生涯规划类)。

风变一直在挑战自动化教学时长的极限,探索自动化教学效果的边界,开辟了互联网在线教育的新纪元——交互式、游戏化的自动化教学方式,打造沉浸式的学习体验,让用户高效掌握知识,减少知识在传播过程中的损耗。

目前,风变聚焦于人工智能教学,主要产品为「风变编程」自2019年1月上线以来,为全球250万+用户提供了850万+ 堂课,并以实验环境下单节课98%的完课率创造了远超行业平均水平的神话。

在这些光鲜的数字背后,风变研发团队“新矩阵”面临着巨大的挑战,面对产品功能不断创新、业务规模迅速增长等挑战,通过不断升级前后端架构,提升团队技术水平以及依靠强大的运维团队攻克着每次的突发情况。"脚踏实地先把技术发展起来"是风变科技CTO一直以来对团队的要求,“用技术推动下一代的基础教育”是风变的使命,也是每位风变人心中的理想。

Serverless升级之路

风变科技前端架构师Function认为任何架构设计都是历史下的产物,脱离实际情况谈最优解都是不切实际的想法,如何在有限的人力资源和更优的方案中取得平衡,就像一栋大厦,工程师设计出结构稳定和考虑长远的方案(可扩展性),施工人员不偷工减料(代码质量),那么这座大厦才能长久屹立,也能更好的面对新工程不断改造。

反之,如果缺乏对架构演进的理解,缺乏对于基础设施能力的理解,缺乏对风险的判断,盲目的上新技术可能不仅无法兑现业务价值,浪费精力,还会引入无谓的技术风险。

Serverless为什么让那么多前端着迷?它的魅力到底在哪里?

  1. 从前端工程师的个人角度来讲,前端技术已进入深水区(大前端时代),更能证明自己的不是资源,而是可以创造更多的业务价值。因此都希望能扩大自己的业务范围,进而才能有职业发展,仅做前台展现碰不到核心业务,价值得不到体现。
  2. 从公司和团队的考虑,前端团队的核心在于业务价值,接入Serverless 不是目的,目的是让前端能够借助 Serverless 更加专注于业务逻辑,创造出更多业务价值,实现全栈工程师的角色转变。

纸上得来终觉浅,绝知此事要躬行。风变的开发模式、工具、脚手架已经标准化、流程化,存量业务正在线上稳定运行,如何将 Serverless 融入到现有开发模式和工具中,存量业务的迁移如何丝般润滑等等技术痛点。在风变前端基建团队的努力以及阿里云Serverless 云开发平台团队的助力下,已经完成了 Serverless 架构的整体建设,与前端工程化和自动化相结合,并且集成本地CICD工作流,通过对应的逻辑采用命令行工具将开发链路串联起来形成工具链,让风变所有前端工程师能更好地创造出更多的业务价值,让成为全栈工程师变成可能。

阿里云云开发平台赋能

阿里云云开发平台https://workbench.aliyun.com

它是阿里云面向广大开发者及企业提供的云上研发工作平台,助力研发团队实现工作的在线化(团队在线、环境在线、代码在线、协同在线)以及研发模式 Serverless 化,帮助研发团队实现对行业架构经验及架构服务的高效分享与传播,极致提升研发效率,极致降低研发成本。

阿里云云开发平台为企业开发 Serverless 应用提供了几种重要能力:

1.存量项目可迁移

目前开发者体验 Serverless 项目大多是些简单的 helloworld 函数,这根本无法承载大多数业务项目。为此,阿里云云开发平台提供了存量项目迁移方案,通过抽象一层透明的 Serverless 框架适配业务程序,使其可以运行在 FaaS 环境上。抽象Serverless 框架层的好处在于无需修改用户存量代码,直接将项目升级为 Serverless 架构。

目前阿里云云开发平台支持多种技术栈的多种框架的适配升级:
(1)Node.js 技术栈所有框架均无缝升级;
(2)Python 常用框架 Django、Flask、FastAPI、Tornado 以及 Twisted 支持无缝升级;
(3)PHP 的常用框架配合自定义运行时升级。

风变科技采用阿里云云开发平台提供“Node.js存量应用解决方案”,实现了代码零改动升级 Serverless 架构,目前已支撑公司官网系统以及其他重点业务。

2.云部署能力本地化

大多数公司都有自己的开发工作流程,这包括内部代码托管、团队协作、权限控制与风控、公司独特的CI/CD,如何低成本的兼容这套原有体系是 Serverless 应用能否“本地化”,让企业和开发者接受与认同的最关键的一点。

阿里云云开发平台提供了“云端一体化部署”与“本地部署”的能力,企业可以通过使用阿里云云开发平台部署套件实现本地部署,兼容企业原有CI/CD流程,让 Serverless 应用实现“端+云”加持,灵活可控。

风变科技采用阿里云云开发平台本地化部署能力,在兼容当前企业的发布规范、审核、风控以及灰度的前提下实现众多项目的无痛升级 Serverless 架构,大大赋能开发人员生产力,减少运维成本。

3.Serverless应用可调试

Serverless 应用开发另一痛点是无法像在本地开发应用一样断点调试、实时预览,只有在部署到对应云厂商环境上才可测试预览。

阿里云云开发平台通过分析 Serverless 运行时架构,在开发态模拟函数运行时,实时轻量化运行、输出,实现 Serverless 应用的实时调试。

通过阿里云云开发平台的赋能,不仅可断点调试 Serverless 应用,也可实时预览、查看运行时输出,不用部署即可完成功能性验证,敏捷开发灵活迭代。

4.Serverless升级体验

风变科技的官网以及多个中后台系统升级到 Serverless 架构后,在某些方面感受到了明显的不同:
(1)原有存量工程零改动直接升级 Serverless 架构,开发模式开发规范等均不改变;
(2)部署方便,直接集成到企业CICD流程中;
(3)通过阿里云云开发平台提供的 OpenAPI,集成进公司内部独有的开发命令行工具Rakete,实现团队内部开发链路一体化打通:

  • 上线后无需运维,自动弹性扩缩容;
  • 完备的日志和流量监测功能,实时掌握服务运行状态;
  • 上线一个月,成本环比下降了45%。

【更多精彩】

1.中间件爆款一折起,还有阿里巴巴十年最佳实践深度解密,点击马上了解:https://www.aliyun.com/activity/daily/commercial?spm=5176.20960838.0.0.6a54305etoEn4D

2.【填问卷领淘公仔】点击马上填写问卷:
https://survey.aliyun.com/apps/zhiliao/YmW95Gk8bU

【加入行业实战交流钉钉群】

阿里云专门成立了“互联网架构升级实战课”钉钉群,每周邀请一位阿里云专家在群内进行行业最佳实践直播,每天分享行业前沿干货,钉钉扫码马上加入。

image.png

下一步,风变科技会和阿里云云开发平台深入合作,将在全站推动项目升级,彻底拥抱云原生 Serverless 时代。

相关实践学习
【AI破次元壁合照】少年白马醉春风,函数计算一键部署AI绘画平台
本次实验基于阿里云函数计算产品能力开发AI绘画平台,可让您实现“破次元壁”与角色合照,为角色换背景效果,用AI绘图技术绘出属于自己的少年江湖。
从 0 入门函数计算
在函数计算的架构中,开发者只需要编写业务代码,并监控业务运行情况就可以了。这将开发者从繁重的运维工作中解放出来,将精力投入到更有意义的开发任务上。
相关文章
|
5月前
|
SQL 前端开发 关系型数据库
如何开发一套研发项目管理系统?(附架构图+流程图+代码参考)
研发项目管理系统助力企业实现需求、缺陷与变更的全流程管理,支持看板可视化、数据化决策与成本优化。系统以MVP模式快速上线,核心功能包括需求看板、缺陷闭环、自动日报及关键指标分析,助力中小企业提升交付效率与协作质量。
|
5月前
|
JSON 文字识别 BI
如何开发车辆管理系统中的加油管理板块(附架构图+流程图+代码参考)
本文针对中小企业在车辆加油管理中常见的单据混乱、油卡管理困难、对账困难等问题,提出了一套完整的系统化解决方案。内容涵盖车辆管理系统(VMS)的核心功能、加油管理模块的设计要点、数据库模型、系统架构、关键业务流程、API设计与实现示例、前端展示参考(React + Antd)、开发技巧与工程化建议等。通过构建加油管理系统,企业可实现燃油费用的透明化、自动化对账、异常检测与数据分析,从而降低运营成本、提升管理效率。适合希望通过技术手段优化车辆管理的企业技术人员与管理者参考。
|
5月前
|
消息中间件 缓存 JavaScript
如何开发ERP(离散制造-MTO)系统中的生产管理板块(附架构图+流程图+代码参考)
本文详解离散制造MTO模式下的ERP生产管理模块,涵盖核心问题、系统架构、关键流程、开发技巧及数据库设计,助力企业打通计划与执行“最后一公里”,提升交付率、降低库存与浪费。
|
4月前
|
前端开发 JavaScript BI
如何开发车辆管理系统中的车务管理板块(附架构图+流程图+代码参考)
本文介绍了中小企业如何通过车务管理模块提升车辆管理效率。许多企业在管理车辆时仍依赖人工流程,导致违章处理延误、年检过期、维修费用虚高等问题频发。将这些流程数字化,可显著降低合规风险、提升维修追溯性、优化调度与资产利用率。文章详细介绍了车务管理模块的功能清单、数据模型、系统架构、API与前端设计、开发技巧与落地建议,以及实现效果与验收标准。同时提供了数据库建表SQL、后端Node.js/TypeScript代码示例与前端React表单设计参考,帮助企业快速搭建并上线系统,实现合规与成本控制的双重优化。
|
5月前
|
消息中间件 JavaScript 前端开发
如何开发ERP(离散制造-MTO)系统中的技术管理板块(附架构图+流程图+代码参考)
本文详解ERP(离散制造-MTO)系统中的技术管理板块,涵盖产品定义、BOM、工序、工艺文件及变更控制的结构化与系统化管理。内容包括技术管理的核心目标、总体架构、关键组件、业务流程、开发技巧与最佳实践,并提供完整的参考代码,助力企业将技术数据转化为可执行的生产指令,提升制造效率与质量。
|
5月前
|
机器学习/深度学习 人工智能 搜索推荐
从零构建短视频推荐系统:双塔算法架构解析与代码实现
短视频推荐看似“读心”,实则依赖双塔推荐系统:用户塔与物品塔分别将行为与内容编码为向量,通过相似度匹配实现精准推送。本文解析其架构原理、技术实现与工程挑战,揭秘抖音等平台如何用AI抓住你的注意力。
1307 7
从零构建短视频推荐系统:双塔算法架构解析与代码实现
|
4月前
|
人工智能 自然语言处理 安全
AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教系统融合大语言模型、教育知识图谱、多模态交互与智能体架构,实现精准学情诊断、个性化辅导与主动教学。支持图文语音输入,本地化部署保障隐私,重构“教、学、评、辅”全链路,推动因材施教落地,助力教育数字化转型。(238字)
778 23
|
5月前
|
监控 供应链 前端开发
如何开发ERP(离散制造-MTO)系统中的财务管理板块(附架构图+流程图+代码参考)
本文详解离散制造MTO企业ERP系统中财务管理模块的搭建,聚焦应收账款与应付账款管理,涵盖核心功能、业务流程、开发技巧及Python代码示例,助力企业实现财务数据准确、实时可控,提升现金流管理能力。
|
5月前
|
供应链 监控 JavaScript
如何开发ERP(离散制造-MTO)系统中的库存管理板块(附架构图+流程图+代码参考)
本文详解MTO模式下ERP库存管理的关键作用,涵盖核心模块、业务流程、开发技巧与代码示例,助力制造企业提升库存周转率、降低缺货风险,实现高效精准的库存管控。
|
5月前
|
前端开发 API 定位技术
如何开发车辆管理系统中的用车申请板块(附架构图+流程图+代码参考)
本文详细解析了如何将传统纸质车辆管理流程数字化,涵盖业务规则、审批流、调度决策及数据留痕等核心环节。内容包括用车申请模块的价值定位、系统架构设计、数据模型构建、前端表单实现及后端开发技巧,助力企业打造可落地、易扩展的车辆管理系统。

相关产品

  • 函数计算