再小的企业
也应该有自己的声音 
分享到:
【沃行课堂】基于SaaS模式的平台技术架构及实现(续篇)
 
2019.11.8
 
​以SaaS平台技术架构》为主题的讲堂来咯~
这节课依旧是由幽默风趣的培哥开讲
本周可以说是培哥的主场呀,为培哥点赞
 

 
从培哥上一堂课《SaaS平台常见开发问题集锦》,我们了解到了SaaS平台开发过程中会经常出现的问题,领略到了开发世界的魅力;
 
今天,培哥将带领我们更深一步了解开发的工作,
从SaaS慢谈、平台之呈现层、平台之调度层、平台之业务层和平台之数据层五个方面浅谈基于SaaS模式的平台技术架构及实现。

 

 
 
 

SaaS平台技术架构

——培哥

 
 

 

SaaS

 

SaaS模式是什么?

传统软件模式是软件产品,通常部署在局域网,要去客户现场进行实施;

而SaaS模式是指产品部署在云服务器上,客户只需租用产品,按需付费即可。

 

 

多租户数据库方案

多租户数据库方案分为三种:完全隔离,隔离+共享,完全共享。

 

 

什么是Schema?
数据库中的Schema,为数据库对象的集合。
 
 
 
MySQL中Schema
对MySQL来说,Schema并不是Database的下级,而是等同于Database,
比如执行create schema test,和create database test是一样的;
 
MySQL的数据库层级对应如下:
 

 

独立Schema优点

高独立性:每个租户都拥有自己的库,与其他租户是隔离的;

高扩展性:可以方便得多进行横向扩展和数据迁移;

业务开发简单:只需考虑本租户业务逻辑即可,通过切换Schema来达到多租户效果,联查的表更少;

定制化服务:用户可以定制个性化服务,不影响其他租户。

 

独立Schema缺点

数据库越来越多怎么办?10万租户,10个库,维护非常困难;

租户的数据隔离开了,进行整体分析比较困难。

 

多租户数据库集群

用一张图来说明多租户数据库集群:

 

 

定位租户Schema

 

 

 

独立的数据服务

 

 

1

平台

 

逻辑视图
SaaS应用表现层:
负责SaaS应用的页面呈现;支持单点登录和统一身份认证;
支持应用层负载均衡和执行请求自动转发;支持租户个性化配置。

 

 

缓存

Flash客户端的缓存,并不是指浏览器的缓存,浏览器的缓存在一定时间后会过期,先作此声明。

 

使用flash开发出来的网站最大的问题就是swf文件过大,

国内网速有限,导致加载时间过长,这样会丢失很多潜在的客户。

 

Flash使用RSL技术,可以解决框架的缓存与共享,很大程度的解决了加载问题。

 但是如果项目过大,还是会导致加载时间很长这个问题。

 我使用了 SharedObject进行客户端的SWF与Module的缓存,并进行版本控制。

在服务器端做一个配置文件,客户端若有缓存过数据,则进行版本控制, 达到客户端数据与服务器端数据保持一样。

 

 

页面个性化

页面个性化分为背景、颜色、主题三个方面。

 

 

自定义配置

配置管理分为业务参数开关配置、审批工作流配置、模板配置、EDI配置和SOP配置。

 

 

定制化页面

参数、适配器、插件可以定制化。

 

 

平台

 

产品概述

SaaS应用业务层:

通过业务服务和租户业务服务实现个性化服务;

通过元数据服务和租户配置服务实现租户业务和数据方面定制;

通过分布式执行提供高可用性和高性能服务。

 

 

统一认证

统一身份认证,统一认证系统。

 

 

定时任务

Quartz

Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用;

 Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序;

Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 2.3.0

 

 

存储

Storage

Amazon Simple Storage Service (Amazon S3) 是一种面向 Internet 的存储服务。

您可以通过 Amazon S3 随时在 Web 上的任何位置存储和检索的任意大小的数据。

 

Amazon S3将数据作为对象存储在存储区中。一个对象由一个文件和可选的描述该文件的任何元数据组成。

在S3里面实质上是没有目录和文件夹的概念,即目录概念实质只是对象的前缀,并不存在实体。

 

我们的数据都是存储在AWS 的存储桶中,我们可以把桶理解为磁盘分区,

不过它是由一个桶名(字符串)唯一标识,即你不能创建别人已经创建过的桶。

 

平台

 

业务逻辑处理

逻辑处理包括四块:增、删、改、查。

 

 

数据处理

数据隔离校验。

 

 

平台

 

缓存

Memcached

Memcached是danga.com开发的分布式内存对象缓存系统,所谓分布式,意味着它不是本地的,而是基于网络连接完成服务。

 Memcached把一些数据通过key=value数据存储到内存中,这样访问更加方便快捷。

但是随之而来的问题是如果Memcached关闭或者Memcached的服务器关闭那么所保存的内容也就没有了。

 

 

MySQL

数据库

从版本,云数据OR自建,读写分离三个板块来展开。

 

 

数据库设计

租户ID字段区分租户

这种方案是多租户方案中最简单的设计方式,即在每张表中都添加一个用于区分租户的字段(如租户id或租户代码)

来标识每条数据属于哪个租户,其作用很像外键。

 当进行查询的时候每条语句都要添加该字段作为过滤条件,其特点是所有租户的数据全都存放在同一个表中,

数据的隔离性是最低的,完全是通过字段来区分的。

 

完整版ppt可以向市场部索取
市场部联系电话:400-6659211
邮箱:marketing@walltechsystem.cn
同时敬请期待下周同一时间沃行内部讲堂

 

专家招募活动进行中~

 

WallTech诚邀我们的客户大佬们

成为常年客座讲师传道受业解惑

有想要报名的大佬们欢迎联系市场部哦~

 

科技改变生活,也在改变我们的工作!

CargoWare一小步,

货代转型一大步!

如此方便快捷的工具!

还不速速来一套?