Skip to content

Commit

Permalink
update
Browse files Browse the repository at this point in the history
  • Loading branch information
ZhuPeng committed May 31, 2024
1 parent b36ef9b commit 002b446
Show file tree
Hide file tree
Showing 5 changed files with 391 additions and 0 deletions.
78 changes: 78 additions & 0 deletions _posts/2024-05-31-17-37-cg-hashicorp-consul.md
Original file line number Diff line number Diff line change
@@ -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)

关注我们,一起探索有意思的开源项目。

70 changes: 70 additions & 0 deletions _posts/2024-05-31-17-39-cg-rancher-rancher.md
Original file line number Diff line number Diff line change
@@ -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)

关注我们,一起探索有意思的开源项目。

83 changes: 83 additions & 0 deletions _posts/2024-05-31-17-42-cg-minio-minio.md
Original file line number Diff line number Diff line change
@@ -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)

关注我们,一起探索有意思的开源项目。

77 changes: 77 additions & 0 deletions _posts/2024-05-31-17-44-cg-aws-karpenter-provider-aws.md
Original file line number Diff line number Diff line change
@@ -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)

关注我们,一起探索有意思的开源项目。

83 changes: 83 additions & 0 deletions _posts/2024-05-31-17-45-cg-uptrace-bun.md
Original file line number Diff line number Diff line change
@@ -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)

关注我们,一起探索有意思的开源项目。

0 comments on commit 002b446

Please sign in to comment.