大规模的软件生成在架构设计上最重要考虑的事也不是技术本身,而是整个结构能否流水线生产,一个程序只负责一块,所有的设计要首先围绕着这个原则,因为流水线的负责,
大规模的软件生成在架构设计上最重要考虑的事也不是技术本身,而是整个结构能否流水线生产,一个程序只负责一块,所有的设计要首先围绕着这个原则,因为流水线的负责,所以首先要管理流水线架构本身,而不是管理具体的人,怎么让流水线本身顺利的进行下去是重中之重,而不是卡在流水线某个人的地方。
例如mvc模式,MVC其实在技术上也没有什么大特色,更大的好处其实是在工程上的而不是技术上的,就是尽量把前端和后端代码分开,前端工程师可以专注做前端,而后端工程师专注后端,说白了就是拆解任务更好,可以流水线生产,而不是一个程序需要做所有的事,那是作坊式的,这为大规模开发维护提供了必要条件,其实现代工程流水线的产生比技术本身更必要。
硬件:
服务器若干,局域网、互联网。
服务器大致分为以下几种,每种服务器可若干集群。
1. 反向代理服务器、负载平衡服务器。
2. 应用服务器。
3. 文件服务器。
4. 数据库服务器。
5. 缓存服务器。
路由算法、读写分离、服务器负载+内存负载+分布式文件存储的数据库负载+关系数据库负载+大数据处理
软件:
最上层:云平台(虚拟云技术)+安全模型
方案一:
- 服务器系统:WINNT、LINUX。
- 反向代理服务器:有负载平衡功能,Nginx反向代理负载(可负载5w并发),路由算法。
- Web服务器:IIS、Tomcat、Apache。
- 程序开发:Asp.net、java(MVC、Srping、ORM等等)。
- 关系型数据库:MySQL、SQLsever、Oracle,关系型数据库集群负载cluster,读写分离。
- 缓存服务器:可选Memcached, Redis等等。
- 分布式文件存储的数据库nosql:MongoDB。
方案二:
- 服务器系统:WINNT、LINUX。
- 负载平衡服务器:Web服务器负载平衡IIS、Tomcat、Apache,路由算法。
- Web服务器:IIS、Tomcat、Apache。
- 程序开发:Asp.net、java(MVC、Srping、ORM等等)。
- 关系型数据库:MySQL、SQLsever、Oracle,关系型数据库集群负载cluster,读写分离。
- 缓存服务器:可选Memcached, Redis等等。
- 分布式文件存储的数据库nosql:MongoDB。