A software component that provides functionality to other components through a defined interaction boundary.
A service provides functionality through a defined interaction boundary. In application code, that boundary may select a remote implementation from configuration; in Kubernetes, it routes calls to running containers. section 8.3.2section 10.3
Two practical forms appear in the delivery workflow:
An external service is reached through a configured URL. An interface lets the application swap a static client for a remote client without changing the handler. section 8.3.2
A Kubernetes Service creates an endpoint for a Deployment, forwarding traffic to container instances and optionally distributing calls like a load balancer. section 10.3
Routing hello-api
A Service selects pods labeled app: hello-api, exposes port 80, and forwards TCP traffic to the application on targetPort 8080. A LoadBalancer type can distribute calls across instances. section 10.3
How Shipping Go: Develop, deliver, discuss, design, and go again covers it
How deep it goes
Defines endpoint routing and load-balancing behavior, but defers deeper Kubernetes mechanics.
Examples
Uses a remote translation client, hello-api, and Kubernetes Service YAML targeting port 8080.
What it assumes
Assumes interfaces and dependency injection when selecting between static and remote clients.
What you can do after
Operate/configure services through endpoint settings and Kubernetes Service YAML.
Building Web APIs with ASP.NET CoreAn ASP.NET Core service is a registered application component that provides functionality to other components through dependency injection.
microservice architecturepart of · Microservice architecture is a software architectural style that organizes an application as independently deployable services with focused responsibilities that communicate through defined interfaces.
deployment unitkind of · A deployment unit is a software artifact or component that can be deployed as one operational unit, with metadata describing its contents and dependencies when applicable.
componentkind of · A software component is a modular part of a larger system that provides related functionality and interacts with other parts through defined boundaries or interfaces.
subdomainhas part · A subdomain is a bounded subdivision or subordinate namespace within a broader domain, such as a business area or a domain-name hierarchy.
applicationpart of · An application is a software program or system that performs tasks or provides functionality for users or other software systems.
This explainer was generated by Manning's knowledge graph from the text of Shipping Go: Develop, deliver, discuss, design, and go again. The section links point to the parts of the book it draws on.