- 一串葡萄就是一个微服集群,当微服太多无法容下更多的微服时,就孕育另一串葡萄。这就是边缘服务架构。Grape架构。
- 企业的组织架构影响技术架构。此微服架构适合10人以内的开发团队。项目的产出是一个个Docker镜像。
- 通过此项目练手,加深对微服架构的理解。
- 用了1年(2019年)时间思考,怎么做出【适用、简单、演化】的微服架构,【可读、可维护、可扩展】的微服。 通向罗马的道路千万条,参考了大量大牛的**,我选择了一条,进行尝试,演化。 为了快速演示,架构采用了原型方式,mock数据,减少复杂度。程序员喜欢造轮子,忍不住也想造个轮子。
- 随着数据量的增大,单一数据中心维护的成本成指数增长,架构的复杂度,开发的团队人数也增长迅猛; 有没一种方式,既能可扩容支持大数据,开发、维护成本尽可能没那么高?有,就是边缘微服集群。这个项目就是为它而生。
- 想弄一个未来的微服架构。同时也符合未来的serverless。
能定位用户是属于哪个区域服务集群。含各区域全量数据。
认证服务(auth-jwt)
用户通过各种方式登录后,付给它Token令牌去访问资源,支持分端单点登录。
鉴权服务(auth-rbac)
正规的rbac鉴权。分角色,用户,权限。
统一对用户身份认证处理。统一入口。
提供配置的数据接口;
记录日志,统一记录;
golang,mysql,redis,mongo,jwt,docker, kubernetes, istio, mq, devOps 。
## 开发的go版本
go1.13.3
## 入口服务
go run app/gateway-api/main.go
curl http://localhost:7001
# host配置
# 查看 doc/host.md
cd deploy
./deploy-docker.sh
# 详情配置
deploy/docker/mn/docker-compose.yml
## 先要把当前的k8s config 设置为minikube 。
cd deploy
./deploy-minikube.sh
Monorepo 是一种单库存储代码的方式。
Bazel 是一个很厉害的开源构建工具,我还没有领略它的奥秘,还在学习中。现在还是通过shell 脚本构建。
- 2020-5-3 编写文档目录
- 要配置自己的docker账号(deploy/base/MakeDockerConfig.mk)
- 配置 pkg/config/private***.go.example 改为 private***.go