在做网站架构时,甚至是在做开发做技术选型时很容易走入技术人的误区。例如:一味的跟随大公司的解决方案,”这个问题淘宝就是这么做的”、”别人Facebook就用很久了”。选择一门技术肯定是要贴合业务的,别人的不一定适合。思考别人这样用的场景,是什么问题导致大公司通过这个方法解决。切勿盲目,成为愚翁。
为技术而技术 网站技术与架构是为业务服务的,并不能一味的追求时髦技术。否则会把技术发展引入崎岖小道。
不要企图用技术解决所有问题 12306就是一个很好的例子,根据业务途径分时段分发车票,分离货运业务,分离查询业务到云计算服务。演变一下方式,也很好的解决了”技术架构黑洞”。(技术架构黑洞指无论何种架构都无法解决当前的技术困境问题,任何架构设计进入这个黑洞都是犹如叶落水中无涟漪)
好的架构特点:高可用,高性能,易伸缩,可扩展以及安全。
高可用:冗余服务,即时有服务器宕机也能快速切换 高性能:数据库服务器端,索引、缓存、SQL优化、CDN、分布式缓存、本地缓存、浏览器端优化:合理布局、页面压缩。目的就是让用户更快的访问服务,使用服务 易伸缩:对于缓存服务器、数据库服务器可以很轻松的加入新服务器。集群易伸、易缩 扩展性:加入的新功能不会对旧功能产生影响,不会牵一发而动全身。 安全:信息安全、数据安全不言而喻。
分层架构、”单细胞”架构、”煎饼”架构这些架构都有一个特点——拆分,让整个系统的组件独立。通信协议的七层,当每一层出现问题通过定位找到相应的协议层。修复时只单独对单层维护。简单,轻松,分离容易。而在分层是要确定好这个组件的边界。切勿把边界扩展太广,以免拆分组件变的臃肿。
同一个功能分层,不同的功能分割;
关于自动化:发布过程自动化、自动化代码管理、自动化测试、自动化安全检测、自动化部署、自动化监控、自动化报警、自动化失效转移、自动化失效恢复、自动化降级、自动化分配资源