梯度科技在广西南宁举办第一场线下技术沙龙“万物原生 云启未来”,围绕云原生相关技术、产品及落地方案等内容分享交流。究竟云原生是什么?云原生关键技术有哪些?
一、云原生的起源
2013年,Pivotal 公司的 Matt Stine 首次提出云原生(Cloud Native)的概念。
2015年,Matt Stine 在《Migrating to Cloud Native Application Architectures - 迁移到云原生应用架构》定义了符合云原生架构特征:
2015 年 Google 主导成立了云原生计算基金会(CNCF),开始围绕云原生的概念打造云原生生态体系。
2018年,被称为云原生元年,大量科技公司开始接受云原生的概念,并纷纷加入到云原生的大家庭。此外,主流云计算供应商相继加入 CNCF,持续丰富整个云原生的生态。
2021年,已经有几百家企业和机构加入 CNCF 参与云原生的建设,以下是 CNCF 全景图:
CNCF 帮助企业在复杂的基础架构之上更好落地云原生应用,从整体上给出了十个具体实施步骤,在不同的步骤都可以结合 Landscape 中列出的产品或服务进行选择,以下是CNCF 给出的云原生实践路线图:
三、云原生关键技术
云原生关键技术包括:容器,容器编排,微服务、服务网络、不可变基础,声明式 API、服务网格、DevOps。
容器是一种打包应用的方式,可以打包应用中的所有软件和软件所依赖的环境,并可实现跨平台部署。容器的优势:更高效地利用资源;更快速地启动时间;一致性的运行环境。
容器编排包括:自动化管理和协调容器的系统,专注于容器的生命周期管理和调度。
容器编排核心功能:容器调度、资源管理、服务管理。
3.微服务
微服务是一种用于构建应用的架构方案。将一个复杂的应用拆分成多个独立自治的服务,服务与服务间通过“高内聚低耦合”的形式交互。
服务网格(Service Mesh)是致力于解决服务间通讯的基础设施层。云原生应用有着复杂的服务拓扑,服务网格保证请求在这些拓扑中可靠地穿梭。在实际应用当中,服务网格通常是由一系列轻量级的网络代理组成的,它们与应用程序部署在一起,但对应用程序透明。
第二代Service Mesh主流组件:Istio、MOSN(Modular Open Smart Network)Linkerd。
不可变基础设施(Immutable Infrastructure)
任何基础设施实例(服务器、容器等各种软硬件)一旦创建之后便成为一种只读状态,不可对其进行任何更改;
命令式 API:可直接发出让服务器执行的命令,例如:“运行容器”、“停止容器”等;
声明式 API:可声明期望的状态,系统将不断地调整实际状态,直到与期望状态保持一致
借助容器技术我们可以自动化地构建出不可变的、可版本化管理的、可一致性交付的应用服务体系,这里包括了标准化实例、运行环境等。还可以依赖持续部署系统,进行应用服务的自动化部署更新,加快迭代和部署效率。
7.DevOps
DevOps 目标 :就是让开发人员和运维人员更好地沟通合作,缩短开发周期,增加部署频率,更可靠地发布。
8.服务网格Istio
Istio 解决了开发人员和运维人员所面临的从单体应用向分布式微服务架构转变的挑战。
服务网格用来描述组成这些应用程序的微服务网络以及它们之间的交互。随着服务网格的规模和复杂性不断地增长,它将会变得越来越难以理解和管理。它的需求包括服务发现、负载均衡、故障恢复、度量和监控等。服务网格通常还有更复杂的运维需求,比如 A/B 测试、金丝雀发布、速率限制、访问控制和端到端认证。
Istio 提供了对整个服务网格的行为洞察和操作控制的能力,以及一个完整的满足微服务应用各种需求的解决方案。
可以理解为:
Kubernetes是整个云原生的基石,容器(Container)是Kubernetes的底层引擎,Docker是应用最广的容器工具,微服务是Docker的好搭档,服务网格是微服务的辅助,建立在k8s上的针对请求的扩展功能,不可变基础设施是现代运维的基石,声明式API是Kubernetes的编码方式。
Gartner预测,到2025年,云原生平台将成为95%以上的新数字化计划的基础。中国信通院在《云原生发展白皮书(2020年)》中提到:云计算的拐点已至,云原生成为驱动业务增长的重要引擎。云原生所具备弹性扩展和响应、服务自治和故障自愈、跨平台及服务的规模复制的能力特性,未来中国云原生发展将会进入一个黄金时代。