You're invited to come hack together a network of micro-services. We will:
- Build a micro-service from scratch, however you want.
- Push it to Docker hub (create an account if needed)
- You'll be given keys to a Kubernetes cluster (install kubectl from here).
- Deploy to Kubernetes (using the sample
service.yaml
anddeployment.yaml
in this repo).- Use
kubectl create -f service.yaml -f deployment.yaml
- Use
- Deploy to Kubernetes (using the sample
- We'll network all our micro-services:
- Your service will call other folks's services (implementing the API below)
creating a ginormous pipeline of text processing.
- Ex: my process upper-cases its inputs, your process maps each word to a Tweet, etc..
- Your service will call other folks's services (implementing the API below)
creating a ginormous pipeline of text processing.
- We'll see what gets created by calling each service.
POST /process
{"text": "text",
"history": [
{"node": "user1", "text": "hello-world", "desc": "We upper-cased the hell out of it"},
]
}
Should output:
{"text": "new_text",
"history": [
{"node": "user1", "text": "hello-world"},
{"node": "latest-call", "text": "new_text"},
]}
Always add your "text" reply to the history before returning, along
with your hostname
(or some other debug messages, for tracing).
type Potato struct {
Text string `json:"text"`
History []Entry `json:"history"`
}
type Entry struct {
Node string `json:"node"`
Text string `json:"text"`
Desc string `json:"desc"`
}
Download the kube-potato
file from the organizer. Place it somewhere safe. Run:
curl -O http://[organizer's-ip]:8000/kube-potato
export KUBECONFIG=`pwd`/kube-potato
You're all set.
Start a GCP Kubernetes cluster, the size you want.
Then:
export CLOUDSDK_CONTAINER_USE_CLIENT_CERTIFICATE=True
KUBECONFIG=/tmp/kube-potato gcloud container clusters get-credentials [NAME OF YOUR CLUSTER] --zone [ZONE] --project [PROJECT NAME]
(just prefix KUBECONFIG=/tmp/kube-potato
to the command GCP gives you).
Share the /tmp/kube-potato
file with participants.
You can share your local directory with:
python3 -m http.server
Find your IP and ask people to:
curl -O http://[your-ip]:8000/kube-potato