云原生SaaS软件服务与开源框架

1、概述

云原生SaaS软件服务相对于传统软件服务是云计算背景下的软件服务模式。云计算软件栈主要分为IaaS、PaaS和SaaS,其中,IaaS提供基础设施服务,将海量计算、存储和网络资源集中管理并以虚拟机、容器等方式提供服务;PaaS在IaaS基础上提供通用计算平台服务,比如大数据平台、人工智能平台等;SaaS在IaaS和PaaS基础上提供按需获取应用软件服务模式。

2、关键技术

云原生是实现软件SaaS化服务模式的关键技术,它不是某一种单独的技术,更准确的说是一种开发理念,按照云原生的理念进行研发即可保障软件实现SaaS服务。

 软件SaaS化的核心目标是随时获取所需要的软件,而不需要提前安装软件或者只安装尽量轻型的软件。由于软件需求复杂程度往往是递增的,单纯优化软件本身是不能实现此目标。为此,需要从架构上进行重构,由此诞生了前后端分离架构。将需要大量计算、存储和网络资源的重型任务交给拥有丰富资源的云端执行;前端保留轻型的显示和操作类功能。

3、技术路线与部署模式

一种典型的最简单云原生SaaS软件前后端分离技术路线与部署模式如下图所示:

云原生SaaS软件服务与开源框架_第1张图片

3.1技术路线 

前端采用当前主流的Vue技术、uniapp等多端开发框架,实现前端H5、公众号和小程序等多端接入,前端通常运行在移动端设备上;后端采用Java开发语言的Springboot开发框架或PHP开发语言的Laravel、Lumen等开发框架以服务的形式暴露接口供前端调用,采用Redis等高速缓存技术提高后端并发能力,采用Mysql等数据库技术持久化数据;后台主要实现系统管理、配置等功能,在前后端分离架构下通常运行在PC前端。

3.2部署模式

轻量化前端部署在PC电脑端和移动端,采用浏览器、公众号、小程序或者自研App等模式获取和运行。后端部署在云端,采用Web服务、微服务的模式为前端提供接口支持;为了简化和通用化后端服务,采用Docker等容器化技术对后端服务进行隔离部署和封装。

3.3举例说明

为了更形象了解云原生SaaS前后端分离技术架构,下面以简化版本电子商城业务为例进行说明:

1)后端服务:

  • 用户服务:管理系统用户,提供注册、登入、退出接口;
  • 商品服务:提供商品增删查改接口;
  • 订单服务:提供购买、配送、收货和结算等接口。

2)后台

  • 用户管理:调用用户服务接口编辑、删除用户;
  • 商品管理:调用商品服务接口添加、编辑、删除商品;
  • 订单管理:调用订单服务接口管理订单。

3)前端

  • 调用用户服务接口进行注册、登入、退出;
  • 调用商品服务接口查询商品信息;
  • 调用订单服务接口进行购买、支付等操作。

4、开源框架实现

为了促进云原生SaaS软件服务行业发展,设计实现一套开源云原生SaaS软件服务框架Open-API。为软件服务提供一套开源框架,快速落地需求解决方案;设计实现规范化标准接口,避免工程技术实现重复劳动;采用主流技术路线接入各大平台,构建开放生态。努力达到采用奇辰Open-API进行软件服务的简单化目标。

4.1代码结构

app------------------------后端业务
|-Http
  |-Controllers------------后端控制器
  |-Middlewares------------后端中间件
|-Models-------------------后端模型
bootstrap
config
database
doc------------------------项目文档,基于vuepress实现
public
resource
routes
|-web.php
storage
tests
vendor
src
|-admin--------------------后台,基于vue-element-admin实现前后端分离
|-mobile-------------------前端,采用uniapp实现多端支持

整个代码包含4个独立子项目,根目录的代码是采用Lumen(php轻型MVC框架:https://lumen.laravel-china.org/,https://lumen.laravel.com/实现的前后端分离后端业务;src目录里面的admin目录是基于vue-element-admin实现前后端分离的后台业务,mobile目录是采用uniapp实现的支持多端(H5、小程序、APP)前端业务;doc目录是基于vuepress实现的全系统文档。

5、更多

开源项目:Open-Api

你可能感兴趣的:(软件服务,云原生,开源,sass)