精华内容
下载资源
问答
  • 分析Cisco企业园区构架

    千次阅读 2017-04-13 09:44:00
    分析Cisco企业园区架构 本篇是基于《CCNP SWITCH(642-813)学习指南》做的学习笔记。如有纰漏,恳请指正。 1.1 企业园区网设计概述 Cisco拥有多种企业园区网的设计模型,这些设计模型都是对各类企业网络的抽象与...

    分析Cisco企业园区架构

    本篇是基于《CCNP SWITCH(642-813)学习指南》做的学习笔记。如有纰漏,恳请指正。

    1.1 企业园区网设计概述

    Cisco拥有多种企业园区网的设计模型,这些设计模型都是对各类企业网络的抽象与浓缩。可以分为以下部分:

    ·核心骨干网  连接园区网、数据中心、分支机构/WAN和Internet边缘

    ·园区网  作用是使终端用户能够从某一地理位置访问网络通信服务和网络资源。有的网络只包含一个园区网,这个园区网也充当核心骨干网的作用。园区网通常会将园区网、数据中心及网络中的WAN部分连接在一起。

    ·数据中心  用来存放计算机系统及相关组成部分的设备。这里说的计算机系统只存放邮件、数据库、市场数据应用的服务器。

    ·分支机构/WAN  包含路由器、交换机等设备,用以连接总部办公室和各地的分支办公室,并在各个主站点之间建立连接。

    ·Internet边缘  由路由器、交换机、防火墙及其他网络设备所组成。将企业连接到Internet。

    1.1.1驱动企业架构变化的法规标准

    法规标准对于数据中心、灾难恢复和业务连续性来说至关重要。设计者都应该在设计网络之前,首先查看一下可以应用到该场合中的相关法规标准。如果还有某些法律适用于读者所在企业,那么读者在设计企业网络之前应该进行一下内部咨询,以获得更多具体信息。

    1.1.2园区网设计方案

    园区网设计合理的话,网络应该是模块化的、可以快速恢复的、灵活性很强。优良的园区架构设计不仅节约时间,节约成本,而且还可以简化IT工程师的工作,并且能让业务量显著提升。

    ·模块化  根据模块化设计出来的园区网更容易扩展和修改。使用结构单元式的设计方式,相关人员在对网络进行扩展时,只需为网络添加新的模块即可,无需重新设计一个新的网络。

    ·快速恢复  部署、设计园区网的最理想结果是:在接近100%的时间里网络都可以正常工作。这同样也是网络应该实现的可用性指标。

    ·灵活性  业务上的变化旨在确保企业能够适应市场的发展。而业务变化也会影响企业对园区网的需求,从而取药园区网络快速适应心的需求。

    1. 传统的园区设计方案

    起初,传统园区网设计方案是建立在单一的二层拓扑和单臂路由基础上的。单臂路由(Router-On-a-Stick)是指通过一台路由器与多个LAN相连,并由改路由器来路由这些网段之间的数据。

    单层的网络存在很多固有限制,二层网络的限制是无法提供以下特性。

    ·扩展性

    ·安全性

    ·模块化

    ·灵活性

    ·快速恢复

    ·高可用性

    二层网络的原始优势之一就是速度,不过,随着Cisco Catalyst和Nexus交换机装载了高速交换硬件之后,三层交换的性能已经能和二层交换的性能并驾齐驱。有鉴于此,人们就开始大规模的部署三层交换网络。比如对于以下交换机来说,其三层交换性能就等同于二层交换性能:Catalyst3000、400和6500系列交换机,以及Nexus7000系列交换机。

    由于Cisco见环境的三层交换性能可以支持大型网络,因此,为使网络更容易扩展,人们开始使用分层结构设计园区网。

    (PS:对于当代Cisco交换机来说,就吞吐量而言,三层交换性能已经等同于二层交换性能。Nexus系列交换机旨在用于部署数据中心,可以支持很高的带宽,速率可达每秒数十万兆。另外,管理员可以根据需要,让Nexus交换机为市场数据应用提供低延迟交换、以太网光纤通道(FCOE)以及高可用性特征。不过,由于Nexus是为数据中心研发的交换机,因此他们缺少一些Catalyst交换机所拥有的特性,比如IP电话在线供电的功能等)

    2. 园区网设计方案中的分层模型

    为了简化园区网的构架,Cisco也采取了分层的做法由于分层模型中的每一层都只关注一个特点的功能,因此网络设计师就可以更轻松地为每一层选择最为合适的系统和特征。这种模型可以提供一个模块化的框架,使网络设计变得更加灵活,实施和排错变得更加轻松。Cisco园区网架构可以将网络或网络中的模块化区域从根本上分为三个层面,即接入层、分布层和核心层:

    ·接入层  也叫做访问层。用来使用户、服务器或边缘设备能够访问网络。在园区网设计方案中,接入层一般包含为工作站、服务器、打印机、无线接入点等设备提供连接端口的交换机。在WAN环境中,接入层可以通过WAN技术帮助远程用户访问公司网络。接入层是园区网中特性最丰富的部分,因为设计网络的最佳做法就是在尽可能接近网络边缘的位置应用特征。这里说的特征包括安全、访问控制、过滤、管理等。

    ·分布层也称为汇聚层。这里汇集了配线柜,在这一层中,我们使用交换机将工作组分进不同的网段中,并用交换机将园区网环境中可能存在的问题隔离在一个比较小的范围内。同样,分布层也汇集了园区边缘的WAN连接,并可以提供一定程度的安全性。一般来说,分布层位于接入层和核心层之间,充当服务和控制的边界。

    ·核心层  也称作骨干层。高速的骨干旨在以最快的速度交换数据包。在当代园区网设计方案中,核心骨干必须使用至少万兆的以太网链路来与其他交换机建立连接。由于核心层对于网络连通性来说是最为关键的一层,所以它必须提供最高级别的可用性,并且必须能够最快地适应网络的变化。该层的设计方案也应该实现扩展性和快速收敛。

    分层话模型具有的优势:

    ·提供了模块化的设计方案

    ·易于理解

    ·灵活性强

    ·易于扩展

    ·提高了网络的可预测性

    ·降低了排错的难度

    1.1.3多层交换机对网络设计的影响

    1. 以太网交换技术回顾

    第2、3、4、7层交换这些术语是将交换特性结合在了OSI参考模型上。下面为OSI参考模型及其与协议和网络硬件之间的关系。

    2. 二层交换

    二层交换机只能根据MAC地址对数据包进行交换。二层交换及能够比较轻松地提高网络带宽和端口密度。术语“第二层交换“是在暗示交换机所转发的帧不会以任何方式被修改。(某些二层交换机具有一些第三层的特性)

    3. 三层交换

    三层交换机带有三层路由选择功能。目前很多Catalyst三层交换机都能够使用路由选择协议(如BGP、RIP、OSPF和EIGRP)来定制最优的转发决策。有些带有路由选择功能的Cisco交换机吴发支持BGP协议,这是因为这些交换机的内存无法支撑规模较大的路由表。

    二层交换:

    ·根据MAC地址表进行交换

    ·扩展性有限,域中只能存在有限的几台交换机

    ·有可能可以支持第三层特性,如QoS或访问控制

    三层交换:

    ·根据IP地址进行交换

    ·兼具二层特性

    ·设计方案扩展性良好

    4. 四层交换与七层交换

    四层交换是指根据协议会话进行交换。第四层交换不仅会使用源IP地址和目标IP地址,还要使用数据包中TCP和UDP部分所包含的IP会话信息。使用四层交换技术来对流量进行区分,最常用的方法就是通过TCP和UDP端口号来实现。服务器负载均衡技术(这是一个从第四层到第七层的交换特性)可以使用TCP信息(如TCP、SYN、FIN和RST等)来制定转发决策。综上所述,第四层交换机能够区分不同类型的IP数据流,例如区分FTP、NTP、HTTP、S-HTTP、和SSH流量信息等。

    七层交换功能是根据应用层信息来实现的。所谓七层交换,指的是内容智能。以浏览web网页为例,内容智能需要使用某些特性,如URL监控、cookies和主机数据包头等。再以VoIP(Voice over IP,IP承载语音技术)为例,为了实现QoS,内容智能需要对呼叫目的地进行区分,例如区分出该呼叫是本地呼叫还是长途呼叫。

    1.1.4深入分析二层交换

    二层交换也常被人称为基于硬件的桥接。在只有二层功能的交换机中,帧的转发是有ASIC(Application Specific Integrated Circuit一种集成电路)负责处理的。此外二层交换机将增加带宽的能力转移到配线架,而无需给网络增加不必要的复杂性。

    简单来讲,二层交换具有如下的网络设计特点。

    ·旨在实现接近线速的性能

    ·内置了高速专用的ASIC

    ·低延迟交换

    ·可扩展到多台交换机的拓扑,但拓扑中没有路由器和第三层交换机。

    ·支持第三层功能,如IGMP(Internet Group Management Protocol,Internet组管理协议)侦听和QoS标记

    ·在大型网络中,扩展性有限,没有第三层边界

    1.1.5深入分析第三层交换

    三层交换是基于硬件的路由选择。通过提供路由选择域,三层交换机克服了二层设备扩展性不足的缺点。ASIC和其他专用电路负责处理三层交换机中的数据包转发。第三层交换机处理数据包的方式和传统路由器一般相同,其中包括以下工作。

    ·根据第三层信息判断转发路径

    ·通过第三层校验和来验证第三层数据包头部的完整性

    ·改变数据包的TTL值,并验证其是否过期

    ·在修改IP的工程中,修改源和目的MAC地址

    ·在修改第三层信息的过程中,跟新第二层CRC(Cyclic Redundancy Check循环冗余校验)

    ·处理并响应数据包中的任何选项信息,如ICMP(Internet Control Message Protoco, Internet控制报文协议)记录

    ·为网络管理应用更新转发统计数据

    ·在需要的时候,应用安全控制和服务分类

    要实现三层路由选择功能,就要求设备具有修改数据包的能力。

    ARP协议(Address ResolutionProtocol地址解析协议),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存。

    1.1.6理解多层交换

    多层交换将二层交换和三层路由选择的功能结合了起来。具体而言,多层交换机不仅能够对园区网络中的通信流量进行线速转发,而且还能满足第三层的连通性要求。此外,多层交换机还支持很多其他的第二、三层特性。例如,很多多层交换机支持QoS标记技术。通过综合第二层和第三层功能和特性,多层交换机具有易于部署的特点,并且能够简化网络拓扑。

    另外三层交换机可以通过对二层的汇聚,来限制生成树规模,这也可以简化网络结构。第三层路由协议还能够支持负载分担、快速收敛、扩展性及网络控制等功能。

    1.1.7Cisco Catalyst交换机简介

    这里将介绍一些在园区网、骨干网和数据中心环境中比较常用的交换机型号。

    1. Catalyst 6500系列交换机

    Catalyst 6500系列交换机是Cisco生产的全线交换机中最受欢迎的型号。这种型号的交换机部署广泛,不仅限于园区网、数据中心和骨干网,也常用于部署服务器、WAN、分支机构等,这种型号的交换机既可用于企业网络,也可用于服务提供商网络。其具有以下特点:

    ·最多有13个插槽可以用来安装扩展模块

    ·在能够使用超额订阅(oversubscription)的型号中,每个插槽可以支持最大16个万兆(10Gb)以太网接口

    ·在当代硬件中,每个槽位支持的最大带宽为80Gb/s

    ·支持带有大量二层和三层交换特性的Cisco IOS

    ·在安装特定模块之后,可以支持上达七层的特性

    ·可根据冗余和高可用性方面的需要而安装荣誉的电源、风扇及Supervisor引擎

    ·支持三层不间断转发功能(NSF),因此设备在切换引擎时,路由对等体关系不会受到影响

    ·向后兼容功能和投资保护策略,使其拥有漫长的生命周期。

    2. Catalyst 4500系列交换机

    Catalyst 4500系列交换机是一个相当受用户欢迎的交换机系列,很多中小型企业都在园区网的分布层或折叠核心层(Collapsed Core)部署了这个系列的交换机设备。所谓折叠核心层设计方案是指将核心层和分布层设计在同一个区域中。比Catalyst 6500系列交换机次一级,但依然支持很多的二层和三层特性。具有以下特点:

    ·最多有10个插槽可以用来安装扩展模块

    ·每个插槽可以支持多个万兆以太网接口

    ·支持Cisco IOS

    ·支持二层交换和三层交换

    ·可出于冗余和高可用性方面的需要而安装荣誉的电源、风扇及Supervisor引擎

    3. Catalyst 4948G、3960和3560系列交换机

    Catalyst 4948G、3960和3560系列交换机是园区网中最常用的固定端口交换机,它们主要用于网络的接入层。有以下特点:

    ·可以配置大量的固定端口,其中包括最多48个1Gb/s接入层端口和4个用于连接分布层的上行链路10Gb/s以太网接口

    ·支持Cisco IOS

    ·支持二层交换和三层交换

    ·不能安装冗余的硬件

    4. Catalyst 2000系列交换机

    Catalyst 2000系列交换机是纯二层的交换机,他们无法支持三层路由选择功能,但是也能支持一些其他的三层特性。这些特性一般都会应用在园区网中的接入层。特点如下:

    ·可以配置大量的固定端口,其中包括最多48个1Gb/s接入层端口和多个用于连接分布层的上行链路10Gb/s以太网接口

    ·支持Cisco IOS

    ·仅支持二层交换

    ·不能安装冗余的硬件

    5. Nexus 7000系列交换机

    Nexus 7000系列交换机是Cisco最优秀的数据中心交换机。Nexus7000的软件无法支持Cisco IOS的任何特性。总结如下:

    ·模块化交换机,可以安装最多18个模块

    ·每个插槽支持最大230Gb/s

    ·支持Nexus(NX-OS)

    ·10槽位机箱采用了前后通风的设计方式

    ·支持冗余的Supervisor引擎、风扇、电源

    6. Nexus 5000和2000系列交换机

    Nexus 5000和2000系列交换机是专为部署接入层的数据中心而设计的低延迟交换机。这些交换及目前都是纯二层交换机,但是他们支持低延迟的直通式交换功能。Nexus 5000交换机是为万兆以太网应用而设计的产品,它也可以支持FCOE技术。

    1.1.8硬件交换和软件交换术语

    硬件交换是指通过专门的硬件(ASIC)在任意一层(第二层至第七层)处理数据包的行为。ASIC通常能够达到线速的吞吐量,它不会设备应用了某些高级特性(QoS标记、ACL处理或IP重写)而降低性能。与通过CPU实现的传统的数据帧”软件交换”相比,通过硬件实现交换和路由选择,流量的速度明显更快。

    ASIC在交换构架中更容易扩展,而CPU扩展性则不强。在对数据包以分布式的方法进行硬件交换时,不仅Catalyst交换机的Supervisor引擎上集成了ASIC,而且交换机的每个线路模块上也集成了ASIC。ASIC会受到内存容量的限制,内存越大,交换机就能支持更多数量的ACL。此外ASIC并不支持Cisco IOS的全部特性。(例如Catalyst 6500系列交换机就必须对所有需要执行NAT的数据包进行软件交换)

    1.1.9园区网流量类型

    常见流量类型:

    流量类型

    描述

    数据流

    带宽

    网络管理

    网络中会出现很多不同类型的管理流量,比如BPDU、CDP更新、SNMP、SSH、RMON流量。有些设计者会为某种类型的管理流量分配一个独立的VLAN,以简化排错工作

    流量会在各层间流动

    语音
    (IP
    电话通讯)

    语言流量分两种:端点设备之间的信令信息,以及语音通话自身的数据包。一般来说,从IP电话出入的数据包会被划分到语音流量专用的VLAN中(利用QoS标准来授予语音流量更高的优先级)

    一般从接入层流向核心层或数据中心的服务器

    IP组播

    IP组播流量会从某个特定的源地址发往一组MAC地址。组播流量会在网络中产生大量的数据流。因此,交换机和路由器的正确配置就很重要

    一般从接入层流向核心层最后流向数据中心

    很高

    一般数据

    最典型的应用流量,它与文件和打印服务、Internet浏览、数据访问及其他共享应用有关。流量例子有:服务器报文块、NCP(网件核心协议)、SMTP(简单邮件传输协议)、SQL和HTTP等

    通常从接入层流向核心层最后流向数据中心

    中低

    清道夫类(Scavenger class)

    清道夫类包含了所有协议或模式超过了正常数据流的流量。这样做是为了保障网络中的流量不会出现过量的情况,以防止终端系统PC上的恶意程序在网络中作乱。清道夫类也作用于尽力而为类型的流量,如点到点流量

    没有规律

    中高

    1. 点到点的应用

    有些流量使用的是点到点模型,即数据流在两个端点之间进行发送典型的点到点应用如下:

    ·即时消息  两个对等体在两个终端系统之间建立通信连接。当连接建立起来之后,设备可以直接对话

    ·文件共享  有些操作系统或应用需要能够直接访问其他工作站上的数据。大多数企业都禁止使用这种应用,因为它们缺乏集中的或者网络管理的安全性。

    ·IP电话呼叫  IP电话呼叫对网络的要求十分严格,因为这种流量需要通过QoS来讲抖动降至最低

    ·视频会议系统  视频会议对网络的要求极高,因为它非常消耗带宽,而且需要使用CoS(服务类别)。

    2. 服务端/服务器应用

    许多企业流量都是基于客户端/服务器模型的,因此在这种模型中,去往服务器的连接最有可能成为带宽的瓶颈。特别是对于财务和市场交易的数据中心应用则需要使用低延迟交换机,如Nexus 5000系列交换机。

    典型应用有:

    ·邮件服务器

    ·文件服务器

    ·数据库服务器

    对应于用的访问:

    ·快捷

    ·灵活

    ·尽在掌握(安全)

    3. 客户端-企业边缘应用

    客户端-企业边缘应用是使用企业边缘的服务器来为企业和企业的公共服务器之间交换数据。这些应用包括外部邮件服务器和外部web服务器。在园区网和企业边缘之间,最核心的通信问题就是安全性和可用性。

    Ps: 在设计园区网之前,设计者必须首先了解企业中的网络流量和模式。因为它们会最终决定网络的规模、网络的特性,以及园区网中应该使用哪种交换机。

    1.1.10SONA及无边界网络的概述

    如果设计者使用了合理的网络架构,那么业务战略和it投资就会相得益彰。以服务为导向的网络架构(SONA)是Cisco专为设计高级网络功能而提出的一种架构取向。SONA对于连接网络服务与应用并解决业务需求,提供了指导方针、最佳做法和实施蓝图。SONA描绘了智能企业网络中的三个层次:

    ·网络基础设施层  在此,所有IT资源在融合网络平台上互联。这些IT资源包括服务器、储存设备和客户端设备。网络基础设施层表示出这些资源是如何存在于网络的不同位置的,如园区网、分支机构、数据中心、WAN、MAN(城域网)和远程办公地点。在这一层中,客户的目标是随时随地连接网络。

    ·交互服务层  利用网络基础设施的应用和业务流程有效分配资源

    ·应用层  包含商业应用和协作应用。在这一层中,客户的目标是满足业务需求,并重复利用交互服务的效率。

    SONA将应用智能的嵌入到了网络基础设备中,使网络可以识别不同的应用和服务,并能够更好地为他们提供支持。

    以SONA框架设计园区网拥有以下优势:

    ·使所有区域中的网络基础设施具有融合、虚拟、智能、安全和集成特性

    ·节省成本

    ·增加效益

    ·更快捷地部署心的服务和新的应用

    ·强化业务流程

    Ps:SONA完全是一个指导网络设计的模型!

    1.2 企业园区网设计

    Cisco园区架构将网络分为接入层、分布层、核心层。这个企业网架构将企业网络分为了物理、逻辑和功能三个区域。划分这些区域使网络设计者和工程师能够根据设备的位置以及模型中相应位置的功能,来在相应设备上使用特定的网络功能。

    1.2.1深入分析接入层

    接入层汇集了终端用户,并为终端用户提供与分布层相连的上行链路。设计得当,将有以下优势:

    ·高可用性  可以为重要用户提供冗余Supervisor引擎和电源。还可以为用户提供冗余的默认网关(在接入层交换机与分布层交换机之间使用双链路连接,在分布层交换机上运行FHRP[首条冗余协议]等)。

    ·网络融合  接入层交换机可以为IP电话无无线接入点提供在线以太网供电(PoE)技术,使客户能够将语音数据融合到数据网络中,并未用户提供漫游WAN接入功能。

    ·安全性  接入层交换机可以提供一些安全功能(如端口安全、DHCP欺骗、动态ARP监控和IP源防护)防止未经授权的用户对网络进行访问。

    1.2.2 分布层

    部署分布层需要考虑的问题主要是网络的可用性、快速路径恢复、负载分担和QoS。一般地,高可用性通常是通过在分布层到核心层,以及接入层到分布层之间部署两条路径来提供的。分布层将二层和多层交换功能结合在了一起,它负责将工作组划分进不同网段并且隔离网络故障,进而阻止这些故障蔓延到核心层。分布层还将终结接入层交换机发起的VLAN。分布层提供以下功能:

    ·汇聚接入层交换机

    ·为简化起见而分隔接入层

    ·汇总去往接入层的路由

    ·总是用两条链路来连接上游核心层交换机/路由器

    ·可以应用数据包过滤、安全特性、和QoS

    1.2.3 核心层

    核心层是园区网连接的骨干,是另外几层的汇聚点。必须提供高级冗余特性并且能够更快地适应变化,还必须实现能够实施可扩展的协议和技术、可替代的路径以及负载分担特性。总结特性如下:

    ·将位于分布层的交换机同网网络的其他部分汇集到一起

    ·通过提供冗余的汇集点来实现快速收敛和高可用性

    ·可以在未来随着分布层和接入层的扩展而扩展

    1. 为什么需要核心层

    如果没有核心层,位于分布层的交换机就必须采用全网状互联的方式相互连接。这种方式难扩展,并且浪费线缆。

    2. 将园区核心层作为企业骨干网

    核心层可以简化企业中网络设备之间互联的方式,同时也可以降低不同网段之间(楼层之间)路由的复杂程度。

    1.2.4 小型园区网示例

    小型园区网或大型分支机构网络是指终端设备小于200台的网络,同时在小型园区网中,网络服务器和工作站有可能物理地连接在同一个配线柜中。在小型园区网中的交换机也许不需要拥有很高的性能,也不需要具备很强的扩展性。在小型园区网中还可以将分布层和核心层合并进同一层中。

    使用设备示例:Catalyst 2960G交换机,Cisco1900/2900路由器

    1.2.5 中型园区网示例

    对于一个中型园区网来说,网络中应该拥有200-1000台终端设备。

    使用设备示例:Catalyst 4500/6500系列交换机

    1.2.6大型园区网示例

    大型园区网是指拥有2000个以上终端用户的环境。

    1.3 使用PPDIOO生命周期法来设计并实施网络

    PPDIOO表示 准备、规划、设计、实施、运营和优化。PPDIOO是Cisco生命周期法,它持续发展的生命周期定义了网络所需的各项服务。

    1.4 总结

    园区网正在不断地发生变化。变化之一就是园区网正在从传统/二层交换机设计方案转变为基于虚拟交换机的设计方案。另一个变化就是由单一接入交换机提供多个子网转变为基于路由的接入层设计方案。

    随着网络的演变,网络中添加进来了很多新功能,比如虚拟服务,或者移动性等。而在网络中引入这些功能的动机往往不一而足。安全风险的提高、架构灵活的需要、应用数据流的变化等都驱动着网络架构的不断发展,使其功能日臻完善。

    展开全文
  • 领域驱动实践总结一:基本理论总结与分析 一、领域驱动设计两大设计:战略设计和战术设计 二、理解和分析领域+子域+核心域+通用域+支撑域 三、理解和分析界限上下文,定义领域边界 四、理解和分析实体和值...

    目录

    领域驱动实践总结一:基本理论总结与分析

    一、领域驱动设计两大设计:战略设计和战术设计

    (一)战略设计

    1.出发角度与目标

    2.实现方式:事件风暴与模型确立(用例分析、场景分析和用户旅程分析)

    3.用三步来划定领域模型和微服务的边界

    (二)战术设计

    1.出发角度与目标

    2.实现方式:DDD 分层架构、整洁架构、CQRS 和六边形架构等  (我们采用DDD 分层架构)

    3.代码模型强调两点:聚合之间的代码边界一定要清晰+一定要有代码分层的概念

    二、理解和分析领域+子域+核心域+通用域+支撑域

    (一)整体理解领域与子域的概念(以桃树生物学知识体系的建立为例来加深理解)

    (二)理解核心域、通用域和支撑域的划分及具体目的

    1.核心域

    2.通用域

    3.支撑域

    4.划分核心域、支撑域和通用域的主要目标

    三、理解和分析界限上下文,定义领域边界

    (一)通用语言

    (二)限界上下文

    四、理解和分析实体和值对象

    (一)对于实体的具体理解

    1.实体的业务形态

    2.实体的代码形态

    3.实体的运行形态

    4.实体的数据库形态

    (二)对于值对象的具体理解

    1.实体的业务形态

    2.实体的代码形态

    3.实体的运行形态

    4.实体的数据库形态

    5. 值对象的优势和局限

    (三)对于实体与值对象关系的理解

    1.基本的关系理解

    2.不同场景下关系的不同

    五、理解和分析聚合思想:聚合和聚合根

    (一)对聚合的理解和分析

    (二)对聚合根的理解和分析

    (三)聚合、聚合根、实体、值对象的对比

    (四)基本理解综合

    六、理解很分析领域事件来解耦微服务

    (一)领域事件的识别

    (二)微服务内外的领域事件分析

    1. 微服务内的领域事件

    2. 微服务之间的领域事件

    (三)领域事件总体架构

    1. 事件构建和发布

    2. 事件数据持久化

    3. 事件总线 (EventBus)

    4. 消息中间件

    5. 事件接收和处理

    (四)具体案例分析

    参考书籍、文献和资料


    领域驱动实践总结一:基本理论总结与分析

    领域驱动设计DDD是一种设计思想,它可以同时指导中台业务建模和微服务设计(中台本质是业务模型,微服务是业务模型的系统落地),领域驱动设计强调领域模型和微服务设计的一体性,先有领域模型然后才有微服务,而不是脱离领域模型来谈微服务设计。

    微服务拆分困境产生的根本原因:不知道业务或者微服务的边界到底在什么地方。

    DDD 核心思想:通过领域驱动设计方法定义领域模型,从而确定业务和应用边界,保证业务模型与代码模型的一致性。

    对于领域驱动设计的学习做的总结主要写三篇博客,主要包括三部分:基本理论总结与分析、架构分析与代码设计、具体应用设计分析,主要参考的资料为极客时间的欧创新架构师的《DDD》实战,其他参考书籍在文章下方的参考书籍中。

    本次主要总结DDD基本理论总结与分析

    一、领域驱动设计两大设计:战略设计和战术设计

    领域驱动设计认为:开发团队应该从业务需求中提炼出统一语言,再基于统一语言建立领域模型,这个领域模型会指导程序设计及编码实现,最后,又通过重构来发现隐式概念,并运用设计模式改进设计与开发质量。

    领域驱动设计的整个设计过程主要分为两个阶段:战略设计阶段与战术设计阶段。

    (一)战略设计

    1.出发角度与目标

    业务视角出发,建立业务领域模型,划分领域边界,建立通用语言的限界上下文,限界上下文可以作为微服务设计的参考边界。

    2.实现方式:事件风暴与模型确立(用例分析、场景分析和用户旅程分析)

    DDD 战略设计会建立领域模型,领域模型可以用于指导微服务的设计和拆分。

    事件风暴是建立领域模型的主要方法,它是一个从发散到收敛的过程。它通常采用用例分析、场景分析和用户旅程分析,尽可能全面不遗漏地分解业务领域,并梳理领域对象之间的关系,这是一个发散的过程。事件风暴过程会产生很多的实体、命令、事件等领域对象,我们将这些领域对象从不同的维度进行聚类,形成如聚合、限界上下文等边界,建立领域模型,这就是一个收敛的过程。

    3.用三步来划定领域模型和微服务的边界

    第一步:在事件风暴中梳理业务过程中的用户操作、事件以及外部依赖关系等,根据这些要素梳理出领域实体等领域对象。

    第二步:根据领域实体之间的业务关联性,将业务紧密相关的实体进行组合形成聚合,同时确定聚合中的聚合根、值对象和实体。在这个图里,聚合之间的边界是第一层边界,它们在同一个微服务实例中运行,这个边界是逻辑边界,所以用虚线表示。

    第三步:根据业务及语义边界等因素,将一个或者多个聚合划定在一个限界上下文内,形成领域模型。在这个图里,限界上下文之间的边界是第二层边界,这一层边界可能就是未来微服务的边界,不同限界上下文内的领域逻辑被隔离在不同的微服务实例中运行,物理上相互隔离,所以是物理边界,边界之间用实线来表示。

    (二)战术设计

    1.出发角度与目标

    技术视角出发,侧重于领域模型的技术实现,完成软件开发和落地,包括:聚合根、实体、值对象、领域服务、应用服务和资源库等代码逻辑的设计和实现。

    2.实现方式:DDD 分层架构、整洁架构、CQRS 和六边形架构等  (我们采用DDD 分层架构)

    从战略设计向战术设计的实施过程中,我们会将领域模型中的领域对象与代码模型中的代码对象建立映射关系,将业务架构和系统架构进行绑定。当我们去响应业务变化调整业务架构和领域模型时,系统架构也会同时发生调整,并同步建立新的映射关系。

    微服务架构模型有好多种,例如DDD 分层架构、整洁架构、CQRS 和六边形架构等,其核心理念都是为了设计出“高内聚低耦合”的架构,轻松实现架构演进。而 DDD 分层架构的出现,使架构边界变得越来越清晰,它在微服务架构模型中,占有非常重要的位置。

    DDD 分层架构包含用户接口层、应用层、领域层和基础层。通过这些层次划分,我们可以明确微服务各层的职能,划定各领域对象的边界,确定各领域对象的协作方式。

    3.代码模型强调两点:聚合之间的代码边界一定要清晰+一定要有代码分层的概念

    根据 DDD 分层架构模型建立了标准的微服务代码模型,在代码模型里面,各代码对象各据其位、各司其职,共同协作完成微服务的业务逻辑。

    第一点:聚合之间的代码边界一定要清晰。

    聚合之间的服务调用和数据关联应该是尽可能的松耦合和低关联,聚合之间的服务调用应该通过上层的应用层组合实现调用,原则上不允许聚合之间直接调用领域服务。这种松耦合的代码关联,在以后业务发展和需求变更时,可以很方便地实现业务功能和聚合代码的重组,在微服务架构演进中将会起到非常重要的作用。

    第二点:一定要有代码分层的概念。

    写代码时一定要搞清楚代码的职责,将它放在职责对应的代码目录内。应用层代码主要完成服务组合和编排,以及聚合之间的协作,它是很薄的一层,不应该有核心领域逻辑代码。领域层是业务的核心,领域模型的核心逻辑代码一定要在领域层实现。如果将核心领域逻辑代码放到应用层,你的基于 DDD 分层架构模型的微服务慢慢就会演变成传统的三层架构模型了。

    二、理解和分析领域+子域+核心域+通用域+支撑域

    (一)整体理解领域与子域的概念(以桃树生物学知识体系的建立为例来加深理解)

    领域就是用来确定范围的,范围即边界,这也是 DDD 在设计中不断强调边界的原因。

    DDD 的领域就是这个边界内要解决的业务问题域。

    领域可以进一步划分为子领域。我们把划分出来的多个子领域称为子域,每个子域对应一个更小的问题域或更小的业务范围。

    领域建模和微服务建设的过程和方法基本类似,其核心思想就是将问题域逐步分解,降低业务理解和系统实现的复杂度。

    如何给桃树建立一个完整的生物学知识体系,它的研究过程如下:

    --->确定研究对象,即研究领域,这里是一棵桃树           

          zyf@@@zyf  对应 DDD 的领域,研究的具体问题域

    --->对研究对象进行细分,将桃树细分为器官,器官又分为营养器官和生殖器官两种。其中营养器官包括根、茎和叶,生殖器官包括花、果实和种子。

         zyf@@@zyf  具体问题域划分为两大问题域,根、茎、叶、花、果实和种子等器官则是细分后的问题子域。

                               DDD 将领域细分为多个子域的过程。      

    --->对器官进行细分,将器官细分为组织。比如,叶子器官可细分为保护组织、营养组织和输导组织等。

          zyf@@@zyf  DDD 将子域进一步细分为多个子域。     

    --->对组织进行细分,将组织细分为细胞,细胞成为我们研究的最小单元。细胞之间的细胞壁确定了单元的边界。

          zyf@@@zyf  DDD 将子域进一步细分确定研究的最小边界

                                可以把细胞(细胞核、线粒体、细胞膜等物质)理解为 DDD 的聚合,细胞内的这些物质就可以理解为聚合里面的聚合根、实体以及值对象等。    

    (二)理解核心域、通用域和支撑域的划分及具体目的

    子域可以根据自身重要性和功能属性划分为三类子域,它们分别是:核心域、通用域和支撑域。

    公司在 IT 系统建设过程中,由于预算和资源有限,对不同类型的子域应有不同的关注度和资源投入策略,记住好钢要用在刀刃上。很多公司的业务,表面看上去相似,但商业模式和战略方向是存在很大差异的,因此公司的关注点会不一样,在划分核心域、通用域和支撑域时,其结果也会出现非常大的差异。

    比方都是电商平台的淘宝、天猫、京东和苏宁易购,他们的商业模式是不同,在面对各个子域的划分上侧重点都不一样!

    1.核心域

    最重要的,决定产品和公司核心竞争力的子域,它是业务成功的主要因素和公司的核心竞争力。

    在公司领域细分、建立领域模型和系统建设时,我们就要结合公司战略重点和商业模式,找到核心域了,且重点关注核心域。

    建议技术团队要将核心域的建设排在首位,最好是有绝对的掌控能力和自主研发能力!

    2.通用域

    没有太多个性化的诉求,同时被多个子域使用的通用功能子域是通用域。

    通用域则是你需要用到的通用系统,比如认证、权限等等,这类应用很容易买到,没有企业特点限制,不需要做太多的定制化。

    3.支撑域

    既不包含决定产品和公司核心竞争力的功能,也不包含通用功能的子域,它就是支撑域。

    支撑域则具有企业特性,但不具有通用性,例如数据代码类的数据字典等系统。

    4.划分核心域、支撑域和通用域的主要目标

    通过领域划分,区分不同子域在公司内的不同功能属性和重要性,从而公司可对不同子域采取不同的资源投入和建设策略,其关注度也会不一样。

    三、理解和分析界限上下文,定义领域边界

    在 DDD 领域建模和系统建设过程中,领域专家、产品经理、项目经理、架构师、开发经理和测试经理等对同样的领域知识,不同的参与角色可能会有不同的理解,避免交流障碍,DDD 中就出现了“通用语言”和“限界上下文”这两个重要的概念。

    通用语言定义上下文含义,限界上下文则定义领域边界,以确保每个上下文含义在它特定的边界内都具有唯一的含义,领域模型则存在于这个边界之内。

    (一)通用语言

    在事件风暴过程中,通过团队交流达成共识的,能够简单、清晰、准确描述业务涵义和规则的语言就是通用语言。

    通用语言包含术语和用例场景,并且能够直接反映在代码中。

    • 通用语言中的名词可以给领域对象命名,如商品、订单等,对应实体对象;
    • 而动词则表示一个动作或事件,如商品已下单、订单已付款等,对应领域事件或者命令。

    下面是一个微服务设计实例的部分数据(也是后面实践的应用案例分析),表格中的这些名词术语就是项目团队在事件风暴过程中达成一致、可用于团队内部交流的通用语言。

    在这个表格里面我们可以看到,DDD 分析过程中所有的领域对象以及它们的属性都被记录下来了,除了 DDD 的领域对象,

    DDD 分析和设计过程中的每一个环节都需要保证限界上下文内术语的统一,在代码模型设计的时侯就要建立领域对象和代码对象的一一映射,从而保证业务模型和代码模型的一致,实现业务语言与代码语言的统一。还记录了在微服务设计过程中领域对象所对应的代码对象,并将它们一一映射。

    (二)限界上下文

    领域专家、架构师和开发人员的主要工作就是通过事件风暴来划分限界上下文。

    可以将限界上下文拆解为两个词:限界和上下文。限界就是领域的边界,而上下文则是语义环境。

    限界上下文的定义就是:用来封装通用语言和领域对象,提供上下文环境,保证在领域之内的一些术语、业务相关对象等(通用语言)有一个确切的含义,没有二义性。

    业务的通用语言就有它的业务边界,我们不大可能用一个简单的术语没有歧义地去描述一个复杂的业务领域。限界上下文就是用来细分领域,从而定义通用语言所在的边界。

    正如电商领域的商品一样,商品在不同的阶段有不同的术语,在销售阶段是商品,而在运输阶段则变成了货物。同样的一个东西,由于业务领域的不同,赋予了这些术语不同的涵义和职责边界,这个边界就可能会成为未来微服务设计的边界。看到这,我想你应该非常清楚了,领域边界就是通过限界上下文来定义的

    理论上限界上下文就是微服务的边界。我们将限界上下文内的领域模型映射到微服务,就完成了从问题域到软件的解决方案。

    可以说,限界上下文是微服务设计和拆分的主要依据。在领域模型中,如果不考虑技术异构、团队沟通等其它外部因素,一个限界上下文理论上就可以设计为一个微服务。

    四、理解和分析实体和值对象

    (一)对于实体的具体理解

    是一个具体类对象,它们拥有唯一标识符,且标识符在历经各种状态变更后仍能保持一致

    对这些对象而言,重要的不是其属性,而是其延续性和标识,对象的延续性和标识会跨越甚至超出软件的生命周期。我们把这样的对象称为实体。

    具体从实体的业务形态、代码形态、运行形态和数据库形态去进一步理解:

    1.实体的业务形态

    领域模型中的实体是多个属性、操作或行为的载体

    在事件风暴中,我们可以根据命令、操作或者事件,找出产生这些行为的业务实体对象,进而按照一定的业务规则将依存度高和业务关联紧密的多个实体对象和值对象进行聚类,形成聚合。

    实体和值对象是组成领域模型的基础单元。

    2.实体的代码形态

    代码模型中,实体的表现形式是实体类,这个类包含了实体的属性和方法,通过这些方法实现实体自身的业务逻辑。

    在 DDD 里,这些实体类通常采用充血模型与这个实体相关的所有业务逻辑都在实体类的方法中实现跨多个实体的领域逻辑则在领域服务中实现

    3.实体的运行形态

    实体以 DO(领域对象)的形式存在,每个实体对象都有唯一的 ID。

    可以对一个实体对象进行多次修改,修改后的数据和原来的数据可能会大不相同。但是,由于它们拥有相同的 ID,它们依然是同一个实体。

    4.实体的数据库形态

    与传统数据模型设计优先不同,DDD 是先构建领域模型,针对实际业务场景构建实体对象和行为,再将实体对象映射到数据持久化对象。

    在领域模型映射到数据模型时,一个实体可能对应 0 个、1 个或者多个数据库持久化对象。大多数情况下实体与持久化对象是一对一。

    • 在某些场景中,有些实体只是暂驻静态内存的一个运行态实体,它不需要持久化。比如,基于多个价格配置数据计算后生成的折扣实体。
    • 在有些复杂场景下,实体与持久化对象则可能是一对多或者多对一的关系。比如,用户 user 与角色 role 两个持久化对象可生成权限实体,一个实体对应两个持久化对象,这是一对多的场景。
    • 有些场景为了避免数据库的联表查询,提升系统性能,会将客户信息 customer 和账户信息 account 两类数据保存到同一张数据库表中,客户和账户两个实体可根据需要从一个持久化对象中生成,这就是多对一的场景。

    (二)对于值对象的具体理解

    《实现领域驱动设计》一书中对值对象的定义:通过对象属性值来识别的对象,它将多个相关属性组合为一个概念整体。在 DDD 中用来描述领域的特定方面,并且是一个没有标识符的对象,叫作值对象。

    值对象描述了领域中的一件东西,这个东西是不可变的,它将不同的相关属性组合成了一个概念整体。简单来说,值对象本质上就是一个集。在领域建模的过程中,值对象可以保证属性归类的清晰和概念的完整性,避免属性零碎。

    举例:人员实体原本包括姓名、年龄、性别以及人员所在的省、市、县和街道等属性。这样显示地址相关的属性就很零碎了对不对?现在,我们可以将“省、市、县和街道等属性”拿出来构成一个“地址属性集合”,这个集合就是值对象了。

    具体从实体的业务形态、代码形态、运行形态、数据库形态和值对象的优势和局限去进一步理解:

    1.实体的业务形态

    本质上,实体是看得到、摸得着的实实在在的业务对象,实体具有业务属性、业务行为和业务逻辑。

    值对象只是若干个属性的集合,只有数据初始化操作和有限的不涉及修改数据的行为,基本不包含业务逻辑。在逻辑上它仍然是实体属性的一部分,用于描述实体的特征。

    值对象中也有部分共享的标准类型的值对象,它们有自己的限界上下文,有自己的持久化对象,可以建立共享的数据类微服务,比如数据字典。

    2.实体的代码形态

    代码模型中,有这样两种形态:

    • 如果值对象是单一属性,则直接定义为实体类的属性;
    • 如果值对象是属性集合,则把它设计为 Class 类,Class 将具有整体概念的多个属性归集到属性集合,这样的值对象没有 ID,会被实体整体引用。

    3.实体的运行形态

    实体实例化后的 DO 对象的业务属性和业务行为非常丰富,但值对象实例化的对象则相对简单和乏味。除了值对象数据初始化和整体替换的行为外,其它业务行为就很少了。

    值对象嵌入到实体的话,有这样两种不同的数据格式,也可以说是两种方式,分别是属性嵌入的方式序列化大对象的方式

    引用单一属性的值对象或只有一条记录的多属性值对象的实体,可以采用属性嵌入的方式嵌入。以上面的代码为例:

    引用一条或多条记录的多属性值对象的实体,可以采用序列化大对象的方式嵌入。以上面的代码为例:

    4.实体的数据库形态

    DDD 引入值对象是希望实现从“数据建模为中心”向“领域建模为中心”转变,减少数据库表的数量和表与表之间复杂的依赖关系,尽可能地简化数据库设计,提升数据库性能。

    值对象在数据库持久化方面简化了设计,它的数据库设计大多采用非数据库范式值对象的属性值和实体对象的属性值保存在同一个数据库实体表中

    在这块建议的具体做法是:

    • 在领域建模时,我们可以将部分对象设计为值对象,保留对象的业务涵义,同时又减少了实体的数量;
    • 在数据建模时,我们可以将值对象嵌入实体,减少实体表的数量,简化数据库设计。

    上面的代码为例,在领域建模时,我们可以把地址作为值对象,人员作为实体,这样就可以保留地址的业务涵义和概念完整性。而在数据建模时,我们可以将地址的属性值嵌入人员实体数据库表中,只创建人员数据库表

    5. 值对象的优势和局限

    值对象采用序列化大对象的方法简化了数据库设计,减少了实体表的数量,可以简单、清晰地表达业务概念。

    这种设计方式虽然降低了数据库设计的复杂度,但却无法满足基于值对象的快速查询,会导致搜索值对象属性值变得异常困难。

    值对象采用属性嵌入的方法提升了数据库的性能,但如果实体引用的值对象过多,则会导致实体堆积一堆缺乏概念完整性的属性,这样值对象就会失去业务涵义,操作起来也不方便。

    在使用时要充分的考虑值对象的优缺点。

    (三)对于实体与值对象关系的理解

    1.基本的关系理解

    实体和值对象是微服务底层的最基础的对象,一起实现实体最基本的核心领域逻辑。

    DDD 提倡从领域模型设计出发,而不是先设计数据模型。传统的数据模型设计通常是一个表对应一个实体,一个主表关联多个从表,当实体表太多的时候就很容易陷入无穷无尽的复杂的数据库设计,领域模型就很容易被数据模型绑架。可以说,值对象的诞生,在一定程度上,和实体是互补的。

    2.不同场景下关系的不同

    同样的对象在不同的场景下,可能会设计出不同的结果。

    有些场景中,地址会被某一实体引用,它只承担描述实体的作用,并且它的值只能整体替换,这时候你就可以将地址设计为值对象,比如收货地址。

    而在某些业务场景中,地址会被经常修改,地址是作为一个独立对象存在的,这时候它应该设计为实体,比如行政区划中的地址信息维护。

    五、理解和分析聚合思想:聚合和聚合根

    在事件风暴中,我们会根据一些业务操作和行为找出实体(Entity)或值对象(ValueObject),进而将业务关联紧密的实体和值对象进行组合,构成聚合,再根据业务语义将多个聚合划定到同一个限界上下文(Bounded Context)中,并在限界上下文内完成领域建模。

    (一)对聚合的理解和分析

    聚合就是由业务和逻辑紧密关联的实体和值对象组合而成的,聚合是数据修改和持久化的基本单元每一个聚合对应一个仓储,实现数据的持久化。

    聚合有一个聚合根和上下文边界,这个边界根据业务单一职责和高内聚原则,定义了聚合内部应该包含哪些实体和值对象,而聚合之间的边界是松耦合的。

    聚合在 DDD 分层架构里属于领域层,领域层包含了多个聚合,共同实现核心业务逻辑。

    聚合内实体以充血模型实现个体业务能力,以及业务逻辑的高内聚。跨多个实体的业务逻辑通过领域服务来实现,跨多个聚合的业务逻辑通过应用服务来实现。

    (二)对聚合根的理解和分析

    聚合根的主要目的是为了避免由于复杂数据模型缺少统一的业务规则控制,而导致聚合、实体之间数据不一致性的问题。

    如果把聚合比作组织,那聚合根就是这个组织的负责人。聚合根也称为根实体,它不仅是实体,还是聚合的管理者。

    • 首先它作为实体本身,拥有实体的属性和业务行为,实现自身的业务逻辑。
    • 其次它作为聚合的管理者,在聚合内部负责协调实体和值对象按照固定的业务规则协同完成共同的业务逻辑。
    • 最后在聚合之间,它还是聚合对外的接口人,以聚合根 ID 关联的方式接受外部任务和请求,在上下文内实现聚合之间的业务协同。

    (三)聚合、聚合根、实体、值对象的对比

       
    聚合

    *高内聚、低耦合,它是领域模型中最底层的边界,可以作为拆分微服务的最小单位,但不建议你对微服务过度拆分。

    *在对性能有极致要求的场景中,聚合可以独立作为一个微服务,以满足版本的高频发布和极致的弹性伸缩能力。

    *一个微服务可以包含多个聚合,聚合之间的边界是微服务内天然的逻辑边界。

    聚合根

    *聚合根是实体,有实体的特点,具有全局唯一标识,有独立的生命周期。

    *一个聚合只有一个聚合根,聚合根在聚合内对实体和值对象采用直接对象引用的方式进行组织和协调,聚合根与聚合根之间通过 ID 关联的方式实现聚合之间的协同。

    实体

    *有 ID 标识,通过 ID 判断相等性,ID 在聚合内唯一即可。

    *状态可变,它依附于聚合根,其生命周期由聚合根管理。

    *实体一般会持久化,但与数据库持久化对象不一定是一对一的关系。

    *实体可以引用聚合内的聚合根、实体和值对象。

    值对象

    *无 ID,不可变,无生命周期,用完即扔。

    *值对象之间通过属性值判断相等性。

    *核心本质是值,是一组概念完整的属性组成的集合,用于描述实体的状态和特征。

    *值对象尽量只引用值对象。

    (四)基本理解综合

    实体和值对象都只是个体化的对象,它们的行为表现出来的是个体的能力。实体一般对应业务对象,它具有业务属性和业务行为;而值对象主要是属性集合,对实体的状态和特征进行描述。

    领域模型内的实体和值对象就好比个体,而能让实体和值对象协同工作的组织就是聚合,它用来确保这些领域对象在实现共同的业务逻辑时,能保证数据的一致性一个聚合只有一个聚合根聚合根在聚合内对实体和值对象采用直接对象引用的方式进行组织和协调,聚合根与聚合根之间通过 ID 关联的方式实现聚合之间的协同聚合根是实体,有实体的特点,具有全局唯一标识,有独立的生命周期。

    六、理解很分析领域事件来解耦微服务

    领域事件是领域模型中非常重要的一部分,用来表示领域中发生的事件。一个领域事件将导致进一步的业务操作,在实现业务解耦的同时,还有助于形成完整的业务闭环。

    (一)领域事件的识别

    我们在做事件风暴的时候,进行用户旅程或者场景分析时,我们要捕捉业务、需求人员或领域专家口中的关键词:“如果发生……,则……”“当做完……的时候,请通知……”“发生……时,则……”等。在这些场景中,如果发生某种事件后,会触发进一步的操作,那么这个事件很可能就是领域事件。

    领域事件驱动设计可以切断领域模型之间的强依赖关系,事件发布完成后,发布方不必关心后续订阅方事件处理是否成功,这样可以实现领域模型的解耦,维护领域模型的独立性和数据的一致性。

    在领域模型映射到微服务系统架构时,领域事件可以解耦微服务,微服务之间的数据不必要求强一致性,而是基于事件的最终一致性

    (二)微服务内外的领域事件分析

    1. 微服务内的领域事件

    当领域事件发生在微服务内的聚合之间,领域事件发生后完成事件实体构建和事件数据持久化,发布方聚合将事件发布到事件总线,订阅方接收事件数据完成后续业务操作。

    微服务内大部分事件的集成,都发生在同一个进程内,进程自身可以很好地控制事务,因此不一定需要引入消息中间件。

    但一个事件如果同时更新多个聚合,按照 DDD“一次事务只更新一个聚合”的原则,你就要考虑是否引入事件总线

    微服务内的事件总线,可能会增加开发的复杂度,因此你需要结合应用复杂度和收益进行综合考虑

    微服务内应用服务,可以通过跨聚合的服务编排和组合,以服务调用的方式完成跨聚合的访问,这种方式通常应用于实时性和数据一致性要求高的场景。这个过程会用到分布式事务,以保证发布方和订阅方的数据同时更新成功。

    2. 微服务之间的领域事件

    跨微服务的领域事件会在不同的限界上下文或领域模型之间实现业务协作,其主要目的是实现微服务解耦,减轻微服务之间实时服务访问的压力。

    跨微服务的事件可以推动业务流程或者数据在不同的子域或微服务间直接流转。

    跨微服务的事件机制要总体考虑事件构建、发布和订阅、事件数据持久化、消息中间件,甚至事件数据持久化时还可能需要考虑引入分布式事务机制等。

    微服务之间的访问也可以采用应用服务直接调用的方式,实现数据和服务的实时访问,弊端就是跨微服务的数据同时变更需要引入分布式事务,以确保数据的一致性。

    分布式事务机制会影响系统性能,增加微服务之间的耦合,所以我们还是要尽量避免使用分布式事务。

    (三)领域事件总体架构

    领域事件总体技术架构图,领域事件处理包括:事件构建和发布、事件数据持久化、事件总线、消息中间件、事件接收和处理等。

    1. 事件构建和发布

    事件基本属性至少包括:事件唯一标识、发生时间、事件类型和事件源,其中事件唯一标识应该是全局唯一的,以便事件能够无歧义地在多个限界上下文中传递。

    事件基本属性主要记录事件自身以及事件发生背景的数据。

    事件基本属性和业务属性一起构成事件实体,事件实体依赖聚合根。领域事件发生后,事件中的业务数据不再修改,因此业务数据可以以序列化值对象的形式保存,这种存储格式在消息中间件中也比较容易解析和获取。

    事件发布之前需要先构建事件实体并持久化

    事件发布的方式有很多种,你可以通过应用服务或者领域服务发布到事件总线或者消息中间件,也可以从事件表中利用定时程序或数据库日志捕获技术获取增量事件数据,发布到消息中间件。

    2. 事件数据持久化

    事件数据持久化可用于系统之间的数据对账,或者实现发布方和订阅方事件数据的审计。

    事件数据持久化有两种方案,在实施过程中你可以根据自己的业务场景进行选择:

    • 持久化到本地业务数据库的事件表中,利用本地事务保证业务和事件数据的一致性。
    • 持久化到共享的事件数据库中。这里需要注意的是:业务数据库和事件数据库不在一个数据库中,它们的数据持久化操作会跨数据库,因此需要分布式事务机制来保证业务和事件数据的强一致性,结果就是会对系统性能造成一定的影响。

    3. 事件总线 (EventBus)

    事件总线是实现微服务内聚合之间领域事件的重要组件,它提供事件分发和接收等服务

    事件总线是进程内模型,它会在微服务内聚合之间遍历订阅者列表,采取同步或异步的模式传递数据。

    事件分发流程大致如下:

    如果是微服务内的订阅者(其它聚合),则直接分发到指定订阅者;

    如果是微服务外的订阅者,将事件数据保存到事件库(表)并异步发送到消息中间件;

    如果同时存在微服务内和外订阅者,则先分发到内部订阅者,将事件消息保存到事件库(表),再异步发送到消息中间件。

    4. 消息中间件

    跨微服务的领域事件大多会用到消息中间件,实现跨微服务的事件发布和订阅。

    5. 事件接收和处理

    微服务订阅方在应用层采用监听机制,接收消息队列中的事件数据,完成事件数据的持久化后,就可以开始进一步的业务处理。

    领域事件处理可在领域服务中实现。

    (四)具体案例分析

    领域事件是 DDD 的一个重要概念,在设计时我们要重点关注领域事件,用领域事件来驱动业务的流转,尽量采用基于事件的最终一致,降低微服务之间直接访问的压力,实现微服务之间的解耦,维护领域模型的独立性和数据一致性。

    这里的具体用例结合后面的案例一起讲解,此处先预留。

     

    参考书籍、文献和资料

    1.极客时间课程《DDD实战》,欧创新,2019.

    2.郑天民. 微服务设计原理与架构. 北京:人民邮电出版社,2018.

    3.陈超、秦金卫、张逸等. 高可用可伸缩微服务架构. 电子工业出版社. 2019.

    4.Eric Evans. 领域驱动设计-软件核心复杂性应对之道。 人民邮电出版社. 2018.

    展开全文
  • 7.2 企业竞争情报系统的业务模式深入分析 目录 7.2 企业竞争情报系统的业务模式深入分析 7.2.0 背景分析 7.2.1 竞争企业组织结构模式分析 1、传统企业组织结构的特色 2、市场竞争迫使竞争企业的组织结构发生...

    7.2 企业竞争情报系统的业务模式深入分析

    目录

    7.2 企业竞争情报系统的业务模式深入分析

    7.2.0 背景分析

    7.2.1 竞争企业组织结构模式分析

    1、传统企业组织结构的特色

    2、市场竞争迫使竞争企业的组织结构发生变化

    7.2.2 竞争情报系统组织结构及运作模式分析

    1、企业竞争情报组织的界定

    2、企业竞争情报组织的组织结构

    7.2.3 竞争情报系统的用户对象分析

     1、竞争情报数据采集用户

     2、竞争情报数据加工用户

     3、竞争情报分析结果的接受用户,即最终用户

    7.2.4 竞争情报系统的数据源分析

    1、数据源的分类

    2、企业数据信息的作用

    7.2.5 竞争情报系统业务流程模式分析

    1 从数据分析的流程的角度来分析,看业务流程模式

    2、对业务流程模式的深入分析

    7.2.6 竞争情报系统的发展策略


    7.2.0 背景分析

    结合前面我们讲解的内容“企业竞争情报系统的运作模式”的分析,有协调-分布模式,重点模式,利益驱动模式等。此部分,重点分析对ECIS的业务模式进行详细地探讨和分析。

    众所周知,在当前激烈的市场竞争环境中,竞争情报系统是面向竞争企业发展需要的新一代综合信息管理系统。可以从下面两个方面对此深入地理解:

     (1)它是一个围绕企业竞争战略目标,关于企业自身、竞争对手、竞争环境信息的采集、加工、存储、分析研究和管理等要素相互联系、相互作用的综合性系统。

    (2)它是从竞争企业战略高度出发,通过开发和有效利用企业内外信息资源来提高企业竞争实力的信息系统,是运用现代信息技术支持和体现企业竞争战略,为企业获得或维持竞争优势服务的信息系统。

    紧密联系当前企业所处的动态环境,如何及时有效地了解竞争对手,保护自身,意义非凡,只有密切关注并知晓对方在做什么,才能先别人而为之,赢得竞争优势,促进企业的发展,提高综合竞争力。

    7.2.1 竞争企业组织结构模式分析

    1、传统企业组织结构的特色

    在以往竞争并不激烈的环境下,我国传统的企业的特点:

      (1)组织结构都呈金字塔式;

      (2)业务流程一般都是线性、封闭的;

      (3)管理模式一般都是按递阶层次自下而上的;

      (4)企业内部之间和内部与外部之间的信息流受组 织结构和管理模式的影响,依据分割成条块状的部门职能由下向上的流动;

      (5)企业各部门之间,以及与用户、供应商和协作伙伴的交流缺乏有机联系,导致企业对内部和外部的响应速度迟缓。此时的大致情形如下图所示。

     

     

    2、市场竞争迫使竞争企业的组织结构发生变化

    正是由于传统企业组织结构各个方面的不尽完美,此时加上市场环境的变化,为此,我们当今的企业,迫切需要改变其固有的组织结构,主要体现在以下几个方面:

    (1)市场竞争正迫使企业改变原有的组织管理模式,适应市场快速变化的要求,扁平化网络组织管理模式正逐步替代层次等级组织管理模式;

    (2)现代信息技术的应用也大大推动了企业组织结构的再造;

    (3)新一代的组织结构利于企业决策管理层根据市场竞争环境的变化及时调整企业经营战略,有效地利用企业内外的资源,进行企业内部动态管理,同时集团内企业之间的合作性增强,企业与供销商和合作商之间的关系也更加密切;

     

     

    7.2.2 竞争情报系统组织结构及运作模式分析

    1、企业竞争情报组织的界定

    • 竞争企业的组织结构扁平化、网络化,目的是适应市场竞争的要求,对内提高劳动效率和产品质量,开发新产品,增强凝聚力;对外提供优质服务,提高企业对市场的响应速度,以使企业获得市场竞争优势。
    • 基于以上考虑,那么企业竞争情报组织到底指一个部门或是多个部门的协同呢?该如何界定呢?
    • 企业竞争情报组织大多不只是指企业的情报部门,而是指情报部门与各部门相结合,围绕企业的经营战略、竞争环境和竞争对手共同进行的情报收集、分析研究工作,并形成针对不同竞争目标的分析报告的综合性团队。

    2、企业竞争情报组织的组织结构

    • 竞争情报的组织结构一般为层次结构,分为两个层次,分别是:

       (1)最上层为以企业最高管理决策层和情报部门负责人构成的协作组织;

       (2)其下,根据不同的经营战略目标和竞争目标,构成不同的情报组,每一情报组涉及一个部门或多个部门的业务和信息,情报部门是所有竞争情报组的技术协调和信息综合处理部门。竞争情报系统组织结构可用图示方式表示。

     

    • 对每一个竞争情报组的要求:

    (1)而每个竞争情报组的成员要具有高素质的业务水平,同时还要有获取情报和分析情报的能力。

    (2)在这种组织结构中,每一竞争情报组有一个负责人,负责本组内的情报收集、加工处理和分析研究,同时还负责与企业各业务部门之间沟通。

    (3)因竞争情报组的研究方向不同,其成员会来自不同的业务部门,这种业务部门人员交叉方式便利于工作;

    (4) 关键情报(KITs)研究一般为竞争情报组的工作重点和难点,它直接关系到企业的经营战略目标的竞争情报,通常管理决策层对其参与程度较高.

     

    7.2.3 竞争情报系统的用户对象分析

    • 正是建立了这样的竞争情报组织结构体系,在这样的前提之下,其用户对象又有什么样的特点呢?
    • 竞争情报系统的用户一般划分成3种类型:

     1、竞争情报数据采集用户

    竞争情报数据采集用户,是指从事竞争情报收集的工作人员。一般可分为二类员工:

    • 一类是从事企业内部工作的员工,如情报部门、财务部门、人力资源部门、生产计划部门、储运部门等员工,其信息数据来源于本企业内的日常工作数据,这些数据基本上存储在企业MIS系统的数据库内,并形成长期的积累;
    • 一类是从事企业外部工作的员工,如销售部门、服务部门、市场部门等的员工,因为工作性质的不同,他们也可能在非本企业所在地工作,采集的数据一般通过如E-mail、公司已有的广域网信息管理系统、传真、信函等方式返回公司,再经处理存储入公司数据库中。

    除此之外,竞争情报数据的来源可能来自企业,如咨询公司等。从上述情况分析,竞争情报采集用户是基于广域网模式下的分布式数据采集用户。

     

     2、竞争情报数据加工用户

    竞争情报数据加工用户,是指从事对已获取信息进行分析研究,并形成分析报告的研究人员。

    这类用户一般是指竞争情报组的成员,他们根据自己的竞争情报目标,通过数据采集用户获取相应的数据,并对这些数据进行分析研究,最终提出关于竞争对手、竞争环境和企业自身的分析报告。

    这类用户有时也包括情报部门的分析研究人员,他们有时在对各竞争情报组提出的分析报告基础上,进行研究,分析出对企业经营战略有价值的情报。竞争情报数据加工用户是基于局域网内的分布式用户。

     

     3、竞争情报分析结果的接受用户,即最终用户

    竞争情报分析结果的接受用户,也称为最终用户,指利用竞争情报分析结果的决策管理人员。通过对每一个竞争情报分析结果的利用,企业的管理决策者分析企业在市场竞争环境和竞争对手对抗中所处的位置,及时调整企业的经营战略目标,保证企业在市场竞争中保持优势。竞争情报分析结果的接受用户是从竞争情报系统中获取分析结果报告的最终用户。

    7.2.4 竞争情报系统的数据源分析

    1、数据源的分类

    • 我们知道,竞争情报系统的数据源,是竞争情报系统得以成立的信息数据基础。
    • 数据源的划分

      (1)按照业务部门分类,分为财务数据、人事数据、生产数据、销售数据等;

      (2)按获取方式划分,可分为内部数据和外部数据,其中外部数据还可划分为公开数据和非公开数据二类;

      (3)按加工程度划分,可分为原始数据和加工数据.

      (4)按竞争情报系统的处理模式,我们将竞争情报数据源划分为内部数据和外部数据,而外部数据又可分为公开数据和非公开数据二类,如下图琐事:

    解释:
    内部数据源指来自于企业各业务部门的数据,如财务部门的凭证信息和财务报表、生产部门的生产计划和生产数据、销售部门的销售额等,这些内部数据反映了企业自身运行状态,一般情况下这些数据都存储于企业内部MIS系统的数据库中,获取方便。
       外部数据指来自企业自身以外的信息数据,是企业各部门在对外活动中收集的数据,如竞争环境中的行业政策、竞争对手的宣传资料和企业刊物、学术会议的资料、市场部门获取的中间商资料、服务部门获取的用户对产品的态度等。这些资料中获取的信息数据又分为公开和非公开资料,公开资料如竞争对手宣传资料、专利文献、学术会议、广告宣传、展览会等,非公开资料如供货商数据、经销商数据、行业协会、电话采访、个人面谈、竞争对手市场占有率等。

    2、企业数据信息的作用

    • 企业内部信息为企业管理决策者所能及时了解,但深入地了解则需要对内部数据进行分析才能更有价值;
    • 外部数据因获取不仅需要投入较多的人力,而且获取的数据基本呈不完整状态,所以基于外部竞争情报数据的分析研究难度较大。
    • 在大多数情况下 ,企业的生存与发展依赖于外部环境,外部竞争数据则显得更有价值,尤其是非公开数据,是企业竞争情报组重点分析研究的对象。
    • 加强信息获取渠道的管理和对获取的数据认证和分析,能保证企业对竞争环境的充分认识,使企业在竞争中保持优势。

     

    7.2.5 竞争情报系统业务流程模式分析

    1 从数据分析的流程的角度来分析,看业务流程模式

    • 我们知道,企业CIS系统是要处理数据信息的,那么从最开始的原始信息到最后的情报产品,需要经历一系列的过程,类似SCM体系。
    • 那么,从流程的连贯性工作原理来分析,可分为:

       (1)竞争情报收集子系统;

       (2)竞争情报分析研究子系统;

       (3)竞争情报输出子系统

    这三个部分的业务数据流向为从竞争情报收集子系统开始,到竞争情报分析研究子系统加工处理,最后到竞争情报输出子系统利用3个阶段.图示如下:

    2、对业务流程模式的深入分析

    A.竞争情报收集子系统内的业务数据流程分析。本阶段业务数据采集内容分为两部分:

    (1)一为非面向竞争情报目标的业务数据采集;

    (2)另一为面向竞争情报目标的业务数据采集。

    他们采集的数据存储于企业MIS数据库中,为企业竞争情报组提供数据服务。

    针对这两类采集方法,我们进行这样的理解。

    • 非面向竞争情报目标的业务数据采集流程是一个规范化数据采集过程,主要体现为来自日常业务工作中的企业运行业务数据,如果企业进行了主要业务的计算机信息化管理(MIS),则这些数据被保存在企业MIS的数据库中,如果有授权就可访问这些数据。这些数据产生的业务流程为企业正常运行的业务流程。其数据对于竞争情报目标而言呈现出无序状态,只有通过加工处理和分析研究才能为竞争情报分析研究子系统所采用。
    • 面向竞争情报目标的业务数据采集流程是一个非规范化数据采集过程,主要体现为来自竞争环境和竞争对手的数据信息,由于来自企业外部,其业务数据流程体现出有采集目标但却过程不完整的特征。因为此类情报在竞争情报目标研究中占有非常重要的地位,故采集方式也不固定,会因竞争对手和竞争环境的不同而采用不同的采集方式。

    B.竞争情报分析研究子系统的业务流程为根据企业竞争目标,竞争情报组从企业MIS数据库中获取相关数据信息以及从外部获取与竞争情报目标相关的信息,并进行分析研究,在分析研究中要围绕企业竞争战略的关键因素分析课题,最终形成竞争目标分析报告的过程。

    目录

    7.2 企业竞争情报系统的业务模式深入分析

    7.2.0 背景分析

    7.2.1 竞争企业组织结构模式分析

    1、传统企业组织结构的特色

    2、市场竞争迫使竞争企业的组织结构发生变化

    7.2.2 竞争情报系统组织结构及运作模式分析

    1、企业竞争情报组织的界定

    2、企业竞争情报组织的组织结构

    7.2.3 竞争情报系统的用户对象分析

     1、竞争情报数据采集用户

     2、竞争情报数据加工用户

     3、竞争情报分析结果的接受用户,即最终用户

    7.2.4 竞争情报系统的数据源分析

    1、数据源的分类

    2、企业数据信息的作用

    7.2.5 竞争情报系统业务流程模式分析

    1 从数据分析的流程的角度来分析,看业务流程模式

    2、对业务流程模式的深入分析

    7.2.6 竞争情报系统的发展策略


     

    7.2.6 竞争情报系统的发展策略

    1. 面对激烈的市场竞争环境,企业营销部门要紧密结合当前的环境特点,适当提高自身的应变能力,借助于ECIS提高企业的预警与决策能力。
    2. 针对ECIS的未来发展,我们需要考虑:

        (1) 企业竞争情报系统应是企业防止欺诈,保障公平竞争的有力武器.(信息不对称性)

        (2) 企业竞争情报系统应是企业评定、明确市场竞争地位和正确制定市场竞争战略的参谋.

        (3)企业竞争情报系统应是企业提高竞争能力的正确向导。

        (4)企业竞争情报系统应决定着企业新产品和新服务的开发

     

    展开全文
  • PEST 分析

    千次阅读 2019-08-06 12:17:57
    由于不同行业和企业有其自身特点和经营需要,分析的具体内容会有差异,但一般都应对 政治(Political )、经济(Economic)、 技术(Technological)和 社会(Social)这四大类影响企业的主要外部环境因素进行分析,...

    PEST 分析法:用于对宏观环境的分析。 宏观环境又称一般环境,是指影响一切行业和企业的各种宏观力量。对宏观环境因素作分析时。由于不同行业和企业有其自身特点和经营需要,分析的具体内容会有差异,但一般都应对 政治(Political )、经济(Economic)、 技术(Technological)和 社会(Social)这四大类影响企业的主要外部环境因素进行分析,这种方法简称为 PEST  分析法。

     :  政治环境:

    构成政治环境的关键指标有:政治体制、经济体制、财政政策、税收政策、产业政策、投资政策、专利数量、国防开支水平、政府补贴水平、民众对政治的参与度等。


     : 社会环境:

    构成社会文化环境的关键指标有:人口规模、性别比例、年龄结构、出生率、死亡率、种族结构、妇女生育率、生活力式、购买习惯、教育状况、城市特点、宗教信仰状况等因素。


      技术环境:

    构成技术环境的关键指标有:新技木的发明和进展、折旧和报废速度、技术更新速度、技术传播速度、技术商品化速度、国家重点支持项目、北京市昌平区建材城西路金燕龙办公楼一层 电话:400-618-9090国家投入的研发费用、专利个数、专利保护情况等因素。


     : 经济环境:

    构成经济环境的关键指标有:GDP 及增长率、进出口总额及增长率、利率、汇率、通货膨胀率、消费价格指数、居民可支配收入、失业率、劳动生产率等。

    展开全文
  • 中小企业信息化建设分析报告

    千次阅读 2016-10-29 22:47:35
    面对知识大潮的冲击,各个国家的企业不得不调整自身的发展战略,在竞争中处于优势。由此,信息化对这个世纪企业的生存和发展有着超乎寻常的意义。 有利于企业迎接加入WTO后的挑战,适应国际化竞争。加入WTO以后,企业...
  • 企业内刊的定位与功能分析

    千次阅读 2010-12-18 21:13:00
    究其原因,除了优厚的政策、良好的市场环境企业家自身的努力等因素以外,越来越多的企业家对企业文化建设的充分重视也是其得以快速发展的主要原因之一。随着社会发展和市场经济秩序的逐步完善,企业要想做大、做强...
  • 环境信息化是政府信息化建设的重要组成... 本文开发一套系统应用于环境企业的差异化表单填报与用户权限分配的实际场景,可以有效提升系统的管理与业务数据的汇总和分析。 本文完成的主要工作如下: 1.通过对当前业界
  • 企业信息门户是通过将内部和外部相对分散的资源组成一个统一的整体,使用户能够通过统一的渠道和个性化设置来访问所需要的信息并进行协同工作。通过企业门户的建设,实现应用系统的统一入口和企业各类信息的集成展现...
  • MySQL可以说是数据库开源界当之无愧的王者,是最受欢迎的开源软件之一,全球前20位的互联网企业,有19家的业务构建于MySQL平台上。全球超过1200万个MySQL安装,每天在MySQL网站有50,000个下载,没有其他开源数据库像...
  • 近几年,全球制造业格局面临重大调整,国内外对工业4.0的关注度越来越高,各国企业也纷纷准备踏上工业4.0的征程。我国的海尔、华为等先行企业在探索工业4.0发展路径上取得了一定的成就,但仍有一些企业尚处于工业2.0...
  • blueski推荐 [2006-4-16]出处:eworks作者:庄永耀 桂希庆 王兵 把云波 编者按:本文在分析了中国烟草销售企业特点的基础上,针对烟草销售企业存在的问题,应用供应链的思想,进行系统设计,最后以深圳市烟草公司...
  • 作为世界制造业基地,中国正处于成长为全球经济舞台主角之一的历程中...环境与社会责任越来越受关注。与此同时,高速全球化进程缩短了国家间的距离,从而带来了无限商机。在这一历史转折点,重新审视中国制造企业长期以
  • 企业商业智能平台体系分析[1]

    千次阅读 2009-11-16 21:04:00
    一、前 言 随着计算机和网络技术的迅速发展,企业开始拥有庞大而复杂的数据库,面对激烈的竞争,企业需要充分利用这些数据的价值,从中挖掘有用信息,以支持企业的管理决策。近年来,商业智能(Business ...
  • 万科企业股份有限公司的财务分析及评价

    万次阅读 热门讨论 2011-06-20 10:02:00
    分享一下:__________________________________________________________________主要任务: 要求学生结合万科公司 2007-2010 年四年的年报,以及地产行业的发展状况和宏观政策的影响,运用比较分析法和因素分析法...
  • 在接受VentureBeat的采访时,李开复提到了中国科技创业公司和风投文化与美国的差异,其中最重要的是中国的创业公司和年轻的企业家很难获得早期融资,具体因素包括教育差距、父母约束、对失败的宽容、营销模式
  • 挑战 随着市场竞争的不断加剧,企业内部协作的复杂程度日益加大,如何在资源有限的情况下,快速应对市场环境的不断变化?企业唯有优化业务流程,加快相应速度,提高组织的灵活性和资源的有效利用,不断创新,才能...
  • 我们常说,办事情要“名正言顺”,而数据领域的名字则是格外的多,商业分析、数据分析、数据挖掘、算法模型……经常把大家绕晕,今天系统科普一下。商业分析VS 数据分析广义上...
  • 随着经济全球化的进一步加快,大量已经高度实现信息化的跨国企业涌入中国市场。为了应对日益激烈的竞争局面,近年来国 家和地方政府纷纷将很多国有企业进行合并重组为集团。实施大公司、大集团战略已成为我国国有大...
  • 数据源的划分以下从两个维度对工厂的数据来源进行分析:从系统/设备角度划分从业务角度划分系统/设备划分从产生数据的系统或设备来看,有工厂物联网、工厂信息化系统(包括企业信息化系统在工厂的部署实施)、外部...
  • 数据分析:SWOT分析

    千次阅读 2020-08-23 15:57:48
    SWOT是英文Strengths、Weaknesses、Opportunities和Threats的缩写,即企业...按照企业竞争战略的完整概念,战略应是一个企业"能够做的"(即组织的强项和弱项)和"可能做的"(即环境的机会和威胁)之间的有机组合。 ...
  • 数据分析思路

    万次阅读 多人点赞 2018-09-14 16:08:06
    数据分析是在当今每个企业都所需要涉及的一门学科,数据分析的书随便一搜就会有太多教大家如何的去使用。大致能把搜到的书分为两类:第一类讲数据理论统计学相关的,第二类就是数据分析工具应用类型的。而大部分我们...
  • 1.1 理解Oracle数据库1.2 Oracle高可用特性(High Availability)1.3 搭建高可用的周边辅助环境1.4 高可用应用设计1.5 高可用数据库设计1.6 高可用性...,搭建一个数据库高可用环境已经成为很多企业迫切的需求...
  • 规则引擎-BRMS在企业开发中的应用

    万次阅读 多人点赞 2016-10-17 12:07:54
    复杂企业级项目的开发以及其中随外部条件不断变化的业务规则(business logic),迫切需要分离商业决策者的商业决策逻辑和应用开发者的技术决策,并把这些商业决策放在中心数据库或其他统一的地方,让它们能在运行时...
  • 企业管理复习题库

    万次阅读 2020-09-23 07:17:37
    2020 年春季《企业管理》复习大纲(考试时间:90 分钟) 试题类型: ...2、管理的含义:管理是根据事物的客观规律,通过计划、组织、领导和控制等职能作用于管理对象,使之适应外部环境,以达到组织
  • 数据分析运营---A/B测试中20个必须知道的问题

    万次阅读 多人点赞 2017-04-29 23:49:08
    A/B测试如同GitHub、Docker、APM一样在美国市场已经被各类企业逐渐采用,比如Google、Airbnb等。 其测试范围也不仅仅局限于网页优化,目前移动端的A/B测试需要同时支持前端(Web/H5、iOS、Android)及后端(Node.js...
  • Python在网络运维中的应用与分析

    千次阅读 2019-01-23 17:04:12
    目前Python是新兴技术编程语言的主流之一,随着互联网技术的不断发展,计算机网络的应用范围也随之增加,网络运维自动化和智能化需求越来越高,Python编程语言逐渐盛行,该程序设计语言简单灵活,拥有庞大的外部库,...
  • InfiniBand主流厂商和产品分析

    万次阅读 2017-06-08 22:03:46
    Mellanox完成了对著名Infiniband交换机厂商Voltaire公司的收购工作,Intel拿出1.25亿美元收购QLogic的InfiniBand交换机,使得他们在HPC、云计算、数据中心、企业计算及存储市场上获得了更为全面的能力。
  • 信息系统分析与设计课程心得

    万次阅读 2017-02-28 13:41:39
    信息系统分析与设计课程心得此博客为信息系统分析与设计课程的学习心得记录。一、绪论1概念1.1信息要了解信息系统,首先要了解信息的概念。信息是我们理解世界的重要概念,我对它的定义是:信息是对客观事物及其相互...
  • 数据分析-内容整理

    千次阅读 2018-03-21 18:02:14
    一、认识数据分析1.数据分析是指用合适的统计分析方法对收集来的数据进行分析,将这些大量的数据进行汇总,并做成可以被人们消化和理解的资料,...数据的来源一般有4个渠道:数据库(企业业务相关性最强),互联网...
  • 数据分析方法论

    万次阅读 2018-01-29 23:29:32
    数据分析方法论 确定分析思路需要以营销、管理等理论为指导。这些 跟数据分析相 关的营销、管理等理论统称为数据分析方法论。可以把方法论理解为指南针,在分析方法论的指导下我们才去开展数据分析,这样分析的结果...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,926
精华内容 15,170
关键字:

企业外部环境分析特点