各大云厂商今年在开发者阵地侧逐渐开始向“云”化开发发展,最为显著的产品就是Cloud IDE,催生出来的趋势就是云端开发。云开发现阶段尽管在各大公司内部无法作为日常开发工具普遍推广,但是在某些特定场景下Cloud IDE云开发是非常让人着迷的:
即开即用,用完即走的场景,如编写函数(天猫精灵功能开发)、demo编写预览、code review以及代码仓库集成等
深度定制的统一的团队业务环境,团队成员无需配置复杂环境即可上手
天然架构在云之上,在开发态集成云产品的诸多服务
集成CI/CD,快速迭代
Serverless架构应用测试(Cloud IDE也属于云上环境,可实时调试函数)
这样一块蛋糕国内外自然有很多厂商在争夺利益:
微软是第一个绕不开的公司。微软在开发者工具以及IDE领域积累颇深,产出了众多明星产品:visual studio、vscode等,特别是vscode直接影响了Cloud IDE的发展进程。而且去年微软收购的另一个明星产品Github推出了codespace将Cloud IDE与Github开源社区结合在一起,实现“一云多端”的代码侧生态贡献。尽管codespace并未提供类似阿里云云开发平台的Serverless架构、行业案例支持、DevOps一体化等诸多功能,但未来微软极有可能将其配合Azure一起组件完成链路实现整个生态的闭环。
谷歌的Firebase是主打BAAS的一款产品,它为后端服务提供Realtime database、Auth、Cloud Function、Message Push、Analytics以及Cloud storage等服务,无需服务器即可快速开发并使用以上诸多服务,特别适合个人应用和创业项目等。不过由于国内网络的特殊性,一些服务无法在国内正常使用,且网络RT较大。Firebase并未提供Cloud IDE而是推荐 “本地开发+Firebase SDK+CLI”的形式在本地进行开发调试与部署。
那么在云开发以及弹性计算领域,阿里云也有许多产品,比如阿里云云开发平台、FC控制台的CloudIDE以及Serverless Devs。云开发平台若要在遵循丛林法则的生态竞争中生存就必须有它独有的核心价值与手段来解决ISV的关键诉求,那么相比其他产品有哪些不同呢?
什么是阿里云云开发平台阿里云云开发平台(Cloud Workbench),是阿里云面向广大开发者及企业提供的云上研发工作平台,助力研发团队实现工作的在线化(团队在线、环境在线、代码在线、协同在线)以及研发模式Serverless化,帮助研发团队实现对行业架构经验及架构服务的高效分享与传播,极致提升研发效率,极致降低研发成本。
使用云开发平台架构的应用,天然是云原生的,天然是Serverless架构的,天然是支持在线开发、调试、协同、CI/CD的;由于云开发平台是架构在阿里云底层基建之上,因此开发者天然可以享受阿里云提供的基础设施红利(编排、代码仓库、devops工具监控与报警、异地多机房以及VPC网络隔离、多版本与灰度),这些基础设施对于大多数中小公司自建难度非常大且边际成本很高,而通过云开发平台使用这些服务大多是免费或者按量计费,提效降费自不必说;云开发平台针对不同业务场景不同技术栈的应用抽象了3种技术架构,并搭配了云底座与产品实现技术侧保障,省去架构的烦恼。
云原生Serverless架构关于云原生以及Serverless有很多解释,那么朴素意义上的云原生指的是因云而生的软硬件以及架构,它包括为云或者弹性而设计的CPU或GPU,以及为云或弹性设计的中间件与使用这些中间件的应用。云原生不仅是实践,更是一种理念。开发人员的开发环境也要生在云上、长在云上,让产品设计、开发调试环境、部署、测试与灰度、POC验证、资源消费等等,全部基于云来进行,云开发平台就是贯彻云原生理念的一款产品,力图在云端覆盖产品的全生命周期。
Serverless字面意思为无服务器,实际上可理解为无运维架构。开发者无需关心底层硬件的采购与运维(机器、网络、流量)聚焦于业务逻辑开发,由云进行弹性扩缩容,并按量计费(这对峰值流量差异大特别是移动端应用尤为明显)。
云开发平台针对不同类型特点的业务分析和生成一个基于云产品矩阵构成的云原生 Serverless 架构(FAAS+BAAS),满足业务规模的不断扩大与快速迭代。