阿里云云开发平台助力风变科技Serverless架构升级实战

背景

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

目前,风变聚焦于人工智能教学,主要产品为「风变编程」自2019年1月上线以来,为全球250万+用户提供了850万+ 堂课,并以实验环境下单节课98%的完课率创造了远超行业平均水平的神话。在这些光鲜的数字背后,风变研发团队“新矩阵”面临着巨大的挑战,面对产品功能不断创新、业务规模迅速增长等挑战,通过不断升级前后端架构,提升团队技术水平以及依靠强大的运维团队攻克着每次的突发情况。"脚踏实地先把技术发展起来"是风变科技CTO一直以来对团队的要求,“用技术推动下一代的基础教育”是风变的使命,也是每位风变人心中的理想。

Serverless升级之路

风变科技前端架构师Function认为任何架构设计都是历史下的产物,脱离实际情况谈最优解都是不切实际的想法,如何在有限的人力资源和更优的方案中取得平衡,就像一栋大厦,工程师设计出结构稳定和考虑长远的方案(可扩展性),施工人员不偷工减料(代码质量),那么这座大厦才能长久屹立,也能更好的面对新工程不断改造。反之,如果缺乏对架构演进的理解,缺乏对于基础设施能力的理解,缺乏对风险的判断,盲目的上新技术可能不仅无法兑现业务价值,浪费精力,还会引入无谓的技术风险。

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

1.从前端工程师的个人角度来讲,前端技术已进入深水区(大前端时代),更能证明自己的不是资源,而是可以创造更多的业务价值。因此都希望能扩大自己的业务范围,进而才能有职业发展,仅做前台展现碰不到核心业务,价值得不到体现。

2.从公司和团队的考虑,前端团队的核心在于业务价值,接入Serverless不是目的,目的是让前端能够借助Serverless更加专注于业务逻辑,创造出更多业务价值,实现全栈工程师的角色转变。

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

阿里云云开发平台赋能

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

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

存量项目可迁移



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

目前阿里云云开发平台支持多种技术栈的多种框架的适配升级:

  • Nodejs技术栈所有框架均无缝升级
  • Python常用框架Django、Flask、FastAPI、Tornado以及Twisted支持无缝升级
  • PHP的常用框架配合自定义运行时升级

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

云部署能力本地化

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

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

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

Serverless应用可调试

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

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



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

Serverless升级体验

风变科技的官网以及多个中后台系统升级到Serverless架构后,在某些方面感受到了明显的不同:

  • 原有存量工程零改动直接升级Serverless架构,开发模式开发规范等均不改变
  • 部署方便,直接集成到企业CICD流程中
  • 通过阿里云云开发平台提供的Open API,集成进公司内部独有的开发命令行工具Rakete,实现团队内部开发链路一体化打通
  • 上线后无需运维,自动弹性扩缩容
  • 完备的日志和流量监测功能,实时掌握服务运行状态
  • 上线一个月,成本环比下降了45%

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

阿里云云开发平台助力风变科技Serverless架构升级实战的更多相关文章

  1. GForms开发平台

    1. 开发平台概述 1.1. 产品概述 GForms开发平台让开发人员甚至非技术人员在短短几分钟内创建全功能的展现服务,让开发团队更加适应客户和市场的需求,从而提高客户服务和速度实现收益. GForm ...

  2. JeecgBoot 2.1.1 代码生成器AI版本发布,基于SpringBoot+AntDesign的JAVA快速开发平台

    此版本重点升级了 Online 代码生成器,支持更多的控件生成,所见即所得,极大的提高开发效率:同时做了数据库兼容专项工作,让 Online 开发兼容更多数据库:Mysql.SqlServer.Ora ...

  3. 在线Online表单来了!JeecgBoot 2.1 版本发布——基于SpringBoot+AntDesign的快速开发平台

    项目介绍 Jeecg-Boot 是一款基于SpringBoot+代码生成器的快速开发平台! 采用前后端分离架构:SpringBoot,Ant-Design-Vue,Mybatis,Shiro,JWT. ...

  4. 基于SpringBoot+AntDesign的快速开发平台,JeecgBoot 2.0.2 版本发布

    Jeecg-Boot 是一款基于SpringBoot+代码生成器的快速开发平台! 采用前后端分离架构:SpringBoot,Ant-Design-Vue,Mybatis,Shiro,JWT. 强大的代 ...

  5. JEECG-Boot 项目介绍——基于代码生成器的快速开发平台(Springboot前后端分离)

    Jeecg-Boot 是一款基于代码生成器的智能开发平台!采用前后端分离架构:SpringBoot,Mybatis,Shiro,JWT,Vue&Ant Design.强大的代码生成器让前端和后 ...

  6. 开发者的拯救者还是掘墓人?解密低代码开发平台 ZT

    据英国<金融时报>消息称,私募股权投资机构 KKR 和高盛共同筹集了 3.6 亿美元,以收购低代码开发平台 OutSystems 的“大量”少数股权,本次交易对 OutSystems 的估 ...

  7. 灵雀云容器PaaS平台助力知名股份制银行金融科技革新

    互联网.科技和金融的碰撞给银行业带来巨大影响.IT技术起初是传统金融提升效率的工具和方法,随着新技术的演进,技术成为驱动变革的核心要素.Fintech金融科技以技术和数据为驱动,用创新的方法改变了金融 ...

  8. 以阿里IoT开发物联网和应用平台

    1. 链接物联网的概念 物联网(The Internet of Things,简称IOT)是指通过 各种信息传感器.射频识别技术.全球定位系统.红外感应器.激光扫描器等各种装置与技术,实时采集任何需要 ...

  9. 阿里云 IOT 对接设备开发 C# 开发设备对接阿里云 IOT平台

    一,创建阿里云 IOT 产品.设备 目前阿里云每月赠送 100 万条流量,可以免费使用基础版.高级版,开通后即可免费使用. 阿里云 IOT 平台地址 https://iot.console.aliyu ...

随机推荐

  1. nginx处理vue打包文件后的跨域问题

    起因 在vue文件打包后,项目脱离了vue配置的反向代理配置,还是会报跨域的错误,或者直接打不开本地文件, 但是此刻我们想打开打包后的文件,测试一下文件有没有错误,因为经常会存在开发阶段没有问题,打包 ...

  2. 关于Android Studio中使用jni进行opencv配置开发环境的要素秘诀

    使用jni进行opencv开发可以快速地将PC端的opencv代码移植到手机上,但是如何在android studio下进行配置,网上几乎找不到教程,大多都是eclipse下使用mk文件的方法,找不到 ...

  3. Round 4

    最近再次经历动荡期 博客只在小白时期记录过 已经沉寂许久 之前的工作在黄区 加班超多  阻隔了一切与外网交流的可能 只能凭记忆补一点最近一年来积累到的知识 不管怎么样 不能放弃自己啊老铁!

  4. 要求用户输入用户名和密码,只要不是admin、888888就

    要求用户输入用户名和密码,只要不是admin.888888就一直提示用户名或密码错误,请重新输入 Console.WriteLine("输入账号和密码"); string a = ...

  5. 白话科普系列——双十一,竟然是一场有“预谋”的DDoS攻击?

    随著互联网与信息技术的发展,所有人都在享受互联网带来的舒适和便利.如今,无论是个人社交行为,还是商业活动都早已离不开互联网. 但是,网络空间在创造机遇的同时,也带来了威胁.随着企业价值.知名度的提高. ...

  6. 使用Graph API 操作OneDrive 文件 权限 共享

    (Get)列出默认驱动器下(获取items id) /me/drive/root/children 如果想找其他驱动器使用/Drives 列出后可以查看到驱动器下的文件,其中items id就是文件的 ...

  7. String字符串加号的作用与基本数据类型加号的作用的区别

    1 public static void main(String args[] ){ 2 String Str="hellow"; 3 int num=110; 4 char c= ...

  8. mysql优化之2--索引优化

    1. 创建联合索引时,要注意,离散度大的列前置. 可以通过 select count(distinct(A)),count(distinct(B)) from tb; 看哪个列离散度大. 2. 索引列 ...

  9. SpringBoot第十集:i18n与Webjars的应用(2020最新最易懂)

    SpringBoot第十集:i18n与Webjars的应用(2020最新最易懂) 一,页面国际化 i18n(其来源是英文单词 internationalization的首末字符i和n,18为中间的字符 ...

  10. jdk+tomcat 文件下载

    1.下载jdk+tomcat 链接:https://pan.baidu.com/s/1DQ-l2S4th9BoucWqAymmLg :密码: zdd3 备:tomcat是解压包,直接解压就能用,但需配 ...