Redian新闻
>
Twitter下架部分微服务,是微服务错了?

Twitter下架部分微服务,是微服务错了?

公众号新闻

点击上方“芋道源码”,选择“设为星标

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 10:33 更新文章,每天掉亿点点头发...

源码精品专栏

 
来源:分布式实验室


就在Twitter的部分微服务被新任CEO马斯克勒令下架之际,部分用户很快报告称自己无法正常登录软件。此前,马斯克曾将这些被关闭的微服务称为“膨胀软件”,但粗暴剔除使得一些用户的双因素身份验证出了问题。Twitter最终解决了问题,可微服务在IT架构中的作用因此受到了质疑。

在此次Twitter事件中,砍掉部分微服务就像是用力抽出缠结线团中的一个线头,意外解开了几个重要的结。但借此机会,其他组织也想思考自己能不能不用微服务,还是说微服务架构已经与自身运营体系紧密绑定、一损俱损。

Pulumi公司CEO Joe Duffy就微服务融入IT架构的态势、带来的助益,以及如何在IT管理者的疏忽下成为新的遗留技术债务发表了观点。

微服务在IT架构中处于什么位置?

在我的脑海里有这样一道光谱,两端分别是单体式架构和完全分布式架构。微服务就处于这道光谱中更偏向完全分布式架构的位置。云计算的普及让我们能够以全新方式思考事物。想想真正的分布式应用程序架构,我们就是从“双虚拟机加单数据库”的时代步步前行,通过托管服务、容器再到无服务器架构最终来到了完全分布式的彼岸。而微服务无疑在其中扮演了重要角色。

现代云确实加速了向这些架构的转变,但不同架构其实各有利弊,绝不是越新越好。微服务虽然活动组件更多、复杂性更高,但也提供了一种将服务置于API边界,借此将复杂度控制在合理范围内的办法。

亚马逊在这方面的早期探索最为典型,因为Bezos要求各团队必须通过API进行通信。这就产生了一种观念,即各个团队分别运行不同的服务,而服务间由软件连通——靠的是API,而不再是人。这有助于不同团队分别独立行动,但又能协同达成约定的功能。不过可以想见,这样的体系也往往会过度膨胀,而且底层的复杂性只是被掩盖住了、并没被真正消除。

一旦把这些麻烦藏在API背后,人们就很容易往那一丢、再也不管。现实情况就是,很多企业实际可能只需要5项微服务,但实际微服务数量却成千上万。这就是所谓过度膨胀,但我认为还算是发展历程中的正常阶段。

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/ruoyi-vue-pro
  • 视频教程:https://doc.iocoder.cn/video/

微服务跟清晰分层、井井有条的传统IT架构来比较,孰优孰劣?

微服务当然有自己的优势,它能大大降低系统运行的门槛。它提供API,所以一次API调用就能获得所需功能。其实把功能抽象成微服务是件好事,意味着我们不再需要频繁思考怎么操作这些功能。只需要启动、运行、调用,就这么简单。

微服务也可能成为遗留系统、成为不再增值的系统,但这同样不是坏事——毕竟任何人的脑容量都是有限的,如果把这些已经固化的部分都塞进庞大的单一系统,那就根本没法管理了。借助微服务,我们可以对平台的不同功能做明确划分,然后分别放在API和微服务后面。当然,这种遗产或者说债务也确实会随时间推移而不断累积。

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能

  • 项目地址:https://github.com/YunaiV/yudao-cloud
  • 视频教程:https://doc.iocoder.cn/video/

那有没有人呼吁简化微服务,尝试解决这方面的难题?

其实跟任何事物一样,微服务也有自己的Gartner炒作周期——先是期望过高的峰值,然后走向幻想破灭的低谷。微服务的低谷期应该已经过了,但整个发展历程仍然值得一说。坦率地讲,很多人其实是在不适合的场景中使用微服务,甚至是为了微服务而微服务。

Kubernetes那边也有类似的状况:每个人都想用一把Kubernetes,却没有考虑到自己的需求规模到底有没有必要。微服务在炒作周期中比Kubernetes中走得更远,所以使用方式也更合理一点了。

要解答这个问题,我们可能需要退回一步,想想自己到底要让这套系统实现什么功能。比如说当我们手头有上千项微服务,那就很容易迷失方向,搞不清当初到底想用它们实现什么功能、系统构建的最优方法是什么。另外,微服务在正常使用下也会保持有机增长。刚开始,我们创建服务、发布服务、部署API;接下来就是调用API,再据此构建新的服务。这就创造出了一个相互依存、彼此关联的微服务网络。

如果单体式架构能够满足需求,那不妨优先采用。但随着团队规模的扩大,单体式架构往往开始成为瓶颈。所以正确的答案在于权衡,不存在银弹式的终极真理。

是否存在最适合的微服务应用场景?与之对应,有没有明确不适用微服务架构的场景?

亚马逊云科技就是典型的微服务应用案例。看看他们的产品组合,400多种不同且彼此独立的服务堆叠起来,而且每项服务都有自己的API。因此亚马逊拥有独特的内部组织方式,各团队就是自己产品和服务的所有者。这种架构跟业务组织是高度统一的,如果不选择这种运营方式,我很难想象他们能够建立起如何庞大的云服务平台。

而相对比较复杂的是那种“灰色”区域,比如说Stripe。Stripe也属于服务集合和产品集合。我敢肯定,其中的身份验证服务跟信用卡计费和其他计量服务肯定彼此独立,而报告跟分析服务又是额外的部分。作为一家物流配送企业,Stripe关注的是产品运输中的实施细节,所以我估计他们肯定是找到了单体跟分布之间的理想平衡。

总之,产品越简单、本质越单一,就越没必要把它拆分成多个彼此独立的服务。

但如果一家企业深度拥抱微服务,但突然被迫放弃这条路,结果会怎么样?

其实这类架构决策不存在“突然被迫放弃”这种情况,它们反映的可是非常深刻的问题。微服务的优势在于不同事物之间在物理上相互独立,甚至各自运行在不同服务器上并由API连通。这些API肯定会影响性能。

所以要想放弃这样的架构设计,肯定需要审慎考量,比如“既然我们不需要这些服务,能不能直接关掉?”但这并不是微服务特有的问题,只是在微服务架构中容易被忽略的问题。只要运行软件,这样的问题就总会存在。为什么你会有那么多根本不需要的服务?要想保留并整合这么多服务,本身就是会是个重大的架构变化,微不微服务都一样。



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢

已在知识星球更新源码解析如下:

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。

谢谢支持哟 (*^__^*)

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
Twitter 将向开发者收取 API 访问费用,网友吐槽:这是在“作死”您需要模块,而不是微服务复旦 MOSS 上线当天服务器过载;马斯克称 Twitter 将于下周开放算法源代码;谷歌被怀疑利用 AI 裁员 | 极客早知道硬核观察 #891 Twitter 修改开发者协议明确禁止第三方客户端“金主爸爸”狂甩1个亿!马斯克和Twitter有救了?笑死,Twitter已经开始拍卖旧金山总部的浓缩咖啡机了…我们为“作天作地”的马斯克做了一份 2022 年度总结:身价暴跌超千亿美元、Twitter 盈利遥遥无期马斯克开会当场解雇Twitter首席工程师:我有1亿多粉丝,他却说公众对我失去兴趣2030年加拿大减排目标与预测Twitter部分源代码泄漏、疑遭离职员工报复:马斯克要求GitHub交出所有上传、下载人员名单百万用户逃离Twitter转向这个小众社交平台,互联网中心化终将走向大溃败?刚刚恢复账号一天,压力之下Twitter再次暂停此人账号...硬核观察 #912 Twitter 开始向所有人展示马斯克的推文绝美挪威荷兰夏日之旅(一)哈当厄尔高原-沃尔令斯大瀑布Twitter换帅!马斯克官宣:新1任CEO是他...刚刚恢复一天 压力之下Twitter再次暂停此人账号早鸟报|Twitter“蓝v认证”增加包年套餐;茅台葡萄酒将启动公司上市;《魔兽世界》进度存档功能安全.....50万人罢工伦敦地铁大瘫痪!英国紧急下架部分药品!英国春季预算案一览任正非发文重申「华为不造车」;意大利宣布禁止使用 ChatGPT;Twitter 对外披露部分源代码 | 极客早知道学完书本科学知识需上劳动大学苹果头显或实现手眼遥控/马斯克称年底卸任TwitterCEO/首个游戏版ChatGPT将推出芒格:在中国比亚迪遥遥领先特斯拉;马斯克:年底交出 Twitter 大权;微信测试「门店快送」服务 | 极客早知道龙泉寺的一段往事百万 Twitter 用户集体出逃,“反推特平台”Mastodon 火了马斯克开会当场解雇 Twitter 首席工程师:我有1亿多粉丝,他却说公众对我失去兴趣Google开源Service Weaver,让你无需纠结到底选择单体还是微服务一周资讯|《新时代的中国绿色发展》白皮书发布;Twitter更新开发者协议禁用第三方客户端;阿里发布2023春节团圆消费报告..早鸟报|爱奇艺回应同时登陆账号被封;Twitter将向开发者收取API访问费;2月3日24时起国内油价上涨.....马斯克讨好广告主未果,Twitter陷入道德危机第二次徒步圣路,750公里葡萄牙之路+英国之路:D29~率先告捷每周硅闻 | Meta上演员工生存战;Twitter深夜直播引300万网友围观;微软又行了?!微服务先行者 James Lewis:别纠结单体还是微服务,面向服务 SOA 架构才是正解开发者将大部分时间花在了 API 上:后端最爱,Twitter API 颇受欢迎有内鬼? Twitter部分源代码在网上泄露
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。