1.0 介绍与目录
介绍
我觉得微服务是什么?什么是微服务这种问题都老生常谈了,随便百度的回答都是各式各样的,我也没什么好介绍的了。开门见山,我就直接说我想做成什么样的。
- 既然是微服务,那肯定首先要有服务,这个系列重点在微服务的构建,而不是业务逻辑的编写,所以业务逻辑尽可能做到最简单。其次有一个服务即可。
- 微服务中最重要的是网关,它是所有请求的入口,所以我会用
gin
框架结合go-micro
作为微服务的网关,后期加入链路追踪
、熔断与降级
、监控
等扩展功能。 - 微服务就意味着需要快速迭代更新,所以持续交付、集成、部署(CI/CD)是必不可少的
- 容器编排部署,肯定是使用Kubernetes,这也没啥好说的
基础要求
这个系列开发、部署各占一半,所以需要你能满足以下要求:
- 熟悉golang语法
- 了解go-micro
- 熟悉docker
- 了解kubernetes
- 熟悉git
- 了解jenkins、gitlab
仓库
对应的相关代码和部署文件,已经传至github,欢迎star。
微服务与部署:github.com/guaosi/go-micro-build
持续交付、集成、部署:github.com/guaosi/go-cicd
目录
由于涉及的点很多,一篇文章是肯定写不完的,所以分了几个模块,几个章节进行介绍。
基于容器的构建运行
3.1 Dockerfile编写与镜像制作
3.2 直接Docker容器构建执行
3.3 Docker Compose下的构建执行
3.4 Kubernetes下的构建执行持续交付、集成、部署(CI/CD)
4.1 Gitlab的搭建与设置
4.2 Jenkins的搭建、插件的安装与配置
4.3 Jenkins构建部署Kubernetes网关功能扩展(TODO)
5.1 链路追踪-jaeger
5.2 熔断与降级-hystrix
5.3 监控-prometheus