写点什么

以 CNCF 的方式实现云原生意味着什么?

  • 2019-04-10
  • 本文字数:2685 字

    阅读完需:约 9 分钟

以 CNCF 的方式实现云原生意味着什么?

人们在讨论数字化转型现代应用程序开发时,其中经常出现的术语之一是云原生(Cloud-Native)。但是,云原生究竟意味着什么呢?本文将带领读者深入了解云原生的方法,以及用 CNCF 方式实现云原生的方法。


Michael Dell 曾经说过:“云不是一个地方,而是一种做 IT 的方式。”(the cloud isn’t a place, it’s a way of doing IT)。他说得对,云原生也是如此。


云原生是一种构建和运行应用程序的方法,利用了云计算交付模型的优势。云原生是关于如何创建和部署应用程序,而与在何处创建与部署无关。它适用于公有云私有云


云原生架构充分利用按需交付、全球部署、弹性和更高级别的服务。它们极大提高了开发人员的工作效率、业务灵活性、可扩展性、可用性、利用率和成本节约。

CNCF (云原生计算基金会)

Google 多年来一直使用容器,他们领导了 Kubernetes 项目,这是一个领先的容器编排平台。但单凭它们并不能真正改变现代应用领域的广阔前景。因此,行业领袖需要齐心协力,解决现代方法面临的主要问题。为了实现这一更广阔的愿景,Google 将 Kubernetes 捐赠给了云原生基金会,此举促成了 2015 年 CNCF 的诞生



https://www.cncf.io


云原生计算基金会(Cloud native computing foundation)是在 Linux 基金会中创建的,用于构建和管理现代应用程序开发的平台和解决方案。它确实是实现现代应用程序开发的惊人项目的基地。CNCF 将云原生定义为在“现代动态环境”中运行的“可扩展应用程序”,这些应用程序使用容器、微服务和声明性 API 等技术。 Kubernetes 是世界上最流行的容器编排平台,也是第一个 CNCF 项目。

实现方法

CNCF 创建了一个轨迹图(trail map),以便更好地理解云原生方法的概念。在本文中,我们将基于这种情况进行讨论。较新的版本可以在 https://landscape.cncf.io/ 获得。


云原生轨迹图是 CNCF 推荐的了解云原生图景的途径。但请注意,它并没有定义我们可以实现数字化转型的特定路径,而是要根据你的业务场景,你可以遵循许多可能的轨迹来与此概念保持一致。这只是一条简化云原生之旅的一条途径。




让我们讨论这个轨迹图中定义的步骤。

1. 容器化


如果不对应用程序进行容器化,那么就无法实现云原生。至于应用程序的大小和类型,都无关紧要。容器是一个标准的软件单元,它将代码及其所有依赖关系打包起来, 这样应用程序就可以从一个计算环境快速地、可靠地运行到另一个计算环境。Docker 是容器化的首选平台。Docker 容器镜像是一个轻量级、独立、可执行的软件包,包含运行应用程序所需的所有内容。

2. CI/CD


设置持续集成 / 持续交付 (Continuous Integration/Continuous Delivery,缩写为 CI/CD),这样源代码的更改会自动导致构建、测试并部署一个新容器,并最终(可能)部署到生产环境中。接下来我们需要设置的是自动部署、回滚和测试。CI/CD 有很多平台:Jenkins、VSTS、Azure DevOps、TeamCity、JFRog、Spinnaker 等等。

3. 编排器


容器编排主要就是管理容器的生命周期,尤其是在大型动态环境中,软件团队使用容器编排来控制和自动化许多任务。Kubernetes 是市场领先的编排解决方案。还有其他编排器,如 Docker swarm、Mesos 等。Helm Charts 能够帮助你定义、安装和升级最复杂的 Kubernetes 应用程序。

4. 可观察性分析

Kubernetes 并不提供日志数据的本机存储解决方案,但你可以将许多现有的日志解决方案集成到 Kubernetes 集群中。Kubernetes 提供了有关应用程序在这些级别上的资源使用情况的详细信息。通过这些信息你可以评估应用程序的性能,以及可以消除瓶颈的位置,从而提升整体性能。



选择用于监控、记录和跟踪的解决方案。考虑 CNCF 项目 Prometheus 用于监控、Fluntd 用于日志记录和 Jaeger 用于 TracingFor 跟踪,寻找与 Jaeger 类似的 OpenTracing 兼容实现。

5. 服务网格

服务网格,顾名思义就是连接服务、发现服务、健康检查、路由,并用于监控来自互联网的入口。服务网格通常还具有更为复杂的操作要求,如 A/B 测试、金丝雀部署(canary rollouts)、速率限制、访问控制和端到端身份验证。



Istio 提供了对整个服务网格的行为洞察和操作控制,提供了完成的解决方案以满足微服务应用程序的各种需求。CoreDNS 是一种快速灵活的工具,可用于发现服务。Envoy Linkerd 都支持服务网络体系结构。

6. 网络和策略

启用更灵活的网络层非常重要。要启用更灵活的网络,请使用符合 CNI 的网络项目,如 Calico、Flannel 或 Weave Net。Open Policy Agent(OPA)是一种通用策略引擎,其使用范围从授权和准入控制到数据过滤等。

7. 分布式数据库

分布式数据库是一种数据库,其中并非所有存储设备都连接到公共处理器。它可以是存储在同一物理位置的多台计算机中,也可以是分散在彼此互联的计算机网络上。



当你需要比单个数据库更大的弹性和可扩展性时,Vitess 是一个很好的选择,可以通过分片来大规模运行 MySQL。Rook 是一个存储编排器,它将一组不同的存储解决方案集成到 Kubernetes 中。etcd 提供了一种跨机器集群存储数据的可靠方法。


8. 消息传送


如果需要比 JSON-REST 更高的性能时,请考虑使用 gRPC 或 NATS。gRPC 是一个通用的 RPC 框架。NATS 是一种多模式消息传递系统,包括请求 / 回复、发布 / 订阅和负载平衡队列。它也适用于并处理很多更新的和使用案例,比如物联网。

9. 容器注册表与运行时

容器注册表是团队管理 Docker 镜像、执行漏洞分析以及决定谁可以通过细粒度访问控制放什么那些内容的单一位置。在市场 docker 中心有:Azure 容器注册表、Harbor、Nexus 注册表、Amazon 弹性容器注册表,此外还有很多容器注册表。



容器运行时 containerd 可用作 Linux 和 Windows 的守护进程。它管理主机系统的完整容器生命周期,从镜像传输和存储到容器执行和监控,再到低级存储、网络附件等等。

10. 软件分发

如果你需要进行安全的软件分发,请评估 Notary,实现 The Update Framework(更新框架,TUF)。


TUF 提供了一个框架(一组库、文件格式和使用程序),可用于保护新的和现有的软件更新系统。该框架应该能够使应用程序免受软件更新过程中所有已知攻击的影响。它不涉及公开关于正在更新的软件(以及客户机可能正在运行的软件)或更新内容的信息。




“云原生应用程序是专门为云基础架构上运行而设计的,因此就有了‘原生’这一说法。它们之所以越来越受欢迎,是因为它们带来了好处,包括:高可用性和响应性,以及通过自主和自修复能力(如针对故障进行设计)实现的强大恢复能力和灵活性。”

CNCF 使最先进的模式民主化,让每个人都能够接触到这些创新。




原文链接:


https://medium.com/@sonujose993/what-it-means-to-be-cloud-native-approach-the-cncf-way-9e8ab99d4923


2019-04-10 08:0012511
用户头像

发布了 376 篇内容, 共 210.9 次阅读, 收获喜欢 949 次。

关注

评论

发布
暂无评论
发现更多内容

IT知识百科:什么是计算机蠕虫?

wljslmz

计算机蠕虫 6 月 优质更文活动

在AIGC魔法世界里,你是麻瓜吗?

白洞计划

AIGC

谁是蔡崇信?|耶鲁大学QA

B Impact

华为云数据库GaussDB,无惧“卡脖子”,给世界一个更优选择

轶天下事

科创西安:秦创原·信创人才培养暨鸿蒙生态产教融合发展论坛举行

坚果

OpenHarmony 6 月 优质更文活动

SUFS: 存储资源使用量预测服务

KaiwuDB

KaiwuDB 存储资源使用量预测

从辅助驾驶到自动驾驶道路还很远

数据堂

实现10倍提升!昇思MindSpore SPONGE套件助力核磁共振蛋白质动态结构解析加速

彭飞

昇思 昇思MindSpore

华为云GaussDB:为企业提供智能、高效、安全的数据库解决方案

轶天下事

第四课 设计千万级学生管理系统考试试卷存储方案

家有两宝

架构训练营

用友BIP全球司库十问之大型企业如何管好资金预算?

用友BIP

全球司库

MySQL一个关于derived table的bug描述与规避

GreatSQL

开发者聚焦 | 不容错过的开发者新专栏就要来啦!

亚马逊云科技 (Amazon Web Services)

亚马逊云科技

向量数据库的行业标准逐渐清晰!Vector DB Bench 正式开源!

Zilliz

非结构化数据 测试工具 Milvus 向量数据库 zillizcloud

2023-06-20:给定一个长度为N的数组arr,arr[i]表示宝石的价值 你在某天遇到X价值的宝石, X价值如果是所有剩余宝石价值中的最小值,你会将该宝石送人 X价值如果不是所有剩余宝石价值中的

福大大架构师每日一题

Go rust 算法、 福大大架构师每日一题

C语言编程语法—利用栈实现对后缀表达式的求解

芯动大师

C语言 6 月 优质更文活动

以GaussDB举例,浅谈商业版数据库的断供风险以及国产数据库的重要性

轶天下事

基于STM32的智能饮水机系统设计

DS小龙哥

6 月 优质更文活动

【TypeScript】TS条件类型

不叫猫先生

typescript 6 月 优质更文活动

透过数据看世界,打开AIGC的天窗——TE产服为AIGC新商业而来

TE智库

人工智能 openai AIGC 生成式AI

谁是远程界的天花板?2023年5款最常用的远程软件横测:ToDesk、向日葵、TeamViewer、Splashtop、AnyDesk

dvlinker

向日葵 远程软件 ToDesk TeamViewer AnyDesk

在AIGC魔法世界里,你是麻瓜吗?

脑极体

AI

商业版数据库断供风险愈发扩大,浅谈GaussDB与国内企业的应对方式

轶天下事

Wallys/wifi 6 router ipq8072 enterprise wireless dual band /support wifi6e card

Cindy-wallys

IPQ8072

以 CNCF 的方式实现云原生意味着什么?_云原生_Sonu Jose_InfoQ精选文章