Pandora数据工厂之多租户项目预架构

          我们按照ADMEMS方法论的理论指导,结合《Pandora数据工厂之多租户项目介绍》进行预架构阶段的架构分析过程实践,找到关键功能性需求和非功能性需求(关键质量及约束)等。

Pandora数据工厂之多租户项目预架构_第1张图片

一、功能需求

1. 采用“职责协作链”来梳理关键功能

Pandora数据工厂之多租户项目预架构_第2张图片

    模拟不同类型的用户如何通过系统实现业务需求的过程,借助系统化的思维模拟跟踪各环节,梳理清晰后即可得出清晰的职责链,这样便可以找出各链上的关键功能点,这些关键点即是关键功能。

2. 功能列表

Pandora数据工厂之多租户项目预架构_第3张图片

3. 关键性需求

    “功能列表≠全部需求”,架构师为了全方位、多角度地把握需求,应当重视并应用“需求结构化”。下表为运用ADMEMS矩阵对Pandora数据工厂多租户系统的需求进行结构化梳理的结果。

 

功能

质量

约束

 

 

业务需求

业务目标、和业务愿景

  • 7*24小时不宕机
  • 业务是多变的
  • 系统定位:SaaS平台
  • 容易扩展新的组件
  • 客户不一样
  • 业务目标:满足项目需求、对资源统一的管理
  • 稳定性高
  • 行业不一样
  • 业务愿景:私有云化、容器化

 

 

 

 

用户级需求

用户

 

 

  • 项目客户

 

 

  • 管理员

 

 

  • 实施人员

 

 

开发级需求

 

 

 

三、质量属性

1. 开发期质量

\

要求

说明

可扩展性

 

可重用性

 

可测试性

 

易理解性

 

可维护性

 

可移植性

 

 

2. 运行期质量

\

要求

说明

性能

数据的高吞吐量

安全性

数据安全性

易用性

 

持续可用性

使用生命周期长

可伸缩性

 

互操作性

 

可靠性

 

鲁棒性

  1. 服务的高可用
  2. 数据的高可用

四、系统约束

约束类型

具体说明

业务环境约束

  1. 上线时间3个月
  2. 预算限制:无预算
  3. 业务是多变的
  4. 客户不一样
  5. 行业不一样

使用环境约束

  1. 分布式的使用要求
  2. 支持IE9+以及其它浏览器

开发环境约束

  1. 技术水平:人员水平不一,掌握java语言
  2. 团队成员:人员不固定
  3. 磨合程度:差
  4. 开发管理程度:低
  5. 源代码保密:高
  6. 网络环境:良好

技术环境约束

  1. 技术平台:Java、Linux
  2. 中间件:Spring cloud、Redis等
  3. 认同度:高
  4. 优缺点:应用语言,性能问题需要考虑

五、确定关键功能、关键质量属性及关键约束

  1. 确定业务级功能、质量和约束

 

功能

质量

约束

 

 

业务需求

业务目标、和业务愿景

  • 7*24小时不宕机
  • 业务是多变的
  • 系统定位:SaaS平台
  • 容易扩展新的组件
  • 客户不一样
  • 业务目标:满足项目需求、对资源统一的管理
  • 稳定性高
  • 行业不一样
  • 业务愿景:私有云化、容器化

 

 

 

 

 

 

 

 

 

 

 

 

     2. 确定用户级功能、质量和约束

 

功能

质量

约束

 

 

 

 

 

 

 

 

用户级需求

用户

  • 性能
  • 分布式要求
  • 项目客户
  • 安全性
  • IE9+
  • 管理员
  • 持续可用性

 

  • 实施人员
  1. 可伸缩性
  2. 可靠性
  3. 鲁棒性

 

 

 

 

 

 

 

     3. 确定开发级功能、质量和约束

 

功能

质量

约束

 

 

 

 

 

 

 

 

 

 

 

 

 

开发级需求

 

  1. 可扩展性
  2. 可移植性
  3. 可维护性
  1. SaaS技术
  2. 技术水平:人员水平不一
  3. 团队成员:人员不固定、开发管理难度大
  4. 技术要求高

 

      4. 将约束衍生为质量属性及功能、将质量属性衍生为功能

 

功能

质量

约束

 

 

业务需求

业务目标、和业务愿景

  • 7*24小时不宕机
  • 业务是多变的
  • 系统定位:SaaS平台
  • 容易扩展新的组件
  • 客户不一样
  • 业务目标:满足项目需求、对资源统一的管理
  • 稳定性高
  • 行业不一样
  • 业务愿景:私有云化、容器化
  • 个性化定制和部署

 

 

用户

 

  • 管理员后台支持插件模式管理
  1. 性能
  2. 安全性
  3. 持续可用性
  4. 可伸缩性
  5. 可靠性
  6. 鲁棒性

 

 

 

 

 

 

 

     5. 将关键约束衍生为功能

     6. 根据功能提炼出非功能性需求

     7. 形成统一的二维表(形成关键结果)

 

功能

质量

约束

 

 

业务级需求

业务目标、和业务愿景

  1. 系统定位:SaaS平台
  2. 业务目标:满足项目需求、对资源统一的管理
  3. 业务愿景:私有云化、容器化
  1. 7*24小时不宕机
  2. 容易扩展新的组件
  3. 稳定性高
  1. 业务是多变的
  2. 不同客户
  3. 不同行业

 

 

 

 

用户级需求

用户

  1. 项目客户
  2. 管理员
  3. 实施人员

管理员

  1. 管理员后台支持插件模式管理
  1. 性能:数据的高吞吐量
  2. 数据高安全性
  3. 持续可用性
  4. 资源可伸缩性
  5. 可靠性:7*24不宕机
  6. 鲁棒性:服务的高可用、数据的高可用

 

 

开发级需求

 

  1. 可扩展性
  2. 可移植性
  3. 可维护性
  1. SaaS技术
  2. 技术水平:人员水平不一
  3. 团队成员:人员不固定、开发管理难度大
  4. 技术要求高

六、关键性技术

1. 资源池

      Hadoop资源池(pool),或者作业池。 每个pool里有一定量的资源(管理员配置),每个用户属于某个pool,其提交的作业可使用这个pool中的资源。资源的分配主要是依据CPU虚拟核数和内存量。

2. 公平调度

     是一种赋予作业(job)资源的方法,它的目的是让所有的作业随着时间的推移,都能平均的获取等同的共享资源。当单独一个作业在运行时,它将使用整个集群。当有其它作业被提交上来时,系统会将任务(task)空闲时间片(slot)赋给这些新的作业,以使得每一个作业都大概获取到等量的CPU时间。

3、Kerberos

     Kerberos可以将认证的密钥在集群部署时事先放到可靠的节点上。集群运行时,集群内的节点使用密钥得到认证。只有被认证过节点才能正常使用。企图冒充的节点由于没有事先得到的密钥信息,无法与集群内部的节点通信。

4、Sentry

     Sentry是一个Hadoop的授权模块,为了对正确的用户和应用程序提供精确的访问级别,包括一个核心授权提供者和一个结合层。可以实现对hive、hbase细粒度级、基于角色的授权。

七、技术分析

目前大数据生态里,各框架已经实现的多租户的情况:

框架

现状

说明

Hadoop yarn

计算资源(CPU和内存)已经具备多租户

 

hbase

命名空间和表授权

 

hdfs

ACL控制和配额

 

hive

库和表授权

 

 

你可能感兴趣的:(数据工厂,软件架构,数据架构,数据工厂,多租户,ADMEMS)