企业互联网应用架构的探索:共享服务

 

本次直播视频精彩回顾,戳这里!


本次分享主要分为以下几个方面:

1.     共享服务

2.     共享服务的建设

3.     共享服务的运营

一,        共享服务

1.    背景

首先介绍一些背景,企业原本的应用是企业内部的管理型应用,随着时代的发展,由于员工移动的需求、招聘、打通上下游、接触消费者等需求,企业应用逐渐走向外部协同与交互应用。

6c2105b6cc8db840aead5dbd82a870a0f97fada1

这样的转变也带来了许多挑战。

· 大用户并发:比如秒杀等应用。

· 业务的快速创新:互联网会带来快速的变更。支持业务创新,需要积累,而非从0做起。

· 跨平台:客户端可能会使用不同的浏览器、操作系统、手机。后台也有可能是跨平台的,比如Spring Cloud、HSF等。

· 割裂的多个单体应用:企业内部有很多割裂的应用,如何打通。

· 开放及API经济:为了打通上下游要进行API开放。开放API也是一种经济,是可以盈利的。

 

2.    工业界的解决之道:汽车平台化

汽车平台化是指在开发过程中利用相似的底盘和车身结构,承载不同车型的开发和生产制造,在此基础上生产出外形、功能不尽相同的产品。

下面这个案例展示的是,将汽车拆分成不同的部件并进行组合。通过共享的方式来解决用户不同的需求,从而提高生产效率,降低成本。

b9871130d753eac0a362d1d206d5730569790a23

3cd539dd47f62ac17ca04d5c3046e376f489562e


3.    企业应用的技术演变

上面提到的是一个实际的应用案例,下面从技术角度介绍一下其演变过程。下图总体比较容易理解。需要强调一点现在的技术演变一定是轻量的。同时一定是多种类型的,客户端、数据库、网络都是多种类型的。

3dfb10e4ea144ad162af0efeb74bb1d21cf8d6c4

4.    共享服务能带来什么

效率:共享,就不需要从头开始做,

性能:微服务架构允许横向扩展,提高性能。

成本:可以重用之前的服务,降低了成本。

稳定:重用的服务是已经被验证过的。

兼容:可以兼容不同的系统。

二,        共享服务的建设

1.     业务服务中心化

比如将商品、订单、会员分别独立成商品中心、订单中心、会员中心。将业务分离方便进行横向扩展。

1f4278a1318cc1032bfe513946e4ae133930360e

2.     基础能力API化

将基础的能力API化,不仅可以供内部使用,还可以开放给第三方。

d9cc254567b108d396be4fcbd4ba742e6094fcf8

3.     基础能力组件化

将公共的能力组件化,以隔离不同的应用层。

de3df6446341f1ef7a9c3e82db73b90735cc09d7

4.     下图展示了一个系统的层级视图。

 最底层是数据库访问层。领域层是业务的核心,由于是共享服务,则一定会存在API接口层。最外层是前端的用户界面层,下面连着网关,网关和一系列的聚合调用构成了应用服务层。基础设施层包括消息队列,事务管理等。

745c3d418b21573edb4b9acfd641fb9470e006eb


5.     应用服务层由以下部分组成。

下面详细介绍一下应用服务层。它主要包括三个内容。

· 网关/应用:

  · 协议转换

  · 路由与过滤

  · 认证与授权

  · 转换与映射输入输出

  · 可实现跨多个服务中心的业务流程

· 聚合:

· 实现跨多个服务中心的业务流程

· API接口:

  · 提供远程访问接口

  · 处理基础设施相关事宜,如日志/发送消息等

  · 应用服务级别的输入验证

6.     应用服务层的职责

· 通过应用服务层将客户端与领域解耦

· 通过应用服务层将基础设施与领域解耦

· 应用服务层是无状态的和过程性的

 

5388dce6aa4e6b4ab44fda7aaf9708867fed4585

 

端口形式和部署方式如下图。从实践经验看,一般需要提供两种接口,一种是RESTful,另一种是API。如果只有API接口,用户只能通过网关来进行协议的转发,而通过RESTful接口就可以实现简单的操作,比如客户的增加删除。同时,系统会部署在不同的环境中,因此,必须要解决适配性的问题。

875b9f3ec7e434e172ff14aa7650f6ccc2610a0e

在建设过程中有以下几种方式。

0684a4bc9d28d05e2117493aa3fa3de3975c5ec2

上图左侧和右侧得方式可能会导致两种不同的架构风格。当然,也不存在哪种方式更优的说法,要根据实际情况进行选择。

三,        共享服务的运营

共享服务开发完成之后,关键还要用于实践,因此,运营也是很重要的一环。运营主要分为两个部分。第一个部分主要是前台,如下图。比如,API如何申请,jar包如何下载,开发的文档在哪里等。

6ee003c09bdd1ec6474632966436211e5eefb6d2

第二个部分是后台。主要包括,API管理,服务配置,监控预警(运营分析,比如哪些接口调用的次数较多),组件管理(组件被谁使用了)等。

1aa3de1c8249838a2614afbc0be7de7518ade212 


共享服务或中台不仅仅只是一套系统,运营也是必不可少的。


本文由云栖志愿小组马JY整理

猜你喜欢

转载自yq.aliyun.com/articles/598398