From 002b446f39178501662a5050a11ba2b65f42a1a5 Mon Sep 17 00:00:00 2001 From: ZhuPeng Date: Fri, 31 May 2024 18:52:29 +0800 Subject: [PATCH] update --- .../2024-05-31-17-37-cg-hashicorp-consul.md | 78 +++++++++++++++++ _posts/2024-05-31-17-39-cg-rancher-rancher.md | 70 ++++++++++++++++ _posts/2024-05-31-17-42-cg-minio-minio.md | 83 +++++++++++++++++++ ...-31-17-44-cg-aws-karpenter-provider-aws.md | 77 +++++++++++++++++ _posts/2024-05-31-17-45-cg-uptrace-bun.md | 83 +++++++++++++++++++ 5 files changed, 391 insertions(+) create mode 100644 _posts/2024-05-31-17-37-cg-hashicorp-consul.md create mode 100644 _posts/2024-05-31-17-39-cg-rancher-rancher.md create mode 100644 _posts/2024-05-31-17-42-cg-minio-minio.md create mode 100644 _posts/2024-05-31-17-44-cg-aws-karpenter-provider-aws.md create mode 100644 _posts/2024-05-31-17-45-cg-uptrace-bun.md diff --git a/_posts/2024-05-31-17-37-cg-hashicorp-consul.md b/_posts/2024-05-31-17-37-cg-hashicorp-consul.md new file mode 100644 index 0000000000000..e791aaf0f25e4 --- /dev/null +++ b/_posts/2024-05-31-17-37-cg-hashicorp-consul.md @@ -0,0 +1,78 @@ +--- +layout: post +title: GitHub 开源项目 hashicorp/consul 介绍,Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure. +tags: Go +--- + +大家好,又见面了,我是 GitHub 精选君! + +###### 背景介绍 + +今天要给大家推荐一个 GitHub 开源项目 hashicorp/consul,该项目在 GitHub 有超过 27.9k Star。 + +![](https://stats.deeptrain.net/repo/hashicorp/consul/?theme=light) + +一句话介绍该项目:Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure. + + + + +![](https://raw.githubusercontent.com/hashicorp/consul/master/./website/public/img/logo.svg) + + +###### 项目介绍 + +### 背景介绍 +随着云计算和微服务架构的兴起,企业面临着越来越分散和动态变化的基础设施管理挑战。在这种情境下,确保服务间高效、安全地通信、及时发现服务并对其进行配置成为了一项关键需求。同时,跨数据中心的扩展性与稳定性、服务的健康检查和动态配置也变得至关重要。但是,传统的服务发现和配置管理工具往往不能很好地适应这种分布式、多变的环境,从而导致服务间的连接和配置出现了高延迟、低可靠性等问题。 + +### + +![](https://raw.githubusercontent.com/ZhuPeng/pic/master/mac/compress_tmp-8166a5ada674ffb178c1381a03e5e2fe.png) + +项目介绍 +**Consul** 是一个为动态分布式基础设施设计的高可用、数据中心感知型解决方案,旨在连接和配置跨动态分布式基础设施的应用程序。Consul 提供了一系列关键特性,包括跨数据中心的支持、服务网格、API 网关、服务发现、健康检查以及动态应用配置等。 + +Consul 的设计亮点如下: + +- **多数据中心支持**:Consul 能够意识到数据中心并支持任意数量的区域,无需复杂配置。 +- **服务网格**:通过自动 TLS 加密和基于身份的授权,Consul 服务网格使得服务之间的安全通信变得可能。应用程序可以在服务网格配置中使用 Sidecar 代理,为入站和出站连接建立 TLS 连接。 +- **API 网关**:Consul 的 API 网关管理访问服务网格内的服务,允许用户定义流量和授权策略。 +- **服务发现**:Consul 简化了服务的自我注册和其他服务的发现过程,支持通过 DNS 或 HTTP 接口进行。 +- **健康检查**:健康检查功能使 Consul 能够快速告警集群中的任何问题,与服务发现整合,防止将流量路由到不健康的主机。 + +Consul 可运行于 Linux、macOS、FreeBSD、Solaris 和 Windows 平台,并包括一个可选的基于浏览器的 UI。同时,还提供了名为 **Consul Enterprise** 的商业版本。 + +### 如何使用 +Consul 的安装和使用过程简洁明了,以下提供几个快速入门指南: + +- **Standalone binary install**:[安装指南](https://learn.hashicorp.com/collections/consul/get-started-vms) +- **Minikube install**:[安装指南](https://learn.hashicorp.com/tutorials/consul/kubernetes-minikube) +- **Kind install**:[安装指南](https://learn.hashicorp.com/tutorials/consul/kubernetes-kind) +- **Kubernetes install**:[安装指南](https://learn.hashicorp.com/tutorials/consul/kubernetes-deployment-guide) +- **Deploy HCP Consul**:[安装指南](https://learn.hashicorp.com/tutorials/consul/hcp-gs-deploy) + +使用文档和更全面的指南可以在 Consul 的官网查阅。 + +### 项目推介 +Consul 由 **HashiCorp**——云基础设施自动化的领导者——开发和维护。项目保持着高活跃的开发状态,并且由于其出色的功能和强大的适应性,已被许多知名公司和组织采用,以解决他们的服务发现与配置问题。Consul 的安全性得到了开发者的高度重视,对于任何安全问题,团队都会迅速响应。此外,Consul 还拥有一个广泛的社区,为用户提供了大量的资源和支持。 + +如果您正在寻找一个可靠、高效且易于扩展的解决方案,来管理跨动态分布式基础设施的应用程序连接和配置,Consul 是您不二的选择。立即加入全球成千上万的开发者,开始您的 Consul 之旅! + +以下是该项目 Star 趋势图(代表项目的活跃程度): + +![](https://api.star-history.com/svg?repos=hashicorp/consul&type=Timeline) + +更多项目详情请查看如下链接。 + +开源项目地址:https://github.com/hashicorp/consul + +开源项目作者:hashicorp + +开源协议: + +以下是参与项目建设的所有成员: + +![](https://contrib.rocks/image?repo=hashicorp/consul) + +关注我们,一起探索有意思的开源项目。 + diff --git a/_posts/2024-05-31-17-39-cg-rancher-rancher.md b/_posts/2024-05-31-17-39-cg-rancher-rancher.md new file mode 100644 index 0000000000000..173e53454f8d8 --- /dev/null +++ b/_posts/2024-05-31-17-39-cg-rancher-rancher.md @@ -0,0 +1,70 @@ +--- +layout: post +title: GitHub 开源项目 rancher/rancher 介绍,Complete container management platform +tags: Go +--- + +大家好,又见面了,我是 GitHub 精选君! + +###### 背景介绍 + +今天要给大家推荐一个 GitHub 开源项目 rancher/rancher,该项目在 GitHub 有超过 22.6k Star。 + +![](https://stats.deeptrain.net/repo/rancher/rancher/?theme=light) + +一句话介绍该项目:Complete container management platform + + + + + +###### 项目介绍 + +### 背景介绍 + +随着容器技术的快速发展,越来越多的组织开始采用容器来部署他们的应用程序。容器为开发和运维团队提供了前所未有的灵活性和效率,但同时也带来了管理和维护上的挑战。在生产环境中部署容器时,组织需要处理集群管理、服务发现、负载均衡、安全性、日志记录和监控等复杂问题。这些问题的复杂性增加了 IT 团队的工作负担,并降低了 DevOps 团队的效率。 + +### + +![](https://raw.githubusercontent.com/ZhuPeng/pic/master/mac/compress_tmp-ae71a0e5df1e844cbff33ab456854ed6.png) + +项目介绍 + +Rancher 是一个开源的容器管理平台,专为在生产环境中部署容器的组织设计。它简化了 Kubernetes 的使用,满足 IT 需求,同时赋能 DevOps 团队。Rancher 提供了多样的功能,包括但不限于集群管理、服务发现、自动负载均衡、集成安全机制、日志和监控。此外,Rancher 的设计关注于易用性和灵活性,支持在任何地方运行 Kubernetes,无论是本地数据中心、公有云还是混合云环境。 + +### 如何使用 + +Rancher 的安装非常简单,可以通过简单的 Docker 命令来进行: + +```bash +sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged rancher/rancher +``` + +完成安装后,只需要打开浏览器访问 https://localhost 就能访问 Rancher 的界面进行接下来的配置和使用。 + +关于更详细的安装选项和过程,可以参考 Rancher 的官方安装文档:https://ranchermanager.docs.rancher.com/v2.8/pages-for-subheaders/installation-and-upgrade + +### 项目推介 + +Rancher 已经发展成为一个成熟且受到广泛认可的容器管理平台。最新版本为 v2.8.3,展现了项目的活跃与进步。Rancher 不仅由 Rancher Labs, Inc. 精心维护,而且得到了广泛的社区支持和贡献。它是许多知名公司和组织的首选容器管理平台。由于其开放性、高度集成的生态系统和灵活性, Rancher 已经帮助数以万计的 DevOps 团队简化了他们的容器管理流程,加速了他们的开发周期。 + +此外,Rancher 的官方论坛和 Slack 频道为用户提供了一个活跃的社区支持平台,用户可以在这里获得帮助、分享经验 或提出功能请求。这种强大的社区背景,加上它丰富的功能和灵活的使用场景,使得 Rancher 成为了当前市场上不可多得的优秀容器管理工具。无论你是一个正在寻找有效容器管理解决方案的企业,还是一个希望学习 Kubernetes 并将其应用于实践的开发者,Rancher 都是你理想的选择。 + +以下是该项目 Star 趋势图(代表项目的活跃程度): + +![](https://api.star-history.com/svg?repos=rancher/rancher&type=Timeline) + +更多项目详情请查看如下链接。 + +开源项目地址:https://github.com/rancher/rancher + +开源项目作者:rancher + +开源协议: + +以下是参与项目建设的所有成员: + +![](https://contrib.rocks/image?repo=rancher/rancher) + +关注我们,一起探索有意思的开源项目。 + diff --git a/_posts/2024-05-31-17-42-cg-minio-minio.md b/_posts/2024-05-31-17-42-cg-minio-minio.md new file mode 100644 index 0000000000000..a2a29fc40b9a5 --- /dev/null +++ b/_posts/2024-05-31-17-42-cg-minio-minio.md @@ -0,0 +1,83 @@ +--- +layout: post +title: GitHub 开源项目 minio/minio 介绍,The Object Store for AI Data Infrastructure +tags: Go +--- + +大家好,又见面了,我是 GitHub 精选君! + +###### 背景介绍 + +今天要给大家推荐一个 GitHub 开源项目 minio/minio,该项目在 GitHub 有超过 44.8k Star。 + +![](https://stats.deeptrain.net/repo/minio/minio/?theme=light) + +一句话介绍该项目:The Object Store for AI Data Infrastructure + + + + +![Slack](https://slack.min.io/slack?type=svg) + +![MinIO](https://raw.githubusercontent.com/minio/minio/master/.github/logo.svg?sanitize=true) + +![Dashboard](https://github.com/minio/minio/blob/master/docs/screenshots/pic1.png?raw=true) + +![Dashboard](https://github.com/minio/minio/blob/master/docs/screenshots/pic2.png?raw=true) + + +###### 项目介绍 + +背景介绍: +在当今数字化时代,数据成为了企业和个人最宝贵的资产之一。从图片和视频到机器学习模型、应用程序数据,我们每天都在创造和消费大量的数据。然而,随之而来的是对高效、可靠的数据存储方案的巨大需求,特别是在人工智能(AI)和大数据分析等领域。例如,机器学习项目需要存取大量的训练数据,企业需要储存海量的用户数据并保证数据的安全、高效访问。传统存储方案往往难以应对这种规模的数据处理需求,尤其是在性能、扩展性和兼容性方面。因此,开发者和企业都在寻求更加灵活、高效且成本效益高的解决方案。 + + + +![](https://raw.githubusercontent.com/ZhuPeng/pic/master/mac/compress_tmp-3c6138b8345f1e72dbc526d0d76b4cbc.png) + +项目介绍: +MinIO 是一个高性能的对象存储服务,遵循 GNU Affero General Public License v3.0 发布。它与 Amazon S3 云存储服务兼容,致力于为机器学习、分析和应用数据工作负载构建高性能基础设施。MinIO 可以部署在裸金属硬件上,包括容器化安装,对于 Kubernetes 环境,则推荐使用 MinIO Kubernetes Operator 。MinIO 支持分布式部署、纠删码存储以及多种企业级功能如版本控制、对象锁定和桶复制。 + +如何使用: +- 容器安装: + 要以容器方式运行 MinIO 服务,用户可以使用以下命令启动最新稳定版本的 MinIO : + ```sh + podman run -p 9000:9000 -p 9001:9001 \ + quay.io/minio/minio server /data --console-address ":9001" + ``` + MinIO 默认使用 `minioadmin:minioadmin` 作为根凭证,用户可以通过浏览器访问 MinIO 控制台来测试部署,进行创建桶、上传对象等操作。 + +- macOS 上的安装推荐使用 Homebrew: + ```sh + brew install minio/stable/minio + minio server /data + ``` + +- 在 GNU/Linux 上安装(以 64 位 Intel/AMD 架构为例): + ```sh + wget https://dl.min.io/server/minio/release/linux-amd64/minio + chmod +x minio + ./minio server /data + ``` + +项目推介: +MinIO 以其高性能、高可靠性和强大的兼容性成为了大数据和 AI 数据基础设施的理想选择。它不仅适合于早期开发和评估,更适用于扩展的开发和生产环境。MinIO 以开源的方式发布,拥有活跃的开发社区和丰富的文档支持,被全球众多企业和开发者广泛使用。同时,MinIO 的创始人和维护团队在业内享有盛誉,定期发布更新并不断引入新功能,确保了项目的持续进步和适应未来技术的发展。无论是小型项目还是大规模企业级应用,MinIO 都能提供稳定、可靠的对象存储解决方案,助力业务的成长与创新。 + +以下是该项目 Star 趋势图(代表项目的活跃程度): + +![](https://api.star-history.com/svg?repos=minio/minio&type=Timeline) + +更多项目详情请查看如下链接。 + +开源项目地址:https://github.com/minio/minio + +开源项目作者:minio + +开源协议: + +以下是参与项目建设的所有成员: + +![](https://contrib.rocks/image?repo=minio/minio) + +关注我们,一起探索有意思的开源项目。 + diff --git a/_posts/2024-05-31-17-44-cg-aws-karpenter-provider-aws.md b/_posts/2024-05-31-17-44-cg-aws-karpenter-provider-aws.md new file mode 100644 index 0000000000000..e9b1e84191e9d --- /dev/null +++ b/_posts/2024-05-31-17-44-cg-aws-karpenter-provider-aws.md @@ -0,0 +1,77 @@ +--- +layout: post +title: GitHub 开源项目 aws/karpenter-provider-aws 介绍,Karpenter is a Kubernetes Node Autoscaler built for flexibility, performance, and simplicity. +tags: Go +--- + +大家好,又见面了,我是 GitHub 精选君! + +###### 背景介绍 + +今天要给大家推荐一个 GitHub 开源项目 aws/karpenter-provider-aws,该项目在 GitHub 有超过 6.0k Star。 + +![](https://stats.deeptrain.net/repo/aws/karpenter-provider-aws/?theme=light) + +一句话介绍该项目:Karpenter is a Kubernetes Node Autoscaler built for flexibility, performance, and simplicity. + + + + +![](https://raw.githubusercontent.com/aws/karpenter-provider-aws/master/website/static/banner.png) + + +###### 项目介绍 + +### 背景介绍 +在多云和自动化技术日益成熟的当下,Kubernetes 作为容器编排的事实标准,其在企业级部署中的地位日益重要。然而,随着集群规模的扩大和应用负载的波动,如何高效、成本友好地管理节点资源成为了运维团队面临的一个重大挑战。传统的节点扩缩容策略往往不能完美适应复杂多变的业务需求,既需保证业务的高可用性,又要避免资源的浪费,这就需要一个更加智能、灵活的解决方案。 + +### + +![](https://raw.githubusercontent.com/ZhuPeng/pic/master/mac/compress_tmp-a04bc6fad94372db10161ac8279b8e28.png) + +项目介绍 +**Karpenter** 是 AWS 开源的一个针对 Kubernetes 的节点自动扩缩容项目,旨在以灵活性、性能和简洁性为核心,提供一个高效且成本优化的节点管理方案。Karpenter 的工作原理包含如下几个关键步骤: + +- **监控** Kubernetes 调度器标记为不可调度的 Pod。 +- **评估** Pod 请求的调度约束(资源请求、节点选择器、亲和性、容忍度和拓扑扩散约束)。 +- **供应** 满足 Pod 要求的节点。 +- **移除** 不再需要的节点。 + +通过这种方式,Karpenter 能够优化工作负载在 Kubernetes 集群上的效率和成本。 + +### 如何使用 +要在您的 Kubernetes 集群上使用 Karpenter,请遵循以下简化步骤: + +1. 访问 [Karpenter 文档](https://karpenter.sh/docs/),了解详细安装指南和先决条件。 +2. 根据文档指南在集群中部署 Karpenter 控制器。 +3. 配置您的 Kubernetes 集群以使用 Karpenter 作为节点供应器。 +4. 观察 Karpenter 如何根据工作负载需求自动调整集群节点。 + +```shell +# 示例:安装 Karpenter(详细安装步骤请参考官方文档) +kubectl apply -f https://github.com/aws/karpenter/releases/latest/download/karpenter.yaml +``` + +### 项目推介 +Karpenter 已经成为 Kubernetes 集群管理不可或缺的工具之一,它不仅得到了 AWS 的强力推动,还拥有活跃的开发社区,持续的特性更新和问题解决保障了其前沿性和稳定性。此外,Karpenter 在过去的一些技术会议和社区活动中有着亮眼的表现,如 Kubecon、AWS 容器日等,其实用性、高效性和节省成本的优势得到了业界的广泛认可。 + +如果您正在寻找一个灵活高效、能够自动优化 Kubernetes 集群节点资源利用的解决方案,Karpenter 绝对值得您的关注。无论是小规模项目还是大型企业级部署,Karpenter 都能助您一臂之力,实现资源的最优配置。 + +以下是该项目 Star 趋势图(代表项目的活跃程度): + +![](https://api.star-history.com/svg?repos=aws/karpenter-provider-aws&type=Timeline) + +更多项目详情请查看如下链接。 + +开源项目地址:https://github.com/aws/karpenter-provider-aws + +开源项目作者:aws + +开源协议: + +以下是参与项目建设的所有成员: + +![](https://contrib.rocks/image?repo=aws/karpenter-provider-aws) + +关注我们,一起探索有意思的开源项目。 + diff --git a/_posts/2024-05-31-17-45-cg-uptrace-bun.md b/_posts/2024-05-31-17-45-cg-uptrace-bun.md new file mode 100644 index 0000000000000..b887c3ce382a4 --- /dev/null +++ b/_posts/2024-05-31-17-45-cg-uptrace-bun.md @@ -0,0 +1,83 @@ +--- +layout: post +title: GitHub 开源项目 uptrace/bun 介绍,SQL-first Golang ORM +tags: Go +--- + +大家好,又见面了,我是 GitHub 精选君! + +###### 背景介绍 + +今天要给大家推荐一个 GitHub 开源项目 uptrace/bun,该项目在 GitHub 有超过 3.3k Star。 + +![](https://stats.deeptrain.net/repo/uptrace/bun/?theme=light) + +一句话介绍该项目:SQL-first Golang ORM + + + + +![Chat](https://discordapp.com/api/guilds/752070105847955518/widget.png) + +![](https://contributors-img.web.app/image?repo=uptrace/bun) + + +###### 项目介绍 + +在当今的软件开发过程中,数据处理一直是一个核心环节,尤其是与数据库的交互。Golang 作为一种高效、静态类型的编程语言,在云原生、微服务等领域深受欢迎。然而,直接使用 Golang 进行数据库操作往往涉及繁琐的代码编写,包括构建 SQL 查询、结果的映射等,增加了开发复杂性和出错几率。 + +针对上述问题,[**Bun**](https://github.com/uptrace/bun) 应运而生。**Bun** 是一个 SQL-first 的 Golang ORM(对象关系映射),支持 PostgreSQL、MySQL(包括 MariaDB)、MSSQL 和 SQLite。它提供了 ORM 类似的体验,同时又不失去 SQL 的灵活性。**Bun** 主要特点包括支持结构体、映射、标量及其切片的操作;批量插入、更新和删除;数据迁移、软删除等功能。这些特性使得 **Bun** 成为 Golang 开发者处理数据库操作的强有力工具。 + +使用 **Bun** 十分简单。首先需要通过 `go get` 命令安装: + +```shell +go get github.com/uptrace/bun +``` + +接着,可以编写如下代码来执行复杂查询并映射结果: + +```go +db := bun.NewDB(...) + +regionalSales := db.NewSelect(). + ColumnExpr("region"). + ColumnExpr("SUM(amount) AS total_sales"). + TableExpr("orders"). + GroupExpr("region") + +var items []map[string]interface{} +err := db.NewSelect(). + With("regional_sales", regionalSales). + ColumnExpr("region"). + ColumnExpr("product"). + ColumnExpr("SUM(quantity) AS product_units"). + TableExpr("orders"). + GroupExpr("region"). + GroupExpr("product"). + Scan(ctx, &items) +``` + +通过上述示例,可以看到 **Bun** 如何通过优雅的代码设计来简化复杂查询和结果映射过程,显著提高开发效率。 + +此外,**Bun** 并不孤立于开发生态,它由著名的开源公司 [uptrace](https://github.com/uptrace/uptrace) 提供支持,同时也被多个知名项目采用,例如:在线协作工具 scrumlr.io、分布式追踪和指标平台 uptrace、Kubernetes 访问管理器 paralus 等。这不仅证明了 **Bun** 的实用性,也表示它拥有一个活跃的开发生态和社区支持。 + +总的来说,无论是项目的活跃开发状态、背后的知名支持还是众多的知名项目使用案例,都强烈推荐给对 Golang 和数据处理感兴趣的开发者关注和使用 **Bun**。通过它,你将在 Golang 的世界里享受到更高效、更优雅的数据操作体验。 + +以下是该项目 Star 趋势图(代表项目的活跃程度): + +![](https://api.star-history.com/svg?repos=uptrace/bun&type=Timeline) + +更多项目详情请查看如下链接。 + +开源项目地址:https://github.com/uptrace/bun + +开源项目作者:uptrace + +开源协议: + +以下是参与项目建设的所有成员: + +![](https://contrib.rocks/image?repo=uptrace/bun) + +关注我们,一起探索有意思的开源项目。 +