架构可细分为业务架构、应用架构、技术架构

架构可细分为业务架构、应用架构、技术架构,

业务架构是战略,应用架构是战术,技术架构是装备。


应用架构承上启下:

1、一方面承接业务架构的落地,

2、一方面影响技术选型


  应用架构类型:单体式、分布式、SOA架构

应用架构

    分有两种方式,

      一种是水平分,从功能类型划分,比如把系统分为web前端/中间服务/后台任务,这是面向业务深度的划分。

      一种是垂直分,以业务类型划分,比如ERP系统可以划分为三个独立的应用,这是面向业务广度的划分

     各个应用之间相互协作,主要体现在应用之间的相互通讯机制和数据格式,通讯机制可以同步、异步消息、共享访问等,数据格式是以文本、XML、JSON、二进制等。


单体式应用

    系统只有一个应用、打包成一个应用;部署在一台机器;在一个DB里存储数据.

    单体式应用采用分层架构,一般为表示层、业务层、数据访问层、DB层,表示层负责用户体验,业务层负责业务逻辑,数据访问层负责DB层的数据存取

    优点:开发、编译、调试一站式、一个应用程序包含所有功能点,容易测试和部署

     缺点:系统逐渐庞大时,代码复杂度高,难以维护,应用扩展水平低,业务和模块职责区分不清晰。


分布式架构

    分布式应用架构中,相互独立,代码独立开发,独立部署,通过API接口互相通信。通讯协议一般使用HTTP,数据格式是JSON,应用集成方式比较简化。

    优点: 应用内部高内聚,独立开发、测试和部署,应用之间松耦合,业务边界清晰,业务依赖明确,支持大项目并行开发。

    缺点: API接口需求变化,应用就需要重新部署,通信可靠性和数据的封装性相对于进程内调用比较差。



SOA架构

      SOA也是分布式应用架构一种,

      SOA架构提供配套的服务治理,包括服务注册、服务路由、服务授权、服务降级、服务监控等等,

       SOA架构既体现业务的分,又体现业务的合,更多地从业务整体上考虑系统拆分

      优点:以服务层为主,聚焦核心业务,同时以提供整个系统共享,服务作为独立的应用,独立部署,接口清晰,很容易做自动化测试和部署,

                服务是无状态的,很容易做水平扩展;通过容器虚拟化技术,实现故障隔离和资源高效利用。

      缺点:系统依赖复杂,给开发/测试/部署带来不便,分布式数据一致性和分布式事务支持困难,一般通过最终一致性简化解决





你可能感兴趣的:(架构设计)