/onex

高质量、易维护、高扩展的企业级 Go 项目+ 云原生项目开发脚手架

Primary LanguageGoMIT LicenseMIT

OneX 云原生实战平台

onex

一个专为 Go + 云原生学习而生的企业级 Go 项目

GoDoc Go Report Card GitHub Go Reference
CodeFactor Build GitHub tag (latest SemVer pre-release) Release TODOs

简体中文 · English

项目网站 | 项目文档 | 功能列表 | 安装指南 | 开发指南

OneX 云原生实战平台是一个 Go 语言 + 云原生实战平台,也是一个企业级的云平台,整个项目遵循最佳实践的思路去构建。

OneX 项目通过提供功能完备、规范、高质量的 Go 源码来实现代码即学习的理念,通过配套的 Go 开发课程,来降低学习难度、扩展学习深度和广度。通过配套的云原生开发社群 孔令飞的云原生实战营,来提高云原生技术学习的效果。

OneX 寓意该实战项目具有功能全、扩展性高等特点。未来 OneX 会继续集成进很多跟 Go、云原生相关的功能。因为 OneX在项目设计的时候,就考虑到了未来功能和架构的扩展,所以 OneX 未来可以无缝、丝滑的扩展很多新的功能。

Features

OneX 项目实现了企业级应用需要的绝大部分技能点,详细的功能列表见:功能列表

OneX 实战项目同时还具有以下特点:

  • 功能全: 课程包含了 Go 开发生涯中几乎用到的所有及实战,包括但不限于以下 4 大技术栈:
    • 软件开发基础技术栈:包含 Linux、Shell 编程、Makefile 编程、Git 等软件开发需要用到的基础技术栈;
    • Go 开发技术栈:Web 编程、各类应用实现(SDK、ETL 数据抽取、认证授权中心、命令行工具、Web 服务、分布式作业、代码检查、代码生成等)、中间件使用、HTTP/HTTPS/GRPC/WebSocket 协议、常用功能设计和开发等;
    • 云原生技术栈:Kubernetes 编程、Docker 实战、Kubernetes 实战、云原生部署实战、声明式编程、不可变基础设施等;
    • 微服务技术栈:分布式日志、监控告警、服务编排、调用链、负载均衡、服务治理、配置中心等。
  • 代码质量高: 整个项目具有很高的代码质量,包括但不限于:编程模式全(命令式编程、声明式编程等)、遵循简洁架构、代码简洁健壮、接口性能高、高可维护性、高可扩展性等;
  • 项目规范: 规范先行。整个实战项目具有目录规范、代码规范、日志规范、错误码规范、文档规范、提交规范、版本规范等规范项;
  • 技术生态闭环: 整个项目用到了 Go 开发中的绝大部分功能点、技术栈和实现方式,完全可以通过一个实战项目闭环学习整个 Go 开发技术栈。

Architecture

OneX 架构图

架构介绍见:OneX 架构介绍

Installation

安装步骤如下:

$ git clone https://github.com/superproj/onex.git
$ cd onex
$ make docker-install # 本地快速搭建 OneX(容器化),最好用全新安装的 Debian 12 Linux 发行版

安装文档见:OneX 容器部署

其他常用操作如下:

  1. 编译所有组件
$ make build # # 编译二进制文件,会编译 cmd/ 目录下的所有 main 文件
  1. 编译某个或某几个组件
$ make build BINS=onex-usercenter # 编译 onex-usercenter 组件
$ make build BINS="onex-usercenter onex-gateway" # 编译 onex-usercenter, onex-gateway 组件
  1. 编译时指定版本
$ make build BINS=onex-usercenter VERSION=v0.1.0
  1. 构建 Docker 镜像
$ make image # 构建 docker 镜像,会构建 cmd/ 目录下的所有组件的镜像
$ make image IMAGES="onex-usercenter"
$ make push # 构建并推送镜像

更多 make 操作请参考 make help

Usage/Examples

$ kubectl create -f ${ONEX_ROOT}/manifests/sample/onex/minerset.yaml
$ onexctl --config ${ONEX_CONFIG_DIR}/onexctl.yaml minerset list

更多使用方法,请参考:OneX 项目测试

Documentation

OneX 项目文档 包含了 OneX 项目介绍、OneX 部署、OneX 项目测试、OneX 功能列表、OneX 项目开发文档等。

Feedback

如果您有任何反馈意见,请通过 colin404@foxmail.com 与我联系。

Contributing

欢迎贡献! 请参阅 CONTRIBUTING.md 以了解如何贡献。

请遵守本项目的 行为准则 code of conduct

Contacts

  • 关注公众号【令飞编程】,干货不错过:
    • 回复【资料】获取全套 Go + 云原生学习资料;
    • 回复【好友】可以添加我的微信,免费一对一技术交流指导;
    • 回复【星球】加入 孔令飞的云原生实战营,带你进阶 Go+云原生高级开发工程师。

令飞编程

License

MIT