Distributed Systems with Node.js
Many companies, from startups to Fortune 500 companies alike, use Node.js to build performant backend services. And engineers love Node.js for its approachable API and familiar syntax. Backed by the world's largest package repository, Node's enterprise foothold is only expected to grow. In...
Autor principal: | |
---|---|
Formato: | Electrónico eBook |
Idioma: | Indeterminado |
Publicado: |
[S.l.] :
O'Reilly Media, Inc.,
2020.
|
Acceso en línea: | Texto completo (Requiere registro previo con correo institucional) |
Tabla de Contenidos:
- Cover
- Copyright
- Table of Contents
- Foreword
- Preface
- Target Audience
- Goals
- Conventions Used in This Book
- Using Code Examples
- O'Reilly Online Learning
- How to Contact Us
- Acknowledgments
- Chapter 1. Why Distributed?
- The Single-Threaded Nature of JavaScript
- Quick Node.js Overview
- The Node.js Event Loop
- Event Loop Phases
- Code Example
- Event Loop Tips
- Sample Applications
- Service Relationship
- Producer Service
- Consumer Service
- Chapter 2. Protocols
- Request and Response with HTTP
- HTTP Payloads
- HTTP Semantics
- HTTP Compression
- HTTPS / TLS
- JSON over HTTP
- The Dangers of Serializing POJOs
- API Facade with GraphQL
- GraphQL Schema
- Queries and Responses
- GraphQL Producer
- GraphQL Consumer
- RPC with gRPC
- Protocol Buffers
- gRPC Producer
- gRPC Consumer
- Chapter 3. Scaling
- The Cluster Module
- A Simple Example
- Request Dispatching
- Cluster Shortcomings
- Reverse Proxies with HAProxy
- Introduction to HAProxy
- Load Balancing and Health Checks
- Compression
- TLS Termination
- Rate Limiting and Back Pressure
- SLA and Load Testing
- Introduction to Autocannon
- Running a Baseline Load Test
- Reverse Proxy Concerns
- Protocol Concerns
- Coming Up with SLOs
- Chapter 4. Observability
- Environments
- Logging with ELK
- Running ELK via Docker
- Transmitting Logs from Node.js
- Creating a Kibana Dashboard
- Running Ad-Hoc Queries
- Metrics with Graphite, StatsD, and Grafana
- Running via Docker
- Transmitting Metrics from Node.js
- Creating a Grafana Dashboard
- Node.js Health Indicators
- Distributed Request Tracing with Zipkin
- How Does Zipkin Work?
- Running Zipkin via Docker
- Transmitting Traces from Node.js
- Visualizing a Request Tree
- Visualizing Microservice Dependencies
- Health Checks
- Building a Health Check
- Testing the Health Check
- Alerting with Cabot
- Create a Twilio Trial Account
- Running Cabot via Docker
- Creating a Health Check
- Chapter 5. Containers
- Introduction to Docker
- Containerizing a Node.js Service
- Dependency Stage
- Release Stage
- From Image to Container
- Rebuilding and Versioning an Image
- Basic Orchestration with Docker Compose
- Composing Node.js Services
- Internal Docker Registry
- Running the Docker Registry
- Pushing and Pulling to the Registry
- Running a Docker Registry UI
- Chapter 6. Deployments
- Build Pipeline with Travis CI
- Creating a Basic Project
- Configuring Travis CI
- Testing a Pull Request
- Automated Testing
- Unit Tests
- Integration Tests
- Code Coverage Enforcement
- Deploying to Heroku
- Create a Heroku App
- Configure Travis CI
- Deploy Your Application
- Modules, Packages, and SemVer
- Node.js Modules
- SemVer (Semantic Versioning)
- npm Packages and the npm CLI
- Internal npm Registry
- Running Verdaccio
- Configuring npm to Use Verdaccio