网站开发—从简单到复杂

常常碰到的需求就是,做一个网站,就这样,和某某某一样就行……

但是,这个需求可是真不简单,因为,这个需求等于没有需求,用户量、并发度、页面是否需要SEO、页面兼容性、是否需要后台管理、CDN缓存是否要上等等一概不知……

简而言之,无效需求……

网站,这件事可以很简单,也可以很复杂……

1. 简单网站

类型: 展示页,企业站点,后端 访问要求不大,SEO要完善

架构基本如下

服务器 1 台,CDN可选,后台语言推荐非阻塞的
nodejs,前端语言推荐
原生
jQuery,CSS可以原生来写, 也可以使用Bootstrap等CSS框架

数据库 非事务 mongodb /事务 mysql或pssql

反向代理 + 负载均衡 nginx

缓存 redis

2. 中等复杂度网站

类型: 用户频繁访问的网站, 有一定的并发要求

架构基本如下:

服务器: 若干 数据服务器, 缓存服务器, 用户认证服务器, 业务服务器要分开

后台语言: Java Golang Python NodeJS

前端: 高业务型采用前端框架 vue react, 展示型 采用jQuery

数据库: 读写分离, 主从分离, 分库分表, NoSQL存储数据

缓存: 良好设计, 定时取热数据, 增加缓存命中率, 主从分离 Redis集群

消息队列服务: 解耦数据和行为 MQ, Kafka

日志收集及监控服务 flume ELK

3. 高复杂度网站

类型: 海量用户访问网站, 数据库并发压力高, 事务复杂

架构基本如下:

服务器: 多组服务器集群, 异地冷备, 同城热备, AB测试无缝切换, 广泛的负载均衡, 代码Bug追踪ID

后台语言: 复杂多样, 微服务化

前端: 和中等复杂度基本一致, 需要引入组件的全局状态管理 redux vuex等机制

数据库: 多种存储形式, 流式计算, 读写分离, 主从分离, 分库分表, NoSQL存储数据,大数据生态

消息队列服务及日志收集服务

网站没那么简单,web工程师共勉 ^_^

    原文作者:可可
    原文地址: https://zhuanlan.zhihu.com/p/21430312
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞