怎么样做一个 SaaS 平台

本贴最后更新于 3156 天前,其中的信息可能已经水流花落

随着互联网的普及和带宽的提升,软件的卖法再也不像以前那样,每个公司都搞个小服务器布置一套了

采用了 sass 平台的方案,对于用户来讲更加的方便

而对于我们这种只会 curd 的程序员来说,又多了很多要学习的地方。

那么 saas 平台架构到底该怎么做呢?,简单来说就是拆解一个巨石模块为很多单一的模块,有人算过如果平均每台 google 服务器的负载,其实非常低,要把那么多的服务器组合起来,才是一个麻烦的事情

根据我的想象和猜测,

第一种: 业务的模块切割

就是把一个大网站的业务拆的很小,每个模块放组个机器(带负载),每个模块一个数据库(带主备)

比如黑客派有 1 亿用户的时候可以把网站按照 登陆,文章,评论,积分,游戏分成好多的子网站,后台还有推送等辅助的模块

相关的技术据说有管理这么多模块(服务)的 Dubbo,zookeeper,有 HBase,redis 这种 kv 数据库等,谁能提供一个比较完整的图呢
数据存储我就不懂了,到底是用数据库路由,还是全部仍在一个可扩展的 kv 数据库?

但我还是觉得有很多不懂的地方,
比如每个模块都是独立的,靠接口交互,那些复杂的关联查询怎么搞,比如评论和用户是两个模块,要知道一个每个月发了多少评论,原来的系统一句 sql 搞定,现在只能搞成两句很大的 sql 做合并了?
还有这种架构是不是只适功能无定制化的需求?对于 crm oa 这样的,是不是不适合用这种,因为定制化意味着每个业务模块都不一样,难道 A 用户访问的是 A1 评论系统,B 用户就能访问 A2 评论系统?

是不是这种方式适合互联网和无区别软件的平台,比如黑客派

第二种:

如果把 solo 做成第一种架构,那么要定制化就非常麻烦了,不是吗

于是我们换一个思路,按照老的方式,我们中心端放很多很多 app,每个 app 有独立的数据库和主机,然后全部一起统一管理,很多多租户系统的做法

比如 solo 的 sass,可以把免费的用户放在一个 web 服务器里,这个服务器里是多租户版的 solo,完全是标准的一个机器(可以带负载),一个数据库,用户多了也可以放 n 组,按照 ip 路由
把收费的,高级的用户分别放在不同规格和容量的 web 服务器里,限制每台的容量,还是用的多租户版的 solo
把高级用户就放在一台机器里,用单机版的 solo

这样每个 app 都是完整的一套程序,要定制化只要替换就行,隔离性十分的好,如此的技术估计是 docker,这样的系统我认为最大的问题是统计,比如所有租户的一些统计数据,排序数据,由于都是分离的,需要每个 app 定时收集数据?

spring cloud 到底是哪一种我还不知道,要研究下,

大家把知道的架构都写出来吧

  • 分布式
    80 引用 • 149 回帖 • 4 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    143 引用 • 442 回帖 • 2 关注
  • SaaS
    7 引用 • 29 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • yangyujiao

    1474442114380

    我们貌似即将开始做微服务。。。 这几天在折腾单点登录。

推荐标签 标签

  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 183 关注
  • RYMCU

    RYMCU 致力于打造一个即严谨又活泼、专业又不失有趣,为数百万人服务的开源嵌入式知识学习交流平台。

    4 引用 • 6 回帖 • 58 关注
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 636 关注
  • 智能合约

    智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。

    1 引用 • 11 回帖
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    37 引用 • 157 回帖
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 84 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    369 引用 • 1846 回帖 • 3 关注
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    133 引用 • 796 回帖
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 124 关注
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 80 关注
  • 印象笔记
    3 引用 • 16 回帖 • 1 关注
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 165 关注
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    25491 引用 • 105411 回帖
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    325 引用 • 1395 回帖
  • Outlook
    1 引用 • 5 回帖 • 1 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    89 引用 • 122 回帖 • 621 关注
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    91 引用 • 59 回帖 • 3 关注
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 612 关注
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 688 关注
  • Access
    1 引用 • 3 回帖 • 1 关注
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 201 关注
  • 职场

    找到自己的位置,萌新烦恼少。

    127 引用 • 1708 回帖
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    7 引用 • 27 回帖
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 650 关注
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    589 引用 • 3538 回帖