⤴️ 构建可扩展云应用程序的 6 大项目 🚀
TL;DR
本文列出了 6 个顶级项目,旨在简化开发人员的部署并构建可扩展的基于云的应用程序。🎉
欢迎随意探索这些项目,为您喜欢的项目做出贡献,并通过为其存储库加注星标来支持它们。🌟
Odigos - 开源分布式追踪
无需编写任何代码,即可同时监控所有应用!
使用唯一能够在所有应用中生成分布式跟踪的平台,简化 OpenTelemetry 的复杂性。
我们真的才刚刚起步。
能帮我们加个星吗?拜托!😽
https://github.com/keyval-dev/odigos
1. OpenTelemetry
💡 收集遥测数据并将其转发给分析工具。
OpenTelemetry 是一个可观察性工具包,可帮助我们收集跟踪、指标和日志等数据。它与供应商和工具无关🛠️,这意味着它可以与不同的可观察性后端配合使用。
OpenTelemetry 不是什么?🫣
OpenTelemetry 并非监控后端。许多人会混淆 OpenTelemetry 和Jaegar、Datadog等可观察性后端。OpenTelemetry 仅生成、收集和导出遥测数据。存储和可视化则留给其他工具处理。📊
OpenTelemetry 位于代码和我们使用的可观察性工具之间。这为我们提供了灵活性,并使工具切换更加容易。🔄
为了更好地理解OTel(OpenTelemetry 的缩写)的工作原理,请看下图。👇🏻
2. Kubernetes
💡 用于管理应用程序的容器编排平台。
当我们谈论云原生应用时,Kubernetes 是列表中最重要的 repo。我们怎么能忽略 Kubernetes 呢?😜 它是最著名的基于容器的应用程序编排平台,也是许多云原生工具运行的基础。
什么是容器编排?为什么我们需要它?🤔
一个容器引擎足以管理几个容器,但当数百或数千个容器和数百个服务运行时,复杂性就会变得非常巨大📈。相信我,我有过类似的经历。🥲
这就是Kubernetes等编排引擎发挥作用的地方。
我认为 Kubernetes 最好的方式是作为容器的傀儡大师🎭,操纵它们的动作,协调它们的任务,并确保它们在服务器集群中协调工作。
请参阅下面的图片来更好地理解我所说的“傀儡大师”的含义。
3.后台
💡 统一工具以简化开发环境。
Backstage 是一个开源项目,作为开发者门户,提供基础设施资源、CI/CD 流水线和可观察性指标的统一视图。📊 它为我们提供了所有构建模块,让我们能够自行创建一个平台来管理复杂的软件开发生态系统。
它使我们无需深入了解工具知识🧰即可轻松访问基本信息,并充当公司范围内开发需求的中心枢纽🏛️。
Backstage的核心功能是:
- 服务目录📋:这是 Backstage 的核心基础。它允许我们在一处跟踪和管理所有服务、应用程序和管道。
- 软件模板📄:通过 Backstage UI 界面,我们只需单击几下即可轻松创建新服务,或使用YAML模板添加必要的资源。
- 技术文档📃:它增加了无缝的技术文档管理,确保团队可以毫不费力地从他们的代码存储库中保持内容的更新。
简而言之,这抽象出了很多CI/CD,并为我们提供了有关公司服务的信息。🚀 我想说,对于任何计划扩大和简化其开发运营的公司来说,这都是一个必备工具。
4.普罗米修斯
💡 带有时间序列数据的系统监控工具。
Prometheus 是一款用于事件监控和警报的免费开源软件应用程序。🧐 它在时间序列数据库中记录实时指标(允许使用其自己的查询语言PromQL查询数据)。
它还提供了一个警报系统,允许我们定义警报的阈值和条件。
当某些指标超过或低于定义的阈值时,Prometheus 可以触发通知,帮助在潜在问题影响系统健康之前成功解决它们。
简而言之,Prometheus 有助于密切关注我们基础设施的健康和性能。
🔴 温馨提示:请注意,我提到了两个类似的项目,OpenTelemetry和Prometheus,它们的用途类似。🔄
Prometheus主要是一个系统级监控和警报工具,而OpenTelemetry则专注于收集和转发应用程序级遥测数据。
Prometheus 最初不支持 OpenTelemetry 指标,但现在它们可以协同工作。
欲了解更多详情,可以参考本文。
5. Cilium
💡 基于 eBPF 的高效容器网络。
Cilium 是一个免费的开源软件解决方案,为容器化应用程序提供网络和安全性🛡️。
Cilium 利用 eBPF 提供高性能网络和安全性,并旨在与Kubernetes等容器编排平台集成。☸️
Cilium 的一个重要特性是它能够在网络级别应用安全规则,还允许我们加密和验证网络流量,确保数据在容器之间安全传输。🐋
简而言之,Cilium 使用 eBPF 保护Kubernetes中的容器工作负载,提供网络安全、加密和身份验证。
为了更好地理解 Cilium 在架构层面的工作原理,请看下图。👇🏻
6.车
💡 简化云原生持久存储管理。
对于任何使用 Ceph 存储的人来说,这个工具真的是一个救星。😍
要理解和实现 Rook,您必须对Ceph软件定义存储有基本的了解。如果没有,我先简单介绍一下 Ceph。
Ceph 到底是什么?🧐
Ceph 是一个开源软件存储平台,可在单个统一存储集群中提供对象存储、块存储和文件系统存储。📦
Rook 简化了 Kubernetes 上 Ceph 存储系统的部署和管理。
通过在 Kubernetes 上部署 Rook,我们可以使 Ceph 存储高度可用、自动化🤖并且易于大规模操作。
简而言之,Rook 将 Ceph 转变为 Kubernetes 的完全托管服务,并抽象出 Ceph 的复杂性,使我们可以轻松地为容器设置和管理云原生存储。
介绍Odigos
💡无需更改代码即可进行分布式跟踪。
如果您正在使用 OpenTelemetry,那么这就是您需要的工具。✨
Odigos 自动生成 OpenTelemetry 格式的遥测数据到任何 Observability 后端,无需任何代码更改。😲
它通过以下方式实现这一切:
- 自动化检测🤖: Odigos 使用 OpenTelemetry 和 eBPF 实现应用程序的自动化检测,无需修改代码。
- 通用可观察性工具兼容性🤝:它可以与各种可观察性工具顺利集成,提供全面的支持和高效的收集器管理。
- 易于安装✨: Odigos 在用户友好性方面表现出色,无缝集成 OpenTelemetry,确保轻松安装并以最少的障碍适应特定要求。
我们最近发布了一篇关于实施 Odigos 的文章。点击此处阅读。
如果您想到任何其他我未在本文中涉及的有用项目,请在下面的评论部分分享。👇🏻
好了,这就是本文的全部内容。
非常感谢你的阅读!🎉🫡
文章来源:https://dev.to/odigos/top-5-projects-for-building-scalable-cloud-based-applications-3e38