目前中小企业架构设计存在哪些问题?
中小企业IT系统架构面临的问题
技术团队的现状
中小企业从零开始目前项目开发现状:
为什么会出现这么多问题?
怎样才能成为一名优秀的架构师
历经15次架构演进过程
在看下面架构演变请先看以下基础概念
基础概念
分布式
系统中的多个模块在不同服务器上部署,即可称为分布式系 统,如Tomcat和数据库分别部署在不同的服务器上,或两个相同功能的Tomcat分别部署在不同服务器上
高可用
系统中部分节点失效时,其他节点能够接替它继续提供服务,则可认为系统具有高可用性。
集群
一个特定领域的软件部署在多台服务器上并作为一个整体提供一类服务,这个整体称为集群。
负载均衡
请求发送到系统时,通过某些方式把请求均匀分发到多个节点上,使系统中每个节点能够均匀的处理请求负载,则可认为系统是负载均衡的
正向代理和反向代理
系统内部要访问外部网络时,统一通过一个代理服务器把请求转发出去,在外部网络看来就是代理服务器发起的访问,此时代理服务器实现的是正向代理;当外部请求进入系统时,代理服务器把该请求转发到系统中的某台服务器上,对外部请求来说,与之交互的只有代理服务器,此时代理服务器实现的是反向代理。简单来说,正向代理是代理服务器代替系统内部来访问外部网络的过程,反向代理是外部请求访问系统时通过代理服务器转发到内部服务器的过程. 可以看我squid和nginx的代理相关文章, 写的不好欢迎留言,我看到会改正
以下架构调整参考来自淘宝
第一次架构: 单体架构
第二次架构: Tomcat和数据库分开部署
第三次架构: 引入本地缓存和分布式缓存
第四次架构: 引入反向代理实现负载均衡
第五次架构: 数据库读写分离
第六次架构: 数据库按业务分库
第七次架构: 将大表分成小表
第八次架构: 使用LVS或者F5使用多个Nginx负载均衡
第九次架构: 通过DNS轮训实现机房间的负载均衡
第十次架构: 引入NoSQL数据库和搜索引擎
第十一次架构: 把大应用拆分为小应用
第十二次架构: 复用的功能抽离成微服务
第十三次架构: 引入企业服务总线屏蔽服务接口访问的差异
第十四次架构: 引入容器化技术实现环境隔离和动态服务管理
第十五次架构: 以云平台承载系统
架构设计
架构的调整是否必须按照上述进行架构?
以上所说的架构演变顺序只是针对某个侧面进行单独的改进,在实际场景中,可能同一时间会有几个问题需要解决,或者可能先达到瓶颈的是另外的方面,这时候就应该按照实际问题实际解决。如在政府类的并发量可能不大,但业务可能很丰富的场景,高并发就不是重点解决的问题,此时优先需要的可能会是丰富需求的解决方案。
对于将要实施的系统,架构应该设计到什么程度?
对于单次实施并且性能指标明确的系统,架构设计到能够支持系统的性能指标要求就足够了,但要留有扩展架构的接口以便不备之需。对于不断发展的系统,如电商平台,应设计到能满足下一阶段用户量和性能指标要求的程度,并根据业务的增长不断的迭代升级架构,以支持更高的并发和更丰富的业务