精华内容
下载资源
问答
  • 基本面分析技术分析

    千次阅读 2007-05-17 13:08:00
    股票投资分析方法通常可以分为两大类:基本面分析和技术分析。投资者经常争论哪一种方法更好。本课中将讨论为什么两种方法对成功投资都至关重要。 如何看待基本面分析和技术分析之争? 就我个人的经验,这并不是一个...

     股票投资分析方法通常可以分为两大类:基本面分析和技术分析。投资者经常争论哪一种方法更好。本课中将讨论为什么两种方法对成功投资都至关重要。

    如何看待基本面分析和技术分析之争?

    就我个人的经验,这并不是一个非此即彼的问题。在分析的时候,你必须对这两个方面都作出考虑。一方而,要运用基本面分析的方法考虑公司的竞争力、经营情况、产品和技术情况,另一方面,也要运用技术分析的方法来判断该股票当前的市场表现。基本面分析是你购买每支股票的基础,它是你区分良莠的保证。

    基本面分析中最重要的是什么?

    我们可以发现,公司的赢利能力是影响该公司股价的最重要因素之一。这意味着你应当只买这样的股票:持续的赢利增长、销售增长、高利润率和高股东权益收益率。每股收益可作为衡量公司成长性和赢利能力的指标之一。
    根据对过去最成功的股票的分析和我们多年的投资经验,我们发现它们大多数是成长型公司的股票,在其股价达到峰值之前,其平均每股收益的过去三年年增长率在30%以上。因此,应当集中投资于这种类型的股票。这是我选择股票的一条最重要的原则。如果某个公司没有三年的赢利记录呢? 过去十年内某些公开发行股票的公司并没有公开的连续三年的盈利增长记录,但实际上它们大多数是有盈利的。相关资料可以在公司的公告信息中找到。在这种情况下,如果一家公司过去六年来每个第四季度的盈利增长都保持在50%以上,这种投资对象应该是理想的。我对那种亏损或是一般的盈利情况在将来会得到改善的许诺不感兴趣,因为大量的历史经验表明那些成功的公司在其股价出现大幅增长之前都有极高的利润增长率。其他重要的基本因素是什么?比如,销售额在过去几个季度中应当有加速增长或比上年同期有超过25%的增长,这些因素也同等重要。在相同条件下,我更倾向于选择那些在近期的销售量、利润增长率、股东权益增长率等方面始终在行业内位于领头羊的公司。什么是"股东权益收益率"? 股东权益收益率是一项财务指标,它可以衡量某一公司运用资金 的效率。我们分析发现,股价表现优异的公司,绝大部分的股东权益收益率在20%以上,并有管理者持股,亦即管理层持有公司股权的一定份额——这种做法有利于实现绩效挂钩。一家公司必须有比别人独特的产品或服务,这一点也很重要。作为投资者,你应当了解你所投资的公司生产什么或从事哪些业务。该公司应该有实力强的机构投资并处于支柱行业。你可以利用操作良好的共同基金、银行和其它机构投资者的研究成果,顶尖的机构通常会在买进大量股票时对该公司作彻底的基本面分析。

    技术分析和基面分析有何不同?

    技术分析主要是通过图表对市场运动作分析、研究和判断的。图表分析师以股票交易的价量作为重要指标并以此来反映股票的供求情况。你应当学会使用那些同时反映了股票价格和交易量的日表或周表。通过使用图表,你可以形象地看到某支股票的市场运行是否正常,是否有机构正在建仓,买卖时机是否适宜。技术分析的过程也是学习与鉴别有效的价格渡动模式的过程。

    基本面分析和技术分析缺一不可

    在基本面发生变化之前,量价图表将会提示我们潜在的问题或投资机会。交易量是使你能正确判断某支股票的供求关系的重要指标之一。你必须了解你的股票价格上涨或下跌时,其交易量与通常情况相比是萎缩还是放大。这一点很重要,也是我们为什么在《投资者商报》上提供“交易量比例”的原因。交易量是大机构可能正在买卖你所持有的股票的信号,这会给该支股票的价格带来冲击。重视它等于重视你的身家性命。最好的机构投资者总是同时使用基本面分析和技术分析以作出投资决定的。

    本课要点

    ●同时运用基本面分析和技术分析的投资风格是发现胜出股票的法宝。
    ●基本面分析关注的是公司的盈利及增长、销售额、利润率和股东权益收益率。它帮助你缩小选股范围并选出那些质地良好的股票。
    ●技术分析包括学会阅读量价图表并择机买卖。

    技术分析的缺陷

    1.技术分析的基础是建立在已往历史的数据上,并假定它会在未来重复。然而事实上,股市是永远不会重复的,股市某一天的走势与任何一天都不同,股市的未来,也不是套用历史数据就可以简单预测的。

    2.技术分析无法判定股票的供求关系。股票供求关系的变化是股市运行的直接动因,股票供求取决于资金面的供给、新股发行速度、入市意愿等因素,而这些因素在来来都具有不确定性,这是技术分析无法判定的。

    3.技术分析无法改变宏观经济与政策面、公司行业基本面、消息面上的不确定性。

    4.在以庄家为主力的市场中,由于股价由庄家决定,所"存在许多的骗线问题。如渡浪骗线、均线骗线、指数骗线、尾盘骗线、K 线骗线、指标骗线等,投资者如果只简单以技术分析作入市参考的话,就很容易掉入庄家的陷阱。实际上,在一个人人都懂技术分析的市场上,技术分析自然就失去了它的可靠性。试想,如果谁都认为某一天技术上发出了买入信号,那么,这个技术上的信号还会准确吗?这是技术分析自身存在的悖论。

    综上所述,基本面分析和技术分析都难以独立解决投资者的所面临问题,因此,在股票投资时,最好是将基本面分析与技术分析综合起来运用,以基本面分析解决投资者的投资方向问题,即买什么;以技术分析解决投资者的买进时机问题,即什么时候买进最佳。
    欧奈尔总结出,股票投资60%取决于基本面,40%取决于技术面。我们认为是有一定道理的。基本面分析属于一种规范化分析。一般来讲,比较理性的投资者和那些受传统教育影响比较深的投资者更注重公司基本面的研究。从
    整体来看,我国股市投资风格重心开始向基本分面析倾斜,一些有实力的券商研究机构和基金管理公司对其关注的股票,都会投入大量的人力物力对它的基本面进行深入的研究,并以此作为决策参考。

    在基本面分析中,我们应该重点关注那些东西呢?
    发达国家的证券市场经过上百年的发展,信息披露比较规范,市场投资比较理性。所以,在发达国家市场中,投资者从公开信息中基本上就可以了解公司的全部,然后,投资者根据所掌握的这些信息进行择优选择,这样,市场就处于一种完全的理性状态。欧奈尔的高成长股票取决于公司的赢利能力、而公司的赢利能力常常反映在每股收
    益上的观点,就是基于这么一种市场状况。我国证券市场虽然发展速度比较快,但在信息披露、投资理念等
    许多方面,与西方发达国家相比还存在比较大的差距。所以,投资者如果照搬欧奈尔的做法,有可能陷入投资误区。

    第一,绩优股误区。绩优股在股市中俗称白马股,绩差股则有可能成为所谓黑马股。目前,我国股市上白马股常常涨不过黑马股,有些白马股甚至任凭指数狂飙,我自岿然不动。如蓝田股份1999年每股收益1.15元,在大盘涨幅达30%的情况下,它一直在l7.50元左右盘整(见蓝田股份日K线圈);而五粮液尽管每股收益达到1.35元,在1999年年报公布以后不涨反跌。造成这种现象的原因,并不是因为这些企业不行,而因为庄家没有看中这些企业。一般而言,庄家容易看中那些不容易引起投资者注意的股票,在低价位偷偷吸筹,建仓后不断拉升,同时通过业绩配合,将绩差股培育成绩优股,将黑马变成白马,从中赚取差价。而绩优股由于业绩已经明朗,普遍被投资者看好,庄家吸筹成本高,吸筹非常困难,所以庄家一般不选择绩优股做庄。这就是绩优股市场表现反而不如绩差股的重要原因。

    第二,报表误区。一只股票一旦经过疯狂炒作,报表包装是常常避免不了的,投资者以这样的报表为选股依据,就很容易掉入庄家的陷阱。

    第三,每股收益误区。企业收益主要来源于主营收入、营业外收入、投资收益等,其中营业外收入和投资收益大多为一次性收入,它对每股收益的贡献是一次性的,所以,投资者不能简单地将每股收益高等同于高成长,而应该看它的主营业务增长情况。

    根据这些情况,我们总结出基本面分析的四点经验,即"四看":
    一看公司的技术实力,因为技术是公司进一步发展的重要保证,是公司获取超额利润的基础;
    二看公司在行业中的地位和产品的市场占有率,从中了解公司发展的稳定程度;
    三看公司的主营业务是否突出,
    从中了解公司管理层是否一心一意在做主业;
    四看公司的股本结构是否合理,一般而言,小盘股易于炒作,也利于今后股本扩张,黑马股通常产生于小盘股。

     
    在一个投机市场,仅看公司的基本面是很难取得好的投资收益的。一方面是因为市场不理性,股价并不按公司的基本面排序;另一方面是因为业绩好的公司实在太少,很难找到有价值的股票。因此,技术分析往往是不可缺少的。
    技术分析应该关注哪些要点
    第一,关注成交量的变化。量价配合理想是股票运行的最好形态,这种情况经常出现在股价上升过程中。随着股价的逐步拈高,筹码的逐步集中,这种情况会被另一种情形所取代,股票开始进入无量空涨阶段,这就是我们通常所说的"强庄股"。股票一旦进入无量上涨阶段,任何技术分析都已失去作用,股票投资成为一种典型的博傻行为,胆大者赢。股票既然可以无量上涨,自然就可以无量下跌,当股价涨到一定阶段,庄家发现跟风者甚少时,股价可能无量下跌。所以,投资者一旦碰上无量上涨股,最好的方式就是观望。一般而言,股票怎么上就会怎么下。

    第二,关注股票运行形态。股票形态是我们进行投资决策的重要依据,基本面再好的股票,如果技术形态不行,也是涨不上去的,投资者千万不要去碰。通过股票形态分析,我们通常可以获得三点有价值的信息:
    1.股票是否已经见底,或是否见顶;
    2.判断股票的运行趋势;
    3.根据形态的不同,判断股价的上涨空间,寻找最佳买入点。

    第三,关注技术指标。技术指标是股价运行情况的反映。当股票走势比较强时,技术指标也比较强;当股票走势比较弱时,技术指标就会偏弱。一般来讲,技术指标由弱转强,或由强转弱,都需要一个过程,需要一个量的积累。同时,我们也应该看到,股票总是在强弱之间相互转化,反映在技术指标上,则意味着技术指标强到一定程度
    就会转弱,而弱到一定程度就会转强。这种强弱转化可以通过一系列指标反映出来,如RSI、KDJ等,这些指标在许多书上都有详细介绍,在此不再赘述。在这里我们需要提醒投资者一点的是,弱市中的强势股,当其技术指标处于超买状态时不要盲目追涨,因为它不久就可能回调;强市中的弱势股,当其技术指标处于超卖状态时也不要盲目买进,因为这种股票一般很难上涨,即使能上涨,其技术指标的修正也需要一段比较长的时间。

     

    展开全文
  • 基本面分析技术分析的关系

    千次阅读 2007-05-17 12:57:00
    (1)两者的联系。两者的起点与终点一致,都为了更好把握投资时机,进行...基本分析设计股票的选择,技术分析决定投资的最佳时机。两者的结合,即选准对象把握机会,才能在证券投资中有所斩获。 (2)两者的区别。

       (1)两者的联系。两者的起点与终点一致,都为了更好把握投资时机,进行科学决策,以达到赢利目的。两者实践基础相同,都是人们在长期投资实践中逐步总结归纳并提炼的科学方法,他们自成体系,既相对独立又相互联系。两者在实践中的运用相辅相成,都对投资者具有指导意义。基本分析设计股票的选择,技术分析决定投资的最佳时机。两者的结合,即选准对象和把握机会,才能在证券投资中有所斩获。
        (2)两者的区别。
        第一,两者分析的依据不同。基本分析根据价格变动的原因,各种宏微观因素预测证券的未来行情。其方法具由某种主观性,即在搜集各种客观资料的基础上,依据分析家的经济金融知识和经验得出某种倾向性的看法,不同的分析家面对同样的资料,有时竟会得出截然不同的判断。技术分析依据市场价格变化规律,采用过去及现在的资料数据,得出将来的行情,其依据是"历史会重复""。通过市场连续完整的经验数据,采用统计分析归纳出典型的模式,其方法更为客观,也更加直观,甚至可直接得出买卖证券的拐点,这是技术分析的优势。 

        第二,两者的思维方式不同。基本面分析是理论性思维,它例举所有影响行情的因素,再一一研究它们对价格的影响,属于质的分析,具有一定前瞻性。技术分析是一种经验性的思维,通过所有因素变动,最终反映在价格和交易量的动态指标上。它忽略产生这些因素的原因,利用已知资料数据,给出可能出现的价格范围和区间,它侧重历史数据,是量的分析,具有一定的滞后性。

        第三,两者投资策略不同。基本面分析侧重于证券的内在投资价值,研究价格的长期走势,而往往忽略短期数天的价格波动。人们从中得出应该投资哪些质地优良,具有发展潜力的证券品种,以避开那些投机严重或企业连续亏损的证券商品。技术分析侧重于对市场趋势的预测,它告诉人们获利并不在乎于你买什么证券品种,哪怕是亏损公司股票;也不在乎你买多少数量,而在于你在什么价位区间买入,在什么价位区间卖出,具有直观性和可操作性。
        第四,两者投资操作方法不同。基本面分析着重研究各种因素与价格的内在联系和逻辑,它涉及面广,要求分析人员具有较强的专业理论知识,对国家宏观、微观经济、方针政策都要有所涉及,要有政治上的敏感性和敏锐的洞察力,还须具备搜集各类信息和从中筛选出有用内容,有准确判断和推理的能力。技术分析着重于图表分析,使用证券的价量资料用统计方法得出某种结论。操作人员应掌握一定的数理统计知识,注意数据的连贯性,在一定的模式下,操作相对容易。

        第五、两者分析方法优势互补。基本面分析涉及面广,所得结论一般不会发生严重偏差,有助于证券市场的长期稳定,并引导投资者关心国家大事,有利于投资者整体素质的提高。技术分析揭示行情变化趋势,可剔除市场偶发事件的影响。这种数据的滚动连贯性,也是趋势的延伸,具有合理性。它不需要人们掌握专门的金融证券知识,或齐全的情报数据,对广大非专业投资者有着积极的意义。两种方法配合使用,可最大限度地弥补各自的缺陷。

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

    目录

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

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

    (一)战略设计

    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.

    展开全文
  • 企业级私有云环境下的核心技术需求有哪些? 高I/O性能:支持大型企业级应用,以及降低CapEx(为满足特定需求,可以投入更少的计算资源)。功能简单、界面直观:让企业IT团队能够在短时间内掌握基本维护技巧,降低...

    企业级私有云环境下的核心技术需求有哪些?

    1. 高I/O性能:支持大型企业级应用,以及降低CapEx(为满足特定需求,可以投入更少的计算资源)。
    2. 功能简单、界面直观:让企业IT团队能够在短时间内掌握基本维护技巧,降低OpEx。
    3. 自动化运维:部署、扩容、监控、告警、自动伸缩,都能通过基本的UI操作全部完成,降低OpEx。

     

    那么要满足这样的核心需求,OpenStack-Powered产品该如何设计?

     

    1. 界面交互

    从用户角度看,用户第一眼看到的是什么?界面!所以界面直观,让用户一眼看到就知道怎么用。

    用户怎么样才能知道如何使用?VMware和Microsoft已经培养好了用户习惯,我们在界面交互设计时只要模仿即可,

    模仿主流产品的界面交互,让用户能够不用培训就能入手,创建VM,登录VM,安装应用,参看和配置监控和告警。

     

    2. 功能简单

    如果功能特别复杂,就会导致界面复杂,一层层菜单向下走,而不是一个平面操作,界面交互就不可能简洁。

    所以,界面直观的一个引申,就是用户界面的功能要简单,特别是针对OpenStack,

    如果实在无法化简,有一个实践可以参考,就是按照用户常用功能、高级功能,

    在用户登录后,菜单栏分开成两个Panel,Simple Operations和Advanced Functions。

    Simple Operations:指代正常使用的虚拟化、必须要用到的功能。

    Advanced Functions:指代所有可选的云的高级功能,包括SDN、Backup、Alarming、Auto-Scaling。

     

    3. 自动化运维

    既然是自动化,则用户只要简单配置,甚至不需要配置,就可以达到一个默认大多数用户都能接受的效果。

     

    4. 虚拟化管理模块如何满足呢?

    大多数功能都是VM管理,所以不需要化简。

    但如果优化的话,尽量在界面上提供能够一步走到底的Batch Operation,而不是要让用户一个个点开操作。

     

    5. SDN模块如何满足需求?

    只要能实现一个稳定的二层控制面,SDN的任务其实就完成了。由于每个客户的物理网络环境和对网络需求

    确实千差万别,需要定制,但实际上选择面也不是多到难以抉择。

    (1)Provider Network

    如果客户只是最为简单的虚拟化管理需求,那么将Neutron虚拟网络直接挂接到物理网络上,实现一个Flat网络即可。

    如果客户需要网络隔离,但是也有Admin统一纳管,那么还是使用该技术,指定多个ProviderNet,实现一个带物理隔离的Flat网络。

    (2)Multi-tenancy Network Isolation

    如果客户方需要对多个部门实现网络隔离,并且需要能够自定义网络,那么就需要用到VLAN。

    如果客户方规模大到VLAN无法承载,才要使用VxLAN。

    如果客户方有多个DC,并且二层打通,那么为了资源最大化利用,也要使用VxLAN。

    (3)DHCP-Agent

    如果允许VM直接配置静态IP,则无需使用DHCP-Agent。

    如果使用Provider Network,那么可以直接在该物理网络上,启动外部DHCP Server。

    如果需要自定义网络,则需要DHCP-Agent,目前都能支持Failover和A/A。

    (4)L3-Agent

    没事,别找抽,企业私有云一般都不会有NAT的需求,这个是公有云的需求。

    没见过哪个用VMware虚机的企业在内部运维还去配置两层IP。

    实在客户需要NAT,那么优先在物理网络的三层设备上做。

    实在要通过SDN运行NAT,则在技术支持条件好的环境下,优先选择第三方企业级SDN解决方案,比如Midonet、Centec等。

    然后再是DVR(前提是启动L3-Agent HA),最后是DragonFlow(如果其L3 Controller Agent支持HA,则DragonFlow优先于DVR)。

    (5)LBaaS-Agent

    这个是SPOF,看客户需求部署。

    (6)VPNaaS-Agent

    这个是SPOF,看客户需求部署。

    (7)FWaaS

    这个是L3-Agent的Extension。

    (8)性能

    网络高IO也是核心需求,所以在数据包的转发面上,、

    尽量减少虚拟化,尽量减少Kernel协议栈的干预。

    (9)运维复杂度

    基于Flow的转发面的使用,需要引入额外运维的开销和调试复杂度,比如DVR,Dragonflow等。

     

    6. 存储模块如何满足需求?

    数据冗余,然后就是高I/O,高I/O,高I/O。否则很多企业级应用(IO密集型)根本没办法跑。

    所谓IO密集型应用,主要指代应用过程中产生大量用户端的实时交易,交易越密集,IO要求越高。

     

    7. 计算(虚拟化技术)模块如何满足需求?

    计算模块实际上贯穿是一个最为核心的模块,无论网络I/O、存储I/O,在虚拟化层面上,都要做足优化。

    包括CPU多核架构、内存、设备驱动层面。但是这些优化都应该由自动化部署系统去完成,不需要体现在用户界面上。

     

    至于是否在产品中直接使用容器虚拟化,则是另一个话题。因为容器虚拟化技术本身简单,但背后需要重构一个App-Centric的

    体系,并且企业IT部门也要有一个完全不同的DevOps面貌来支撑这个体系,这个不是短时间内可以落地的。

    展开全文
  • 基本面选股是我们决定是否买卖股票的重要依据之一,对于长期生存在股市里的人来说,是最基本的必修课。基本面选股从过程看比较复杂,其实等你熟练掌握之后,一般情况下都能在短时间内就能快速确定股票的估值水平。...
  • 基本分析

    千次阅读 2004-11-09 17:03:00
    需要注意的是,我们在这里所说的对基本面的关注不是说去了解传统的基本分析分析方法,而是通过了解投资大众对于基本面的认识看法,来了解投资人在基本面有所转变之后买卖欲望的变化。 所谓传统的基本分析认为,...
  • 基本面指标笔记

    千次阅读 2018-06-22 15:43:37
    基本的财务数据,为了使得不同公司可比,因此需要构建基本面指标。 基本的财务数据:营业收入,利润,现金流。价值投资基本都是在估计营收利润,谁估计得更准确,谁将获利,这就是分析师的一致预期。 成长因子:...
  • 数据传输加密技术分析

    万次阅读 2015-12-23 21:03:46
    互联网给人们生活带来了极大的便利。然而,人们在享受网络便捷的同时,却往往容易忽视网络暗藏着的安全隐患。...对于企业来说,企业的财政开支状况、项目申请及研发文档等都是非常机密的材料,一些不
  • 企业价值分析框架

    千次阅读 2019-10-10 18:31:23
    企业盈利点——商业模式 竞争优势——核心竞争力 护城河——市场进入壁垒 安全边际与估值——价值评估 优秀企业家与股权结构 K 线可以看做是一家公司的影子,K 线总是跟随公司而变化,想要研究 K 线,应该从公司...
  • 横向技术分析C#、C++Java优劣

    千次阅读 2012-04-22 09:48:04
    抛却Microsoft与Sun之间的恩怨与口角,客观地从技术上讲,C#与Java都是对传统面向对象程序设计在组件化软件时代的革新之果,可谓殊途同归。虽说两个语言有着"90%的重叠",但那另外"10%的较量"也往往能够左右一个天平...
  • 华为数据分析技术面试

    千次阅读 多人点赞 2020-01-19 11:44:01
    就其中可能是大家最想知道的技术面试大家分享一下。 正文 首先面试的形式是电话面试,时间大概是35分钟(鬼知道我这么能聊)。 首先是先寒暄了几句。问了我现在在哪个城市,然后强调了一下是签德科,这是招聘的...
  • 我还是比较推崇“演绎法 | 归纳法 | 穷举法 | 棋谱法”这套方法,这本书《一位股票投资家的良知:我为何放弃技术分析》的作者更推崇的是价值投资,已分析基本面和财务数据为主,我认为单从价值投资的角度上来讲,...
  • 数据分析企业中的三大作用

    千次阅读 2020-04-29 14:18:16
    作用一:帮助企业经营者快速掌握企业基本面 1. 数据分析人员可以将企业经营行为转化为可评估的量化指标 中国是个人情化的社会,无论是在生活还是工作中,大多数人都会以主观的感受来评估一个人;所以在古代皇帝...
  • 虚拟现实竞争企业分析

    千次阅读 2016-03-25 15:53:44
    全面剖析全球虚拟现实(VR)最具创新力企业(附股)  (2015-12-10 20:24:36) 转载▼ 虚拟现实与增强现实(VR/AR)将深刻变革娱乐、教育、医疗等领域。有数据预计在2016年,VR/AR产品销量将增长500%,销售额...
  • GIS基本理论系列是在《地理信息系统原理应用》读书报告基础上完成的,当作自己对GIS理论的一次复习回顾。 1. 空间信息分析的内容包括哪些操作?有哪些功能?空间信息分析通常是指GIS为用户提供的解决问题的方法...
  • 基于Memcached的反射型攻击技术分析 利用Memcache的反射型攻击最初由360信息安全部0kee Team在2017年6月发现,并于当年11月在 PoC 2017 会议上做了公开报告,详细报告可参见参考链接[6]。 要完成一次UDP反射放大攻击...
  • 系统分析基本

    万次阅读 2005-03-12 13:00:00
    好的系统分析员都是从优秀的程序员中...语言能力、文字表达能力、技术的全面性等是对系统分析员的基本要求。比如说c/s 3 层开发,如果仅仅对netscape公司的产品熟悉还不够,还需要了解比如微软等产品,并且要了解他们
  • 大数据分析的六大基本组成

    千次阅读 2020-01-17 08:07:19
    ## 大数据分析的六大基本组成 (本文是笔者查阅一定资料整理原创所写,受知识限制,如存在错误,欢迎支出) 第一部分: Analytic Visualizations 数据分析基本要求。 大数据分析的对象主要为海量数据,涉及到的...
  • Spring框架的基本原理分析

    万次阅读 多人点赞 2018-04-05 14:47:07
    工作有一段时间了,工作中基本每个项目都用到了Spring框架,说实话,很多人应该我一样,只是“使用”了这个框架,对于框架的基本原理应该没怎么研究过。前段时间,同事交流时,提到了Spring核心组件:IOC(控制...
  • 数据仓库、OLAP 数据挖掘、统计分析的关系区别分析 一、什么是数据挖掘  数据挖掘(Data Mining),又称为数据库中的知识发现(Knowledge Discovery in Database, KDD),就是从大量数据中获取有效的、新颖的、...
  • 经过笔试多轮技术面试我居然败给了HR

    万次阅读 多人点赞 2021-04-01 20:46:24
    经过了哈希表、动态规划、二叉树、Linux…等重重技术考核,HR不得好好准备一下?总不能最终因为HR说这个人不符合公司的企业文化之类的被刷掉吧!那么这篇文章就是专门针对HR面试环节总结的相关面试技巧,以及如何...
  • 先说一下个人背景,本科是工科相关,非计算机非统计学,硕士是金融相关,基本也算是数据分析没什么关系,毕业之前有过迷茫,因为自己其实也不知道到底适不适合金融行业,而且上学的时候没有认真搞过什么银行、券商...
  • 项目管理中的心态对抗之二——企业管理者的心态分析话题目标这个话题是针对企业管理者而提出的,本文的定位在于给企业管理者一个心理分析的启示,这个启示应该有助于您做好项目管理工作,让你的项目进展得更为顺利,...
  • WIFI无线网络技术详细分析

    万次阅读 2020-12-30 22:14:52
    WIFI无线网络在无线局域网的范畴是指“无线相容性认证”,实质上是一种商业认证,同时也是一种无线联网技术,以前通过网线连接电脑,而无线保真则是通过无线电波来连网;常见的就是一个无线路由器,那么在这个无线...
  • 基本分析的主要理论

    千次阅读 2007-04-17 12:55:00
    基本分析的主要理论 1、股价的基本分析法 股票价格是股票在市场上出售的价格。它的具体价格及其波动受制于各种经济、政 治等方面的因素,并受到投资心理交易技术等的影响。概括起来说,影响股票价格及 其波动的...
  • 掐指一算,云计算已经有了十年的历史,发展到今天几乎可以算是近十年最伟大的技术进步之一。「云计算」这个术语,也早已从一个新鲜词汇,成为了妇孺皆知的流行语。任何事物的诞生发展一定有其前...
  • PERT网络分析法(计划评估审查技术,Program Evaluation and Review Technique) 目录 [隐藏] 1 什么是PERT网络分析?2 PERT的基本要求[2]3 PERT的计算特点 [1]4 PERT网络分析法的工作步骤 ...
  • Spark 高级数据分析(第2版)

    千次阅读 2018-11-06 11:55:07
    作为计算框架,Spark 速度快,开发简单,能同时兼顾批处理和实时数据分析,因此很快被广大企业级用户所采纳,并随着近年人工智能的崛起而成为分析和挖掘大数据的重要得力工具。 本书由业内知名数据科学家执笔,通过...
  • 数据分析和数据处理本身是个非常大的领域,这里主要总结些我个人觉得比较基础且实用的部分,在日常产品工作中可以发挥比较大作用。本期主要讨论些数据分析的三个常用方法: 数据趋势分析 数据对比分析 数据细分分析 ...
  • CTO在企业技术创新中的作用地位

    万次阅读 2010-07-02 12:02:00
    本文通过企业技术管理人员在成功创新过程中发挥的作用,从不同层面阐述了对CTO在企业技术创新中所起作用地位的认识,指出CTO的成败关乎整个企业进步的成败。  〖关键词〗企业、技术管理、技术创新、CTO。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 62,046
精华内容 24,818
关键字:

企业技术分析和基本面分析