标签:

  • 看阿里云云原生架构白皮书

    看阿里云云原生架构白皮书

    阿里云于近日发布了《云原生架构白皮书》,对外开放下载

    白皮书主要分三大块,第一部分主要是云原生的定义和主要技术,第二部分自然是阿里云作为国内最大的云服务厂商对于云原生架构设计的思考,围绕在周围的相关产品体系和相关实践案例,第三份部分是对于未来发展趋势的研判。

    整体来说内容还是比较充实,对于已经在阿里云上有投入或者准备投入的开发者还是值得一看的。

    云原生

    云原生是Pivotal的Matt Stine于2013 年首次提出,然后这个概念一直沿用至今。云原生发展至今有6年以上,目前看处于第四阶段。

    孵化期(2013年-2014年)
    Docker、微服务、DevOps等的流行,云原声概念初步成型,CNCF的成立,Kubernetes的开源更是补齐了发展的缺乏要素。
    高速发展(2015 年 – 2016 年
    云原生的容器编排之争落幕,周边生态开始成型。
    野蛮生长 (2017年-2018年)
    大量云原生生态体系的开源项目出现并爆发式增长,Istio、Prometheus、Envoy等相继从CNCF毕业。
    推广期(2019 年至今)
    OAM诞生,定义了云原生应用标准。云厂商的产品体系也趋于完善,经多多年推广,加上大量成熟实践,已经逐步为企业接受。

    云原生的定义各家自然有各家的看法,单从字面上看云原生就是要支持云化,而且要方便的支持云化。
    就这一点看我个人觉得中国信息通信研究院的定义简单直接,它总结云原生的概念为“适合云的应用”和“好用的云架构”。
    Pivotal作为云原生的先驱和探路者,对于云原生的定义前后有变动,其中包括大家熟知的符合12要素的应用,面向微服务等,再到后面的6大特性(模块化、可观测、可部署、可测试、可处理、可替换),现在Pivotal的定义是DEVOPS、持续交付、微服务、容器。

    而阿里云此次的白皮书怎么说的呢?


    云原生架构是基于云原生技术的一组架构原则和设计模式的集合,旨在将云应用中的 非业务代码部分进行最大化的剥离,从而让云设施接管应用中原有的大量非功能特性(如弹性、韧性、安全、 可观测性、灰度等),使业务不再有非功能性业务中断困扰的同时,具备轻量、敏捷、高度自动化的特点。

    这一个说法其实和OAM的定义比较接近,着眼于关注点分离。阿里云白皮书的拆分拆成了三类

    • 业务代码
    • 三方软件
    • 处理非功能特性代码

    而核心特性上提出了七个原则,这个和Pivotal之前的六大特定接近,但是强调了作为云厂商优势的弹性原则。另外就是架构持续演进原则,强调要从架构设计上考虑云迁移的成本/风险,技术上采用数据迁移、网关灰度等方式进行细粒度控制。

    产品体系

    任何厂商白皮书都会提到自身的产品体系,阿里云云原生架构白皮书中的体系图如下:

    阿里云目前大部分产品都是三种路线:

    • 自身开源+商业结合的方式进行