卖个艺,给大家来段相声

栏目: IT技术 · 发布时间: 3年前

卖个艺,给大家来段相声

甲:听说咱们IT界又出了一个新词,叫什么“云原生”?Cloud native?

乙:这都2020年了,还新词?早在2013年人家Pivotal就用这个词开始忽悠了。

甲:那啥是云原生呢?

乙:云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API......

甲:打住打住, 您能说点儿人话吗?

乙:那是人家CNCF权威的官方定义,你听不懂只能说明你的水平太次。

甲:好好,我水平很次,您倒给解释解释,究竟啥是云原生?

乙:用大白话来说,云原生就是把你的应用程序设计成在云端执行,充分利用云计算的好处。

甲:嗯,我们家的应用在一个机房里运行,用了好几个服务器,一个做负载均衡,三个应用服务器,还有两个数据库服务器,按你的说法,我把他们迁移到云端环境,申请几个虚拟机,那就是云原生了吧?

乙:不不不,你这么做,和在机房里运行差不多 ,无非是把物理机换成虚拟机而已,你忘了后半句:充分利用云计算平台的优势。

甲:您倒是举个例子啊。

乙:好,假设你们家应用有一天突然火了,现在的服务器应付不过来这么大的流量,你怎么办?

甲:这还不简单,买新服务器,配置服务器,把应用安装上去,运行。

乙:这多费劲啊,得多长时间啊,如果是云原生的应用,它可以自动到扩展出新的运行实例了,如果火热劲儿过去了,可以把这些个运行的实例给撤销掉,这就叫自动伸缩,弹性扩展。

甲:这确实不错啊,还有吗?

乙:天下武功,唯快不破,我问你,你们家应用一天能做多少次发布?

甲:一天发布多少次? 别逗了,我们几个月才发布一次。

乙:如果是云原生的应用,每天可以发布几百次(自然也可回滚几百次),不用停机,轻松支持蓝绿部署。

甲:一天发布几百次,有这必要这么变态吗?

乙:当然,也不是应用所有的代码都发布几百次,一个超大的系统会被拆分成小块儿的服务,这些服务会频繁发布,迅速把新功能推向市场,进行验证。

甲:对我们这个小应用一点儿用也没有。 还有别的吗?

乙:云原生的应用具备强大的监控和自动化恢复的能力,可以自动进行健康检查(比如网络延迟如何?磁盘满了吗?),发现故障,自动恢复,重新启动或重新部署相关服务。

甲:我总结一下,无非就是达到快速发布,弹性扩展和高可用性, 您吹嘘得这么好,倒是说说怎么才能做到吧!

乙:首先,你得用微服务架构,这样才能独立开发,独立部署,弹性扩展。

甲:我去!难道我不用微服务就没法实现云原生了?

乙:那效果肯定是大打折扣。你一个巨大的单体应用,光启动都得好几分钟,怎么才能做快速部署和发布啊? 其次,你得用 docker 和k8s,再加上DevOps,这样你才能实现应用程序每天发布几百次、并且弹性扩展。

甲:也是,从一个docker镜像,生成一个可以运行的实例,确实简单。

乙:你还得用声明式API和不可变的基础设施。

甲:又不说人话吗?

乙:比如说吧,你的系统需要一个nginx , 你直接告诉云平台:我需要一个nginx,端口80,云平台能根据你的描述来生成一个nginx实例, 这就是声明式;如果是命令式,则是这样:从xxxx地方下载nginx安装包,解压到xxx路径,修改xxx文件.....

卖个艺,给大家来段相声

甲:嘿!声明式是更简单啊, 那不可变基础设施是啥?

乙:你发现你的nginx的配置有问题,你想登录进去把它改一下,这是不允许的。因为下一次部署可能就会忘记这个改动。相反,你应该去修改你的声明,完全破换掉现在的nginx实例,重新创建新的。

甲:就是只有新增和删除,没有修改了呗!

乙:对,这样整个系统都处于一个已知的可控状态,无论是发布新功能还是回滚到旧功能,都很方便。对了,差点忘了最重要的东西了,云原生要用Service Mesh (服务网格)。

甲:Service Mesh 我在 码农 翻身公众号看过,《微服务之赤壁大战》, 它的意思是说现在微服务架构需要实现服务发现,负载均衡,服务限流,降级,日志,监控等各种功能,这些功能现在需要 程序员 调用相关的类库才能实现, 用了Service Mesh, 这些功能都可以在底层平台中实现了,程序员只关注业务逻辑就好了。

卖个艺,给大家来段相声

(现状)

卖个艺,给大家来段相声

(Service Mesh)

乙:对,Service Mesh 符合软件发展的趋势:不断地把通用的技术放到平台中。原来你累死累活弄个搜索的功能,现在有现成的Elastic Search ;原来搞个负载均衡,高可用那绝对是高科技,现在云平台有现成的负载均衡服务,拿来用就行了。

甲:微服务,docker , k8s , Service Mesh ,DevOps, 声明式,不可变基础设施, 我算是懂了, 云原生是个筐,什么都可以往里边装啊。但是,我只要能实现快速部署,弹性扩展,高可用就行了,为什么非要用这些时髦的东西呢?

乙:这些东西是开放的标准,有现成的实现,有大公司的支持和背书,你可以不用,但是就得自己去造轮子了。

甲:好吧,明白了。

乙:云原生可能是未来的发展趋势,要不要把你们家的应用也改成云原生的?

甲:得了吧,我们那系统要不要拆分成微服务还不一定呢?

乙:你可要想好了,云原生可是评优晋级的大杀器啊!

甲:评优晋级?那我得好好想想......


以上所述就是小编给大家介绍的《卖个艺,给大家来段相声》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法图解

算法图解

[美] Aditya Bhargava / 袁国忠 / 人民邮电出版社 / 2017-3 / 49.00元

本书示例丰富,图文并茂,以让人容易理解的方式阐释了算法,旨在帮助程序员在日常项目中更好地发挥算法的能量。书中的前三章将帮助你打下基础,带你学习二分查找、大O表示法、两种基本的数据结构以及递归等。余下的篇幅将主要介绍应用广泛的算法,具体内容包括:面对具体问题时的解决技巧,比如,何时采用贪婪算法或动态规划;散列表的应用;图算法;K最近邻算法。一起来看看 《算法图解》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码