没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
作者有20多年软件从业经验,长期从事面向服务架构的底层软件研发。本文分析了传统的SOA到正当流行的微服务架构,并提出了最新的面向服务的S++理论和方法,并全面的分析了各种架构模式下面向服务的应用和发展。
资源推荐
资源详情
资源评论
S++与分布式多中心架构
野蛮生长到精细分工
一种商业模式的发展初期一定是野蛮生长的,你可以想象最初的农民从游猎和
采摘转向农业生产的过程,他们没有方法没有工具,没有人能帮助他们,甚至会有人
嘲笑他们。于是他们探索方法论,并自己制造工具,正如现在互联网商业模式下的先
驱们所做的事情是一样的,为了实现商业目标,他们利用一切能利用的现有技术手段
(比如开源),大量的堆砌人力资源,最终开创了互联网商业模式。
正如农业与狩猎的对比一样,新的商业模式对传统模式拥有巨大的优势,于是
大量的人逐利而来不惜代价的投入互联网模式。但是,可以预见的是后来者大多会失
败,因为只有巨大的财力才能支撑这种野蛮生长,当农民把大量的资源用于制造农具
的时候,他就没有更多的资源用于农业的生产了,所以社会分工这种可能是源于蛮荒
时代就存在的自然现象就会再次发生,专业的农具工匠把农民从自己不擅长的领域解
放出来,这样农业这种崭新的商业模式才得以高速稳定的发展起来。同样的,可以预
见的未来,野蛮生长的互联网模式一定会消亡,专业厂商会提供更加高效和低廉的工
具,帮助任何一个希望采用崭新商业模式的人轻松跨越技术门槛,聚焦到自己熟悉的
业务领域。
互联网模式
创新颠覆的是传统,那么哪些传统会被颠覆呢?我认为,科学的方法论支撑的
传统是不会被颠覆的,比如社会化分工合作是基于人性基础上的符合逻辑的推论,只
要这个世界的物理规律不变那么人性就不会变,人性不变那么社会化分工合作就是人
类社会的必然趋势。
那么传统的应用软件开发模式已经从作坊式进化到了大团队协同模式,从需求、
设计到开发、测试再到部署、运维都是由专业化很强的团队来分工协作的。但是互联
网模式却颠覆了这个模式,他们强调一体化即软件的全生命周期由一个团队独立完成。
我们先不说这种模式的好坏,先来分析为什么会出现这样模式,其实原因就是他们做
的业务没有任何现成的技术或产品能满足需求。这就像当初从猎人转变为农民的过程
一样所有工具和方法都要自己去探索,那么虽然分工还是需要的,但是比分工更重要
的是更强的执行力和更快的反应速度。同时,由于新的商业模式吸引了大量的资本,
所以互联网巨头们可以利用资源优势随意的“任性”。
互联网模式的基础
基于以上原因,那么互联网模式的一切行为都是可以有合理的逻辑解释的:
1、 大量使用开源
由于人的逐利行为,任何非主营业务的投入都是希望越少越好,互联网
模式也是如此,他们清楚的知道技术并不是他们的主营,所以并不会真
的野蛮到所有技术都自己开发,能有现成的就用,更关键的是这些技术
都可以根据自己的需要进行修改。所以,互联网模式下,利用开源搭建
自己的业务应用是合情合理的。
但是,开源带来了另外一些问题,比如对开发人员的能力要求很高、后
期维护成本居高不下、出现问题难以解决等等。所以,采用互联网模式
的企业需要技术“牛人”来支撑。
2、 采用 DevOps 开发运维一体化模式
DevOps 运动是在这些“牛人”驱动下发展的,其实这个运动更像是系
统软件开发而非应用软件开发。当我们去开发一个生命周期长达几十年
的底层或中间件产品的时候,会采用类似的模式。我们知道,架构是一
种平衡和取舍,底层产品和应用产品的差异在于平衡性能、功能、可靠
性和成本等等诸多因素。
显然,互联网模式有大量的资源,他们可以不考虑这种平衡,可以任性
的使用大量的“牛人”和海量的技术人员来完成他们的业务应用系统。
我认为,互联网模式是无法大规模复制的,只有前期的几个巨头能够支撑上万
人的研发团队来满足业务的需求,任何其他企业妄图复制互联网模式只可能赔掉底裤。
其实,互联网模式不需要复制,因为他最终会走下神坛回归科学的方法论,科学告诉
我们唯一的出路就是更精细化的分工,任何打破规律的东西都是暂时的不可持续发展
的。
互联网模式的前景
我们讨论互联网模式的前景,其实是在讨论开源产品的前景,因为大多数互联
网模式都是建立在开源软件基础上的,这两者相辅相成相互推动。我本人是一直从事
商业软件开发的,从这个角度看如果我说开源存在这样那样的问题,就显得有点酸,
所以这一段我不会举任何例子来证明什么。而且首先,我对开源项目致以最大的敬意,
从推动社会进步和改变世界的角度看,开源做出了巨大的贡献。
1、 从人性看
我们都知道人性是自私的,我们每个人都会为自己的利益而奋斗,希望
获得社会的承认。我也不否认可能会有真正的大公无私的人,去把自己
劳动和创造完全不求回报的贡献出来。但是,如果说每个开源项目都是
由如此伟大的人组成的,我相信这已经颠覆了人性了。我更愿意相信参
与开源项目的人,都是抱着某种利益需求的,这样开源反而能走的更远
些。
我斗胆来一点点的搜寻开源项目的利益链条和前进动力。
2、 为什么要开源?
我们知道任何事情都有其内在的逻辑因果,开源这件事也不会例外。传
统的商业模式都是闭源的,这里面的因果非常简单:你通过大量的投入,
获得了一种非常核心的关键技术,这种技术足以遏制和超越对手(甚至
改变世界)。那么,你难道不想收回投资吗?难道不希望自己的技术得
到社会的认可,并让所有为这个技术做出贡献的人获得更好的生活嘛?
显然,直接公开这个核心技术不但是对自己劳动的不尊重,也是对整个
团队的不尊重。我觉得像知识共享这样的说法我是不认同的,知识分为
两种:一种是对自然的发现,一种是从无到有的创造发明。前者我们知
道确实是被共享的,究其原因是你没有办法阻止其他人去发现相同的自
然规律,而且现行的社会规则会给予第一个发现者非常好的回报;而后
者则不同,对于一种从无到有的创造,社会能给予的唯一回报就是商业
回报,如果这种发明被迅速模仿甚至公开,那么任何回报都没有,也可
以变相的认为毫无价值。如果是一种毫无价值的知识,还有必要分享吗?
所以,我们知道为什么有闭源,就可以分析出为什么会有开源了。一种
可能是某个伟大的个体靠个人的力量掌握了一种核心技术,并无私的公
开出来;还有一种可能就是无法在商业竞争中打败竞争对手,又不甘于
自己的努力和劳动完全被埋没,于是将核心技术公开出来;当然,还有
一种是出于人性对商业垄断的厌恶,自发的组织起来进行的“抵抗运
动”。
3、 开源是如何被推动的?
任何一件事情要被推动其背后必然有商业利益存在,开源也不会例外。
在共产主义实现之前,我们找不到任何符合因果逻辑的公益行为来推动
理想的开源,而开源本身的用户群也都是商业群体,我不太能理解一个
组织无偿的投入资金和人力其目的仅仅是为了其他商业机构能够更低成
本的去获利。
所以,开源的第一推手显然还是商业机构,商业机构推动开源无非有几
种目的:第一种为打击竞争对手,这从商业上讲是非常划算的买卖,其
效果我们也是有目共睹,比如高端产品用我的低端产品用开源的,从而
遏制竞争对手从低端做起;第二种依然是打击竞争对手,大家知道世界
上所有的事情都已经有人在做了,任何一个行业都是有准入门槛的,这
包括行业知识的壁垒、技术的壁垒、资金的壁垒、客户群的壁垒等等,
那么任何一个可以打破某种壁垒的方法都是会受到无孔不入的资本的青
睐的,开源就是一个打破技术壁垒和知识壁垒的好手段;第三种依然是
竞争需要,开源的出现为原来壁垒森严的闭源生态带来的不仅仅是商业
上的冲击,更多的带来的是对人性的诱惑,传统的程序员可能做一辈子
码农都没有机会接触一个商业软件的核心引擎,那么现在机会来了任何
人只要愿意都可以随意的浏览和使用开源大牛们构造的核心。从程序员
的角度讲,掌握了开源就拥有了更好的职业生涯和竞争力。
4、 开源和闭源之争
只要有合乎逻辑的利益存在,那么就会继续存在。无论开源还是闭源,
显然都是具有社会商业价值的,闭源产品为创新者和客户带来价值,开
源项目同样为客户和众多二次创新者带来价值。选用开源还是闭源,完
全是一个企业基于自身现状的一种考虑,无关乎开源闭源的优劣。其实
任何优劣都会因需求与资源的不同而变化,现在舆论过多的强调了开源
的优势,从某种意义上任何开源都会转化为闭源,比如你还能认为现在
还在使用 Tomcat2.0 的企业是基于开源的吗?
一个企业做出选择一定是在平衡各种不同的风险和收益,如果盲目的跟
风那么只会自食苦果。
5、 我对开源的看法
从我个人观点来说,我觉得拥有第一次创新的开源项目是最具生命力的,
那些竞争失败而开源的、为打击竞争对手开源的以及对成功商业产品模
仿的开源项目,我是不太看好的。从结果上看,我认为一个开源项目,
如果不断地有商业机构肯花费资金来基于它进行闭源研发,我觉得这就
是一个优秀的开源项目,换句话说只有能成为闭源的开源项目才是有商
业价值的好项目。
从商业角度看,开源项目在一个商业模式初期是非常有竞争力的,野蛮
生长需要的就是速度和灵活性以及大量低成本的试错;但是一但商业模
式趋于稳定,那么稳定可靠低成本的闭源产品肯定会替换开源模式,如
果说 IT 系统是运载企业前进的汽车,毕竟不是谁都有财力为自己量身
打造一款专属的汽车的。
互联网模式带来的架构之争
架构是只是一种平衡手段,架构为特定的目标服务,通过平衡资源的分配从而达成有
限的资源下实现特定的目标。
通常,我们做架构设计的目标是平衡空间、时间、可靠性、复杂度、可维护性、易用
性、成本等等指标,选择应用更迫切需要满足的指标优先满足,同时尽可能的减少对
其他指标的影响。简单说,架构就是要明确取舍。而且,我们选择的架构不能够影响
应用本身的业务逻辑,也就是说架构对应用来说应该是透明的。
去中心化和集中架构
SOA 发展过程中既有无中心架构,也有集中架构,前者用于互联网企业间的交互,后
者在企业内部使用。
剩余50页未读,继续阅读
资源评论
- yuan_20042016-09-05很不错的资源,感谢分享
- wwlswj2018-04-07终于找到个可以用的,谢谢
- havening2019-10-17还不错,如果写的更加详细点就完美了
dog72
- 粉丝: 2
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功