1 Star 1 Fork 0

阿白的 / yys

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

yys

介绍

一个云原生项目,模拟一条完整的云原生生产线,涉及到各类云原生知识,k8s,容器化,go微服务开发,运维,服务网格istio,存储集群,日志系统,监控系统,devops等

主要的知识点技术点:
云原生基础环境:k8s docker linux
微服务开发:go go-zero istio
CI/CD:tekton gitops
存储:rook-ceph nfs共享卷
监控:prometheus+grafana+alertmanager
日志:ELK Loki
其他:mysql redis kafka ansible等

整个项目高度容器化,k8s是基石环境,采用go语言go-zero框架编写的微服务架构的应用程序(当然这里单体和微服务之间的转换很平滑,为了更明显突出servicemesh效果我优先考虑了微服务架构),主题上可封为两大部分,后台管理系统和服务应用,在支付和订单的逻辑处理间为了保证消息数据的正确使用,接入kafka做消息队列,部分延时功能用ansyq做延时队列,运行在istio中,做流量管理负载均衡、安全管控、链路追踪、故障注入、熔断、流量镜像等。应用提供了metrics接口,prometheus拉取metrics数据做监控grafana可视和告警通知等。使用ceph集群和nfs共享卷做存储,为了更优化本地程序的性能,部分程序采用localpv。tekton配合我本地配置的gitlab和harbor做CI/CD

我的环境:4台各4核8g的ESC
输入图片说明
通过我的公网地址和对应的端口即可访问我对外提供的服务,上面我提到的服务大部分对外开放(后续我考虑将服务端口整理出来供网友公网访问)

个人预计后续优化:
1.将程序做成helm包,或者使用operator来实现更贴近云环境的开发
2.接入dapr,更好的开发微服务
3.配置Loki,轻量且高效
4.加入gitops,tekton+gitops理念实现更真实的CI/CD。jenking使用kubernetes插件来配置云做cicd(无他,使用用户量在,但我觉得kubernetes用jenkins做cicd有点重)
5.缓存相应的代码逻辑进一步设计优化,缓存设计不好并发就是空谈
6.数据库换rds,有istio接入,实现更好的高可用,更方便实现如读写分离等操作
7.监控promenthues+grafana+alertmanager不够轻,采用promentheusOperator或者Thnos

放下部分图片介做绍

链路追踪可视:
istio2
istio1

CI/CD:
输入图片说明
输入图片说明
输入图片说明

业务逻辑:
输入图片说明
输入图片说明

相应的service:
输入图片说明
输入图片说明

监控:
输入图片说明
输入图片说明
输入图片说明

空文件

简介

云原生项目,全面 系统 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/a-bais/yys.git
git@gitee.com:a-bais/yys.git
a-bais
yys
yys
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891