互联网系统架构的演进 - 笔记心得

发布于: 17 小时前
互联网系统架构的演进-笔记心得

系统的架构分两部分:

--(1)功能性架构

--(2)非功能性架构

架构首先需要满足功能性需求

架构需要考虑的五个方面:

  • 高性能:性能优化的手段很多,客户端APP、服务器端、数据库、代码、机房部署;

  • 高可用:主要手段是冗余;

  • 可伸缩:服务器可以持续增加;数据怎么同步的、负载均衡怎么处理、缓存怎么处理;

  • 可扩展: 程序的架构上,代码和功能可扩展;

  • 安全:不受恶意访问和攻击;

互联网的架构技术一览

前端:(负载均衡之前)

  • APP以及WEB开发技术

  • 浏览器以及HTTPS优化

  • CDN

  • 动静分离

  • 图片服务

  • 反向代理

  • DNS

网关以及应用层架构

  • 网关架构

  • 负载均衡

  • 动态页面静态化

  • 业务拆分

服务层架构

  • 微服务框架

  • 分布式消息队列

  • 分布式缓存

  • 分布式一致性(锁)服务

存储层架构

  • 分布式文件

  • 分布式关系数据库

  • NoSql数据库

后台架构 (一般都是离线计算产生的数据,分钟或小时汇聚的数据)

  • 大数据平台

  • 搜索引擎

  • 推荐引擎

  • 数据仓库

当有海量数据需要处理的时候,大量的计算都是离线完成,而并非用户访问的时候实时计算的。

运维与安全

  • 数据采集和现实

  • 数据监控与报警

  • 攻击与防护

  • 数据加密与解密

大型网站技术架构

案例1

维基百科,只有十几个人的团队,维护了全球,3个数据中心,全球排名第6的网站。

LVS 是负载均衡服务器

用户访问维基选择就近的数据中心,根据用户的IP 选择就近的负载均衡的LVS

这里的squid 用来做反向代理的。

日志到squid的这条线,是为了更新缓存。

--数据过期失效;

--数据更新后,通知更新;

-- 缓存没有更新的操作,一般都是直接清除;过期失效;

案例2

淘宝案例--吴泽明

如何表达的?

技术研发部-产品技术-业务平台

1、先讲业务是怎么发展的;

2、业务发展对技术的要求;

3、技术发展

顶尖的高手,都是发现问题,关注问题。

马斯克 第一期原则出发思考问题。

/*************************************************/

【淘宝案例分析】

2003~2004

LAMP

Linux apach mysql PHP

MySQL 读写分离

2004.1~2004.5 (数据库出现瓶颈了)

MYSQL 迁移到 ORACLE ;

引入 SQL RELAY 中间件;

2004.2~2004.10

PHP迁移到JAVA

MVC 框架WEBX

项目管理工具ANTX

引入搜索引擎ISearch

2004.10-2006.10

weblogic 迁移到jboss : weblogic收费,JBOSS免费, weblogic复杂;

支持分库的数据访问框架

抛弃EJB

引入spring

基于BDB的缓存,ESI

建立CDN

类目属性体系

2007 业务中心化

拆分系统

业务分库,不同的业务数据库放到不同的服务器上;

数据存储 、检索

分布式

/*************************************************/

【宅米业务模式】:

1.0 WEB +APP NGINX WEB应用 MYSQL(主)

2.0

优化内容:

日订单50W的概念

分布式文件:CDN 缓存

MYSQL 主从复制(阿里的云服务器)

REDIS 也是阿里的云服务器;

京东 日订单50W 是什么时候?

2012年京东 日订单 70W

美团最高 的时候 日订单 200W

3.0

优化内容:

微服务处理各类订单、用户服务、商品服务、红包服务、短信服务

数据分片

数据冷热分离:MYSQL 只存一个月的数据 ;历史的订单数据都入MONGODB

大数据平台:

运营、市场方面的监控

人员的组织形式:

15人的时候: 后端组、WEB组(H5)、 APP组

用户量比较多的是WEB组(H5)

人数上来后(30+),技术部:买家组 卖家组 后台组

技术部:

产品研发:买家组,卖家组,后台组,测试组

架构运维:架构组,运维组

数据平台组:数据平台组,数据分析组

构建自驱动的闭环

  • 不要分配任务,去完成目标而不是完成工作

  • 加班既不是目标也不是手段

  • 亡羊补牢,没事不要瞎折腾

只有优秀的员工才能创建出优秀的企业

  • 为员工的成长买单

  • 先关注人,后关注事

  • 快乐工作

/*************************************************/

【总结】

我们需要基于现实问题来驱动,而不是基于技术去驱动。

即: 我们需要 抓问题,而不是抓技术,需要把问题想清楚了,通常我们问题找到点了,解决方案反而好去制定。

关键还是需要抓住问题,理解问题的本质。

对于一个互联网公司或一个创业团队来说,早期一般还是要聚焦、针对具体的问题;所以的技术都是为了解决问题而服务。

用户头像

蒜泥精英

关注

还未添加个人签名 2018.09.19 加入

还未添加个人简介

评论

发布
暂无评论
互联网系统架构的演进-笔记心得