服务设计思考:平台化

简介: 服务设计思考:平台化

平台是一套完整的服务。也是一套内部自洽的系统。核心在于分离,业务与通用服务隔离,业务与通用功能隔离。

总览

目标:

  • 对需求方: 快速响应。可以敏捷地进行需求迭代。
  • 对第三方业务方: 以产品的方式提供服务。所见即所得。所有功能对业务方透明。
  • 对测试方: 简易明了的测试方式。利于自动化测试,灰度测试。
  • 对运维方: 持续集成,自动化编排,自动化部署。
  • 数据方: 提供多维度,详尽的服务数据。可以给数据方提供简便的数据分析。
  • 内部开发: 敏捷开发。迅速集成。

关系

实现:

  • 如何实现需求的快速响应?明确的方向,清晰的边界。确认通用语言,核心领域。敏捷开发,快速迭代。AB 测试。
  • 如何为第三方提供产品式的服务?
    所见即所得。详尽的文档。第三方调试平台,第三方管理平台。
  • mock 服务,自动化测试,swagger 文档。
  • Devops,CI,DI 等持续集成,服务监控。
  • 业务数据与分析数据异构存储。提供易于分析的数据服务。
  • 组内服务负责制度,人类最佳的合作人数是 2-3 人。所以两人维护一个项目,一人主导,一人辅助,两人交叉合作是一个很好的团队合作模式。如图形成一个网状模式(红色线代表主导,黑色线辅助)。这样每一个项目都将有两个熟悉的人。

团队合作

原则

  1. 单一职责。
  2. 业务关注业务,功能关注功能。
  3. 确认边界,确认核心领域。
  4. 所见即所得。

实施

如何推进业务开发快速响应?
  1. 抽离变化与不变。形成基础服务
    如下面一套用户体系,将服务抽离,将变与不变隔离。
    **用户 api:**主要提供用户相关的接口,变化大,更偏向于业务;
    **用户中心:**主要管理用户核心领域,变动不大,需稳定高可用的服务;
    鉴权授权中心: 变动不大,主要管理用户凭证核心领域;

  1. 抽离通用功能。
    那些非业务的通用功能应隔离于业务之外:组件化工具化服务化
    来源监控接口限流日志分析应用监控服务依赖配置管理系统部署等(业务人员不必关心这些功能相关的事情,只需要关注于具体的业务领域)。关注点分离。
    如上面所涉及的,从Spring Cloud的各大组件可以看出,最终的方案都将走上相近的道路。
  2. 领域上下文划分。划分微服务项目。业务隔离,数据去中心化。服务组件化。
    Spring cloud 技术栈:
  • 服务治理: 注册中心,服务调用,衍生的容错(熔断器)
  • api 网关: 来源监控,接口限流(Spring Cloud gateway、zuul)
  • **配置中心:** 配置管理(Apollo)
  • 自动化部署: Jenkins、docker、k8s
  • 日志与监控: prometheus、influxdb、skywalking、elk
  • 数据可视化: druid、kylin、superset
  1. 细节管控
    接口版本管理, gitflow 管理,项目迭代 release 版本管理,标准化,敏捷开发。


相关文章
|
28天前
|
存储 缓存 监控
怎么更好地设计一个优秀的SaaS系统
设计一个优秀的SaaS系统,需要从架构、性能、安全性、租户隔离、扩展性等多方面进行深思熟虑。根据业务需求选择合适的多租户架构,保证数据隔离的同时提高系统性能。
93 1
|
3天前
|
存储 数据可视化 数据挖掘
设计团队高效运作的核心:任务可视化管理
团队协作低效?试试看板管理,让信息同步和流程更清晰,高效提升团队协作!
14 0
设计团队高效运作的核心:任务可视化管理
|
6月前
|
前端开发
通过建立功能模型来实现通用低代码软件平台
通过建立功能模型来实现通用低代码软件平台
|
5月前
|
人工智能 数据可视化 大数据
项目管理软件:从单一工具到全面解决方案的演进
【6月更文挑战第24天】从单一工具到全面解决方案,项目管理软件伴随企业复杂性增长而进化。初期专注任务分配和进度,现整合云、大数据、AI,提供集成、灵活、可视化及智能的全面解决方案。技术革新如云计算增强实时访问和数据分析,大数据支持决策,AI助力预测和自动化。未来,软件将进一步智能化、集成化,优化项目管理效率和满意度。
|
4月前
|
API
通用研发提效问题之组织女娲插件体系该如何解决
通用研发提效问题之组织女娲插件体系该如何解决
|
SQL 存储 缓存
研发思维08----嵌入式智能产品数据服务后端分析
研发思维08----嵌入式智能产品数据服务后端分析
143 0
研发思维08----嵌入式智能产品数据服务后端分析
|
数据可视化 搜索推荐 IDE
一款具备零代码和低代码能力的大数据可视化分析平台
什么是低代码平台: “低代码开发”旨在开发人员可以通过编写少量代码就可以快速生成应用程序的一种方法。 使用低代码开发平台类似于使用IDE,因为它包含了一套可以供开发人员直接使用的功能,和一套供开发人员使用的工具。然而,它实际上能提供的远远超过一个传统的IDE。简单来说,低代码开发就是将已有代码的可视化模块拖放到工作流中以创建应用程序的过程。由于它可以完全取代传统的手工编码应用程序的开发方法,技术娴熟的开发人员可以更智能、更高效地工作,而不会被重复的编码束缚住。相反,他们可以将精力集中于创建应用程序的10%部分,并使其具有与众不同的功能。与“低代码”开发相对的另一种方式是编写数千行复杂的代码和语
一款具备零代码和低代码能力的大数据可视化分析平台
|
前端开发 rax IDE
从设计到管理,如何快速打造技术产品
本文将介绍一款技术产品的快速打造方法。
从设计到管理,如何快速打造技术产品
|
容器
基础业务集成开发平台(BusinessWorks) - 业务开发篇
BusinessWorks目前以二方包的形式提供给已有业务系统用来满足平台化建设,适应业务快速开发需要。在这边ATA中,我们会介绍我们代码的组织结构和基本实现, 然后会针对交易领域简化开发一个订单下单的例子,来阐述如何进行业务的模块化开发,实现业务隔离。
10372 2
|
监控 中间件 Apache
基础业务集成开发平台(BusinessWorks) - 概要设计篇
Businesworks的设计目标是为复杂业务系统提供平台化的底层支持,所谓平台化,就是对业务开发能以扩展,隔离的方式推进,驱动业务快速支持。
16989 0