您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

复杂性也是IT成本,你明白了吗?

时间:2023-04-04 12:26:09  来源:微信公众号  作者:白鳝的洞穴

7Signals从公有云撤退后还应该继续类似公有云商的技术堆栈,继续使用K8S,但是他们连K8S都放弃了,改为私有云虚拟机+Docker,就值得我们更仔细的去研究一番了。为了更好地了解这个事件,我一大早又看了一遍rework对David和37Signals COO Eron Nicholson的访谈的文字稿。实际上从访谈中我们可以获得更多的值得思考的线索,不过很多内容不在今天要讨论的范围内,以后找机会再聊吧。

从这个访谈中,我看到了很多对于这个问题思考的细节,David他们当初上云的目的是解决IT的复杂性问题,他们可能会面临系统上线两周后的几十万访问的尖峰,公有云很好地帮他们熬过了这个时期。随着业务的不断成熟与扩大,系统负载变得很平稳,没有黑色星期五的销售量暴增,也没有圣诞假期的低谷。于是业务的发展,IT系统的负载变得十分容易预测了,因此需要公有云解决的复杂性问题不存在了。此时带来了一些新的复杂性,公有云对于37Signals来说是一个黑匣子,它是否真的安全、可靠,只有出了问题才知道,在此之前,它就像一场梦一样不可捉摸。

图片

37Signals付出了高额的成本,但是他们还是买不起更高级别的服务,亚马逊并不能及时接听他们的电话,遇到的所有问题也必须由他们自己的运营团队来解决。因此上云数年后公有云并没有真正帮他们解决掉复杂性的问题,只是让他们的运营成本变得更高了。

对于他们回归自营虚拟机+DOCKTER,则是对复杂性的另一个思考,他们认为K8S太复杂了,其陡峭的学习曲线让他们感到力不从心。当一切都正常时,大家都觉得K8S很不错,用起来很省心,但是一旦出问题的时候,他们是无力解决这些问题的。对于一个拥有数十万注册用户,但是只有80多人的中型SAAS服务商来说,很好地掌握K8S的复杂运维并不是一件容易的事情,因此他们最后决定将K8S上的应用退回到虚拟机+DOCKER的环境中,复杂度的降低让他们对整个系统的把控能力提升了许多,他们的十几个人的运营团队可以十分轻松的把控整个平台和系统了。而之前他们的系统一直为不太必要的系统复杂性的可能性买单,从而面临诸多的运维挑战。

大型互联网企业的业务面临巨大的不确定的负载挑战,因此他们的系统可以面向各种各样的复杂性。因此他们从头到尾构建了一套IT体系,从研发到运营,这套体系是完全适应这个IT基础平台和技术堆栈的。近些年来,大型互联网企业也在做技术输出,很多传统企业也接受了这种技术输出。但是这些传统企业往往只能学其表,而无法做到表里一体。因此他们引入大型互联网企业的技术的同时也引入了IT的复杂性,但是并没办法掌握解决复杂性问题的方法。同时,这些企业的业务与互联网企业完全不同,他们也并没有那么多的复杂性要去解决。他们实际上并不需要掌握解决这些复杂性的钥匙,因此他们拿到钥匙之后并不知道门在哪里。

实际上很多企业或者团队低估了复杂性所带来的成本,因此过于强调了敏捷和可扩展性带来的好处。这几年我一直跟踪一个项目,这是一个面向近百万用户使用的管理类系统,其在线用户数最终会突破10万。最初设计是从以前的Oracle数据库迁移到RDS MySQL作为数据库。他们最初选择了32C/128GB的标准RDS实例,每个数据库不超过500GB容量。在研发过程中,他们解决了很多分库分表的难题,通过一年多的时间,终于完成了应用的改造。上线试运行阶段他们解决了大量的性能问题,对数据库做了进一步的拆分。不过随后他们发现,如果完成整个系统上线,数据库系统将需要被拆分为120+个RDS实例,而如果为了进一步提升处理能力,为今后系统长期运行做准备,必须使用读写分离的方式,如果这样,他们可能需要将整个系统拆分为360+实例。在一个系统中创建与运维如此大数量的RDS实例,让他们感到恐惧。

为了解决数据库的复杂性问题,他们又开始对数据库实例进行合并,将120+的数据库实例都改为大规格的90C/720GB的MYSQL实例。这样就把数据库实例的数量减少为40+,不过每个数据库的容量也变成了1.5TB。看到这个新的数据库设计,很多人觉得放心多了,不过我也提出了一个新的问题,运维一个23C/128GB,小于500GB的MYSQL数据库实例与运维一个90C/720GB,1.5TB的MYSQL实例的难度相同吗?我想很多了解MYSQL,深度使用过MYSQL的朋友心里已经有答案了。

对于需要长期运行的系统来说,复杂性必然带来额外的成本,增加的成本的高低取决于系统本身的属性。因此解决IT系统的复杂性是我从事IT工作这三十多年来很多企业一直在考虑的问题。IOE架构也是因为它解决了企业IT建设与运营的复杂性而获得了巨大的成功。云平台实际上也是解决了IT的复杂性而得到了极大的发展,它让用户不需要考虑底层IT基础设施与平台的复杂性,而可以更多地关注企业的业务。

实际上前面所举的例子并不需如此复杂,实际上近百万用户是按省为单位使用这个系统的,这套系统完全可以按照省为单位拆分为多套系统。每套系统的应用、数据库都可以独立部署,因为除了总部的统计分析业务外,用户不会跨省办理业务,而统计分析完全可以在数据中台或者数据仓库里完成。

近些年一些企业的IT似乎陷入了一个思维怪圈,放弃了原有的简单设计,从而选择了一个更为复杂,似乎也更为先进的技术堆栈。不过在这些设计中引入的复杂性,早晚还是会以运营成本的方式给予回报的。复杂性也是IT成本这个问题,早晚会引起人们的广泛思考的。​



Tags:IT   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
腾讯首款自研 Switch 游戏上线:《腾讯扣叮-编程第一课》
IT之家 4 月 11 日消息,腾讯 Nintendo Switch 今日官宣,Nintendo Switch 趣味编程学习软件 ——《腾讯扣叮-编程第一课》已于今日上架 Nintendo e 商店,建议零售价 4...【详细内容】
2024-04-11  Search: IT  点击:(2)  评论:(0)  加入收藏
GitHub顶流"Web OS"——运行于浏览器的桌面操作系统、用户超100万、原生jQuery和JS编写
Puter 是近日在 GitHub 上最受欢迎的一款开源项目,正式开源还没到一周 ——star 数就已接近 7k。作者表示这个项目已开发 3 年,并获得了超过 100 万用户。根据介绍,P...【详细内容】
2024-03-10  Search: IT  点击:(17)  评论:(0)  加入收藏
C#异步编程:Task.Run vs. async-await,掌握基础与高级用法
概述:C#中的异步编程有两主要方式:Task.Run用于在后台线程执行同步操作,而async-await更适用于清晰表达异步流程。基础用法展示了它们的简单应用,高级用法则演示了它们的结合使...【详细内容】
2024-03-09  Search: IT  点击:(23)  评论:(0)  加入收藏
Spring Security:保障应用安全的利器
SpringSecurity作为一个功能强大的安全框架,为Java应用程序提供了全面的安全保障,包括认证、授权、防护和集成等方面。本文将介绍SpringSecurity在这些方面的特性和优势,以及它...【详细内容】
2024-02-27  Search: IT  点击:(54)  评论:(0)  加入收藏
Spring Security权限控制框架使用指南
在常用的后台管理系统中,通常都会有访问权限控制的需求,用于限制不同人员对于接口的访问能力,如果用户不具备指定的权限,则不能访问某些接口。本文将用 waynboot-mall 项目举例...【详细内容】
2024-02-19  Search: IT  点击:(39)  评论:(0)  加入收藏
RabbitMQ如何实现延迟队列?
延迟队列是指当消息被发送以后,并不是立即执行,而是等待特定的时间后,消费者才会执行该消息。延迟队列的使用场景有以下几种: 未按时支付的订单,30 分钟过期之后取消订单。 给活...【详细内容】
2024-01-26  Search: IT  点击:(46)  评论:(0)  加入收藏
年度本科生就业报告:2022届平均月入近6千,过万是少数,IT类薪资持续领跑
春招季即将来临,“毕业拿高薪”是众多毕业生的期盼,但教育咨询机构麦可思研究院指出,对于大部分职场新人而言,“毕业即拿高薪”是个错觉。红星新闻记者从麦可思研究院发布的《20...【详细内容】
2024-01-17  Search: IT  点击:(147)  评论:(0)  加入收藏
什么是 DevOps?解读 IT 文化革命的目的和重要性
DevOps 将运维和开发相结合以提供持续的软件改进,可以降低复杂性并提高应用程序输出。 什么是 DevOps?DevOps 是组织用来创建和交付应用程序和服务的灵活实践和流程的集合,通过...【详细内容】
2024-01-12  Search: IT  点击:(77)  评论:(0)  加入收藏
深入分析-Spring BeanDefinition构造元信息
Spring BeanDefinition元信息定义方式Bean Definition是一个包含Bean元数据的对象。它描述了如何创建Bean实例、Bean属性的值以及Bean之间的依赖关系。可以使用多种方式来定...【详细内容】
2024-01-08  Search: IT  点击:(73)  评论:(0)  加入收藏
投资私募REITs有哪些风险
投资私募REITs的风险主要包括以下几个方面: 市场风险:REITs基金投资的房地产市场可能会受到宏观经济因素、行业周期变化、供需、区域经济状况的影响。如果市场表现不佳、房地...【详细内容】
2024-01-08  Search: IT  点击:(64)  评论:(0)  加入收藏
▌简易百科推荐
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(0)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(6)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(13)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(9)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(11)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(9)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
站内最新
站内热门
站内头条