DRY(不要重复自己)原则是编程的核心原则之一,它倡导通过重复使用和回收已经完成的工作来节省时间,重复本质上是低效的,DRY原则鼓励您创建工作流程和模板,...
DRY(不要重复自己)原则是编程的核心原则之一,它倡导通过重复使用和回收已经完成的工作来节省时间,重复本质上是低效的,DRY原则鼓励您创建工作流程和模板,以最小化它们。
愿景
Tanmer SaaS平台意在构建一个通用的SaaS化架构模型,这个模型实现统一的用户认证管理(tanmer-sso),共享一个中央控制中心(tanmer-cc),所有的业务应用(APP)都基于一个标准规范的Rails模板(tanmer-egg)构建,并统一通过中央控制中心进行安装和配置。 这样实现的目的是为了解决以下痛点:
基于Rails原生的架构搭建新项目,不能继承过去的最佳实践。
过去开发的通用类应用,没有一个很好的方法集成到下一个新项目中。
往往每个项目的【用户认证、后端管理、资源配置】部分都是重复工作。
现实业务的复杂性和快速变化的需求让定制化的项目越来越难以维护。
所以,Tanmer SaaS的开发愿景应该能够实现如下理念:
重复的工作应该采用通用的代码实现
开发者只关心业务本身的需求实现
开发者按照一个严格的规则限定去实现新项目全生命周期迭代
架构
Tanmer SaaS平台基于如下架构模型:
一套完整的Tanmer SaaS平台应该包含如下几个模块:
tanmer-sso: 单点登录模块,实现统一账户认证
tanmer-cc: 统一控制中心,实现管理和租户端统一应用管理和调度
tanmer-egg:用于创建规范的业务应用APP
在平台上用户关系如下图所示:
tanmer-sso
单点登录系统
tanmer-cc
独立开发的统一控制中心
tanmer-egg
基于our-basic-rails构建的一个Rails原生模板
应用场景
当Tanmer SaaS平台打造出来后,公司所有的开发人员都将开发工作移植到本平台上,同时基于平台的开发规则和约定完成项目开发。我们会基于Tanmer SaaS发两个平台级项目: 探码DaaS平台和律数平台。
探码DaaS平台的建设思路如下图: 基于数据驱动的企业信息化建设平台
律数平台的建设思路如下图: 律师数据资产化运营平台
即将启动的应用
1. data/tanmer-data-preparation
一个在线数据准备(建表、导入、清洗(合并、去重、结构化、ETL)、查询、导出)工具。
参考: ETL,BigData SaaS
2. apps/tanmer-helper
在线文档系统搭建,这个文档可以是:学习教程、帮助中心FAQ、知识库,首先供探码内部用于给每个项目创建在线学习教程和帮助文档。
参考: Baklib
3. apps/tanmer-cms
移植RainCMS, 实现在线定制化网站建设管理。首先供探码内部用于给每个APP创建官网。
SaaS 软件库
通用域
domains/tmdata-members 成员协同
domains/tmdata-notifications 消息通知
通用 Gem
acts_as_identifier ActiveRecord 为唯一标识字段自动生成不重复的值
editor_js EditorJS 前端渲染
ip_locator_cn 获取 IP 地址的地理位置
kiba-tanmer Kiba 的扩展库
yunpian-captcha 云片图片验证码
omniauth-tanmer 探码 SSO 登录客户端