This is a blog backend, it provides file server, post, and user service. It is a microservice archetecture witch is written in Golang.
Now, this server is deloyed on GKE cluster, you can click to check the server's health status
File service can handle image upload and serve, which can support posts' image and users' avators.
Post service can handle create, update, delete, list. Besides, we use JWT token to controll the authorization.
User service show user's information and return suitable JWT token according user's identity.
- Use gRPC for communication between microservice.
- Use gRPC-gateway to serve RESTful APIs and gRPC APIs, and it also checks authentication before any request.
- Use MongoDB to store user, file and post information.
- Use Kubenetes to manage our service. You can check helm and k8s directories for more information.
Some modules like gRPC need you to make command for generating necessary node.
make dc.generate
You can make the following command to check whole project style.
make dc.lint
You can build your own blog server image by following command.
make dc.image
- CI/CD run in the github action.
- CI workflow work here.
- We will add CD as soon as possible.
- Finish CD to update service when pusing to default branch.
- Enhance search to make partial serach work.
- Add monitor services like Prometheus, Jaeger or Grafana.
- Add Redis to make response faster.