简介: 在2021研发效能峰会上,阿里云中间件首席架构师愚奇就“如何利用云原生技术构建现代化应用”的主题分享了,如何利用云的特性及云原生的技术及产品,帮助企业的传统应用转化为现代化应用。
今天,云和云计算技术已经被企业广泛所接受,关于云、云计算、云原生都有非常多的话题,但是我比较想讨论的是在所有云当中真正的主角,就是我们的应用。
因此,今天主要探讨的就是如何利用云原生相关的技术帮助我们的应用去做优化,从传统应用转变成现代化应用。
非典型的典型——云上众生相
我们先采取一个从个体再到整体的形而上的方式,来看一个比较典型的企业案例。
这个企业虽然和很多上云企业有很多不同,比如说行业、应用类别、上云动机等等,但他们同时也有很多共同点:比如上云后解决了很多问题但仍然遗留了相当多的问题。这个企业属于新零售行业,有不错的销售额。
To 云:“不上很焦虑,上了也焦虑”
所以说今天的很多企业,他们对于上云都有很多的焦虑,体现在他们思考到底要不要上云,因为上云不能只是单纯跟风,而是要想上云到底可以为他们解决什么问题。
1.焦虑的根源
所有的这些焦虑,我们可以从应用的角度去深度分析是什么原因造成的。
2.快速解和深度解
那么对于这样的矛盾有什么样的解法呢?今天在云的时代,我们总结了一下有快速的解法和需要更多资源投入的深度解法。
比如说我们通过容器的方式去改变整个软件的留存,改变整体的运维留存。那么在这个模式下面,它的架构变更的幅度是相对比较小的,实施风险是中等且可以得到比较高的价值回报。
所有的解法都与云原生有着非常大的关系。云原生被提出来的最主要的原因,是企业上云之后发现很多应用不能很好地去利用云的特性,因此有人说很多应用不是云原生类型的应用。因此,云原生被提出来了。
云原生的关键内涵
我们先不去讨论云原生的定义是什么,但我们要专门提出关于云原生的三个关键内涵,理解这三个内涵对于我们怎么样去利用云原生构建现代化应用有非常大的帮助。
云原生理念:光靠技术和产品无法很好地解决前面提到的应用面临的方方面面的问题,因为技术和产品是生产工具,生产工具的改变往往会导致整个企业的 IT 文化,也就是生产关系的改变。
1.云原生是云计算的再升级
云原生不仅能帮助大家更好地去建好云、用好云、管好云,同样也是整个云计算的再升级。
这不仅体现在云的基础设施层面的升级,即云计算的提供厂商会意识到今天所提供的基础设施还不能比较好地满足应用的要求,需要不断地升级以能够更好地满足应用在高效的交付、运维上面的需求。
2.什么是现代化应用
现代化应用中包含弹性、可观测性和度量、无状态和安全等典型特征,在整体的一个计算结构上我们可以看到,现代化应用跟云原生应用有非常多相似之处。它们之间的区别在于,现代化的应用不一定要跑在云上。
既然提到了架构是承载应用的关键要素,那么云原生架构有什么特点呢?
云原生架构
云原生架构是一组架构原则、设计模式和设计方法的组合。在这个组合上面有非常明显的、区别于传统架构的特点。
有了这样的云原生架构去接管应用中原有的大量非功能特性,业务中原本因非功能性问题造成的业务中断也可以被避免,同时使应用具备了更轻量、敏捷、高度自动化的特征。
1.云原生架构原则
1、服务化原则:微服务化颗粒度可以更好地满足客户应用的特征;
2、弹性原则:从虚拟机到容器层面到进一步应用层面具备不同弹性;
3、韧性原则:高可用原则的进一步提升,应用在各种情况下持续为客户提供服务;
4、可观测性原则:与监控不同,可观测性模型可事先提供大量从日志到链路跟踪的有效信息,从而主动发现系统中的潜在风险;
5、自动化原则:从底层的硬件到软件、组件,都有比较大的提升,因此更希望有自动化原则去帮助我们更有效地运维,从而降低运维成本;
6、零信任原则:云原生架构可以运行在不同架构上,因而对安全提出了新的要求,要求所有的应用不管运行在什么环境都是不信任的,每次运行请求都需要校验合法性;
7、持续演进原则:可以根据企业的特点,每个阶段采取适合的演进目标,长期迭代后使每个目标最终演变到现代化的应用。
2.云原生的主要架构模式
云原生的架构模式非常多,列举如下图所示,详细的内容可以参考近期出版的《阿里云云原生架构实践》。
3.阿里云云原生架构方法
4.阿里云云原生架构闭环
整个架构方法是包含了多个视角的综合体,在这之中我们希望通过架构持续演进能形成一个闭环。
5.如何衡量云原生架构的成熟度
在 ACNA 里我们提出了一个衡量云原生架构的成熟度模型,其中有六个关键维度,我们简称 SESORA。
客户案例
当客户应用有突发流量增加时,Serverless会探测到并主动申请新资源,从而使新增流量得到及时响应;当突发流量消失时 Serverless 也会主动释放资源,从而降低成本。
本文为阿里云原创内容,未经允许不得转载。