web应用应该考虑的一些问题
今天是在公司的四周年,未来一段工作重心也将有所变化,从以前的开发逐渐要转变,希望能够适应,也能看淡,总之要更加专业化.
最近半年的工作经历比较有典型意义,成长不少.也做了很多事情,从技术层面上来说,主要有五点.
(1)静态化,静态化的目的主要是减低解析,元素离页面更近.
(2)接口Cache化,接口合并:目的建立对外部服务的优化,减少客户端的渲染.
(3)服务一致化:简单的说不管采用哪种技术(不管有没有缺点),那你所有的应用就往这上面靠,不要太凌乱.
通过博客v7版本的开发,很多服务被重新梳理了.
(4)DB的优化.
(5)多IDC部署:
为什么要做优化呢,对什么做优化呢.所谓优化就是在很短时间能够解决95%的问题,对于web应用来说,前端的改造是最能见效果的(异步加载,分屏加载).包括这上面说的静态化和Cache化,从典型意义上来说,目前做的优化已经不错了,发现了不少瓶颈,那接下来我们应该做什么呢,在这个思考过程中遇到了几个问题:
1:虽然也整理了系统架构文档,规划了应用架构文档,但还是发现是理论的多,实施方法和策略少,确实这是无法避免的,假如能够快速制定策略,那也显得太简单了.
2:虽然很多人(架构师)提倡分层开发,可我做了N长时间的开发,意识到分层不是那么轻易说出来的(建议那些架构师真正去写点php代码),目前最烦人的是凌乱的代码(可能是我们部门的悲哀),
3:每个人都有自己的理解和想法,尤其是领导的想法,如何平衡他的需求和自己的想法.执行力很重要,在技术层面不能过多抱怨,也不能过多解释.
4:无法知道整个系统,子系统的运行数据和状况,确实是个悲哀,没有数据和分析,谈何优化.
5:没有抽象能力,如何解决后续庞杂的需求.
6:没有规则,没有约束,如何要求别人.如何改进.
7:如何指定计划,如何解决遇到的问题,如何快速提升自己的能力(属于个人积累不够),如何真正坚持的执行.
8:如何合作:尤其是和外部门合作,如何让他们愉悦的为你工作(领导说:借助别人的脑子).
9:短期可实现的计划和长期计划:目前就是这么做的,当可能存在的一个问题,一直觉得有短期目标,可能会麻痹对长期目标的分析,这是最致命的.
下面从技术层面准备去做的:
1:大容量的存储方案,核心是DB,不管将DB作为存储还是关系用,其都是系统最核心的层次之一.很多人都说期望通过应用方案去解决数据库的问题,最近的一些想法是,不要过多讨论应用方案,从纯数据库解决方案上考虑有没有数据分布方案.另外非关系数据存储系统的使用也还是一个趋势,期待公司自行研发的存储系统.
2:数据缓存层
核心主要是Squid和数据Cache层,纠结的是这个层一定要独立和抽象,千万别结合什么数据库延迟去考虑,否则会很复杂,不过独立的cache系统构建谈何容易,不能使用太多的奇淫技巧.
另外对于页面缓存和数据缓存的使用场景也要分析清楚.
3:队列
队列最大的核心是提高伸缩性,尤其对于分布式的IDC使用,其作用不可小视.
5:核心子系统和技术
类似于nginx+memcached这样的高速接口,应该还是需要一点核心的技术.
6:分层的开发模式:
对于变化迅速的web应用,个人觉得这是最重要的.
7:自动化,智能化的分析系统(性能分析,业务分析,数据挖掘).
8:规则和规章制度,培养体系.激励体系
建议继续学习:
- 大型高并发高负载网站的系统架构分析 (阅读:7789)
- Feed架构-我们做错了什么 (阅读:7623)
- 淘宝数据魔方技术架构解析 (阅读:6715)
- Craigslist 的数据库架构 (阅读:5834)
- 大型网站架构基本问题 (阅读:4418)
- 总结的一些PHP开发中的tips (阅读:4261)
- 我来CSDN的这一年 (阅读:3698)
- 产品经理3年沉淀和总结 (阅读:3712)
- 关于架构的一句话,还有一个实例 (阅读:3643)
- 做大的艺术 - 大型网站的架构设计 (阅读:3534)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:ywdblog 来源: 技术 总结 记录 生活 工作
- 标签: 总结 架构
- 发布时间:2010-06-06 21:38:53
- [71] Twitter/微博客的学习摘要
- [68] IOS安全–浅谈关于IOS加固的几种方法
- [65] 如何拿下简短的域名
- [64] find命令的一点注意事项
- [63] Go Reflect 性能
- [63] android 开发入门
- [61] 流程管理与用户研究
- [60] Oracle MTS模式下 进程地址与会话信
- [59] 图书馆的世界纪录
- [58] 读书笔记-壹百度:百度十年千倍的29条法则