CNCF工具概述:您是云原生用户吗?

时间:2024-03-16 22:42:15

云计算越来越成为家喻户晓的名字,即使是最保守的业务领域也都在弄清楚如何最好地利用它。 云计算通常从在运行公有云之前先在内部运行私有云解决方案开始。 当然,云不是单一的统一体。 它可能来自不同的提供商,Amazon Web Services,Google Cloud Platform和Microsoft Azure是这里最大的参与者。 或者它可能具有不同的可见性和托管,即公共(与提供程序一起驻留),私有(自托管)或混合(两者都使用了一点)。 云也可以使用不同的工具和API进行管理。

过去,当您订阅一个提供商时,您基本上永远都处于锁定状态。 如果有可能,更换提供者也需要付出巨大的努力。 此外,尽管云计算提供了多种工具来降低成本并提高托管服务的可用性,但许多用户将云视为虚拟机的集合。

为了克服这些障碍,近年来开始出现一种新型软件。 云原生技术使抽象基础架构的同时利用云提供的所有优势变得更加容易。 为什么这样好? 好吧,这意味着您不再需要与一个特定的提供程序捆绑在一起,而可以在麻烦的情况下在多个提供程序之间移动应用程序。

Cloud Native Computing Foundation(CNCF)充当所有旨在使软件既具有云本机性又具有云不可知性的项目的保护伞。 本系列文章旨在重点介绍您可能想要使用的一些流行工具。

Kubernetes仅仅是开始

CNCF的第一个项目是Kubernetes,这是一种编排工具,可简化容器的管理,尤其是在云环境中。 因此,许多CNCF工具或多或少都与Kubernetes绑定在一起,尽管您也可以找到甚至在Kubernetes之前市场上都没有的无服务器解决方案和工具。

设置Kubernetes集群并将工作负载移入容器后,向微服务的迁移不会停止。 您很快就会意识到,到目前为止使用的工具已无法满足您的需求。 更快的发布只需要一种不同的方法,尽管容器API确实使工作变得更加容易,但是您还有很多需要监视的地方。 但是随着服务的增加,您还增加了依存关系的数量和流量的大小。

这就是为什么正在积极开发如此众多的云原生应用程序的原因。 由于云原生环境提供了许多新的可能性,而不仅仅是新的问题,因此发展也得到了飞速发展。 而这反过来意味着,通过使用云原生,您将想要了解当今哪些应用程序可以为您带来最大的收益。

什锦选择

如果您有兴趣了解CNCF的全部含义,那么此交互式景观将向您展示所有需要了解的知识。 与服务器相关的软件的大多数类别都具有其与云相关的本地软件。 有云本地数据库,消息系统,日志记录和跟踪服务,CI / CD服务等等。

您不必一次全部学习它们。 实际上,您甚至不需要学习其中的大多数内容。 但这是一个好主意,至少要了解云原生环境中可用的可能性。 因此,我们将在这里讨论其中的一些。

伊斯蒂奥

CNCF工具概述:您是云原生用户吗?

Istio是强大的工具。 首先,它可以帮助您连接微服务并控制它们所接收的流量。 副作用是,此控件可简化蓝绿色部署或Canary发布。 但这还不是全部。 使用Istio,您可以自动获得服务之间的安全通信,并且可以通过使用相互TLS来管理加密,身份验证和授权。 最后,Istio使您可以访问自动日志记录,跟踪和监视。 想知道如何处理此类数据? 我们将在下面讨论的Fluentd可能会帮助您最好地利用它。

尽管作者声称Istio应该与多种技术兼容,但目前大多数资源都集中在Kubernetes上。 因此,如果您觉得Kubernetes集群需要更好的流控制和自动化安全性,那么Istio将是您的理想工具。

在内部,Istio使用Envoy,这也是我们将在本文中介绍的另一个云本机工具。 您还可以查看Kiali ,它可以可视化Istio的服务网格,并允许您监视微服务的连接方式。

积家

CNCF工具概述:您是云原生用户吗?

虽然Istio是瑞士军刀,但Jaeger的描述要容易得多。 它的工作是在分布式系统中启用端到端跟踪。 在传统的三层Web应用程序中,跟踪前端,后端和数据库之间的事务可能很棘手。 当您添加多个微服务的复杂性时,最好将此任务描述为非常困难。

Jaeger旨在解决监视分布式事务和传播分布式上下文的问题。 这使您可以优化性能或延迟,执行根本原因分析或分析服务间依赖性。 由于Jaeger与OpenTracing API (一种用于跟踪和检测的开放标准)兼容,因此可以访问许多客户端库,并且有许多示例和教程介绍了如何使用它来进行跟踪。 它可以使用自己的后端作为单个二进制文件运行,也可以使用外部后端(例如Elasticsearch,Cassandra或Kafka)运行。 Jaeger还带有用于显示调用图的自己的UI。 您可以通过本教程/演示了解OpenTracing和Jaeger如何一起工作

使者

CNCF工具概述:您是云原生用户吗?

Envoy是服务代理。 它的工作方式与Nginx或HAProxy非常相似,但具有云原生功能所提供的自动化优势。 设置它也比前面讨论的解决方案容易得多。 有一个面向外部世界的边缘代理Envoy流程,然后是服务代理流程。 这些服务代理与您当前的服务一起作为辅助工具部署。

Envoy表现出色的一些技巧包括完全的HTTP / 2支持以及在需要时双向转换为HTTP / 1.1,服务发现,双向SSL,代理任何TCP协议的能力以及对流量的可见性增加。 如预期的那样,HAProxy和Nginx 在服务代理领域都与Envoy竞争 ,另一个云原生解决方案Traefik也是如此。

Linkerd

CNCF工具概述:您是云原生用户吗?

Istio之前,服务网类别骄傲地表示为Linkerd 实际上,可以将两个Linkerd版本视为独立的项目。 原始的Linkerd设计为可在各种环境中运行(不一定在Kubernetes集群上运行),并在JVM上运行,这意味着与此处提到的其他工具相比,它占用了大量资源。 由于使用JVM而导致的缓慢的投诉导致了名为Linkerd2的重写。 尽管这应该是原始Linkerd的替代品,但目前它的主要目标是与Kubernetes竞争。 另外,Linkerd(两个版本)都没有使用Envoy作为代理,而是使用其自己的代理解决方案。

Linkerd相对Istio可能具有的优势之一就是背后的公司Buoyant的有偿支持。 您可能还想看看Istio和Linkerd与Consul的比较

流利的

CNCF工具概述:您是云原生用户吗?

CNCF网站将Fluentd描述为统一日志记录层的数据收集器。 这实际上意味着Fluentd使从各种来源(例如Syslog,Docker或应用程序日志)收集和处理日志变得更加容易。 然后,可以将这些日志过滤,缓冲或路由到适当的服务(例如Elasticsearch,Nagios或S3)。 Fluentd使用内部JSON格式存储和处理日志,并且通过插件处理与源和输出的通信。 所有这些使得实现统一日志记录层的承诺成为可能。

Fluentd或多或少是Elastic自己的Logstash的竞争对手,并且进行比较时 ,它们非常相似

摘要

这绝不是CNCF可以提供的所有有趣工具的完整描述。 并且,如果您对上述每种工具的详细信息感兴趣,请确保遵循我们即将发布的系列,其中将介绍每种工具的用例和示例。 阅读这些内容之后,您应该已经准备好轻松地使应用程序成为云原生。

From: https://hackernoon.com/cncf-tools-overview-are-you-cloud-native-n3o13y0m