编辑导语:云时代的SaaS产品创业有个大学问,学起来更难。本文是O2O新鲜SaaS创业的系统章节。从系统层面解释一下,大家来看看。
这是一个云时代SaaS产品创业的故事,讲述了一个科技创业者如何从无到有,从战略到战术,从产品到技术到组织,从定位到定价到盈利,从云到中间平台到SaaS,系统完整地打造满足行业客户需求的产品。共八章,涵盖行业/客户/朋友、市场/成长、产品/中间平台、云服务/微服务/系统、组织/协作、力求全面。
二、系统篇序系统的架构一直是顶层设计,自上而下的划分和统治。本质是领域逻辑和业务逻辑的分类。云时代架构注重可重用性和灵活性,简称为中间平台和SaaS。
三、云系统架构在云时代,如何设计和实现符合时代和行业需求的系统架构,如何匹配业务模式以更好地支持业务发展,应对市场变化和指导组织结构,是业务系统架构师面临的首要问题。
这里的业务系统是指支持业务运营并赚钱或省钱的系统。可以是我们说的外卖平台管理系统,也可以是滴滴出行这样的打车服务系统。这些都是业务系统。应用云计算的特点,复用性和灵活性是业务系统的首要考虑因素。
高性能/高可用/可扩展架构是针对特定系统稳定性的解决方案,解决了高流量、高并发和稳定性的问题。采用的策略有读写分离、子数据库和子表、高性能缓存、服务集群等。我们需要首先构建业务系统,然后为特定的业务流构建高性能/高可用性/可伸缩的架构。
业务架构最直接的输出是中间局和SaaS系统。中台解决的是业务运营能力的复用,大致可以分为技术中台、业务中台、数据中台。SaaS系统解决了客户分层和灵活服务。
云时代架构首先要明白什么是云计算。根据NIST(美国国家标准与技术研究院)、微软、IBM和阿里云的定义,云计算被定义为三种服务模式,即LaaS(基础设施即服务基础设施即服务)、PaaS(平台即服务平台即服务)和SaaS(软件即服务软件即服务)。
LaaS是云计算的基础服务层。基础服务包括云主机、虚拟机、黑金物理计等。,主要提供CPU/内存等计算资源。国内供应商阿里云/华为云/腾讯云都是云计算的基础能力,不需要了解业务架构方面的基础知识。
PaaS是云计算平台(可以理解为技术中间平台)的服务层。以docker和kubernets为代表的容器技术提供了容器集群计算,用于搭建技术中间平台。通过容器调度服务,我们可以快速构建数据库、缓存、mq、日志、网关等。即满足高性能、高可用性和可扩展性的要求,并需要注意和了解。
SaaS是云计算的业务服务层(可以理解为具体的业务逻辑层,包括业务中间平台/数据中间平台)。重点建设业务中间平台、数据中间平台等业务系统,包括第三方供应商系统和后台系统。docker和kubernets container technologies也提供了应用程序运行环境,以实现服务隔离和服务灵活性。
所有的业务系统都部署在服务器上,服务器需要CPU和内存来运行业务应用,需要接入互联网进行外部服务,需要VPN虚拟内网隔离服务,需要保存数据/图片/视频等资源。LaaS提供的计算、网络和存储资源可以满足这些需求。
为了保存具体的业务数据,我们需要一个数据库,缓存和负载均衡来应对大流量,mq和容错来应对高并发,devops来快速发布版本,日志来排查bug,监控来保证应用的正常运行,PaaS提供了一个通用的技术平台。不管是什么业务,这些组件都会被用来构建一个可重用的平台。通过容器化技术,我们可以快速构建满足高性能、高可用性和可扩展性要求的数据库、缓存、日志和网关。
微服务框架实现的业务逻辑包括用户管理、商品管理、订单管理、财务管理、售后管理等。有客户端代码、API接口代码和宏流程模型代码。SaaS是商业逻辑具体实现地方。
四、业务中台架构我们在SaaS层实现具体的业务逻辑,包括客户端、API、前台业务、中台API、第三方供应商、后台系统(财务审计、OA审批、客户管理)等。
客户端vue和react主要是pc/h5页面和小程序客户端,Android和ios客户端,面向第三方开放API SDK。
Gateway是所有服务统一唯一的API请求入口,具有负载均衡、认证授权、分流请求、融合请求、监控请求、公共服务统一逻辑处理等功能。网关组件经常和oauth2一起使用,作为登录授权认证,用户权限认证,erueka作为API接口服务注册和发现,apollo作为配置中心。可以发现下图蓝色的部分都是PaaS层定义的平台组件,这些组件负责系统中的公共和一些非业务逻辑的东西。
中间平台API可以理解为宏观流程模型的具体实现代码,是整个宏观流程模型的具体实现。比如中间平台API有一个【外卖平台商品管理API】的接口,封装了外卖平台接口,调用这个接口就可以完成三个平台的商品管理。由于该接口实现了宏流程模型,所以除了增加、修改、删除基本商品管理外,不包含其他业务逻辑。
这时就需要在客户添加产品成功后,向客户推荐类似的产品继续添加。这个具体的业务逻辑应该写在【前台业务】里,而不是中间的API里。因为这个业务逻辑不是宏观流程模型中的逻辑,不符合通用的业务标准,不能直接重用,因为推荐选项可能是产品类别推荐,也可能是产品名称相似推荐。
如果这个推荐的服务上线后受到客户的欢迎,可以考虑纳入中间平台的API。但宏观流程模型不应该修改,因为推荐不属于外卖平台管理的行业标准。准确的说,这个推荐能力是属于数据平台的,应该包含在数据平台中实现推荐API。如果没有数据中间平台,那么可以考虑增加一个中间平台推荐API模块,然后修改【前台业务】,把原来的逻辑改为调用中间平台推荐API逻辑,这样中间平台推荐API就可以重用了。
通过前台业务和中台API的逻辑分离,即业务和领域模型,大大提高了中台API的稳定性和可重用性,使前台业务具备了快速响应市场变化和低成本试错的能力。
技术栈中没有最好的,只有最合适的。根据技术团队对技术栈的了解,选择市场上成熟可靠的产品。一些大的制造商在生产环境中使用了最好的产品。中小企业的微服务选择主要以阿里和Google为主,我们以Java为例。
Dubbo是阿里开源的微服务框架,提供了一套微服务组件,包括nacos、dubbo admin、dubbo rpc等。
Spring cloud是Spring家族中的微服务框架,spring boot是Java开发应用的标准框架,在国内应用广泛。
Kubernetes是Google开源的容器集群管理服务,具有服务发现、API网关和配置中心组件的功能,可以代替微服务框架使用。在云架构中,PaaS和SaaS可以使用容器构建应用服务,实现服务的灵活性和隔离性,降低业务运营成本。它是当前市场上容器技术应用的标准框架。
技术栈的选择要基于团队能力和人力资源成本的考虑,优先选择技术成熟、稳定、信息丰富的人,这样基本上不会出现技术问题,团队成员都能上手,否则培训成本太高,容易踩上执行不规范的明坑,最终选出市场广阔的好招聘人员。
六、SaaS 化的弹性服务市场的变化会直接影响系统的稳定性/可用性,首先是流量的变化。当某个模块面临高流量时,通过容器技术很容易建立多节点响应。比如这一天美团外卖订单的指数级增长,会带来现有订单系统所能承受的最大峰值。我们可以通过kubernets kubectl快速添加一个订单中间模块的pod节点。通过动态调整网关应对流量高峰,当流量下降时,我们可以删除新增加的pod节点,做到需要时实例化,不需要时删除,不浪费资源和成本。
其次,创新业务是低成本的试错。很多时候,我们会尝试进入其他行业或热门市场,产品研发团队需要能够快速响应开发和推出的需求。项目需要控制整个投入成本,比如基于业务的微创新,只需要启动一个pod节点实现前端业务,留下中间平台接口API复用。如果全新的项目不可复用,我们也启动pod节点,部署所需的平台组件和前台业务实现,成为一个独立的系统环境,即使后期出现故障也可以快速注销,不影响其他系统。
七、产品研发成本产品R&D团队一直是企业的成本中心。如何有效提高效率,降低成本,是所有互联网公司一直在追求的命题。最直观的要求就是低投入、高产出、高质量。尤其是在资源有限的情况下,创业公司市场野心大,需求特殊,产品研发的资源非常少,这种情况下很难招到合格满意的人才实现业务、技术、数据平台,更不用说云系统架构了。
在资源有限的情况下,更重要的是保证每一个决策和行动都是有效的。每一个行动都要计算个体成本和阶段总成本,区分哪些行动是能带来收益的有效行动,哪些是不应该被淘汰的行动。
云计算的三种模式降低了产品的研发成本。LaaS给我们带来的是一个月500元的四核云主机。早期项目流量不多的时候,可以暂时放弃做高性能/高可用双节点双备份。当流量需要稳定时,通过PaaS可以在几分钟内设置多节点和主从备份,通过宏流程模型获得稳定的业务中台API。当需求和试错需要快速响应时,可以实例化模型产生具体的前台业务。
八、系统篇总结充分利用云计算的特点,充分发挥三种模式和架构的特点,构建可复用的中间层服务和灵活的基于SaaS的服务,是云时代的产品优势,也是市场竞争的利器。
九、组织篇预告康威定律告诉我们,组织架构会影响系统架构和业务架构,如何在云时代逆转康威定律,让业务架构指导系统架构,进而指导组织架构。
本文由@徐小薇原创发布。每个人都是产品经理。未经许可,禁止转载。
图片来自Pexels,基于CC0协议。