• 从不同视角理解架构


    在学习架构时,首先要理清楚架构的视角,因为你所认知的架构和别人所说的架构可能是两码事。对于不同职位的视角是不一样的,比如开发而言他更多的看到的是开发架构;对售前人员,他可能更多的看到的是业务架构;对于运维人员,他看到的可能是运维架构;而对于技术支持和部署人员,他更多的看到的网络和物理架构。

    架构的视角

    从不同视角去理解架构,可以将架构大致分为业务架构、应用架构(技术架构)、云基础架构(物理架构)这几大类,业务架构主要着眼于控制业务的复杂性,基础架构着眼于解决分布式系统中存在的一系列问题。无论何种架构,都希望能实现系统的可变的同时保障业务的高可用。

    • 很多时候架构的视角/分类没有明显的边界,通常是交叉的;

    业务架构

    业务结构的核心是解决业务带来的系统复杂性,了解客户/业务方的痛点,项目定义,现有环境;梳理高阶需求和非功能性需求,进行问题域划分与领域建模等工作;沟通,方案建议,多次迭代,交付总体架构。
    看看京东业务架构(网上分享图):
    arch-x-view-2.jpg

    应用架构(技术架构)

    根据业务场景的需要,设计应用的层次结构,制定应用规范、定义接口和数据交互协议等。并尽量将应用的复杂度控制在一个可以接受的水平,从而在快速的支撑业务发展的同时,在保证系统的可用性和可维护性的同时,确保应用满足非功能属性要求(性能、安全、稳定性等)。技术架构主要考虑系统的非功能性特征,对系统的高可用、高性能、扩展、安全、伸缩性、简洁等做系统级的把握。
    从不同视角去理解技术架构,包括但不限于如下的视角

    功能视角:

    功能视角和业务视角有重合的地方,主要针对开发而言的服务功能arch-x-view-3.png

    技术视角

    总体视角

    技术框架(technological Framework)是整个或部分技术系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,技术框架是可被技术开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。
    从技术层面描述,主要是分层模型,例如持久层、数据层、逻辑层、应用层、表现层等,然后每层使用什么技术框架,例如Spring、hibernate、ioc、MVC、成熟的类库、中间件、WebService等,分别说明,要求这些技术能够将整个系统的主要实现概括。

    数据视角

    专注于构建数据中台,统一数据定义规范,标准化数据表达,形成有效易维护的数据资产。打造统一的大数据处理平台,包括数据可视化运营平台、数据共享平台、数据权限管理平台等。

    基础架构arch-x-view-8.jpg

    运维架构

    负责运维系统的规划、选型、部署上线,建立规范化的运维体系。arch-x-view-7.png

    物理架构

    物理架构关注软件元件是如何放到硬件上的,专注于基础设施,某种软硬件体系,甚至云平台,包括机房搭建、网络拓扑结构,网络分流器、代理服务器、Web 服务器、应用服务器、报表服务器、整合服务器、存储服务器和主机等。

  • 相关阅读:
    Dubbo后台管理和监控中心部署
    IDEA取消git对项目的版本控制
    react 中 antd 的 样式和 tailwind 样式冲突
    Python中的print()
    C语言练习之消失的数字(两种解法)
    JAVA基础算法(6)----- 国际象棋 α 皇后问题
    4本建模必读的书籍,每天学一点,获益匪浅
    【dc-dc】AP5186 三功能 LED 降压型恒流芯片 手电筒 LED芯片
    Postman接口自动化测试之——批量参数化(参数文件)
    〖全域运营实战白宝书 - 高转化文案速成篇④〗- 如何撰写摘要型文案?
  • 原文地址:https://blog.csdn.net/qq_45748351/article/details/126279448