网站开发—从简单到复杂
这个需求可是真不简单,因为,这个需求等于没有需求,用户量、并发度、页面是否需要SEO、页面兼容性、是否需要后台管理、CDN缓存是否要上等等一概不知
简而言之,无效需求
网站开发,这件事可以很简单,也可以很复杂
1. 简单网站开发
类型: 展示页,企业站点,后端 访问要求不大,SEO要完善
架构基本如下
服务器 1 台,CDN可选,后台语言推荐非阻塞的 nodejs,前端语言推荐原生或 jQuery,CSS可以原生来写, 也可以使用Bootstrap等CSS框架
数据库 非事务 mongodb /事务 mysql或pssql
反向代理 + 负载均衡 nginx
缓存 redis
2. 中等复杂度网站开发
类型: 用户频繁访问的网站, 有一定的并发要求
架构基本如下:
服务器: | 若干 数据服务器, 缓存服务器, 用户认证服务器, 业务服务器要分开 |
后台语言: | 若干 数据服务器, 缓存服务器, 用户认证服务器, 业务服务器要分开 |
前端: | 高业务型采用前端框架 vue react, 展示型 采用jQuery |
数据库: | 读写分离, 主从分离, 分库分表, NoSQL存储数据 |
缓存: | 良好设计, 定时取热数据, 增加缓存命中率, 主从分离 Redis集群 |
消息队列服务: | 解耦数据和行为 MQ, Kafka |
日志收集及监控服务: | flume ELK |
3. 高复杂度网站开发
类型: 海量用户访问网站, 数据库并发压力高, 事务复杂
架构基本如下:
服务器: |
多组服务器集群, 异地冷备, 同城热备, AB测试无缝切换, 广泛的负载均衡, 代码Bug追踪ID |
后台语言: |
复杂多样, 微服务化 |
前端: |
和中等复杂度基本一致, 需要引入组件的全局状态管理 redux vuex等机制 |
数据库: |
多种存储形式, 流式计算, 读写分离, 主从分离, 分表分库, NoSQL存储数据,大数据生态 |
日志处理: |
消息队列服务及日志收集服务 |