命题作业和总结—第四周
作业:一个大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述
首先需要拆分大型互联网应用系统的不同层次:
安全相关
前端相关
后端相关
数据和存储相关
网络、硬件和运维相关
数据和运营相关
之后按照不同层次进行详细说明:
安全相关
VPN 公网内网分离,办公网、生产网、外网三网隔离,办公网统一出口,控制流量设置防火墙。生产网内网隔离,设置跳板机登陆和访问,添加日志和审计。外网访问内网需要通过 VPN 链接访问
防火墙和安全软件
常见的安全防护,代码层的一些过滤处理等
前端相关
CDN 和静态资源存储,文件管理系统,做系统的动静分离
前端框架以及相关配套技术,比如 React、Vue、Angular 以及相关打包技术 webpack、rollup、vite、babel 等
前端工程化相关技术和搭建,CICD、团队代码规范和校验等
客户端跨端技术方案,小程序、React Native、Flutter 等
后端相关
后端框架以及相关技术,Spring、Express.js、Ruby on Rails 等
工程化相关技术,CICD、容器化应用、团队规范等
BFF 层,用于聚合后端模型,按需向各个端提供数据
负载均衡,增加冗余,提高可用性
分布式消息队列,削峰解耦大量请求,减少单点崩溃
分布式缓存和机制的设计,提升系统性能,减轻数据库等压力
Job 系统,实现定时任务、背后任务,按照优先级和系统压力进行运行
Severless 架构和技术,拆解函数,无需运维,自动扩容
数据和存储相关
关系型数据库:MySQL、PostgreSQL 等
非关系型数据库:MongoDB、PostgreSQL 等
高性能缓存:Redis
文件管理:OSS、S3 等
网络和硬件相关
网络:VPN、VPC 等构建
硬件:直接用云服务好了,别自己折腾了
运维:云服务平台、Docker、Dokku、Kubernetes、虚拟机、运维工具、数据统计和上报(LogDNA)、监控平台(DataDog)等
数据和运营相关
数据收集平台:ELK、LogDNA、自建日志收集平台、前端埋点上报、后端日志上报
大数据分析平台:HBase、MapReduce、Spark、流计算、消息队列、离线计算、数据查看和管理系统、图表等组件
运营平台:前端相关技术、图表和表单等
总结
架构设计主要还是持续演进,通常遵循以下阶段:
简单单体应用
应用数据分离,拆分应用、数据库和存储等
引入缓存
负载均衡和分布式缓存
数据库读写分离
动静分离和 CDN、负载均衡等
分布式文件系统和数据库,分库分表
NoSQL 和搜索引擎,冷热数据拆分
业务拆分
微服务和中台化
大数据和智能化
在这些模式和阶段中,可以进行跨越式升级,比如目前微服务已经比较成熟,可以直接基于微服务开发应用。数据库等也可以使用云数据库,直接读写分离。
在每年的业务目标制定的时候,需要对系统进行评估,压测性能,然后按照业务目标进行系统架构升级和相关工作,提前安排好,预留一些 buffer。
如何衡量一个系统的架构设计?
高性能
高可用
可伸缩
可扩展
安全
架构演进最关键的是要适应业务和需求的发展和要求,灵活多变,以快速满足实际需求为目标。比如业务在飞速发展,掏钱买服务器比招人自研框架要快得多而且比较稳,后期自研数据库要比购买商业系统方便,就可以升级。
版权声明: 本文为 InfoQ 作者【于江水】的原创文章。
原文链接:【http://xie.infoq.cn/article/1d541e8ae0d75b83f9dfbb242】。未经作者许可,禁止转载。
评论