最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

ThoughtWorks中国区CTO 徐昊:欢迎来到复制粘贴的时代

[复制链接]
跳转到指定楼层
楼主
发表于 2019-11-13 10:53:29 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x




10月24日,第二届云原生技术实践峰会(CNBPS 2019)在北京圆满落幕。CNBPS是云原生领域重要峰会,每年一届,以汇聚前瞻洞察和技术干货为目标,展现全年云原生产业趋势、技术趋势和优秀实践。本文为ThoughtWorks 中国区CTO徐昊在CNBPS 2019上的“欢迎来到复制粘贴的时代”主题演讲实录。

大家好!我是ThoughtWorks中国区的技术总监徐昊,今天跟大家分享的一个主题是“欢迎来到复制粘贴的时代”,看到这个题目大家会觉得很奇怪,为什么是来到复制粘贴的时代?


我们使用云已经很多年,云服务带来很多技术上的优势,包括弹性等,但是云的弹性到底是什么?仔细想一想,会发现云其实只有一种能力,就是你给我一个镜像,我复制一台机器给你。从最开始亚马逊虚拟机的复制,到今天的容器化,实际上云只有这一种能力,你给我一个镜像,我给你一个机器,一模一样,不用改动。自动化的能力和弹性,是指在一群机器里面有一个自动的方式,你给我一台机器,我可以按照触发条件不停复制和粘贴。
   
从Scale up 到 Scale out

当我们讲云原生,实际上是讲什么呢?是说我们需要通过复制和粘贴,思考整个软件架构和系统架构的问题。只有当你思考了这些问题的时候,你才算真正来到了云原生时代。


这一点其实不难理解。我们知道云解决的问题是,当一台机器上有一个应用需要更多性能和负载的时候,通常在云之前的时代去换更大的机器,这个是Scale up,我们知道这个方法是不好的。现在的方法是,多几台机器跑同样的应用,从架构上我们把它叫做Scale out,这是一个非常基础的概念。本质上来讲,云时代处理的就是把所有容量问题从Scale up转换到Scale out。


换句话讲,要找到一个恰当的复制策略,让你的应用可以分摊到很多不同的群组和机器上进行处理。一旦出现大量机器上应用的时候,到底如何更好的分发不同的应用去处理。一个很简单的方法就是云原生的“弹性优先” 概念。什么叫弹性优先呢?我有同样弹性需求的单元,把它放在一起。所以当你想在云原生底层划分软件结构时,一个很重要的点是要寻找到你的弹性边界,把它划成几个框。所谓弹性边界是指这一组机器要一起增长或者缩小。


在识别软件系统和架构一个应用时,如何识别它的弹性边界呢?常见的一种方案是,把业务上下文作为天然的弹性边界,这是很好理解的一件事情。当你有一个大应用,比如双11的时候,订单部分可能弹性需求非常大,但是对于上货、下货、库管的系统可能没有那么大的弹性需求。这时候给商店前台应用的容量扩容,后面保持不变,很容易想到可以利用业务的上下文作为弹性的边界,对它复制和粘贴。这么做得到的是什么呢?每一组代表了一个不同的业务上下文,你就得到了所谓的微服务架构。

换个维度看弹性边界和弹性扩展

那么问个问题,有没有可能功能完全不变,但是服务协议和非功能性需求是有差异的?大家平时都用过快递,快递的功能很简单,把商品从A地寄到B地,但是非功能性需求或者SLA是不一样的,有一天内寄的,两天内寄的,一个月内寄的,你得到了不同的offering,给你市场,你可以得到同一种能力,但是可以以不同产品去到账。换一个问题,在企业内做的时候,能不能以不同的NFR和SLA进行划分和边界的扩展?


我给大家一个很有意思的案例,我曾经咨询一个客户,他们在进行云原生转型时,企业内的系统要做一个很大的应用,因为企业内的场景是很复杂的。我们说你看一看,最复杂的场景在企业内占多少,能不能把复杂场景分出去,其他用简单的处理,就是同样的功能给它不同的SLA和NFR。其实这样看的时候,我个人认为是比微服务更能解决企业内部常规所遇到的问题,就是把难的和简单的分开,你会发现难的也没有那么难,简单的会更加简单。

所以我们会有另外不同的维度去看待弹性,重点不在于怎么去寻找弹性的边界,而在于今天云计算时代,我们应该去处理的就是不同的机器之间应该去识别不同的弹性条件。而弹性条件这件事,可以有很多种方法去思考和处理,并不一定是仅仅只有按照功能组去分组这么一个方式。

甚至你的NFR,如果按照产品的生命周期是不是可以去分组?可以按照各种不同的方法去分组,都可以利用云计算得到新的架构模式和架构方案,并不一定非要怎么样,而这里面的核心是围绕这个去处理的。


欢迎来到复制粘贴的云原生时代

为什么在今天会采用这样的思维,而之前不会出现呢?这是一个很有意思的现象。因为任何一个系统,你要想运营和运维的时候,这是一个很老的四象限,代表了四种不同的运维模式:Coordination、Unification、Diversification、Replication。在每一个时代下,不同的业务运维模式实际上带来了不同的运维成本。比如云时代之前为什么大家喜欢做单体应用?为什么会强迫自己把所有的功能和应用都放在一个大应用里面去?因为在当时,用单体结构、用unification成本是最低的。

如果我们以云原生的角度去看待以前的IDC机房,可以看成一段弹性很有限的云,就是环境不易变,环境不易获得,这是我们这个行业根深蒂固的偏见。这是我们过去30年所面临的事实,环境是不易获得的,所以当你所有都采用单体的时候,成本是最低的,所以我们的软件工程实践、架构方法、开发流程都是围绕着向单体上面去做开发的方法做的,所以到今天我们头脑中仍然存在着大量的单体思维。

反过来讲,云时代什么是成本最低的运营方法呢?Replication,云只有一个能力,复制。所有我们看到的这些特性都是源于这一个能力而产生的。所以今天云时代,我们所面临的挑战和区别是,当我们想继续深化云原生的时候,需要从思维方式和运维模式上面去考虑,今天成本最低的方案是Replication。只有你的架构、运维、模式可以更好的去利于Replication的时候,你的整个成本才会是最低的,才能真正从交互方法、运营模式上迎来真正的云原生,所以欢迎大家来到复制粘贴的时代。



来源:云原生技术社区
楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-4-26 06:41

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表