0%

业务层技术和平台技术

一、业务层技术

各个互联网业务发展最终面临的问题都是类似的:业务复杂度越来越高。

  • 分:将整体复杂性分散到多个子任务或者子系统中
  • 合:将职责关联性比较强的子系统合成一个虚拟业务域

二、平台技术

1. 运维平台
1581078127(1)

  • 配置:主要负责资源的管理。例如,机器管理、IP地址管理、虚拟机管理等。
  • 部署:主要负责将系统发布到线上。例如,包管理、灰度发布管理、回滚等。
  • 监控:主要负责收集系统上线运行后的相关数据并进行监控,以便及时发现问题。
  • 应急:主要负责系统出故障后的处理。例如,停止程序、下线故障机器、切换IP等。

2. 测试平台
单元测试、集成测试、接口测试、性能测试等,都可以在测试平台来完成。
测试平台的核心目的是提升测试效率,从而提升产品质量,其设计关键就是自动化。
1581078315(1)

  • 用例管理:脚本或代码 管理包含业务、系统、测试类型、用例代码
  • 资源管理:测试用例运行的具体环境,包含硬件(服务器、手机、平板电脑)、软件(操作系统、数据库、java虚拟机等)、业务系统(被测系统)
    除了性能外,一般的自动化测试对性能要求不高,所以为了提高资源利用率,大部分的测试平台会利用虚拟化技术来充分利用硬件资源,如虚拟机、Docker等。
  • 任务管理:任务管理的主要职责是将测试用例分配到具体的资源上执行,跟踪任务的执行情况。任务管理是测试平台设计的核心,它将测试平台的各个部分串联起来从而完成自动化测试。
  • 数据管理:测试执行完成后,需要记录各种相关的数据(执行时间、用例执行期间的CPU、内存占用情况等)
    这些数据的作用:
    ①展现当前用例的执行情况。
    ②作为历史数据,方便后续的测试与历史数据进行对比,从而发现明显的变化趋势。例如,某个版本后单元测试覆盖率从90%下降到70%。
    ③作为大数据的一部分,可以基于测试的任务数据进行一些数据挖掘。例如,某个业务一年执行了10000个用例测试,另外一个业务只执行了1000个用例测试,两个业务规模和复杂度差不多,为何差异这么大?

3. 数据平台
1581078948(1)

  • 数据管理:数据采集、数据存储、数据访问和数据安全四个核心职责,是数据平台的基础功能。
    数据采集:从业务系统搜集各类数据。例如,日志、用户行为、业务数据等,将这些数据传送到数据平台。
    数据存储:将从业务系统采集的数据存储到数据平台,用于后续数据分析。
    数据访问:负责对外提供各种协议用于读写数据。例如,SQL、Hive、Key-Value等读写协议。
    数据安全:通常情况下数据平台都是多个业务共享的,部分业务敏感数据需要加以保护,防止被其他业务读取甚至修改,因此需要设计数据安全策略来保护数据。

  • 数据分析
    数据分析包括数据统计、数据挖掘、机器学习、深度学习等几个细分领域。
    数据统计:根据原始数据统计出相关的总览数据。例如,PV(Page View)、UV(Unique Visitor)、交易额等。

  • 数据应用
    数据应用很广泛,既包括在线业务,也包括离线业务。例如,推荐、广告等属于在线应用,报表、欺诈检测、异常检测等属于离线应用。

4. 管理平台

管理平台的核心职责就是权限管理,无论是业务系统(例如,淘宝网)、中间件系统(例如,消息队列Kafka),还是平台系统(例如,运维平台),都需要进行管理。如果每个系统都自己来实现权限管理,效率太低,重复工作很多,因此需要统一的管理平台来管理所有的系统的权限。

1581079323

  • 身份认证:确定当前的操作人员身份,防止非法人员进入系统
  • 权限控制:根据操作人员的身份确定操作权限,防止未经授权的人员进行操作