快捷搜索:

互联网知识

当前位置:betway必威官网手机版 > 互联网知识 > 看完文章又涨知识了,车联网上云最佳实践

看完文章又涨知识了,车联网上云最佳实践

来源:http://www.abirdfarm.com 作者:betway必威官网手机版 时间:2019-08-16 02:55

原标题:车联网上云最佳实践(一)

原标题:车联网上云最佳实践(二)

  1. 大型网站系统的特点

从历年趋势来看,运维工作岗位也在逐年的进行细化。从最初的网管,逐渐细分出更多更细的专业的岗位:系统运维工程师、网络运维工程师、安全运维工程师、运维开发工程师、容器开发工程师等。这些岗位在具备一定的运维技能的同时,在特定的技术层面又能够有自己特别擅长的一方面。运维设计知识面广、从基础硬件、网络,到系统、开发、安全、应用架构、存储等。

本文的内容来自阿里巴巴员工李智慧的著作《大型网站技术架构 核心原理与案例分析》,这本书很值得一看,故整理之。

摘要: 最近两年车联网发展受到政府部门、科研院以及各大互联网巨头的广泛关注和积极推动。从应用来看,主要包括两种模式:一是前装模式(即车辆出厂前安装),是乘用车厂主导或者与有相关能力的公司合作,例如上汽和阿里巴巴的合作。

摘要: 我们对传统IDC应用架构进行分析之后,我们发现之前的系统架构存在一些不合理的地方导致了很多的痛点,为了解决这些痛点我们最终考虑上云。开始思考怎样利用云上产品来解决目前遇到的痛点。例如

高并发、大流量

按领域来划分基础设施运维:IDC/网络运维、服务器/存储设备运维系统运维:系统中间件运维、云计算平台运维数据运维:数据库运维、大数据技术平台运维应用运维:应用软件系统云平台运维:公有云平台运维容器运维:基于容器服务的运维按技术切面来分安全运维性能运维数据运维集成运维按流程来划分构建/持续集成、发布安装部署、升级、迁移、合并、扩展配置、初始化、配置变更备份、传输、恢复日志、监控、预警诊断排查、优化系统运维技能图谱

一、大型网站的架构演化

一、车联网行业特性讲解

云上对标架构及技术详解

高可用

系统运维是运维的基础,新的一年中,对基础运维技能要求也在提高,打好系统运维基础,才能深入学习后面的各种运维技能。

1.1 大型网站软件的特点

  • 高并发、大流量
  • 高可用:系统7*24小时不间断提供服务
  • 海量数据
  • 用户分布广泛
  • 安全环境恶劣
  • 需求变更快,发布频繁
  • 渐进式发展

最近两年车联网发展受到政府部门、科研院以及各大互联网巨头的广泛关注和积极推动。从应用来看,主要包括两种模式:一是前装模式(即车辆出厂前安装),是乘用车厂主导或者与有相关能力的公司合作,例如上汽和阿里巴巴的合作。另一种就是后装模式(通常是将车机设备安装在汽车的OBD接口上例如各类汽车盒子等等。原理是利用智能终端(即车机)采集汽车OBD接口CAN总线上的所有原始数据进行诊断,数据分析,记录行车信息,并将数据解析出其具体意义(汽车内部电控系统的各项传感器数值)后通过串口输出,供用户读取、解析、开发等使用。将读取到的汽车内部运行数据通过手机APP软件直观展现。

我们对传统IDC应用架构进行分析之后,我们发现之前的系统架构存在一些不合理的地方导致了很多的痛点,为了解决这些痛点我们最终考虑上云。开始思考怎样利用云上产品来解决目前遇到的痛点。例如

海量数据

下图列出了系统运维要掌握的必备技能:

1.2 大型网站架构演化发展历程

  • 初始阶段的网站架构:一台服务器,上面同时拥有应用程序,数据库,文件,等所有资源。例如 LAMP 架构
  • 应用和数据服务分离:三台服务器(硬件资源各不相同),分别是应用服务器,文件服务器和数据库服务器
  • 使用缓存改善网站性能:分为两种,缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器的远程缓存
  • 使用应用服务器集群改善网站并发处理能力:通过负载均衡调度服务器来将访问请求分发到应用服务器集群中的任何一台机器
  • 数据库读写分离:数据库采用主从热备,应用服务器在写数据时访问主数据库,主数据库通过主从复制机制将数据更新同步到从数据库。应用服务器使用专门的数据访问模块从而对应用透明
  • 使用反向代理和 CDN 加速网站响应:这两者基本原理都是缓存。反向代理部署在网站的中心机房,CDN 部署在网络提供商的机房
  • 使用分布式文件系统和分布式数据库系统:数据库拆分的最后手段,更常用的是业务分库
  • 使用 NoSQL 和搜索引擎:对可伸缩的分布式有更好的支持
  • 业务拆分:将整个网站业务拆分成不同的应用,每个应用独立部署维护,应用之间通过超链接建立联系/消息队列进行数据分发/访问同一数据存储系统
  • 分布式服务:公共业务提取出来独立部署

架构设计_分布式服务.png

首先大致梳理下车联网行业的特性有哪些:

 为了解决我们自建IDC底层基础设施可靠性差的问题,我们改用云计算服务,基础设施可靠性,异地容灾,数据备份,数据安全等问题再也不用担心;

用户分布广泛,网络情况复杂

betway必威官网手机版 1

1.3 大型网站架构演化的价值观

  • 大型网站架构的核心价值是随网站所需灵活应对
  • 驱动大型网站技术发展的主要力量是网站的业务发展

1、 月活非常高,在线时间长

 为了解决存储性能瓶颈以及用户访问体验问题,我们改用云上对象存储OSS服务 CDN;

安全环境恶劣

Web运维技能图谱

1.4 网站架构设计误区

  • 一味追随大公司的解决方案
  • 为了技术而技术
  • 企图用技术解决所有问题

车联网行业用户的月活是非常高的,这个很好理解,因为汽车现在人们出行的必备交通工具,基本上只要一出门就会用车,一用车设备就上线并采集数据上报到平台;每天3小时的平均在线时长,因城市拥堵程度不同而不同。

 为了解决单台数据库性能扩展瓶颈,我们改用云上的DRDS分布式关系数据库;

需求快速变更,迭代频繁

Web运维是运维岗位中岗位最多的一个,薪资也相对较高,但需要掌握的知识点也比较多,新的技能要掌握,老的运维技能也不能丢,下图列出了Web运维要掌握的各种必备技能。

二、大型网站架构模式

2、 早晚出行高峰比较固定

 为了解决大规模的车机上报而导致数据写入延迟问题我们改用云上IOT套件 HiTSDB;

渐进式发展

betway必威官网手机版 2

2.1 网站架构模式

  • 分层
  • 分割
  • 分布式
    • 分布式应用和服务
    • 分布式静态资源
    • 分布式数据和存储
    • 分布式计算
  • 集群
  • 缓存
    • Cdn
    • 反向代理
    • 本地缓存
    • 分布式缓存
  • 异步
    • 提供系统可用性
    • 加快网站响应速度
    • 消除高并发访问高峰
  • 冗余 服务器冗余运行,数据库冗余备份
  • 自动化
  • 安全 : 防止XSS攻击、sql注入

车联网行业一个比较有规律的特点是早晚出行高峰比较集中。早高峰集中在早上6点至9点3个小时,晚高峰集中在17点至20点的3个小时里。这样会导致每天必须有6个小时左右的流量高峰。如何以较低成本应对早晚高峰是个比较现实的问题。

 为了解决日常以及节假日流量高峰的问题,我们改用云上弹性伸缩服务 按量付费,以最低的成本完美解决日常及节假日流量高峰;

  1. 大型网站架构演化历程

大数据运维技能图谱

三、大型网站核心架构要素

  • 性能
  • 可用性
  • 伸缩性 不断地向服务器集群加服务器
  • 扩张性

3、 节假日高峰流量难预测

 为了解决大数据存储瓶颈以及降低大数据开发分析工作难度,我们改用云上MaxCompute

2.1. 初始阶段架构

大数据从2017年开始逐渐走到生活的各个角落,2018年在逐渐落地,而在2019年,大数据依然火热,加上国家对大数据产业的扶持,大数据产业在新的一年岗位需求一定会更加大,因此掌握大数据运维技能,就走在了运维的前沿,下图列出了大数据运维要掌握的各种必备技能。

四、瞬时响应:网站的高性能架构

现在国家法定节假日期间,由于高速公路在此期间免费的政策,导致越来越多的人们开始选择驾车出行或出游,所以每当节假日来临时必然导致车联网用户暴增,这个洪峰流量来临的时间和流量是不确定的。如何能准确做好每次节假日出行高峰预测是个问题。

  • HBase;

问题:网站运营初期,访问用户少,一台服务器绰绰有余。

betway必威官网手机版 3

4.1 网站性能测试

  • 不同视角下网站的性能
    • 用户视角网站性能 响应时间
    • 开发人员视角的网站性能 响应时间、并发亮
    • 运维人员视角的网站性能 资源
  • 性能测试指标
    • 响应时间
    • 并发数
    • 吞吐量 qps tps hps
    • 性能计数器
  • 性能测试方法
    • 性能测试
    • 负载测试
    • 压力测试
    • 稳定性测试
  • 性能测试报告
  • 性能优化策略
    • 性能分析
    • 性能优化

4、 高并发,高容量,场景复杂

 为了解决运维自动化问题以及提高运维工作效率,我们改用云上codepipeine 云监控 日志服务 容器服务;

特征:应用程序、数据库、文件等所有的资源都在一台服务器上。

容器运维技能图谱

4.2 web前端性能优化

  • 浏览器访问优化
    • 减少http请求
    • 使用浏览器缓存
    • 启用压缩
    • css放在网页最上面 js最下面
    • 减少cookie传输
  • CDN加速。(content distribute network)
  • 反向代理

车联网行业的用户月活很高,早晚高峰比较集中的特性导致用户并发非常高,每天平均长达3小时的车辆在线时长会导致采集数据量非常大,这也直接导致在数据采集场景下基本都是写多读少,但在群组社交,朋友圈,用车报告等场景下是写少读多的。这样复杂的应用场景对应用架构有很高要求。

 为了解决安全防御瓶颈,我们改用云上云盾 DDOS高防IP web应用防火墙 堡垒机;

描述:通常服务器操作系统使用 linux,应用程序使用 PHP 开发,然后部署在 Apache 上,数据库使用 Mysql,通俗称为 LAMP。汇集各种免费开源软件以及一台廉价服务器就可以开始系统的发展之路了。

容器的产生,是一次IT行业的革命,2015 年到 2016 年,是业界普遍认为的容器技术爆发的一年,短短一年多时间里,容器技术在中国大陆完成了从零星概念到烽火燎原的壮举。

4.3 应用服务器性能优化

  • 分布式缓存
    • 缓存的基本原理
    • 合理的使用缓存
      • 频繁修改数据
      • 没有热点的访问
      • 数据不一致与脏读
      • 缓存可用性
      • 缓存预热
      • 缓存穿透 缓存不存在,直接访问数据库
    • 分布式缓存架构
    • Memcached
  • 异步操作
  • 使用集群
  • 代码优化
    • 多线程
    • 资源复用
    • 数据结构
    • 垃圾回收

5、 汽车技术更新频率快

 为了解决负载均衡以及网络扩容瓶颈,我们改用云上SLB;

betway必威官网手机版 4

时至今日,容器技术在国内大多数企业中落地已成为一种共识,而国内的生态系统,也呈现出了企业产品、开源社区和公有云齐头并进的良好局面。因此,2019年也是容器继续快速落地的一年,下图列出了大数据运维要掌握的各种必备技能。

4.4 存储性能优化

  • 机械硬盘 vs. 固态硬盘
  • B 树 vs. LSM 树
  • RAID vs. HDFS

如今汽车技术更新越来越快,汽车厂商越来越多,厂商发布的新车型的频率也越来越高,车联网企业对这汽车行业的新技术必须保持非常高度关注,必须加快版本迭代,提高研发效率才能及时应对汽车市场的变化,才能在第一时间解决和满足市场和用户的需求。

 为了降低上云迁移复杂性,我们改用云上VPC虚拟专用网络,IP地址可以和原来保持不变;

2.2. 应用服务和数据服务分离

betway必威官网手机版 5

五、万无一失:网站的高可用架构

目前创业公司一开始就选择了自建IDC机房,起初用户不多,只用几台服务器,后来随着产品越做越好,用户高速增长,不到2年用户规模达到了百万级别,IDC机房的服务器也达到了几百台物理机,几千台虚拟机的规模。但是问题随之也就越来越多。研究规划下一代应用架构和基础设施成了迫在眉睫的事情了,新的应用架构必须满足快速增长的用户量和爆发式的流量访问,用户体验要好;并且基础设施要做到可靠性高,稳定性高,安全性高,成本要低。传统自建IDC方案是很难做到,即便做到成本也是非常的昂贵的。相比之下云计算的各方面能力比较适合用来解决这些问题,所以上云便是最佳选择了。但是云计算厂商有很多,国内有阿里云,腾讯云,金山云等等,国外的有亚马逊,微软,谷歌等。如何选择适合自己业务场景的云计算厂家呢? 我们做了大量的调查分析和对比,最终选择了阿里云。近几年阿里云的发展势头很猛,口碑也越来越好,产品功能丰富性在国内甚至是亚洲是最强的。上云就上阿里云,感觉很接地气。

 为了解决数据迁移的稳定性和便捷性,我们采用阿里云数据迁移工具DTS;

问题:越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足,一台服务器已不足以支撑。

数据为王的时代

5.1 网站可用性的度量和考核

  • 网站可行性度量
  • 网站可用性考核

如果有对如何选择云计算厂家感兴趣的朋友可以参考下面这篇文章,我觉得写的不错很客观。文章链接:

我们云上新的应用架构即会兼容部分老应用架构的特性,同时会采用云上新技术和云上产品来解决我们曾经的痛点和瓶颈。并且云上新架构需要满足未来2-3年的业务发展规划,能够支撑千万级用户规模的应用系统架构。下图为云上应用架构图。

特征:应用服务器、数据库服务器、文件服务器分别独立部署。

万丈高楼平地起,高楼稳不稳取决于地基是否扎实。运维数据便是运维管理这座高楼的地基。运维数据大致分为CMDB、日志、生产DB、知识库四个方面。CMDB中文是配置管理数据库,存储与管理企业IT架构中设备的各种配置信息,主要是IT资产管理信息。日志数据保护了企业服务器上运行的各种系统产生的应用日志,系统日志、设备日志、数据库日志等数据,这部分数据是企业数据的核心。DB数据主要是所有IT系统的数据库信息,包括运维管理系统本身的数据库,数据库包含生产数据库、测试数据库、开发数据库三种类型。知识库主要存储日常开发、测试、运维管理中发生的事件、问题以及一些经典问题的解决和常用的解决方案,主要起到运维管理辅助的功能。

5.2 高可用的网站架构

言归正传公司决定选择阿里云作为基础设施,下一步就是如何将业务迁到云上,于是有了这篇文章。该文章篇幅较长,部分引用可能忘记标出来源。

betway必威官网手机版 6

描述:三台服务器对性能要求各不相同:应用服务器要处理大量业务逻辑,因此需要更快更强大的 CPU;数据库服务器需要快速磁盘检索和数据缓存,因此需要更快的硬盘和更大的内存;文件服务器需要存储大量文件,因此需要更大容量的硬盘。

对数据的维护和管理只管重要,特别是日志数据,对运维来说,通过日志可以比较准确全面地知道系统或是设备的运行情况,可以返查问题产生的原因,还原问题发生的整个过程。通过日志也可以提前预测系统可能要发生的问题或是故障,如系统安全日志,如果网络攻 击会在系统安全日志中有一定的体现。

5.3 高可用的应用

  • 通过负载均衡进行无状态服务的失效转移
  • 应用服务器集群的session管理
    • session复制
    • session绑定
    • 利用cookie记录 session
    • session服务器

二、传统IDC架构介绍及技术详解

1、云上对标架构介绍

betway必威官网手机版 7

下面简单介绍下,运维重点收集的日志数据有哪些部分以及用途。

5.4 高可用的应用

  • 分级管理
  • 超时设置
  • 异步调用
  • 服务降级 随机拒绝访问(twitter)
  • 幂等性设计

俗话说知己知彼百战不殆,我们要上云首先要充分了解自己业务和应用架构。然后在充分了解云上产品的特性,看看哪些产品可以直接被我们使用,哪些是需要我们的应用或架构做出调整的。下面我们来分析下智能车联网平台的相关架构。

1.1安全:

2.3. 使用缓存改善性能

系统日志

5.5 高可用的数据

  • CAP原理
    • 数据持久性
    • 数据可访问性
    • 数据一致性
      • 数据强一致性
      • 数据用户一致性
      • 数据最终一致性
  • 数据备份
  • 失效转移
    • 失效确认
    • 访问转移
    • 数据恢复

1、 业务架构

安全这块以前IDC机房的时候防范能力比较弱。为了解决安全防御瓶颈,我们改用云上云盾 DDOS高防IP

问题:随着用户逐渐增多,数据库压力太大导致访问延迟。

系统日志主要指的是操作系统的日志,主要在/var/log下的各种日志信息。包含系统操作日志、系统安全日志、定时任务日志等。系统日志是运维管理安全模块中审计的重要依据。一般默认的操作系统日志不能满足要求,需要对系统的参数进行修改,如为history命令加上时间戳、IP,并且长久保留历史等功能。并且对日志文件进行处理,不允许用户进行清空命令,只能追加。

5.6 高可用软件质量保障

  • 网站发布
  • 自动化测试
  • 预发布验证
  • 代码控制
    • 主干开发,分支发布
    • 分支开发,主干发布
  • 自动化发布
  • 灰度发布

下图为公司业务架构图。分为三大业务平台,其中核心是车联网平台,其次是能力资源平台和第三方合作平台。

  • web应用防火墙 堡垒机;

特征:由于网站访问和财富分配一样遵循二八定律:80% 的业务访问集中在 20% 的数据上。将数据库中访问较集中的少部分数据缓存在内存中,可以减少数据库的访问次数,降低数据库的访问压力。

应用日志

5.7 网站运行监控

  • 监控数据采集
    • 用户行为日志收集
    • 服务器性能检测
    • 运行数据报告
  • 监控管理
    • 系统报警
    • 失效转移
    • 自动优雅降级

betway必威官网手机版 8

可以通过配置DDoS高防IP,将攻击流量引流到高防IP,确保源站的稳定可靠。DDoS攻击防护峰值带宽 20 Gbps ~ 300 Gbps 。同时,提供按天弹性付费方案,按当天攻击规模灵活付费。

描述:缓存分为两种:应用服务器上的本地缓存和分布式缓存服务器上的远程缓存,本地缓存访问速度更快,但缓存数据量有限,同时存在与应用程序争用内存的情况。分布式缓存可以采用集群方式,理论上可以做到不受内存容量限制的缓存服务。

应用日志主要记录应用服务的健康运行情况以及业务操作的具体日志两部分。应用监控运行情况反应应用服务的健康状态,如果应用占用CPU或是内存过高或是忽高忽低不定,都可以通过分析应用日志结合业务操作日志得出结论。业务操作日志可以为业务审计提供主要依据。有一些系统喜欢把业务操作日志写到数据库中,这个也是需要注意的。不过不管在哪个地方,要求是不可缺少的,它为以后业务审计和问题返查提供依据。

六、永无止尽:网站的伸缩性架构

车联网核心平台:主要包含应用层、支持层、物理层等功能,其中应用层包含功能有用户注册,用户登录,导航功能,车友功能,车辆检测功能,轨迹查询功能以及其他娱乐功能。这些是APP的核心功能。其次是支持层的功能,例如运营管理系统,用户管理系统,车辆管理系统等辅助运营和运维的系统和工具。

云盾Web应用防火墙可以防御SQL注入、XSS跨站脚本、常见Web服务器插件漏洞、木马上传、非授权核心资源访问等OWASP常见攻击,并过滤海量恶意CC攻击,避免网站资产数据泄露,保障网站的安全与可用性。

betway必威官网手机版 9

数据库日志

6.1 网站伸缩性设计

  • 不同功能进行物理分离实现伸缩
  • 单一功能通过集群实现伸缩

能力资源平台:是指的公司具备向外界提供的资源和能力,可以利用开放平台将我们的能力提供给外部需要客户和合作伙伴。例如车队服务,数据应用,位置服务等等。

关于DDOS高防IP和web应用防火墙产品介绍请详见文章附录第7.1&第7.2小结。

2.4. 使用应用服务器集群

数据库日志主要反馈数据库的运行情况。通过监控和管理数据库的日志,及时了解数据库的运行情况,遇到问题及时解决等。可以通过数据库日志结合数据库系统自带的数据库如Oracle的系统视图v$开头,MySQL的performance_schema等。虽然数据库的一些信息不是存在日志中而是在数据库里面,但是也可以作为数据库日志的一部分进行管理和监控,已便我们及时知道数据库的监控状况,从而预防可能出现的问题。

6.2 应用服务器集群伸缩设计

  • http重定向负载均衡
  • Dns域名解析负载均衡
  • 反向代理负载均衡
  • ip负载均衡
  • 数据链路层负载均衡
  • 负载均衡算法
    • 轮询
    • 加权轮询
    • 随机
    • 最少链接
    • 原地址散列

第三方合作平台:是指通过调用第三方平台接口来完成为用户提供部分功能,例如保险服务,违章查询功能,停车位查找功能,4S店服务等功能。

另外选择用堡垒机来替换原来的开源堡垒机,相比开源的产品,阿里云堡垒机多了一些审计合规,高效易用,多协议支持,追溯回放等功能。

问题:使用缓存后,数据库访问压力得到有效缓解。但是单一应用服务器能够处理的请求连接有限,在访问高峰期,成为瓶颈。

设备日志

6.3 分布式缓存集群的伸缩性设计

  • Memcached分布式缓存集群的访问模型
  • Memcached分布式缓存集群的伸缩性挑战
  • 分布式缓存的一致性hash算法

2、应用架构

1.2负载均衡集群:

特征:多台服务器通过负载均衡同时向外部提供服务,解决单一服务器处理能力和存储空间不足的问题。

设备日志一般是一个比较容易忽略的地方,但设备日志往往可以反映设备的运行情况。交换机故障,防火墙故障等设备故障都可能引起大面积的系统和服务故障。所以设备日志一定要收集,分析和监控预警。常用的设备日志有交换机日志、防火墙日志、网络安全设备日志等。

6.4 数据存储服务器集群的伸缩性设计

  • 关系数据库集群的伸缩性设计
  • Nosql数据库的伸缩性设计

下图为应用架构,主要分为客户端接入层,负载均衡集群,应用服务器集群,缓存集群,消息队列集群,分布式服务集群,数据存储集群,运维管控集群等。

为了解决负载均衡以及网络扩容瓶颈,我们改用云上SLB负载均衡。阿里云的SLB负责均衡提供四层(TCP协议和UDP协议)和七层(HTTP和HTTPS协议)的负载均衡服务。四层采用开源软件LVS实现负载均衡,并根据云计算需求对其进行了个性化定制。七层采用Tengine实现负载均衡。Tengine是由淘宝网发起的Web服务器项目,它在Nginx的基础上,针对有大访问量的网站需求,添加了很多高级功能。更多关于阿里云负载均衡介绍请详见文章附录第2.2小结。

描述:使用集群是系统解决高并发、海量数据问题的常用手段。通过向集群中追加资源,提升系统的并发处理能力,使得服务器的负载压力不再成为整个系统的瓶颈。

这么多的日志,运维要通过各种手段完成日志的收集、过滤分析、可视化展示,那么如何实现这些功能呢,方法很多,例如ELK集成套件(Elasticsearch,Logstash,Kibana)就可以轻松实现日志数据的实时收集、分析传输以及图形化展示。

七、随机应变:网站的可扩展性架构

betway必威官网手机版 10

负载均衡实例规格选型:

betway必威官网手机版 11

Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

7.1 构建可扩展性的网站架构

1.1 数据流介绍

根据当前业务量来看五百万用户,最高峰期间并发最大连接为50万,推荐使用

2.5. 数据库读写分离

Logstash主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,Server端负责将收到的各节点日志进行过滤、修改等操作在一并发往Elasticsearch上去。

7.2 利用分布式消息队列降低系统耦合性

  • 事件驱动架构
  • 分布式消息队列

数据采集:

性能保障型规格5(slb.s3.medium)最大连接数50w,每秒新建连接数5w,QPS支持3w。完全满足当下的企业需求,如果后续业务和用户规模继续增长,仍然可以在线扩容到更高级别规格的SLB实例。如果未来达到千万级用户规模,需要大于100万规格的实例可以联系阿里云客户经理开通。

问题:网站使用缓存后,使绝大部分数据读操作访问都可以不通过数据库就能完成,但是仍有一部分读操作和全部的写操作需要访问数据库,在网站的用户达到一定规模后,数据库因为负载压力过高而成为网站的瓶颈。

Kibana也是一个开源和免费的工具,Kibana可以为Logstash和ElasticSearch提供的日志分析友好的Web界面,可以帮助汇总、分析和搜索重要数据日志。

7.3 利用分布式服务打造可复用的业务平台

  • web service与企业级分布式服务
  • 大型网站分布式服务的需求与特点
    • 负载均衡
    • 失效转移
    • 高效的远程通信
    • 整合异构系统
    • 对应用最少侵入
    • 版本控制
    • 实时监控
  • 分布式服务框架设计

首先通过车载智能终端设备收集汽车相关行驶数据,然后通过物联网卡(即sim卡)上报到平台,平台经过协议解析服务将数据转换成可读的数据并进行存储下来,并且需要把原始数据也保存一份。

betway必威官网手机版 12

特征:目前大部分的主流数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库服务器的数据更新同步到一台服务器上。网站利用数据库的主从热备功能,实现数据库读写分离,从而改善数据库负载压力。

另外,还有Filebeat可以替换Logstash作为日志收集工具,Filebeat隶属于Beats。目前Beats包含四种工具:PacketbeatTopbeat(搜集系统、进程和文件系统级别的CPU和内存使用情况等数据)FilebeatWinlogbeat(搜集Windows事件日志数据)

7.4 可扩展的数据结构

数据处理:

1.3应用服务器集群:

描述:应用服务器在写操作的时候,访问主数据库,主数据库通过主从复制机制将数据更新同步到从数据库。这样当应用服务器在读操作的时候,访问从数据库获得数据。为了便于应用程序访问读写分离后的数据库,通常在应用服务器端使用专门的数据访问模块,使数据库读写分离的对应用透明。

可以看到,Beats涵盖了所有收集日志数据的各个方面。

7.5 利用开放平台建设网站生态圈

  • api接口
  • 协议转移
  • 安全
  • 审计
  • 路由
  • 流程

将解析后的数据放到消息队列中,后端的各种应用服务开始处理不同的数据,例如轨迹服务会去消息队列中取出轨迹数据进行分析和处理。从而生成用户的行驶轨迹等功能;再例如故障检测服务,通过订阅消息队列中有关汽车传感器数值进行分析和判断该车辆是否存在故障。

应用服务器采用阿里云ECS云服务器,来部署应用环境。之前提到运行环境主要为JAVA环境和PHP环境,还有少部分Node.js环境。

betway必威官网手机版 13

那么要如何使用ELK呢,根据日志量的不同,对应的ELK架构也不尽相同,看下面几个常见架构:

8、固若金汤:网站的安全架构

数据分析:

Java环境:采用Centos7 JDK1.7 Tomcat7

2.6. 反向代理和 CDN 加速

betway必威官网手机版 14

8.1 道高一尺魔高一丈的网站应用攻击与防御

  • xss攻击
    • 消毒
    • httponly
  • 注入攻击
    • 开源
    • 错误回显
    • 盲注
    • 消毒
    • 参数绑定
  • csrf攻击
    • 表单token
    • 验证码
    • referer check
  • 其他攻击和漏洞
    • error code
    • html注释
    • 文件上传
    • 路径遍历
  • web应用防火墙
  • 网站安全漏洞扫描

部分行车数据经过各个模块的处理最终保存在数据库中,通过利用大数据分析进行特定场景的离线分析,例如驾驶行为分析服务通过分析用户每天驾驶行为(例如急加速,急减速,急转弯等行为)来判断用户的驾驶行为是否良好,等等。

PHP环境:采用Centos7 PHP5.6.11

问题:中国网络环境复杂,不同地区的用户访问网站时,速度差别也极大。

此架构主要是将Logstash部署在各个节点上搜集相关日志、数据,并经过分析、过滤后发送给远端服务器上的Elasticsearch进行存储。Elasticsearch再将数据以分片的形式压缩存储,并提供多种API供用户查询、操作。用户可以通过Kibana Web直观的对日志进行查询,并根据需求生成数据报表。

8.2 信息加密技术及密钥安全管理

  • 单向散列加密
  • 对称加密
  • 非对称加密
  • 密钥安全管理

数据展示:

Node.js环境:采用Centos7 Node8.9.3

特征:采用 CDN 和反向代理加快系统的静态资源访问速度。

此架构的优点是搭建简单,易于上手。缺点是Logstash消耗系统资源比较大,运行时占用CPU和内存资源较高。另外,由于没有消息队列缓存,可能存在数据丢失的风险。此架构建议供初学者或数据量小的环境使用。

8.3 信息过滤与反垃圾

  • 文本匹配
  • 分类算法
  • 黑名单

用户通过下载并安装手机APP,注册登录App后用户可以在APP 上查看自己车辆的位置,轨迹查询,油耗,车辆故障以及交友,娱乐等功能。

有2种方式快速构建应用运行环境:

描述:CDN 和反向代理的基本原理都是缓存,区别在于 CDN 部署在网络提供商的机房,使用户在请求网站服务时,可以从距离自己最近的网络提供商机房获取数据;而反向代理则部署在网站的中心机房,当用户请求到达中心机房后,首先访问的服务器时反向代理服务器,如果反向代理服务器中缓存着用户请求的资源,就将其直接返回给用户。

由此衍生出来了第二种架构:

8.4 电子商务风险控制

  • 风险
    • 账号风险
    • 买家风险
    • 卖家风险
    • 交易风险
  • 风控
    • 规则引擎
    • 统计模型

1.2 应用架构介绍

1) 购买ECS服务器后安装操作系统,然后手动部署应用环境,最后将应用环境构建成新的系统镜像。

betway必威官网手机版 15

betway必威官网手机版 16

防火墙:

2) 购买ECS云服务器后直接选择云市场的已经封装好的应用环境镜像即可。

2.7. 分布式文件系统和分布式数据库

此架构主要特点是引入了消息队列机制,位于各个节点上的Logstash Agent(一级Logstash,主要用来传输数据)先将数据传递给消息队列(常见的有Kafka、Redis等),接着,Logstash Server(二级Logstash,主要用来拉取消息队列数据,过滤并分析数据)将格式化的数据传递给Elasticsearch进行存储。最后,由Kibana将日志和数据呈现给用户。由于引入了Kafka缓存机制,即使远端Logstash Server因故障停止运行,数据也不会丢失,因为数据已经被存储下来了。

当前在传统IDC机房中应用的最前端是一台防火墙,用来防御一些常见的攻击和访问控制的操作。因为防火墙并不是什么高端防火墙所以防御能力有限。因公司业务快速发展,期间已经更换过2次防火墙,分别是用户规模在10万和100万的时候。每次更换防火墙对业务都会造成不同程度的停服时间。用户体验很不好,但是没办法因为业务刚开始的时候用户不多,系统设计之初为10万级别,用户从0到10万规模用了1年左右时间。但是从10万到100万用户规模只有了7个月时间,用户增非常快,无奈又更换防火墙到能支撑到500万用户规模。再这么发展下去就不敢想象了。一是硬件设备成本越来越贵,往往投入几十万但是因为业务发展超出预期,刚买来的设备使用不到1年,又面临瓶颈又得换,真是费钱又费力。二是防火墙是所有业务的入口,如果防火墙出问题业务必然会挂,更换会导致业务停服,不更换防火墙会挂还是会停服。

betway必威官网手机版 17

问题:随着大型网站业务持续增长,数据库经过读写分离,从一台服务器拆分为两台服务器,依然不能满足需求。

这种架构适合于较大集群、数据量一般的应用环境,但由于二级Logstash要分析处理大量数据,同时Elasticsearch也要存储和索引大量数据,因此它们的负荷会比较重,解决的方法是将它们配置为集群模式,以分担负载。

负载均衡集群:

产品选型

特征:数据库采用分布式数据库,文件系统采用分布式文件系统。

此架构的优点在于引入了消息队列机制,均衡了网络传输,从而降低了网络闭塞尤其是丢失数据的可能性,但依然存在Logstash占用系统资源过多的问题,在海量数据应用场景下,可能会出现性能瓶颈。

四层负载均衡集群采用LVS服务器,主要为后端的协议解析和数据处理服务提供负载均衡功能,因为单台协议解析服务最大每秒只能处理10000台车,所以lvs下挂了很多台数据采集服务器。这样可以满足每秒海量车辆同时在线。

ECS产品根据业务场景和使用场景,ECS实例可以分为多种规格族。同一业务场景下,还可以选择新旧多种规格族。同一个规格族里,根据CPU和内存的配置,可以分为多种不同的规格。ECS实例规格定义了实例的CPU和内存的配置(包括CPU型号、主频等)这两个基本属性。根据此前车联网行业特性来看,前端web应用推荐ecs.c5.xlarge(4核8G)规格实例,而后端应用推荐ecs.g5.xlarge(4核16G)规格实例。

描述:分布式数据库是数据库拆分的最后方法,只有在单表数据规模非常庞大的时候才使用。不到不得已时,更常用的数据库拆分手段是业务分库,将不同的业务数据库部署在不同的物理服务器上。

最后,还有第三种架构:

七层负载均衡集群采用Nginx服务器,主要为后端web应用服务器提供负载均衡和反向代理功能,此外Nginx支持正则表达式和其他功能。

betway必威官网手机版 18

betway必威官网手机版 19

betway必威官网手机版 20

这一块我们目前遇到瓶颈是在IDC网络带宽扩容上,目前我们IDC机房如果对需要对网络带宽扩容需要提申请报备,内部走流程做完在到运营商那里走流程,时间往往比较长,最快也要1-2天,无法及对网络带宽做到快速扩容,当然也就无法应对突发流量增长。如果长期购买大量闲置带宽,本身是一种资源的浪费。毕竟目前国内优质的网络带宽资源成本还是相当高的。作为公司的运维同学,如何为公司开源节流,把每一分钱用在刀刃上是责任是义务更是一种能力。

betway必威官网手机版 21

2.8. 使用 NoSQL 和搜索引擎

这个架构是在上面第二个架构基础上改进而来的,主要是将前端收集数据的Logstash Agent换成了Filebeat,消息队列使用了Kafka集群,然后将Logstash和Elasticsearch都通过集群模式进行构建,此架构适合大型集群、海量数据的业务场景,它通过将前端Logstash Agent替换成Filebeat,有效降低了收集日志对业务系统资源的消耗。同时,消息队列使用Kafka集群架构,有效保障了收集数据的安全性和稳定性,而后端Logstash和Elasticsearch均采用集群模式搭建,从整体上提高了ELK系统的高效性、扩展性和吞吐量。

应用服务器集群:

1.4分布式服务集群:

问题:随着网站业务越来越复杂,对数据存储和检索的需求也越来越复杂。

用大数据思维做运维监控

应用服务器操作系统统一采用Centos7,运行环境主要为JAVA环境和PHP环境,还有少部分Node.js环境

分布式服务集群,延用Dubbo ZooKeeper分布式服务框架。采用7台8核16G SSD磁盘200G ecs.c5.2xlarge规格ECS实例用于构建zookeeper集群。Zookeeper集群节点必须是奇数,因为在zookeeper集群中只要有超过一半的机器是正常工作的,那么整个集群对外就是可用的。

特征:系统引入 NoSQL 数据库及搜索引擎。

大数据分析最早就来源于运维人的日志分析,到逐渐发展对各种业务的分析,人们发现这些数据蕴涵着非常大的价值,通过实时监测、跟踪研究对象在互联网上产生的海量行为数据,进行挖掘分析,揭示出规律性的东西,提出研究结论和对策。这就是大数据的用途。

Java环境:采用Centos7 JDK1.7 Tomcat7

1.5缓存集群:

描述:NoSQL 数据库及搜索引擎对可伸缩的分布式特性具有更好的支持。应用服务器通过统一数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。

同样,通过大数据分析,我们可以得到各种指标,例如:在业务层面,如团购业务每秒访问数,团购券每秒验券数,每分钟支付、创建订单等在应用层面,每个应用的错误数,调用过程,访问的平均耗时,最大耗时,95线等在系统资源层面:如CPU、内存、Swap、磁盘、Load、主进程存活等在网络层面: 如丢包、ping存活、流量、TCP连接数等

PHP环境:采用Centos7 PHP5.6.11

缓存集群采用阿里云数据库Redis版,传统自建Redis数据库通常存在集群节点扩容复杂,管理维护难等问题。所以我们改用云上数据库 Redis 版来替代,它具有性能卓越,弹性扩容,数据安全性高,可用性高,秒级监控,简单易用等优势。云数据库Redis版支持按量付费和包年包月两种模式,按量付费可转为包年包月模式,反之则不可以。可根据自己的需求自主选择更多关于云数据库Redis介绍请详见文章附录第3.2小结。

betway必威官网手机版 22

而这些指标,刚好是运维特别需要的东西。通过大数据分析出的这些指标,可以解决如下方面的问题:系统健康状况监控查找故障根源系统瓶颈诊断和调优追踪安全相关问题

Node.js环境:采用Centos7 Node8.9.3

1.6消息队列集群:

2.9. 业务拆分

那么如何用大数据思维做运维呢,大数据架构上的一个思维就是:提供一个平台让运维方便解决这些问题, 而不是,让大数据平台去解决出现的问题。

目前我们的应用开发语言有java 有php 有Python,web环境有tomcat,nginx,Node.js等环境,应用发布自动化程度不够高,大多还是脚本方式进行应用升级发布。通常应用发布升级工作都在半夜进行,加班非常严重。运维重复工作量非常大,导致运维成就感很低。大部分时间不是在解决问题就是在升级发布过程中。没有时间提升自身能力。运维人员开始陷入迷茫找不到方向,运维人员流失率逐渐增高,如果不得到有效解决,必将陷入恶性循环。

消息队列采用阿里云的消息队列kafka服务,因为之前开源的kafka消息队列也经常遇到各种问题,也没有相应的能力去修复bug,选择阿里云的消息队列服务之后就不用担心这些问题,因为阿里云有一支专家团队在维护它的日常稳定运行,如出现官方bug他们有能力第一时间修复bug。更多关于阿里云消息队列kafka介绍请详见文章附录第8.2小结。

问题:大型网站的业务场景日益复杂,分为多个产品线。

基本的一个大数据运维架构是这样的:

分布式服务集群:

1.7流计算集群:

特征:采用分而治之的手段将整个网站业务分成不同的产品线。系统上按照业务进行拆分改造,应用服务器按照业务区分进行分别部署。

betway必威官网手机版 23

分布式服务集群,采用Dubbo ZooKeeper搭建的分布式服务框架。其中zookeeper的服务器需要保持奇数目的是便于选举。

云上流计算采用阿里云的流计算服务,相较于其他流计算产品,阿里云流计算提供一些极具竞争力的产品优势,用户可以充分利用阿里云流计算提供的产品优势,方便快捷的解决自身业务实时化大数据分析的问题。产品优势,例如强大的实时处理能力、托管的实时计算服务、良好的流式开发体验、低廉的人力和集群成本。更多关于阿里云流计算介绍请详见文章附录第6.1小结。

描述:应用之间可以通过超链接建立关系,也可以通过消息队列进行数据分发,当然更多的还是通过访问同一个数据存储系统来构成一个关联的完整系统。

对于运维的监控,利用大数据思维,需要分三步走:获取需要的数据过滤出异常数据并设置告警阀值通过第三方监控平台进行告警

Dubbo也是比较流行的JAVA应用的分布式服务框架,它是阿里开源的分布式服务框架。但是在使用过程中也发现由于没有一个比较好用的Dubbo监控软件,导致应用出现故障时排查故障很费力,如果有一套比较强大的链路跟踪监控系统对于那分布式应用来说是锦上添花了。

betway必威官网手机版 24

纵向拆分:将一个大应用拆分为多个小应用,如果新业务较为独立,那么就直接将其设计部署为一个独立的 Web 应用系统。纵向拆分相对较为简单,通过梳理业务,将较少相关的业务剥离即可。

所有系统最可靠的就是日志输出,系统是不是正常,发生了什么情况,我们以前是出了问题去查日志,或者自己写个脚本定时去分析。现在这些事情都可以整合到一个已有的平台上,我们唯一要做的就是定义分析日志的的逻辑。

缓存集群:

1.8数据存储集群:

横向拆分:将复用的业务拆分出来,独立部署为分布式服务,新增业务只需要调用这些分布式服务横向拆分需要识别可复用的业务,设计服务接口,规范服务依赖关系。

好啦,这就是今天要给大家介绍的2019核心运维技能啦,抓住时机,开始全新学习吧!2019,你的全新开始!!!

缓存集群采用的Redis3.0 Cluster集群模式,该架构中有10套Redis缓存集群,每个集群的内存从60G-300G不等。缓存服务器是典型的内存型主机,对CPU开销不大,如果要做持久化,对磁盘IO要求较高,磁盘建议使用SSD。

MySQL集群:采用的是阿里云数据库RDS之MySQL版

betway必威官网手机版 25

对于缓存最大痛点在于运维,经常出现因磁盘IO瓶颈导致的redis集群故障,以及因用户快速增长需要经常对Redis集群进行在线扩容等。而且Redis运维都是只能是手动运维,工作量大,且容易误操作。因Redis集群而导致的故障不计其数。当然也跟当时的应用强依赖相关,Redis集群故障就导致整个应用也挂了,这是应用系统设计的缺陷。

阿里云数据库 MySQL 版是基于 Alibaba 的 MySQL 源码分支,经过双 11 高并发、大数据量的考验,拥有优良的性能和吞吐量。除此之外,阿里云数据库 MySQL 版还拥有经过优化的读写分离、数据压缩、智能调优等高级功能。当前 RDS for MySQL 支持 5.5、5.6 和 5.7 版本。请详见文章附录第3.1小结。

2.10. 分布式服务

消息队列集群:

RDS与自建数据库对比优势:

问题:随着业务越拆越小,存储系统越来越庞大,应用系统整体复杂程度呈指数级上升,部署维护越来越困难。由于所有应用要和所有数据库系统连接,最终导致数据库连接资源不足,拒绝服务。

由于在高并发环境下,系统来不及同步处理,请求往往会发生堵塞,比如说,大量的insert,update之类的请求同时到达MySQL,直接导致无数的行锁表锁,甚至最后请求会堆积过多,从而触发too many connections错误。通过使用消息队列,我们可以异步处理请求,从而缓解系统的压力。该架构中采用的是开源的Kafka作为消息队列,它是分布式的,基于发布/订阅的消息系统。具有高吞吐率,同时支持实时数据处理和离线数据处理。

综合性能对比

特征:公共业务提取出来,独立部署。由这些可复用的业务连接数据库,通过分布式服务提供共用业务服务。

这个消息队列的痛点也是刻骨铭心,kafka是开源软件,曾经遇到几次故障都是跟kafka有关系,在0.8.1,遇到kafka删除topic的功能存在bug,随后升级到09版本,不巧又遇到09版本kafka client的BUG,这个bug导致多分区多consumer时rebalancing可能会导致某个分区阻塞。后来升级kafka10版本,但是10版本的消费方式和08版本有差别,没办法又对消费程序进行改造。总之在我们使用kafka过程中遇到太多kafka的bug而导致的故障了。而我们中小企业技术能力有限没有能力第一时间修复这种开源软件的bug,处于非常被动和无奈的局面。

![20180831141508]()

betway必威官网手机版 26

流计算集群:

成本对比

  1. 大型网站架构模式

流计算采用的阿里巴巴开源的Jstorm,利用流计算平台可以对实时数据进行处理和分析。该架构中使用2套流计算集群,每个流计算集群规模在8台高性能服务器。并且每个集群中包括2个supervisor管控节点,一主一备实现流计算高可用。流计算主要用于车辆告警,行驶轨迹等一些实时计算场景。

![1]()

betway必威官网手机版,3.1. 分层

数据存储集群:

betway必威官网手机版 27

大型网站架构中常采用分层结构,将软件系统分为应用层、服务层、数据层:

数据存储集群包含数据库集群和分布式文件系统。

HBase集群:采用的是阿里云数据库HBase版

应用层 - 负责具体业务和视图展示。如网站首页及搜索输入和结果展示。

数据库集群又包含多种数据库,例如MySQL数据库集群,MongoDB集群,Elasticsearch集群。

传统架构中的MongoDBS用来存储车辆上报的原始数据的,这些数据通常情况下写多读少,原始数据的保存可以有利于特殊情况对问题的追溯。或者是数据丢失的情况下可以用原始数据来进行弥补。原来MongoDB集群在达到一定规模之后性能出现断崖下降,因为对MongoDB掌握不够深,没有正确使MongoDB导致。这里改用云上数据库HBase版来替换原来的MongoDB集群。HBase的高并发大数据量等特性非常适合海量数据存储,业务大屏,安全风控,搜索等场景。

服务层 - 为应用层提供服务支持。如用户管理服务、购物车服务等。

MySQL集群:公司目前拥有几十套大大小小的数据库集群,有的采用一主2从的高可用架构,有的是双主架构,这些MySQL数据库主要用于业务数据库。随着公司业务快速发展以及用户规模的快速增长,对数据库的性能要求也越来越高,从原来的高配虚拟机到后来的高配物理机,后来物理机的本地磁盘IO也满足不了要求,接着就开始上给数据库服务上SSD硬盘。现在勉强能维持着,在不久的将来,即便是目前最高配置的单台数据库服务器性能也不能满足的时候,我们怎么办?数据库团队需要提前掌握和了解未来的解决方案是什么,比如说分布式关系型数据库?

HBase主要优势有两点:1)扩展性要强,HBase是专门的列式数据库,具有高并发,低时延的处理能力,支持数据从200G~10PB都适合。数据存储在HDFS,默认具备多副本可靠性和自动扩展能力。2)HBase是天生的hadoop生态系统中的组件,选择HBase,就是选择整个Hadoop生态。云HBase自带的Phoneix组件,支持SQL能力,二级索引等,非常适合IoT实时业务,并且支持带少量更新的TP操作。HBase和MapReduce,spark天然的结合,同一份数据,支持实时业务的同时,可以完成大数据的分析,以及还有时序组件OpenTSDB等。更多关于云数据库HBase介绍请详见文章附录第3.4小结。

应用层 - 提供数据存储访问服务。如数据库、缓存、文件、搜索引擎等。

MongoDB集群:公司目前有3套MongoDB集群,主要用来存储车辆上报的原始数据,和解析后的车辆状态、点火、告警、轨迹等数据。采用的是副本集,通常由只是3个节点组成。其中一个是主节点,负责处理客户端请求,其余都是从节点,负责复制主节点上的数据。

为什么我们不自建HBase而选择云数据库HBase呢?云HBase和自建betway必威官网手机版 28

分层架构的约束:禁止跨层次的调用(应用层直接调用数据层)及逆向调用(数据层调用服务层,或者服务层调用应用层)。

Elasticsearch集群:ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。该架构中ES集群采用3个节点,这个3个节点都是候选主节点。这里我们主要用于轨迹查询,信息检索、日志系统等场景。

自建和服务更多的对比 ,可以参考以下文章:

分层结构内部还可以继续分层,如应用可以再细分为视图层和业务逻辑层;服务层也可以细分为数据接口层和逻辑处理层。

NFS分布式文件系统:

3.2. 分割

因为有大量的各类应用图片和用户上传的图片需要保存,所有需要一个高性能的文件存储,这里采用自建NFS分布式文件系统。

Elasticsearch集群:采用阿里云的Elasticsearch

将不同的功能和服务分割开来,包装成高内聚低耦合的模块单元。这有助于软件的开发和维护,便于不同模块的分布式部署,提高网站的并发处理能力和功能扩展能力。

但是自建NFS分布式文件系统由于公司投入硬件设备有限,导致本身的扩展性是相当差的,而且需要停机相当影响业务。访问速度因客户端增加而变慢。这是个很影响用户体验的痛点,必须改造。

传统自建Elasticsearch集群存在性能不足,集群节点扩容复杂,管理维护难度大等问题,因此我们改用云上Elasticsearch服务,它具有丰富的预置插件(IK Analyzer,pinyin Analyzer,smart Chinese Analysis Plugin,Mapper Attachments Type plugin等等),还包括集成X-pack插件提供企业级权限管控,实时监控等强大功能。它的特点和优势如下:

3.3. 分布式

运维管控集群:

 分布式的实时文件存储,每个字段都被索引并可被搜索

大于大型网站,分层和分割的一个主要目的是为了切分后的模块便于分布式部署,即将不同模块部署在不同的服务器上,通过远程调用协同工作。

在复杂的系统架构和海量的服务器环境中,需要合适的运维管控软件来提升运维的工作效率。

 分布式的实时分析搜索引擎

分布式意味可以用更多的机器工作,那么 CPU、内存、存储资源也就更丰富,能够处理的并发访问和数据量就越大,进而能够为更多的用户提供服务。

监控:采用的是Zabbix开源监控系统;

 商业版X-pack插件,提供企业级权限管控、实时系统监控等强大服务

分布式也引入了一些问题:

代码管理:采用gitlab进行代码托管;

 可弹性扩展到上百台服务器规模,处理PB级结构化或非结构化数据

服务调用必须通过网络,网络延迟会影响性能

堡垒机:采用的是Jumpserver开源堡垒机,用于运维人员的操作审计和提升用户登录的安全性;

 支持IK analyzer插件

服务器越多,宕机概率也越大,是可用性降低

日志查询和管理:采用ELK,开源日志系统;

 Elastic官方技术支持团队7*24小时技术支持

数据一致性非常困难,分布式事务也难以保证

持续集成:我们采用的是Jenkins,它是一款开源持续集成工具,利用Jenkins可以实现代码构建,自动部署,自动测试等持续部署。

1.9文件存储集群:

网站依赖错综复杂,开发管理维护困难

配置管理系统:提供应用的集中式配置管理,是基于java开发的配置管理。

文件存储:采用阿里云对象存储OSS

常用的分布式方案:

虽然当前的运维体系还算比较规范,但是大多数运维工具都是开源的产品,只能满足部分功能需求。随着运维管控需求的增加,需要的熟悉的开源产品也越多。运维管理不够统一,运维人员通常需要熟悉和掌握很多运维系统,导致新手很难入手。

原来自建的NFS文件系统,在扩展和访问速度方面随着文件数量的增加响应也越来越慢,这一块采用阿里云的OSS CDN解决方案,应用也需要进行小小的改造。

分布式应用和服务

1.3 传统IDC架构痛点

文件系统迁移改造方案请看2.2章节。

分布式静态资源

随着用户规模与日俱增,慢慢的这套架构也暴露出很多问题来。

阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。它具有与平台无关的RESTful API接口,能够提供99.999999999%(11个9)的数据可靠性和99.99%的服务可用性。可以使用阿里云提供的API/SDK接口或者OSS迁移工具轻松地将海量数据移入或移出阿里云OSS。数据存储到阿里云OSS以后,推荐选择标准类型(Standard)的阿里云OSS服务作为移动应用、大型网站、图片分享或热点音视频的主要存储方式,也可以选择成本更低、存储期限更长的低频访问类型(Infrequent Access)和归档类型(Archive)的阿里云OSS服务作为不经常访问数据的备份和归档。更多关于阿里云对象存储服务OSS介绍请详见文章附录第4小结。

分布式数据和存储

痛点1:运维自动化程度低,运维工作繁重且无意义

1.10 大数据计算平台

分布式计算

我们公司运维大部分时间还是处于人肉运维,脚本运维时代,运维自动化程度低,原因一是公司业务发展太快,运维人员每天大部分时间不是在处理应用升级就是在解决系统故障,根本没有时间去做运维自动的工作。其次运维开发方向的人才比较难招,也可能是开的薪水没有竞争力。总之各种原因导致我们公司在运维自动化进程上比较慢,有恶性循环的趋势。

大数据计算平台:采用阿里云大数据计算服务

3.4. 集群

痛点2:没有弹性扩容缩容能力,应对流量高峰代价高

智能车联网平台每天会采集海量车行驶数据,例如车辆发动机状态,驾驶行为,油耗,公里数,行驶轨迹等等,我们需要对这些海量数据进行加工和分析。例如用户每天行驶里程统计,油耗统计,用户驾驶行为月报告等等。因初期数据量相对较小,使用Kettle进行抽取数据等工作,ETL的工作大部分在MySQL数据仓库中完成。多种数据源使用Presto(集群)作为查询中间键进行相应的数据分析。但随着业务的疯狂增长,数据表单表达到数亿后,磁盘容量达几百GB时,数据要求的复杂度逐步提升,使用MySQL作为基础数据仓库的基石已经不足以应付,常出现查询响应时间等待过长,甚至内存崩溃导致执行失败的情况,极大的影响了工作效率。所以云上我们改用阿里云MaxCompute大数据计算服务来构建我们公司大数据开发和分析平台。MaxCompute能够为我们提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决海量数据计算问题,有效帮助我们公司降低成本,并保障数据安全。Dataworks则提供了一站式的数据同步,数据开发,数据管理和数据运维等功能。更多关于阿里云大数据计算服务介绍请详见文章附录第6.2小结。

集群即多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务。

因为车联网行业的一个特点就是早晚高峰和节假日期间车辆在线率飙升,然后进入平稳期。一天24小时有6个小时是早晚高峰,其余18个小时是正常流量,通常高峰期流量是平常的3-5倍。传统IDC通常需要几天时间才能完成一次线上扩容,根本不可能应对突发性的流量暴涨的情况。我们为了保障系统稳定性以及保障用户体验,只能是投入比平时多几倍的资源,整体资源利用率不到30%,产生巨大资源浪费。

1.11运维管控集群:

集群需要具备伸缩性和故障转移机制:伸缩性是指可以根据用户访问量向集群添加或减少机器;故障转移是指,当某台机器出现故障时,负载均衡设备或失效转移机制将请求转发到集群中的其他机器上,从而不影响用户使用。

痛点3:运维工具零散、运维工作复杂繁琐

之前的传统运维,基本都是靠人肉运维,脚本运维,运维自动化程度很低,导致故障频发,故障定位难,我们的运维同学大量时间花在了重复的升级发布工作上,花在了填坑以及解决故障上,长此以往运维同学自身发展受限,信心受挫,人员流失比例高的恶性循环的结果。我们迫切希望这种状况可以得到较好的解决。对比之前大量采用开源的监控工具相比,大部分阿里云的产品本身就自带web控制台,也有一些比较实用的运维管控产品,例如云监控,堡垒机,数据管理,数据迁移,容器服务,域名等等。以前的运维痛点可以通过阿里云的运维产品可以很好的得到解决。

3.5. 缓存

我们公司的运维管控软件绝大部分是以开源为主的运维软件,种类繁多,例如开源跳板机Jumpserver,zabbix监控系统,持续集成Jenkins,自动化运维Ansible等等,这些软件都需要配置独立的登录账号。导致账号繁多,管理非常不方便,运维人员需要操作和熟悉很多开源软件。例如zabbix监控在规模不大的时候基本能应付日常的监控告警,但是随着服务器的增加导致监控项的急剧增加之后,数据库性能跟不上,告警延迟或者误报的情况非常多。一些定制监控需求和监控项目仍需要单独开发。所以运维工具种类繁多也直接导致运维工作的复杂繁琐。

日志管理:采用阿里云日志服务解决日志收集,日志分析,日志搜索等问题。

缓存就是将数据存放在距离最近的位置以加快处理速度。缓存是改善软件性能的第一手段。

痛点4: 硬件设备采购周期长,成本高,扩展性差

阿里云日志服务是针对日志类数据的一站式服务,在阿里巴巴集团经历大量大数据场景锤炼而成。无需开发就能快捷完成日志数据采集、消费、投递以及查询分析等功能,提升运维、运营效率,建立 DT 时代海量日志处理能力。具有全托管,实时性强,生态丰富,完整API等特点。更多关于阿里云日志服务介绍请详见文章附录第5.7小结。

网站应用中,缓存除了可以加快数据访问速度以外,还可以减轻后端应用和数据存储的负载压力。

我们公司应用刚上线的时候系统各方面的设计比较简单,横向扩展能力不强,随着业务爆发式增长,因为我们很多资源无法及时扩展,导致系统故障,用户体验降低。例如文件存储,刚开始的时候我们是自建的NFS文件存储,用于存放用户头像,驾驶证,朋友圈等图片文件。由于各方面原因当初没有投入足够的资源建设,导致一段时间之后存储就不够用,读写性能下降,用户访问延迟等等。最痛的一点是硬件设备的扩展周期长,从提出采购需求到最后的实施硬件扩展,往往需要5-10天甚至更长,因为这期间需要经历采购审批流程,物流发货,到货验收,机房上架等。

弹性扩容:采用阿里云弹性伸缩ESS,低成本解决日常以及节假日流量高峰问题。

常见缓存手段:

痛点5:基础设施可靠性差,故障频发

在车联网行业中有个比较明显的行业特性就是早晚高峰是平时流量的3倍甚至更高,但是平常要应付这么高并发的流量意味着资源投入也要3倍以上。在传统IDC架构中,我们通常是按照平常最高峰流量的1.2倍(1.2倍是为应对特殊情况预留的buffer)来准备相应的服务器资源,在平时资源闲置比较明显,资源利用率不到30%,意味着平常可能100台应用服务器就足够了,但是为了应对高峰流量不出问题我们需要准备360台服务器应对6个小时的高峰流量,其余18小时可能只需要100台服务器。为了确保系统稳定,提升用户体验,当时我们只能投入比平时多几倍的服务器资源。所以在云上我们采用阿里云弹性伸缩服务,它是一种根据业务需求和策略,自动调整其弹性计算资源的管理服务。在满足业务需求高峰增长时无缝地增加ECS实例,并在业务需求下降时自动减少ECS实例以节约成本。更多关于阿里云弹性伸缩服务介绍请详见文章附录第1.2小结。

CDN

传统IDC底层基础设施通常都是企业自己搭建的,这里会有很多原因导致底座基础设施不稳定的因素。例如企业一开始对硬件投入不重视,使用廉价的设备;再例如工程师技术能力有限,搭建的基础设施架构稳定性差强人意;例如遇到运营商网络质量不稳定,也没有BGP接入,这个时候也只能干瞪眼了。另外我们的IDC机房一年当中遇到过3次意外断电,导致大面积系统瘫痪。所以说底层基础设施不稳定会导致后续应用经常出现莫名其妙的故障,而且无法及时定位,找不到原因。随时会出现意想不到的问题,每天都是提心吊胆的。

域名管理:采用阿里云域名服务,一站式解决域名购买,管理,备案等问题。

反向代理

痛点6:安全防护能力弱,易受攻击

以前的老万网被阿里云收购之后,变更为阿里云域名服务,它集域名注册、交易、解析、监控和保护为一体的综合域名管理平台。更多关于域名服务介绍请详见文章附录第5.6小结。

本地缓存

随着公司快速发展和用户规模的增长的同时,很容易被别有用心的人盯上,记得有一天下午3点左右,突然遭受到大量DDOS攻击,我们的防火墙一下就被打垮了,系统瞬间就瘫痪了,没有办法,什么都做不了,防火墙已经跪了,登不上去了,一直持续几个小时,业务也瘫痪了几个小时,一点办法没有。我们的安全防护能力真的很弱,也跟成本有关,高端的防火墙买不起,还有运营商的带宽也很贵。

持续集成:传统应用升级发布主要靠的人肉升级或者脚本升级,后来尝试过利用开源的Jenkins docker方式构建一个简单的应用发布系统,我们希望到云上可以继续保持这种发布方式,所以改用云上CodePipeline,阿里云CodePipeline是一款提供持续集成/持续交付能力,并完全兼容Jenkins的能力和使用习惯的SAAS化产品。它无需运维,开箱即用,全量兼容Jenkins插件,支持ECS,容器服务持续部署,快速上手。更多关于codepipeline介绍请详见文章附录第5.9小结。

分布式缓存

作者:云攻略小攻

容器管理:采用阿里云容器服务,一站式解决容器生命周期管理及集群管理问题。

使用缓存有两个前提:

本文为云栖社区原创内容,未经允许不得转载。返回搜狐,查看更多

阿里云容器服务提供高性能可伸缩的容器应用管理服务,支持用 Docker 和 Kubernetes进行容器化应用的生命周期管理,提供多种应用发布方式和持续交付能力并支持微服务架构。容器服务简化了容器管理集群的搭建工作,整合了阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器运行环境。阿里云容器服务可以提供一站式容器生命周期管理以及集群管理。更多关于阿里云容器管理介绍请详见文章附录第5.5小结。

数据访问热点不均匀,频繁访问的数据应该放在缓存中

责任编辑:

统一配置:采用阿里云应用配置管理,传统IDC架构中我们的应用因为微服务架构的需要全部采用了的统一配置管理,将配置中心化管理,保存在zookeeper当中,通过一个web前端进行配置管理。应用通过本地客户端向服务端请求配置。这样做的好处是应用配置可以集中存放,统一配置,方便管理。但是我们的web配置管理中心提供的功能比较简单,甚至不具备权限管理,配置快照,备份和恢复等功能。在云上我们改用阿里云的应用配置管理ACM产品。云上应用配置管理是一款在分布式架构环境中对应用配置进行集中管理和推送的应用配置中心产品。基于该应用配置中心产品,可以在微服务、DevOps、大数据等场景下极大地减轻配置管理的工作量,增强配置管理的服务能力。阿里云ACM 是分布式系统的配置中心。通过提供配置变更、配置推送、历史版本管理、灰度发布、配置变更审计等配置管理工具,ACM 帮助集中管理所有应用环境中的配置,降低分布式系统中管理配置的成本,并降低因错误的配置变更带来可用性下降甚至发生故障的风险。更多关于阿里云应用配置管理ACM介绍请详见文章附录以及官方网站。

数据在某个时间段有效,不过很快过期,否则缓存数据会因已经失效而产生脏读

监控系统:采用阿里云监控服务,传统IDC架构中我们的监控系统是自建的zabbix监控系统,随着公司业务快速发展,监控项也急剧增加,由最初的500个监控项增加到3w个监控项,监控系统数据库性能跟不上,查询很慢,告警延迟和误报的现象逐渐增多,监控需求越来越多样化,定制化。传统监控系统已经不能满足未来业务高速发展。 所以我们云上改用云监控,云监控是一项针对阿里云资源和互联网应用进行监控的服务。云监控服务可用于收集获取阿里云资源的监控指标,探测互联网服务可用性,以及针对指标设置警报。云监控对用户提供Dashboard、站点监控、云产品监控、自定义监控和报警服务。更多关于云监控介绍请详见文章附录第5.1小结。

3.6. 异步

数据可视化:采用DataV, 解决了运维大屏,监控大屏没有UI设计问题 企业多多少少有些大屏,在公司接待参观考察工作时展示企业形象,企业运营,以及系统运行情况等。为了提升企业形象,有必要针对数据可视化部分进行美化。阿里云的DataV 可以帮助非专业的工程师通过图形化的界面轻松搭建具有专业水准的可视化应用,让更多的人看到数据可视化的魅力。DataV 提供了丰富的可视化模板,极大程度满足会议展览、业务监控、风险预警、地理信息分析等多种业务的展示需求。更多关于阿里云DataV数据可视化介绍请详见文章附录第5.2小结。

软件发展的一个重要目标和驱动力是降低软件耦合性。事物之间直接关系越少,彼此影响就越小,也就更容易独立发展。

数据库运维:采用阿里云数据管理DMS,解决数据库运维管理问题

大型网站架构中,系统解耦的手段除了分层、分割、分布式等,还有一个重要手段——异步。

阿里云数据管理支持MySQL、SQL Server、PostgreSQL、MongoDB、Redis等关系型数据库和NoSQL的数据库管理,同时还支持Linux服务器管理。它是一种集数据管理、结构管理、访问安全、BI图表、数据趋势、数据轨迹、性能与优化和服务器管理于一体的数据管理服务。更多关于阿里云数据管理DMS介绍请详见文章附录第5.8小结。

业务间的消息传递不是同步调用,而是将一个业务操作拆分成多阶段,每个阶段间通过共享数据的方式异步执行进行协作。

1.12 尝试新产品解决老问题

在单一服务器内部可通过多线程共享内存队列的方式实现异步,处在业务操作前面的线程将操作输出到队列,后面的线程从队列中读取数据进行处理;

问题1:海量车机设备的接入导致网络延时高,设备管理困难,安全性差

在分布式系统中,多个服务器集群通过分布式消息队列实现异步。

解决方案:阿里云物联网套件(iot套件),解决大规模车机管理,数据上报问题。

异步架构是典型的生产者消费模式,二者不存在直接调用。异步消息队列还有如下特性:

物联网套件是阿里云专门为物联网领域的开发人员推出的一站式设备管理平台。性能强大的IoT Hub方便设备和云端稳定的进行双向通信;全球多节点的部署让全球设备都可以低延时与云端通信;多重的防护能力保障设备云端安全;功能丰富的设备管理能力帮助用户方便进行远程维护设备;稳定可靠的数据存储能力方便海量设备数据存储和实时访问。物联网套件还提供规则引擎与阿里云众多云产品打通,用户通过规则引擎只需在web上配置规则即可实现数据采集 数据计算 数据存储等全栈服务,灵活快速的构建物联网应用。更多关于阿里云IOT套件介绍请详见文章附录。

提高系统可用性

betway必威官网手机版 29

加快响应速度

问题2:车联网大多应用场景对数据实时性要求非常高,但是目前在数据采集过程中由于数据库写入性能不够,经常出现大量数据写入延迟情况。

消除并发访问高峰

解决方案:阿里云高性能时间序列数据库HiTSDB,解决海量数据写入延迟问题。

3.7. 冗余

为什么说时间序列数据库能解决呢?

大型网站,出现服务器宕机是必然事件。要保证部分服务器宕机的情况下网站依然可以继续服务,不丢失数据,就需要一定程度的服务器冗余运行,数据冗余备份。这样当某台服务器宕机是,可以将其上的服务和数据访问转移到其他机器上。

据有关机构测试发现一辆联网汽车每小时能收集25GB数据。常规数据库在设计之初并非处理这种规模的数据,关系型数据库处理大数据集的效果非常糟糕;NoSQL数据库可以很好地处理规模数据,但是它比不上一个针对时间序列数据微调过的数据库。相比之下,时间序列数据库(可以基于关系型数据库或NoSQL数据库)将时间视作一等公民,通过提高效率来处理这种大规模数据,并带来性能的提升,包括:更高的容纳率(Ingest Rates)、更快的大规模查询(尽管有一些比其他数据库支持更多的查询)以及更好的数据压缩。有兴趣了解更深层次原因的朋友可以参考这个链接:

访问和负载很小的服务也必须部署 至少两台服务器构成一个集群,目的就是通过冗余实现服务高可用。数据除了定期备份,存档保存,实现 冷备份 外;为了保证在线业务高可用,还需要对数据库进行主从分离,实时同步实现 热备份。

为了抵御地震、海啸等不可抗因素导致的网站完全瘫痪,某些大型网站会对整个数据中心进行备份,全球范围内部署 灾备数据中心。网站程序和数据实时同步到多个灾备数据中心。

3.8. 自动化

阿里云高性能时间序列数据库 (High-Performance Time Series Database , 简称 HiTSDB) 是一种高性能,低成本,稳定可靠的在线时序数据库服务;提供高效读写,高压缩比存储、时序数据插值及聚合计算,广泛应用于物联网(IoT)设备监控系统 ,企业能源管理系统(EMS),生产安全监控系统,电力检测系统等行业场景。

大型网站架构的自动化架构设计主要集中在发布运维方面:

HiTSDB 提供百万级时序数据秒级写入,高压缩比低成本存储、预降采样、插值、多维聚合计算,查询结果可视化功能;解决由于设备采集点数量巨大,数据采集频率高,造成的存储成本高,写入和查询分析效率低的问题。后续文章会详细介绍HiTSDB性能测试内容。更多关于HiTSDB介绍请详见文章附录第。

发布过程自动化

问题3:车联网行业是典型的大数据行业,有大量的大数据分析应用场景需求,但是自建大数据平台成本高,维护困难,大数据人才不好招。

自动化代码管理

解决方案: MaxCompute Dataworks 云数据库HBase版

自动化测试

阿里云大数据计算服务(MaxCompute,原名 ODPS)是一种快速、完全托管的 GB/TB/PB 级数据仓库解决方案。MaxCompute 提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决海量数据计算问题,有效降低企业成本,并保障数据安全。

自动化安全监测

同时,DataWorks 和 MaxCompute 关系紧密,DataWorks 为 MaxCompute 提供了一站式的数据同步,任务开发,数据工作流开发,数据管理和数据运维等功能,帮助企业专注于数据价值的挖掘和探索。普通开发人员也可以胜任大数据开发任务。

自动化部署

云数据库 HBase 版(ApsaraDB for HBase)是基于 Hadoop 且100%兼容HBase协议的高性能、可弹性伸缩、面向列的分布式数据库,轻松支持PB级大数据存储,满足千万级QPS高吞吐随机读写场景。阿里集团在10年开始研究HBase并使用在生产之中,目前阿里集团有10000台左右的HBase机器,数百个集群,服务数百个业务。是一款久经沙场的大数据产品。

运维自动化

问题4:单机MySQL数据库遇到IO性能瓶颈和容量扩容瓶颈,如果业务和用户规模继续增长将面临单机数据库扩展困难。

自动化监控

解决方案:阿里云分布式关系型数据库服务DRDS

自动化报警

阿里云分布式关系型数据库服务专注于解决单机关系型数据库扩展性问题,具备轻量(无状态)、灵活、稳定、高效等特性,是阿里巴巴集团自主研发的中间件产品。DRDS 兼容 MySQL 协议和语法,支持分库分表、平滑扩容、服务升降配、透明读写分离和分布式事务等特性,具备分布式数据库全生命周期的运维管控能力。DRDS 主要应用场景在大规模在线数据操作上,通过贴合业务的拆分方式,将操作效率提升到极致,有效满足用户在线业务对关系性数据库要求。DRDS提供了丰富的功能:

自动化失效转移

 分库分表

自动化失效恢复

支持 RDS/MySQL 的分库分表,在创建分布式数据库后,只需选择拆分键,DRDS 就可以按照拆分键生成拆分规则,实现数据水平拆分。

自动化降级

 透明读写分离

自动化分配资源

通过使用 RDS 只读实例或者 MySQL 备机实现读写分离,帮助应用解决事务、只读实例或者备机挂掉、指定主备访问等细节问题,对应用无侵入,在 DRDS 控制台即可完成读写分离相关操作。

3.9. 安全

 数据存储平滑扩容

密码 和 手机校验码 进行身份认证

当出现数据存储容量和访问量瓶颈时,DRDS 支持在线存储容量扩展,扩容无需应用改造,扩容进度支持可视化跟踪。

登录、交易等重要操作需要对网络通信进行 加密,存储的敏感数据如用户信息等也进行加密处理

 服务升降配

防止机器人程序攻击网站,使用 验证码 进行识别

DRDS 实例可以通过改变资源数量实现服务能力的弹性扩展。

对常见用于 攻击 网站的 XSS 攻击、SQL 注入、进行编码转换等相应处理

 分布式运维指令集

对垃圾信息、敏感信息进行 过滤

DRDS 提供独有分布式数据库运维指令集,如 SHOW SLOW、TRACE、SHOW NODE 等指令,有助于快速发现和定位问题。

对交易转账等重要操作根据交易模式和交易信息进行 风险控制

 全局唯一数字序列

  1. 大型网站核心架构要素

DRDS 支持分布式全局唯一且有序递增的数字序列。满足业务在使用分布式数据库下对主键或者唯一键以及特定场景的需求。

架构 的一种通俗说法是:最高层次的规划,难以改变的决定。

 数据库账号权限体系

除了系统功能需求外,架构还需要关注以下架构要素:

DRDS 支持类单机 MySQL 账号和权限体系,确保不同角色使用的账号操作安全。

4.1. 性能

 分布式事务

性能问题无处不在,所以网站性能优化手段也十分繁多:

DRDS 支持分布式柔性事务,保证分布式数据库数据一致性。

前端

 监控报警

浏览器缓存

DRDS 支持对核心资源指标和数据库实例指标的实时监控和报警,如实例 CPU、网络 IO、活跃线程等,帮助实时发现资源和性能瓶颈。

静态资源压缩

更多关于阿里云分布式关系数据库DRDS介绍请详见文章附录第3.5小结。

合理布局页面

2、数据迁移策略

减少 cookie 传输

2.1 数据库迁移策略

CDN

数据库迁移是整个上云过程中最重要的一环,难度也最大,因为我们在迁移的时候要尽可能的减少业务本身的影响,最好是不停机不中断现有业务。需要制定非常详细的计划和迁移策略:

看完文章又涨知识了,车联网上云最佳实践。应用服务器

 迁移工具:推荐阿里云数据传输服务DTS

本地缓存

DTS 是阿里云提供的一种支持 RDBMS(关系型数据库)、NoSQL、OLAP 等多种数据源之间数据交互的数据流服务。它提供了数据迁移、实时数据订阅及数据实时同步等多种数据传输能力。通过数据传输可实现不停服数据迁移、数据异地灾备、异地多活(单元化)、跨境数据同步、实时数据仓库、查询报表分流、缓存更新、异步消息通知等多种业务应用场景,助构建高安全、可扩展、高可用的数据架构。

分布式缓存

DTS 支持多种数据源类型,例如:

异步消息队列

关系型数据库:Oracle、MySQL、SQLServer、PostgreSQL 、RDS For PAAS、DRDS、PetaData、OceanBase。

集群

NoSQL:MongoDB、Redis 。

代码层面:使用多线程、改善内存管理

OLAP:ODPS、ADS、流计算。

数据库

 迁移时间:推荐在业务流量最低峰时段例如每天0点至5点

索引

 迁移方法:

数据库缓存

一般情况我们的业务数据库都是有主备的,那么选择从数据库作为源数据库对云上数据库进行同步,这样做的目的是为了减少对主库的影响,有条件的话选择单独的从数据库专门用作对云上数据库进行全量同步迁移。完了之后再切换到主数据库开启增量数据同步(利用DTS可以轻松完成数据库的增量同步)。这样就可以保证线下数据库和线上数据库的一致性了。具体迁移步骤请参考官方文档:

SQL 优化

4.2. 可用性

2.2 文件系统迁移策略

可用性指部分服务器出现故障时,还能否对用户提供服务

之前采用的是自建NFS文件系统用于存储图片和文件。随着文件越来越多,图片访问速度越来越慢,搬到云上之后,可以利用阿里云的OSS和CDN服务,构建如下的web端直传OSS存储方案,架构如下:

冗余自动化:通过预发布验证、自动化测试、自动化发布、灰度发布等手段,减少将故障引入线上环境的可能

betway必威官网手机版 30

通过负载均衡设备建立集群共同对外提供服务

用户的请求逻辑:

数据存储在多台服务器,互相备份

1) 用户向应用服务器取到上传policy和回调设置。

4.3. 伸缩性

2) 应用服务器返回上传policy和回调。

衡量伸缩的标准就是是否可以用多台服务器构建集群,是否容易向集群中增删服务器节点。增删服务器节点后是否可以提供和之前无差别的服务。集群中可容纳的总服务器数是否有限制。

3) 用户直接向OSS发送文件上传请求。

应用服务器集群 - 只要服务器上保存数据,则所有服务器都是对等的,通过负载均衡设备向集群中不断加入服务器即可

4) 等文件数据上传完,OSS给用户Response前,OSS会根据用户的回调设置,请求用户的服务器。

缓存服务器集群 - 加入新的服务器可能会导致缓存路由失效,进而导致集群中的大部分缓存数据都无法访问。虽然缓存数据可以通过数据库重新加载,但是如果应用严重依赖缓存,可能会导致网站崩溃。需要改进缓存路由算法保证缓存数据的可访问性。

5) 如果应用服务器返回成功,那么就返回用户成功,如果应用服务器返回失败,那么OSS也返回给用户失败。这样确保了用户上传成功的照片,应用服务器都已经收到通知了。

关系型数据库集群 - 关系型数据库虽然支持数据复制,主从热备等机制,但是很难做到大规模集群的可伸缩性,因此关系型数据库的集群伸缩性方案必须在数据库之外实现,通过路由分区等手段将部署有多个数据库的服务器组成一个集群。

6) 应用服务器给OSS返回。

NOSql 数据库集群 - 由于先天就是为了应对海量数据而产生,因此对伸缩性的支持通常都非常好。

7) OSS将应用服务器返回的内容返回给用户。

4.4. 扩展性

betway必威官网手机版 31

衡量扩展性的标准就是增加新的业务产品时,是否可以实现对现有产品透明无影响,不需要任何改动或很少改动,既有功能就可以上线新产品。主要手段有:事件驱动架构和分布式服务。

利用阿里云OSS存储代替原来的自建NFS文件系统,优势很明显:

4.5. 安全性

betway必威官网手机版 32

安全性保护网站不受恶意攻击,保护网站重要数据不被窃取。

OSS服务 配合CDN 服务一起使用,则可以加速文件存储和访问速度,提升用户访问体验。

欢迎工作一到五年的Java工程师朋友们加入Java程序员开发: 721575865

CDN的工作原理就是将源站的资源缓存到各地的边缘节点服务器(CDN节点)上,用户请求访问和获取资源时,就近调用CDN节点上缓存的资源。这种分布式数据传输方式,使得用户请求的资源不需要都回源站获取,从而避免网络拥塞、分担源站压力,保证用户访问资源的速度和体验。

群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

使用CDN后的http请求处理流程如下图

betway必威官网手机版 33

阿里云CDN在全球拥有1300 节点,国内完整覆盖 34 个省级区域,大量节点位于省会等一线城市。海外覆盖70 多个国家和地区。阿里云所有节点均接入 万兆 网卡;具备 90 Tpbs 带宽能力储备。单节点存储容量达 40 TB-1.5 PB,带宽负载达到 40 Gbps-200 Gbps。

作者:云攻略小攻

本文为云栖社区原创内容,未经允许不得转载。返回搜狐,查看更多

责任编辑:

本文由betway必威官网手机版发布于互联网知识,转载请注明出处:看完文章又涨知识了,车联网上云最佳实践

关键词: