-
Notifications
You must be signed in to change notification settings - Fork 1
/
Scalable-Microservices-GRPC-Docker-Kubernetes.txt
62 lines (58 loc) · 1.9 KB
/
Scalable-Microservices-GRPC-Docker-Kubernetes.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
NodeSummit, San Francisco, CA, Wed 27 Jul 2016
Scalable Microservices, IoT, Mobile and more with GRPC, Docker, and Kubernetes
Sandeep Dinesh, Developer Advocate, Google
@sandeepdinesh
Microservices.
Each piece does one thing well.
Compose for entire app.
Why microservices?
How microservices?
Automate infrastructure.
Systems to support Gmail (microservices at Google).
Not one big app, lots of pieces.
Google contributed cgroups to the Linux kernel.
Two billion containers per week launched at Google.
Everything runs in containers.
Tooling to deploy containers, Kubernetes.
Google had this problem then.
Everyone has this problem now.
Kubernetes implemented in Go, on GitHub.
Contributors include Red Hat.
GRPC is used by Docker Swarm.
Kubernetes - container orchestration.
Pod is one or more Docker containers.
Always move around together.
Service load balances to pods in cluster.
That becomes a microservice in Kubernetes.
Scale up and down, rolling update.
Load balancer built in to send ~1% of traffic to test version of app.
Without NGINX or Apache config.
What about communication?
What was a function call became a network call.
Performance impact.
Need fundamental shift in how you build apps.
GRPC.
Really cool thing.
Didn't like it at first.
Grown to love it.
Protocol Buffers for serialization format.
IDL
Write API in this format.
Define API, defines data model.
Efficient on the wire.
HTTP/2 makes the magic possible.
Built for speed in Chrome, then standardized.
Made for browser, works great on backend.
Single socket, multiplexed, HTTP/2.
Asynchronous.
Bidirectional streaming, used heavily by GRPC.
Protocol supports flow control.
GRPC supports Nnode, Go, Java, PHP, Python, C/C++.
GRPC client feels like the language.
Mobile first.
Low bandwidth.
Kubernetes update deployment live, zero downtime deploy.
No ssh into servers, just interact with Kubernetes.
Google Container Engine.
https://gcp-slack.appspot.com/
grpc.io