赤壁之战,曹操大败只因缺了Service Mesh

创业资讯 阅读(1104)

本文作者将微服务的演变与服务网格整合为三国的故事。这个故事很长,每个人都在慢慢地看着,而精彩的人却在后面。

2d9fb3bc23804de3a46335e39b36fe50

据说,曹操官渡的战斗取得了巨大的胜利。他从袁绍编造了大批士兵和部队。有Pythons,JS,Ruby,C ++和PHP。

强大的,被称为百万强大的军队,正在向东移动。

刘备带领自己的爪哇军队,哦,不,事实上,这对人民来说是不够的,并在抵抗时逃往东方。

刘备:“曹操的军队怎么压?”

诸葛亮:“主不用担心,我可以等东武。”

刘备:“他们愿意接管曹并带走我们?”

诸葛亮:“看看你自己的伎俩,慢慢听我说。”

诸葛亮:“东吴对水战很熟悉,创始人孙健一直使用Go语言,他的孩子和孙子继承了父亲的野心,创造了Docker。现在孙策的兄弟孙权已经到位,我们可以说服他团结起来反对曹。“ p>

刘备:“说话很便宜,你先带赵云来东武去游说,我们会随军而来。”

01东武

诸葛亮来到东吴并解释了他的意图。

诸葛亮:“曹操正在射击一百万军队攻击东武。目前局势至关重要。我的主要刘备想帮助东武打击曹。”

张昭:“主啊,你一定不要听这个人,曹明明明要攻击刘备,我和董武在做什么?”

诸葛亮:“这个说法不同。如果我的主要刘备被摧毁,董武会不会灭绝?”

张昭:“你说你要来帮助我们打击曹,但你自己的力量很弱。你被曹操打败了,你怎么能帮助我们?”

诸葛亮:“我的大师从小就开始练习Java,我一直在研究Yu Zhangfei和赵云。最近,我一直在研究微服务,而且使用Soochow Docker,我可以充分利用它。”

张钊:“什么是凌乱只不过是试图借用我们的力量。”

看到两人在大厅里吵闹,孙权头疼了一阵:“嘿,等一会儿,让我三思而后行。”

孙权回到房间,立即写了一本书让周瑜回来。

02周瑜

周瑜回来看孙权:“主,我听说过事情,我也主张反曹。”

孙权:“哦?你确定吗?”

周瑜:“我一直在训练Docker Water Force。战斗力一直是Max,但我必须看到诸葛亮看到它。”

之后,周瑜跑到了诸葛亮的住所。

诸葛亮已经在等待这件衣服了。

周瑜:“诸葛先生,你的善良是我的心,但你也知道你的军队不到一万,加上我军不到五万,如何抵抗曹操万军?”

诸葛亮:“曹操的百万军队看起来像很多纸老虎。你认为,曹军大多收集其他力量,比较凌乱,有什么Python,JS,PHP,Ruby,C ++,这些人在一起,彼此之间无法合作,战斗力应该大大降低。“

当周瑜看到诸葛亮说出一句话的关键点,知道这个人并不简单,他决定继续他的诱惑。

周瑜:“你能有一个好的政策吗?”

诸葛亮并不是空洞的:“你和我一起写下你手中的计划,同时打开会更好吗?”

当周瑜听到它时,他觉得有点有趣。他拿起一支笔,手里写着一个字。诸葛亮也在他手中写了一个字。写完之后,两人碰到了他们的头,打开了他们的手掌。

我看到两个人写了同一个词,“船”!

周瑜:“我以为你会写火。”

诸葛亮笑道:“我以为你会写火。”

你有没有看到它,英雄的想法总是相似的,无论他们想要彼此多么不同。

两人谈了一夜,并同意反曹解决方案。从微服务到服务降级,当前限制,最后到Docker部署,制定了详细的运营计划。

计划完成后,两人进行了最后的模拟练习。在演习期间,两人有一种同情的感觉。

黎明时分,周瑜离开了诸葛亮的住所。在路上,他非常体贴:“诸葛亮是一个很棒的巫师,但不幸的是和我在一起,每个人都必须待很长时间。”

这两个词分为两个,说曹操担心这个。

03曹营

曹操:“我有一百万军队,但大部分来自北方。我对这个东武土壤不满意,特别是在水面上。它不像陆地上那么稳定。大量的士兵会晕倒他们到了水里。怎么回事?“

顾问带头开场:“主说这非常重要。在我看来,我们的部队太分散了。他们从事Python,PHP,Ruby,JS,C ++,就像海洋一样。就像五个人一样。孤岛,他们不能一起战斗。“

曹操:“艾青的话是我的担忧。我的扩张速度太快。我内心不适应。我担心我必须打折。有什么最好的策略?”

顾伟说:“主人能否听到普遍改写?”

曹操:“这是什么?”

程伟:“我们可以选择一种语言,比如PHP,用这种语言重写用其他语言实现的所有系统。所以每个人都使用一种语言,可以相互紧密合作。”

曹操:“完成需要多长时间?”

程伟:“大约需要两年时间。”

曹操:“这不可能。士兵们很快。两年后,刘备和孙权不知道它能是什么。”

就在这时,曹莹的一个声音说道:“我有一个计划,你不能改写这个系统。”

1庞统

曹操寻找他的声音,发现他正坐在他旁边。他的外表非常丑陋,但他有着深思熟虑的外表。

曹操:“哦?你说说吧!”

庞彤之前说过:“主能听说过RPC吗?”

曹操:“RPC?什么?”

庞彤:“这是远程过程调用的意思。虽然每个系统都实现了不同的语言,但只要外部提供接口,例如提供外部HTTP接口,它们就可以相互调用。”

曹操:“这样,你不必改写系统吗?来吧,让我详细告诉我。”

庞彤:“例如,用Ruby编写的系统,可以自己提供的服务由HTTP接口封装。用PHP编写的系统只需要发起HTTP请求,然后由Ruby系统提供服务。可以称之为。“/P>

1853597bc8644586bc8cfadf596782c2

曹操:“嗯,我明白,做出这样的转变需要多长时间?”

庞彤:“因为你不需要重写,所以不需要改变业务代码。你只需要用HTTP包装一些服务,你就可以在一周内完成。”

曹操听了很大的喜悦:“好吧,按照你的计划,你可以实施它。”

庞统带领曹操士兵改造系统,使原系统的五种语言相互依存,相互联系,完美地完成了曹操所需的一切功能。

cf47168d584d4f4ca997828172274776

改变之后,庞彤暗暗欢喜:“连续仪表已经完成,我现在应该逃离曹莹。”

庞彤想坐在河边,只听一个肩并肩的人说:“不要害怕这个人的头?”

2徐庶

庞的统一听力策略被打破并震惊。回想起来,事实证明是徐伟,盲人的心脏再次被放下:“哦,袁志雄,你太可怕了,不好,我的心病就要来了。害怕“。

这个徐伟间接向诸葛亮推荐了诸葛亮,但是他的母亲是由曹操控制的,而在曹莹,他发誓不会为他的余生提供曹操的计划。

徐伟:“基于远程呼叫的分布式系统,我一直在研究,这里的复杂性是独立程序无法比拟的。”

庞彤:“哦?我想听听细节。”

徐伟:“首先,你必须考虑被叫方应该挂起什么,做当前限制和降级计划,还要考虑呼叫的负载均衡问题,以及服务的自动注册和发现。必须是一个登记中心。你现在只是领导。士兵已经实现了这个功能,他们没有考虑到系统的稳定性和容灾性。这不是把曹操推入火坑吗?“

庞统一听着说:“我不想成为袁直兄弟,但老板只需要实施这个功能,谁来管理容灾和稳定?”

徐渭:“看来曹操的日子已经筋疲力尽了。如果你离开,你从未见过我。”

庞统拿着竹竿去了东吴。

04战争

月亮的黑风很高,长江上的波浪两侧都是一巴掌,发出巨大的噪音。在河岸两岸,曹操和周瑜隔着河对岸。就在今晚,曹操发动了对孙刘的一般攻击,而周瑜已经为这场战斗做好了准备。

不远处,诸葛亮登上七星,与周瑜相呼应,互相交流。

曹操发出命令:“所有部队都遭到袭击。”

百万军队驾驶一艘军舰开往周瑜。

和周瑜一样,该区只有十几艘船,与战舰相比,就像蚂蚁和大象一样。

曹操的巨型战舰对周瑜进行了猛烈的攻击。不过,周瑜并没有惊慌失措,而是命令士兵们抵挡住火力。另一方面,他秘密观察了曹操巨型战舰的火力分布情况。

他正在寻找系统弱点。

突然间,他发现曹操战列舰东北角的火力有点慢,不像其他地方那么猛烈,火力比其他地方慢50倍。

是的,这是一个短暂的50ms,但它不是天才,周瑜。他下令:“放火。”

由于周瑜的系统基于微服务设计,每个微服务都可以独立扩展。使用Docker再次部署系统。

周瑜的军队需要做的是关闭其他系统的Docker容器,然后启动攻击东北45度的Docker容器。

两个订单,整个过程不超过半分钟。

05逆转

半分钟后,周瑜的军队完成了集火的行动。曹操军舰的东北45度火力模块突然遭遇巨大火力,并立即绞死。

这个悬挂并不重要,关键是系统的其他模块依赖于这个东北45度火力模块。结果,许多模块无法正常工作。整个战舰只有几个可以输出的点,而所有其他火力都是愚蠢的。

东北45度区用Python编写,负责人是曹军将军张辽。

张辽看到模块挂了,赶紧下令:“重启!重新启动这个模块!”

但重新启动后,这个模块仍然无法控制周瑜军队的火力,它又重新挂起。

张辽:“不,必须扩大。在西北45度区的夏侯墩地区没有火力。快速调整十台机器扩大。”

西北45度区域由NodeJS编写。领导人夏厚敦接到了张辽的救援请求,立即将10台机器转移到了张辽。

但是在这十台新机器上部署Python模块很容易。张辽部队全部上手,全部手动部署,安装Python环境,设置环境变量,复制代码,设置配置文件,这个过程是关闭的,十分钟就没了。

因此,在启动时,会报告错误,并且Python依赖的系统库与NodeJS使用的系统库冲突。

张辽非常惊慌失措:“重装,快速重装系统!”

那么,整个战舰都在等待张辽重新安装系统,然后安装Python环境,设置环境变量,复制代码,并设置配置文件。

06曹操

曹操觉得胜利处于掌控状态,并在刺绣十字绣时在军舰监控室喝酒。我看了差不多一个小时,十字绣已经绣了一半,没有胜利的消息。然后我问周围的人:“你怎么没有摧毁周瑜?”

他周围的人也是欺凌的主人:“主没有恐慌,我们有一个小模块有一些问题,应该没问题。”

Cao Cao:“我在大型和小型系统中有几十个模块。一个模块有什么问题?”

他在哪里知道他的系统已经被庞统连接了?由于级联的影响,模块会挂起,这足以使整个系统的80%无法使用。

07破曹

张辽还在重新安装系统。周瑜的火力已通过东北45度火力模块到达系统缓存层。缓存层很快就变热了。战列舰着火,缓存层迅速渗透。火力到达数据库,数据库立即挂起。

张辽看到情况不妙,赶紧跑到监控室找曹操,才看到曹操还在喝着小酒,绣着十字绣。

张辽喊道:“主啊,求求你不要绣。周瑜的火力已经被击中,并迅速逃离后门。”

曹操一开始并不相信,但当他看到火灾时,他很快将它烧进了监控室。他只能带兵逃离战舰逃往华容道。

周瑜登上了曹操的战舰,没有找到曹操,士兵们准备追捕,周瑜并没有惊慌:“不要忙着追曹操,你要去七星站并把诸葛亮先给我一个软禁。“/P>

士兵们来到七星站,发现舞台上没有人。诸葛亮离开了东吴。

赤壁之战是一次大逆转。微型服务加Docker击败了重型联合的曹军战列舰。曹操能这么好吗?

08恢复

自从曹操在赤壁之战中失利以来,他一直处于毁灭状态,而原始的绝对优势已经成为世界的一种情况。

曹操有一个习惯,每当他吃战时,他都要考虑一段时间。吃了这么大的失败后,曹操一直在思考一年。

今天,一年后,曹操已准备好参加PPT,考虑召唤将军恢复。

曹操:“一年,一年,我没有发动战争,因为赤壁的战斗给我打了太多。”

将军们没有说话。

曹操:“如果郭凤霄在这里,不要让我在这里!”

郭家孝,郭佳的名字,是曹操君的头号顾问。不幸的是,每天996,他的健康状况都不好,而且他在赤壁之战中去世了。

阴谋者听说他们感到羞耻和困难。

曹操:“谁能谈谈赤壁之战失败的根本原因?”

顾问首先说:“在我看来,我可以责怪庞统,提供什么样的系列程序,我们的系统变得混乱。没有考虑稳定性和容灾性,一个模块被挂断,整个系统挂断了“。/P>

曹操:“庞统在哪里?”

程伟:“庞彤已经离开了。”

曹操讨厌庞彤也是一个可恶的痒。这个低级小队,技术人员,在系统中出现了在系统中写入一些垃圾代码,并偷走了系统并离开了。

但是当我想到这一点时,我也同意让庞统先做改造,我有一个不可推卸的责任。

曹操:“还有其他原因吗?”

将军张辽也说:“我们的系统缩小和扩展非常麻烦。我们必须手动重新安装系统并重新安装环境。”

曹操:“不是每个人都一样吗?”

嘿:“不,我听说周瑜,Docker使用的是什么,系统已经扩展了半分钟,所以它导致我的东北45度火力模块一下子挂了。”

曹操听说还有这种情况。他开始后悔自己不应该盲目自信。他坐在监控室里喝酒。他把刺绣的一半十字绣扔进垃圾桶:“我将来不会再绣了。

Cao Cao:“我今年一直在重新思考。庞同脑提议将系统改为分布式并使用RPC相互呼叫。这没有任何问题,但它没有考虑系统稳定性和容灾性,如网络故障,负载均衡,有限流量降级,服务发现等导致了这次失败。我也有一个问题,为什么孙刘在灾难恢复方面做得很好!“

在这个时候,下一个人很高兴:“时机已到!”

他站了起来:“这主要是因为刘备使用Java,有很多'当前限制降级','服务发现'系统可以直接使用。例如,着名的Hystrix。”

09司马懿

站起来,这不是别人,它是曹莹的第一位大顾问,与郭佳一样是司马懿。

曹操:“那我们也可以用它!”

司马懿:“主啊,现在不可能,因为许多这些工具和库都是用Java编写的,与微服务密切相关。”

司马懿在展示照片时说:

719d0998f0f140ceb5c7ecff17713bce

Cao Cao立刻明白:“这些微服务所依赖的库实际上与服务本身有很大关系,我们有五种语言,每种语言实现相同的工具和库,不仅仅是两三年,还有很大的重复性,浪费!“

db4a7cb4005a4c84b5893eea23c2d22c

Sima Yi说:“每项服务都需要这些功能,但您不需要用各种语言实现这些功能。”

曹操和部长们表达了他们的不解。

司马懿开始放大:“我们需要思考升级。每个人都认为这些微服务系统所需的功能实际上是公开的。为什么不能在底层平台上实现这些常见功能呢?想一想,让我们来吧做一个HTTP调用不需要了解TCP的细节,有流控制,有重新传输失败。“

262dce98cc804ab2b3e39fcf7691ffce

突然意识到:“软件行业的所有问题都可以通过添加中间层来解决!”

线的摘要通常适合我。

然而,Cao Cao正在计算:“你能修改网络协议栈以添加一层来实现功率限制降级和服务发现的这些功能吗?”

司马一道:“主要的公众,真的不能,所以我们要切换到代理模式,服务本身并没有直接连接到其他服务,而是所有的流量都是针对小代理,代理实现了所需的这个代理是通用的,所以我们可以用各种语言编写微服务。“

d15576fa048a4970a2e7d38f11f754bb

注意:这个代理人叫边车,边车,摩托车旁边的座位

10服务网格

司马懿:“我们的微服务可以使用这个模型,形成一个网格,服务网格。”

a74c3b58c76d4c0d935b20d3685c458c

司马懿:请看看上面的图片。浅蓝色部分代表我们语言中每种语言的业务模块,灰色部分代表代理(Sidecar)。您可以看到业务模块只与自己的代理进行通信,并真正实现相互通信。是代理人。

90ff4713cf9f4f7d82dc08488ce72f5a

程浩:“哦,我明白,这是一种方式。实施Service Mesh需要多长时间?”

司马懿:“你不必自己制造车轮。现在有一些现成的解决方案,比如Istio。”

曹操听了很高兴:“好吧,它会根据你的说法进行修改,但这次转型已经完成,我们必须进行严格的灾难测试。”

司马懿将代码回滚到庞同来,然后修改了系统,将系统放在K8S上,并使用了Istio。整个系统转型不到半年。

11测试

系统重建后,曹操安排张辽对系统进行灾难测试,主要是挂一些模块。

配备Service Mesh + K8S的系统完全能够承受这种级别的灾难。

看到测试结果后,曹操欣喜若狂,在宴会台宴席宴席。

曹操:“来吧,叫Yu Ji为每个人跳舞。”

将军们沉浸在虞姬的精彩舞蹈中,而曹操已经想出了如何摧毁孙。

参考文章: