Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Go at Openprovider

99 views

Published on

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

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Go at Openprovider

  1. 1. Go at Openprovider 31.03.2017 Elena Grahovac Igor Dolzhikov
  2. 2. 2 Elena Grahovac twitter.com/webdeva github.com/rumyantseva elena@grahovac.me backend web developer
  3. 3. 3 Igor Dolzhikov twitter.com/bluesriverz github.com/takama idolzhikov@openprovider.com SRE
  4. 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
  5. 5. Second steps 5 Infrastructure questions & Docker
  6. 6. Second steps 6 Infrastructure questions & Docker Kubernetes
  7. 7. Microservice approach 7 More services written in Go
  8. 8. Microservice approach 8 More services written in Go How to define requirements for services?
  9. 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. 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”
  11. 11. Future plans 11 - break the monolith - ~20 different services → hundreds of services

×