How we write microservices in Go and deploy them to Kubernetes using Helm and Charts. Automation is everywhere!
This talk was made for Golang Novosibirsk Meetup: https://youtu.be/WwCWUEO7tqI
4. First steps
4
Decided to move some services from PHP to Go:
- whois daemon: github.com/openprovider/whoisd
- spawn: github.com/openprovider/spawn
- billing service & libraries
- other services
Open source libraries: github.com/openprovider?language=go
9. Typical service
9
- 12-factor app: 12factor.net
- semantic versioning & git workflow
- simple router & middleware under the hood
- configuration via ENV
- “soul” - set of unified libraries
- codestyle: fmt, vet, linter
- liveness & readiness probes
- Makefile to test and prepare build
- Dockerfile to make the simplest container
10. Continuous integration & delivery
10
- Jenkins for CI
- helm & charts to store service configuration &
manage releases
- k8s: different environments for stage and prod
- auto releases “by push”