架构师训练营 - 作业 -4- 互联网产品问题与架构方案

发布于: 2020 年 07 月 01 日

互联网产品面向c端用户,产品定位决定后续的问题,进而架构上采用相应方案应对

1:互联网产品问题

互联网产品面向c端用户,主要包括以下问题。

1:需求快速迭代,频繁发布新版本-快速扩展性要求

互联网产品终身都伴随的问题,起步阶段更明显。

2:用户范围广,网络环境复杂-可用易用要求

因此一般都要求使用简单,体验好,这是产品层面。

网络可用性要求较高 。

3:安全问题突出-安全性

面对的所有人不受限,且在互联网环境。可能有来自各个方面的攻击,信息泄漏等安全风险。

4:高可用性

用户需24小时使用

5:快速发展-成长的烦恼--易扩展,弹性伸缩要求

使用量可能会快速增长,包括访问量,用户,数据等。

     对企业是好事,对技术也是挑战,如果观察到占了风口要做好快速增长压力的适应方案

6:高并发,海量数据--高性能要求

      高速成长后的企业,大型互联网产品要面对的问题

2:互联网架构问题的应对方案

总体上从高性能,高可用,弹性伸缩,易扩展,高安全性主要方面去解决问题

随互联网产品面对用户越多,功能越多,数据量越多 出现的各种压力,产品架构在高性能,高可用,弹性伸缩,易扩展,高安全性等主要方面去不断完善升级。

遇到问题-寻求解决方案->实现技术支撑方案。问题与方案技术间不是一对多而是多对多。方案可能从某一个方面,也可能是从计算,数据,运维,团队,网络多个层方面考虑。

以下说明是罗列式的,但实际是综合式的

2.1 快速迭代

快速开发

一方面要求程序耦合度低,可快速扩展功能。

另一方面要求有可重用的组件,服务,方便组装出新功能。

具体:

成熟的开发框架:比如java 的spring系列,orm框架等

成熟组件库:自己的技术中台,开源的成熟中间件,rpc方案,网络库,前端库等

可重用的基础服务:微服务,业务中台

快速部署

自动化运维部署,虚拟化,容器化

采用云服务从基础设施中解脱

2.2 网络环境复杂

多网络接入,针对国内几大运营商网络现状。

多地,多国部署(前期不用考虑)

2.3 高可用

服务器故障不可避免,高可用本质就是冗余,多个角度冗余+故障自动转移。

多地机房+DNS:防灾,防挖掘机

服务器集群+负载均衡+反向代理(包括反向代理,负载均衡本身的高可用方案)

服务拆分:服务拆分后的隔离,某个服务故障不影响其他服务,本身也是高可用的一种

服务治理:熔断,限流等--减少影响范围。

数据库高可用方案,分布式数据库

分布式文件系统:也有文件备份的作用,防止单机故障

灰度发布:发布时先小部分切,正常后在逐步全切。

系统监控报警:提前发现问题,发现问题及时告警。

自动化运维:自动扩容,自动重启

2.4 安全

安全也是多角度的,成长后安全问题会更重要,基本的安全防护是底线要求。没有安全可能一起重大事故就要了命。

服务器安全:操作系统安全加固,堡垒机

网络安全:防火墙,

安全存储:敏感信息加密存储

安全传输:https,tls,国密等

应用安全:网关,对特殊权限的审计,异常信息检查(风险控制),编码转换防sql注入,xss攻击,前端安全:脚本注入,app本身数据存储加密,各种身份多重认证(如短信,生物识别,口令要求复杂,重要口令要求定时更换),Oauth2.0,登录动态验证码

特殊应用防止信息抓取:如视频网站数据加密防止抓取,图片防盗链。

2.5 快速发展

包括业务上的快速发展,规模上的快速增加

业务快速发展提前预测并调整系统架构适应扩展,方法主要是解耦,服务拆分。拆分后服务修改测试上线更快,从团队上也可以安排更多人协作研发。

规模扩展的应对主要是分布式,系统弹性扩容。

服务拆分也更容易做针对性的扩容。

具体:

--服务化改造,微服务,中台,敏捷团队,云技术,云架构。

--初期高速成长不要忘记垂直扩展,买更好硬件,软件。

2.6 高并发,海量数据

1>高并发的初期垂直扩展

更好的服务器-cpu,硬盘,网络,采购CND,云服务器。但有极限。而且达到后期成本不划算。

2>水平扩展

水平扩展主要方案就是分布式与集群+负载均衡。

无状态的网关层,服务层比较容易拆分。有状态的数据层拆分比较复杂,目前有各种相对成熟的分布式存储方面。

数据库:从数据库分库读写分离,到分库分表,再到分布式数据库

文件存储:分布式文件存储,分布式对象存储

针对海量数据除了存储还有计算要求,海量数据的计算采用分布式计算。mapreduce,storm,flink等技术

用户头像

superman

关注

还未添加个人签名 2018.07.20 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营 - 作业 -4- 互联网产品问题与架构方案