In this tutorial we'll explain two development workflows for Mizu:
- Standard development workflow that you build a Docker image, publish into Docker Hub and pull it to Kubernetes. The workflow is only necessary if you're developing some Kubernetes specific feature.
- Local machine development workflow that you run Mizu Agent on your machine with
sudo
privileges. Which is much faster than the standard development workflow and can be used if you're not developing a Kubernetes specific feature.
Whenever you make changes in the agent
and tap
packages or protocol extensions to test it; you first need to build a Docker image:
Concurrency is a domain I have wanted to explore for a long time because the locks and the race conditions have always intimidated me. I recall somebody suggesting concurrency patterns in golang because they said "you share the data and not the variables".
Amused by that, I searched for "concurrency in golang" and bumped into this awesome slide by Rob Pike: https://talks.golang.org/2012/waza.slide#1 which does a great job of explaining channels, concurrency patterns and a mini-architecture of load-balancer (also explains the above one-liner).
Let's dig in: