架构师训练营 - 学习笔记 - 第四周
这周是端午节,有几个亲戚来了,所以没赶上直播,只能看录播了。
这周主要互联网分布式系统架构演化及案例,对我来说比较陌生(本人没做过 Web 开发,只做过嵌入式C/C++,Android 移动开发(API 15, 现在 Android 10, API 29),目前在做 DevOps 相关工作(和 Web 沾点边))。。。额, 这周没多少感悟,因为之前都没做过、经历过,要坚持思考并持续输出真的是很难。。。想放弃有一千、万个理由,但坚持就只有一个——真的很想去做这件事。
下面为笔记。
感悟
先说问题
在做个人演讲、技术总结、技术汇报时,首先说问题(Why),为什么要做这件事情,遇到了什么问题。然后再说运用了哪些技术方案去解决它(What). 切忌一上来就说架构、技术方案等。因为你在公司做事都是业务驱动的,技术是服务于业务的,纯粹为了酷炫的技术而去修改设计是没有什么业务价值的。
架构都是从简单做起的
架构都是从简单开始,根据业务,一步步迭代的。就像淘宝这样的大型架构,也是从0开始,从简单的设计开始,一步步优化迭代。不要想一下子搞了一个很复杂的架构,根据当前的业务,能够支撑就好。当支撑业务的发展遇到瓶颈和问题时,不断重构、升级架构。
三点基本原则:
保持简单
合适就好
迭代演进
Let it Fail
不要默默无闻地去解决问题,让它失败,让问题暴露出来,让大家都意识到问题的严重性,然后你再去解决,这样你的价值才会被体现出来。
名词
PV: Page View 日均页面浏览量
互联网分布式系统架构演化 - 2020/6/25 - 星期四 端午节
互联网系统面临怎样的挑战?
高并发,大流量
高可用
海量数据
用户分布广泛,网络情况复杂
安全环境恶劣
需求快速变更,发布频繁
当然需要我们 DevOps 做持续集成、持续部署、持续交付啦😊
渐进式发展
应对高并发挑战的两个技术方向
垂直伸缩
通过升级硬件和网络吞吐能力
RAID 增加磁盘 I/O 吞吐能力
SSD 固态硬盘/大内存/增加网络接口/多 CPU
简单、短期伸缩性方案
缺点
达到某个程度后,增加计算能力需要更多的花费
垂直伸缩有物理极限
操作系统的设计或者应用程序自身制约着垂直伸缩最多只能达到某个点
水平伸缩
通过增加服务器提升计算能力的一类架构方法
伸缩的圣杯,它可以克服垂直伸缩带来的单位计算成本随计算能力增加而迅速飙升的问题
总是可以增加更多的服务器,不会想垂直伸缩那样遭遇到单台服务器的极限
互联网架构演化 - 11 个阶段
0. 最简单的互联网应用架构
应用数据分离
使用缓存改善系统性能
使用应用服务器集群改善系统的并发处理能力
4. 数据库读写分离
使用反向代理和 CDN 加速网站响应
使用分布式文件系统和分布式数据库系统
使用 NoSQL 和搜索引擎
业务拆分
微服务及中台化
大数据与智能化
互联网架构模式
架构模式
每一个模式描述了一个在我们周围不断重复发生的问题以及该问题解决方案的核心。这样,你就能一次又一次的使用该方案而不必做重复的工作。关键在于可重复性。
分层
将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层依赖和调用组成一个完整的系统。
分割
纵向方面对软件进行切分
分布式
分布式应用和服务
分布式静态资源
分布式数据和存储
分布式计算
集群
缓存
CDN
反向代理
本地缓存
远程缓存
异步
提高系统可用性
加快网站响应速度
消除并发访问高峰
冗余
服务器冗余运行,数据冗余备份
自动化
DevOps 自动化运维
安全
XSS 攻击,SQL 注入
如何衡量一个系统的架构设计
高性能
高可用
可伸缩
可扩展
安全
互联网架构技术一览
前端架构
App 及 Web 开发技术
浏览器及 HTTP 优化技术
CDN
动静分离
图片服务
反向代理
DSN
网关及应用层架构
网关架构
负载均衡
动态页面静态化
业务拆分
服务层架构
微服务框架
分布式消息队列
分布式缓存
分布式一致性(锁)服务
存储层架构
分布式文件
分布式关系数据库
NoSQL 数据库
后台架构
大数据平台
搜索引擎
推荐引擎
数据仓库
运维与安全
数据采集与展示
数据监控与报警
攻击与防护
数据加密与解密
分布式系统架构案例 - 2020/6/27 - 星期六
听了 4 个案例,相当于参加了一个技术会议了。
维基百科技术架构
LVS: 负载均衡服务器,路由选择服务器
GeoDNS: 地理 DNS
Image server: 文件服务器,用与下载图片等大文件,类似于 CDN.
Distributed Object Cache(Memcached): 分布式缓存服务器,存储热点数据。
Squid: 反向代理服务器
Application servers: 应用服务器 PHP
淘宝
2003.5 - 2004.1
LAMP
MySQL 读写分离
业务中中心化
庞大的系统(Denali) 拆分
拆分系统
拆分数据库
组织结构支持
简化&管控
宅米网技术变迁
1.0
2.0
3.0
新浪微博
参考链接
https://xie.infoq.cn/article/18a36f29c365c8ae9ea0d6bd2
https://xie.infoq.cn/article/43a7c2c934aeb7e501ac92761
https://xie.infoq.cn/article/9030faeb4c4497a89939a4062
https://xie.infoq.cn/article/1b5a043bfc55ef2fb073b131f
评论