|
|
Building Storage Layer and Data Structures
JSON is human readable, JSON/HTTP API acting as the public API of their service either for front-end engineers at their company to use or for engineers outside the company to build their own third-party applications.
For their internal web APIs, the company may take advantage of technologies like protobuf for features that JSON/HTTP doesn’t provide—like type checking and versioning. Internal services may use binary protocols such as protobuf/gRPC to improve efficiency.
Build JSON over HTTP Services
Structure Data with Protocol Buffers
Why Use Protocol Buffers?
Install the Protocol Buffer Compiler
Define Your Domain Types as Protocol Buffers
Compile Protocol Buffers
Work with the Generated Code
Write a Package for Storing and Looking up data.
The Log Is a Powerful Tool
How Logs Work
Build a Log
Service over Network
Serve Requests with gRPC
What Is gRPC?
Goals When Building a Service
Define a gRPC Service
Compile with the gRPC Plugin
Implement a gRPC Server
Register Your Server
Test a gRPC Server and Client
What You Learned
Secure Your Services
Secure Services in Three Steps
Authenticate the Server with TLS
Authenticate the Client with Mutual TLS Authentication
Authorize with Access Control Lists
What You Learned
Observe Your Systems
adding logs
metrics
and
tracing
Three Types of Telemetry Data Make Your Service Observable What You Learned
Distribute
Server-to-Server Service Discovery
Why Use Service Discovery? Embed Service Discovery Discover Services with Serf Request Discovered Services and Replicate Logs Test Discovery and the Service End-to-End What You Learned
Coordinate Your Services with Consensus
What Is Raft and How Does It Work? Implement Raft in Our Service Multiplex to Run Multiple Services on One Port What You Learned
Discover Servers and Load Balance from the Client
Three Load-Balancing Strategies Load Balance on the Client in gRPC Make Servers Discoverable Resolve the Servers Route and Balance Requests with Pickers Test Discovery and Balancing End-to-End What You Learned
Deploy
Deploy Applications with Kubernetes Locally
What Is Kubernetes? Install kubectl Use Kind for Local Development and Continuous Integration Write an Agent Command-Line Interface Build Your Docker Image Configure and Deploy Your Service with Helm Advertise Raft on the Fully Qualified Domain Name What You Learned
Deploy Applications with Kubernetes to the Cloud
Create a Google Kubernetes Engine Cluster Create Custom Controllers with Metacontroller Deploy to the Internet What You Learned