15个实际的架构演进,帮助你清晰地了解从中小型企业的项目架构到大型互联网平台的架构演进过程!
大众创业、大众创业
大部分公司为中小企业(境内上市公司除外)
所有的大公司都是从小公司一步步发展起来的。
当前中小企业组织体系架构设计存在哪些问题?
1、常见问题:企业组织管理混乱
原因:没有完善的企业组织架构(分工、职责不明确)
2、部门协调性差
原因:公司没有规范的管理流程、部门之间沟通机会少、企业文化融合氛围不浓等。
3、组织效率低:
原因:多方协作出现问题
1、战略方向不明确,组织缺乏远见。
天地
法律务实、务实
初衷:解决这个社会的问题,解决某个行业的痛点。 我希望能做得更好。
使命、愿景、价值观
评估:绩效和价值观5/5开放
组织架构设计
企业战略
2、部门职责不清、重叠、空白,管理层级多,管理角色错位
扁平化阿米巴原虫
3、企业内控制度不健全,责权不统一,部门协调性差,组织效率低
权利、责任和利益
中小企业IT系统架构面临的问题:
当业务发生变化时:不断对原有系统进行补丁。 随着业务的发展,系统不断出现各种瓶颈和滞后。 数据库经常被锁,用户网站无法打开。 当白屏流量出现时,很容易给技术团队带来麻烦。
技术团队人数不超过50人
服务器数量:10 - 30
带宽:100MB
中小企业从无到有的项目开发现状:
应用系统开发
前端开发:Vue.js、
SSM: , ,
数据库开发:MySQL:CRUD
测试:开发人员自己进行测试,没有进行压力测试,不知道系统的负载边界。
在线部署:应用服务器和数据库服务器在同一台服务器,且Linux环境未安装JDK或MySQL。 如何配置和调整参数。
为什么会出现这么多问题呢?
原因只有一个:公司没有好的架构师
如何成为一名优秀的建筑师
必须有实践经验和实际应用场景
3、经过15次技术架构演进过程
第一:定义当前企业架构、当前阶段并绘制架构图
定位问题:根据实际情况制定新的架构图(重构)
1. 单体架构
+ 数据库部署在同一台服务器上
问题: - 随着用户数量增加,数据库相互竞争服务器资源 - 单机性能不足以支撑业务 - 整个服务器挂掉
2.与数据库分开部署
和数据库分别占用服务器资源,显着提高了两者的性能。
问题: - 用户增长:同一个数据库读写压力很大,数据库成为瓶颈 - 第一步:应用服务器和数据库分离,独立部署,扩容数据库服务器内存。 数据量少时:导出SQL,数据量大时:数据文件迁移
3.引入本地缓存和分布式缓存
引入本地缓存和分布式缓存
在服务器上或同一 JVM 中添加本地缓存。 添加外部分布式缓存,缓存热点数据和静态html页面。 在读取和写入数据库之前使用缓存拦截大多数请求。 会应用哪些技术栈?Redis作为本地缓存作为分布式缓存问题:缓存一致性、缓存穿透/击穿、缓存雪崩热点、数据集中失效
问题:缓存处理大部分请求。 随着用户的增长,并发压力就会落在它身上,响应会很慢。
4.引入反向代理实现负载均衡
分别部署在多台服务器上,使用Nginx将请求分发到每台服务器
假设:
最大支持100个Nginx并发请求,通过分发500可以处理5万个并发的共享文件上传和下载。 问题5.数据库读写分离
阅读图书馆
写库
MyCat等数据库中间件
数据同步、数据一致性问题
问题: - 随着业务的增长,不同业务之间的访问差距较大,相互竞争数据库资源,影响性能。
6.数据库按照业务划分
问题: - 用户增长:单机写库会逐渐达到性能瓶颈
7. 将大表拆分成小表
产品编号
问题: - 如果数据库可以水平扩展,Nginx将成为系统的瓶颈。
8.使用LVS或F5使用多个Nginx负载均衡
问题:- LVS 独立
9、通过DNS轮询实现机房负载均衡
通过DNS轮询实现机房负载均衡
通过DNS服务器轮询或其他策略
从千万级到上亿级,都可以通过增加机房来解决。
10.引入NoSQL数据库和搜索引擎
引入 NoSQL 数据库和搜索引擎
对于全文检索,可变数据结构数据库本质上不适合
海量文件存储:HDFS
Key Value类型数据:HBase和Redis
全文搜索:
11. 将大型应用程序拆分为小型应用程序
将大型应用程序拆分为小型应用程序
按照业务细分来划分应用代码是非常清晰的。 各个应用程序的职责可以独立升级。 迭代应用会涉及公共配置和分布式配置中心来解决问题。
12. 将复用功能提取到微服务中
将重用功能提取到微服务中
13、引入企业服务总线,屏蔽服务接口访问的差异
引入企业服务总线,屏蔽服务接口访问差异
14、引入容器化技术,实现环境隔离和动态服务管理
引入容器化技术,实现环境隔离和动态服务管理
目前最流行的技术是
容器管理:K8S
双11前:
在现有机器集群上划分服务器启动镜像,提升服务性能
双11后:
事件结束后:您可以关闭镜像,不会对机器上的其他服务产生任何影响。
15. 将系统托管在云平台上
将系统托管在云平台上
生成的系统部署在公共云上
2019双十一天猫2684亿阿里巴巴所有核心系统全面上云
IasS:基础设施即服务
PaaS:平台即服务、Flink-Blink、技术组件
SaaS:软件即服务(行业解决方案视频转码服务、电子邮件服务、个人博客等)