云原生的目的是构建和运行可弹性扩展的应用

描述

CNCF,The Cloud Native Computing Foundation的缩写,云原生计算基金会。这是业界首个以云原生为主题的组织。

本文摘录自“云原生计算研究报告”,内容重点分析了微服务、云原生的起源,云原生计算基金会,从云计算到云原生,云原生计算对于中国企业客户的价值等。

CNCF 从属于 Linux 基金会。Linux 基金会是一个非盈利性联盟,其目的在于协调、规范、保护、宣传 Linux发展,以便最大限度地保持各个商业公司基于开源 Linux构造的商业发行版之间的兼容性。Linux 基金会是 2007年,由开源码发展实验室(Open Source Development Labs,OSDL) 与自由标准组织(Free Standards Group ,FSG) 联合起来成立的。Linux 基金会扶持与孵化了多个成功开源项目,如:开源虚拟机 XEN、开源软件定义网络 OpenNFV 和 OpenSwitch、开源人工智能可迁移模型ONNX 等等。

2014 年,Cloud Foundry 成 立 基 金 会, 并 隶 属 于Linux 基金会。2015 年 7 月,云原生计算基金会(CNCF)成立,也隶属于 Linux 基金会。云原始生计算基金会(CNCF)宣称:我们致力于加强和维护一个厂商中立的开源生态体系,来推广云原始生技术。

CNCF 基 金 会 给 云 原 生 下 了 明 确 定 义:云原生的技术有利于各组织在公有云,混合云、私有云环境中,构建和运行可弹性扩展的应用。云原生的代表技术包括容器、服务网格、微服务、不可变基础设施、声明式 API。这些可靠的自动化手段、云原生技术,使工程师能够轻松地对系统做出切实可行的改进和可预测的重大变更。

从定义中我们可以理解,云原生的目的是构建和运行可弹性扩展的应用,手段是代表云原生的核心技术,如容器、服务网格、微服务、不可变基础设施、声明式 API 等。

自从人类走入局域联网、互联联网、分布式计算、多层技术架构时代以后,我们的技术栈就日益复杂:

前端层:

◇ 开 发 框 架:JQuery、BootStrap、AngularJS、React、Vue、Flutter

◇ 开发技术:移动原生开发技术、小程序开发技术

前端服务层:

◇ 开发框架:Struts、Ruby on Rails

◇ 开发技术:JSP、ASP.NET、HAProxy/Ngnix

◇ 开发语言:PHP、Python、Ruby、Perl、Node.JS应用逻辑层:

◇ 开发框架:SpringCloud

◇ 中间件技术:Kafka、Zookeeper

◇ 开发语言:Golang、Java、C#

数据层:

◇ 存储:Ceph、GlusterDFS、HDFS

◇ 数 据 库:MySQL、Hbase、Redis、MongoDB、NEO4J

◇ 数据工具:ELK、Flume、Presto、ElasticSearch

◇ 数据计算平台:Hadoop MR、Spark、Flink

系统层:

◇ 中间件技术:Docker、Kubernetes

◇ 开发语言:Rust

CNCF 的领导厂商为 Google,目前有 500 多个企业成员加入了 CNCF,铂金级的会员包括:

应用厂商:SAP、Oracle

IaaS 厂 商:AWS、Azure、 阿 里 云、IBM Cloud、Google Cloud、JD Cloud

系统软件厂商:Red Hat、VMWare

网络厂商:Cisco、华为

IT 设备厂商:Dell、NetApp、富士通

芯片厂商:Intel、ARM

CNCF 最 早 起 源 于 2007 年 Google 研 发 出CGroups,这种技术机制,可以使 Linux 进程能够做到对IT 资源(如 CPU、磁盘、网络)的限制与隔离。2007 年,CGroups 被 集 成 到 Linux 的 内 核 当 中(2007 年,KVM虚拟机技术也被纳入到 Linux 内核中)。2008 年,Linux发布新版本,Linux 容器功能包含在内。

2013 年,Docker 创业公司推出第一个开源容器引擎版本。2014 年,Google 开源容器资源管理与调度平台 Kubernetes,并纳入到 CNCF 基金会的孵化项目中。Google 希望借助 Kubernetes,统一管理多个操作系统之上的所有容器技术,不限于 Docker 公司出品的容器。

经过六年的孵化毕业以及业界其他产品的兼容性认证,CNCF 也形成了一个完整的技术栈图谱:

服务管理产品线:服务网格 Linkerd 和 Istio

中间件层产品线:远程调用中间件 gRPC、消息队列中间件 Nats、消息分发中间件 CloudEvents

数据层产品线:对象文件存储 Rook、关系数据库Vitess(基于开源 MySQL)、KV 数据库 TiKV

容器层:Containerd(是 Docker 的底层运行时管理器,2017 年被 CNCF 接受)、容器网络接口 CNI、容器网络发现 CoreDNS

容器管理层:容器资源管理 Kubernetes、容器镜像仓库管理工具 Harbor、容器镜像分发工具 DragonFly、容器运行日志管理工具 Prometheus、容器运行安全监控工具 Falco

2019 年 10 月,CNCF 发起第一次用户调查(CNCF Survey 2019), 共 收 到 1337 份 有 效 问 卷, 欧 洲 占37%、美洲占 38%、亚洲占 17%,三分之二的人来自软件 / 技术 / 专业服务厂商,其中 41% 是软件架构师、24% 是后端开发工程师、39% 是 DevOps 运维工程师,71% 的人工作在 100 人以上的公司,30% 的人工作在5000 人以上的公司。

服务器使用:15% 的公司拥有 5000 台以上的服务器,70% 的公司拥有 20 台以上的服务器。62% 的服务器是公有云服务器,30% 的服务器是私有云服务器。

容器使用:84% 的公司已经使用容器技术,容器数量大于 250 个的公司超过 50%

Kubernetes 使用:82% 的人在使用 Kubernetes 技术

服务网格使用:18% 的人使用服务网格

无服务器技术使用:41% 的人在使用无服务器技术

Open API 技术使用:14% 的人对外输出 API

CNCF 数据存储技术使用:14% 的人在使用 CNCF 的数据存储技术

持续集成 / 持续发布技术使用:40% 的人使用无状态测试

52% 的人认为云原生计算可以让部署更有效率,45%的人认为云原生计算可以让应用更具有弹性伸缩,39% 的人认为云原生计算可以提高可迁移性和应用高可用性。

对SpringCloud+CloudFoundry,和容器 +Kubernetes 两个生态体系的技术对比:

服务器

服务器

从 对 比 中 我 们 可 以 洞 察 到,CNCF 形成 的 容 器 +Kubernetes 生 态 体 系 已 经 和SpringCloud+CloudFoundry 生态体系旗鼓相当,CNCF把过去暴露在应用框架和应用中间件层的技术下沉到系统层,应用开发人员、测试员、部署实施和配置人员、运维人员,已经不用在应用层级关心这些复杂技术。而且,CNCF 并不主打微服务,而是主打无服务器编程Serverless。

责任编辑:haq

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分