云原生技术在效率上的巨大优势,使其日益成为IT发展的主流趋势。根据Gartner的预测,到2025年,云原生平台将成为95%以上的新数字化计划的基础。
围绕云原生中的各个方面,都有这非常出色的开源工具,涵盖容器调度、可观察性、持久性存储、容器运行时和其他领域。我们需要的就是发现优秀的工具,并在工作中合理的运用,让云原生之旅更加便捷高效。
本文继续为大家推荐云原生各方面的优秀开源工具。
包管理工具
Helm
说到包管理工具,当然肯定就要推荐 Helm 了。
编辑
Helm 是 kubernetes 生态系统中的一个软件包管理工具,类似 ubuntu 的 apt, centos 的 yum 或 python 的 pip 一样,专门负责管理 kubernetes 应用资源;使用 Helm 可以对 kubernetes 应用进行统一打包、分发、安装、升级以及回退等操作。
该项目目前拥有 30,000 多个 GitHub 星,每月从全球获得超过 200 万次下载。 2020 年 4 月,Helm 在 CNCF 中毕业,加入 Fluentd、containerd 等行列
当前 helm 基本是使用kubernetes时的首先项,如果需要对 kubernetes 进行包管理,那么选择 helm 肯定可以满足需求。
网站:https://helm.sh/
项目:https://github.com/helm/helm
Build Tools
Buildpack
首先要提到的就是Buildpack.
编辑Buildpack于 2011 年由 Heroku 首次构想。从那时起,它们已被 Cloud Foundry 和其他 PaaS 采用,例如 Google App Engine、Gitlab、Knative、Deis、Dokku 和 Drie
Cloud Native Buildpacks 项目由 Pivotal 和 Heroku 于 2018 年 1 月发起,并于 2018 年 10 月加入云原生计算基金会。该项目旨在通过定义明确且包含学习的平台到 buildpack 合约来统一 Buildpack生态系统 在 Pivotal 和 Heroku 维护生产级构建包多年。
编辑Cloud Native Buildpacks(CNB) 可以看成是基于云原生的 Buildpacks 技术,它支持现代语言生态系统,对开发者屏蔽了应用构建、部署的细节,如选用哪种操作系统、编写适应镜像操作系统的处理脚本、优化镜像大小等等,并且会产出 OCI 容器镜像,可以运行在任何兼容 OCI 镜像标准的集群中。CNB 还拥抱了很多更加云原生的特性,例如跨镜像仓库的 blob 挂载和镜像层级 rebasing。
项目:https://github.com/buildpacks/pack
Jib
除了buildpack以外,还有一些开源工具值得关注,首先就是Jib.
编辑Jib是google开源的Java容器化工具 Jib 为您的 Java 应用程序构建优化的 Docker 和 OCI 映像,无需 Docker 守护程序 - 也无需深入掌握 Docker 最佳实践。 它可用作 Maven 和 Gradle 的插件以及 Java 库。
Jib的定位非常清晰,不像buildpack 那样支持全面,但是针对Java的项目有着非常多的优化。在项目进行快速迭代时,Jib只讲发生变更的层(而不是整个应用程序)推送到注册表来节省宝贵的构建时间。Jib支持根据Maven和Gradle的构建元数据进行声明式的容器镜像构建,因此,只要输入保持不变,就可以通过配置重复创建相同的镜像。
项目:https://github.com/GoogleContainerTools/jib
另一个Google开源的专门针对GO语言的开源工具Ko,同样也可以了解一下。
项目:https://github.com/ko-build/ko
云原生网络
Cilium
首先要推荐到的是Cilium.
编辑Cilium 是具有基于 eBPF 的数据平面的网络、可观察性和安全解决方案。 它提供了一个简单的平面第 3 层网络,能够以本机路由或覆盖模式跨越多个集群。 它支持 L7 协议,并且可以使用与网络寻址分离的基于身份的安全模型在 L3-L7 上实施网络策略。
Cilium 为 Pod 之间和外部服务之间的流量实现分布式负载平衡,并且能够完全替代 kube-proxy,在 eBPF 中使用高效的哈希表,几乎可以无限扩展。 它还支持集成入口和出口网关、带宽管理和服务网格等高级功能,并提供深度网络和安全可见性和监控。
BPF是Linux内核中一种高度灵活和高效的虚拟机类构造,允许以安全的方式在各个挂钩点执行字节码。 它用于许多Linux内核子系统,最突出的是网络,跟踪和安全性(例如沙盒)。如果还不了解,可以先了解一下。https://ebpf.io/
网站:https://cilium.io/
项目:https://github.com/cilium/cilium
Antrea
另一个值得关注的项目是Antrea
编辑Antrea 是一个 Kubernetes 原生项目,它实现了容器网络接口 (CNI) 和 Kubernetes NetworkPolicy,从而为 Pod 工作负载提供网络连接和安全性。 Antrea 将可编程网络的优势从 Open vSwitch (OVS) 扩展到 Kubernetes。目前项目是CNCF的sandbox项目,还是比较早期的阶段。
网站:https://antrea.io/
项目:https://github.com/antrea-io/antrea
消息通信
说道消息通信,我们首先来推荐一下规范。
CloudEvents
CloudEvents 是一种以通用方式描述事件数据的规范。 CloudEvents 旨在显着简化跨服务、平台等的事件声明和交付!
编辑CloudEvents 是一项新的尝试,并且仍在积极开发中。 然而,它的工作组收到了惊人的行业兴趣,从主要的云提供商到流行的 SaaS 公司。 该规范现在属于云原生计算基金会
Other CNCF streaming and messaging projects include NATS, Pravega, Strimzi and Tremor.
网站:https://cloudevents.io/
项目:https://github.com/cloudevents
说完了规范,我们来推荐一个消息通信系统:NATS
NATS
NATS是一个开源的、轻量级的、高性能的分布式消息通信系统,实现了高可伸缩性和优雅的发布/订阅模型。NATS适合云基础设施的消息通信系统、IoT设备消息通信和微服务架构。
编辑NATS凭借其轻量、高性能的特性, 正在全球大量的公司使用,涵盖的用例包括微服务、边缘计算、移动、物联网,并可用于增强或替代传统消息传递。
网站:https://nats.io/
项目:https://github.com/nats-io
安全和合规性
HummerRisk
在安全和合规性方面,开源项目推荐HummerRisk。HummerRisk 是一款开源的云原生安全平台,以非侵入的方式解决云原生的安全和治理问题。核心能力包括混合云的安全治理和K8S容器云安全检测。
编辑首先可以快速实现跨云的持续合规性检测,因为是国内开源,对国内的云支持度非常好。另外就是可以对云原生资源进行安全检测,比如镜像、容器、K8s以及源代码等。同时项目保持了高度的灵活性,针对规则和检测都可以快速的实现自定义,以及产品扩充。
网站:https://www.hummercloud.com/
项目地址:https://github.com/HummerRisk/HummerRisk
云原生展望
到 2023 年,大多数应用程序将是云原生的。 云原生世界将持续发展,开源是支持我们的微服务、容器化和 DevOps 新时代的基础。尽管从技术上讲,您可以使用这些开源项目通过开发和运营自行托管,但组织很可能会采用开源、闭源和SaaS产品的组合来完成工作。 无论如何,很高兴知道可以免费使用什么。
工具会持续变化,时刻跟上上技术趋势才能保持领先。
下一篇我们会继续讨论混沌工程、密码管理、边缘计算方面的开源工具等。