Index
A
- ACK flood / ACK
- aggregates / Tactical design
- anatomy, Domain-Driven Design (DDD)
- about / Anatomy of DDD
- strategic design / Strategic design
- tactical design / Tactical design
- ubiquitous language / Ubiquitous language
- Bounded Context / Bounded contexts
- Context Mapping / Context mapping
- Apache Thrift
- URL / Thrift
- API Blueprint / API Blueprint
- API Gateway
- about / API Gateway
- features / API Gateway
- Apigee
- URL / API Gateway
- API versioning
- about / Versioning APIs
- semantic versioning / Semantic versioning
- versioning formats, for REST APIs / Versioning formats for REST APIs
- versioning formats, for RPC APIs / Versioning formats for RPC APIs
- naming, for RPC / Naming for RPC
- application code, for Docker
- building / Building application code for Docker
- FROM / FROM
- MAINTAINER / MAINTAINER
- EXPOSE / EXPOSE
- COPY / COPY
- ENTRYPOINT / ENTRYPOINT
- CMD / CMD
- practice, for creating Dockerfiles / Good practice for creating Dockerfiles
- application security
- about / Application security
- prevention / Prevention
- detection / Detection
- response / Response
- recovery / Recovery
- confused deputy / Confused deputy
- firewall, bypassing / How an attacker could bypass the firewall
- input validation / Input validation
- TLS / TLS
- data, securing at rest / Securing data at rest
- OWASP / OWASP
- authorization / Authentication and authorization
- authentication / Authentication and authorization
- password hashing / Password hashing
- JWTs / JWTs
- secure messages / Secure messages
- shared secrets / Shared secrets
- asymmetric encryption, with large messages / Asymmetric encryption with large messages
- asymmetric encryption
- with large messages / Asymmetric encryption with large messages
- asynchronous messages
- types / Types of asynchronous messages
- pull/queue messaging / Pull/queue messaging
- push messaging / Push messaging
- asynchronous processing
- versus synchronous processing / Differences between synchronous and asynchronous processing
- about / Asynchronous processing
- authentication / Authentication and authorization
- authorization / Authentication and authorization
- AWS s3 backend, attributes
- AWS SNS/SQS / Asynchronous processing, AWS SNS/SQS
B
- Background method / Background
- back off pattern / Back off
- bcrypt
- Behavioral Driven Development (BDD) / Behavioral Driven Development
- benchmarking / Benchmarking and profiling
- benchmarks
- about / Benchmarks
- demonstrating / Benchmarks
- Bitcoin
- URL / Providers
- Bounded Contexts / Anatomy of DDD
C
- caching
- about / Caching
- premature optimization / Premature optimization
- stale cache in times of database or downstream service failure / Stale cache in times of database or downstream service failure
- CHARGEN (Character Generation Protocol) attack / CHARGEN
- circuit breaker
- constructing / Circuit breaking
- circuit breaking
- about / Circuit breaking
- working / Circuit breaking
- collection / Collections
- Command model / Command Query Responsibility Segregation (CQRS)
- Command Query Responsibility Segregation (CQRS) / Command Query Responsibility Segregation (CQRS)
- container orchestration
- about / What is container orchestration?
- options / Options for container orchestration
- containers
- with Docker / Introducing Containers with Docker
- creating / Running our first container
- removing / Removing a container starting with an explicit name
- context
- about / Context
- Background methods / Background
- WithCancel method / WithCancel
- WithDeadline method / WithDeadline
- WithTimeout method / WithTimeout
- WithValue method / WithValue
- using / Using contexts
- Context Mapping / Anatomy of DDD
- continuous delivery
- about / What is continuous delivery?
- manual deployment / Manual deployment
- overview / Overview
- continuous delivery, aspects
- consistency / Reproducibility and consistency
- reproducibility / Reproducibility and consistency
- artifact storage / Artifact storage
- test automation / Automation of tests
- integration test automation / Automation of integration tests
- infrastructure as code / Infrastructure as code
- security scanning / Security scanning
- static code analysis / Static code analysis
- smoke tests / Smoke tests
- end-to-end tests / End-to-end tests
- monitoring / Monitoring
- continuous delivery, workflow
- about / Continuous delivery workflow
- build process / Build
- testing / Testing
- benchmarking / Benchmarking
- static code analysis / Static code analysis
- integration tests / Integration tests
- deployment / Deployment
- smoke tests / Smoke tests
- application, monitoring / Monitoring/alerting
- application, alerting / Monitoring/alerting
- build, setting up / Complete workflow
- controller /
- CORS (Cross-Origin Resource Sharing) / Accessing APIs from JavaScript
- cron / What is container orchestration?
- CRUD /
- custom bridge networks
- creating / Creating custom bridge networks, Creating a bridge network
- containers, connecting to / Connecting containers to a custom network
- custom network drivers
- about / Custom network drivers
- Weaveworks / Weaveworks
- Project Calico / Project Calico
D
- Daemons
- running, in containers / Running Daemons in containers
- data
- securing, at rest / Securing data at rest
- physical machine, accessing / Physical machine access
- DDoS attack, types
- DDoS protection / DDoS protection
- design patterns
- failure / Design for failure
- dictionary attack / Dictionary attacks
- distributed system
- creating / Example application
- DNS / DNS
- Docker
- about / Introducing Containers with Docker
- installing / Installing Docker
- Docker Compose
- about / Docker Compose
- installing, on Linux / Installing Docker Compose on Linux
- service startup / Service startup
- compose file location, specifying / Specifying the location of a compose file
- project name, specifying / Specifying a project name
- testing with / Testing with Docker Compose
- Dockerfiles
- about / Writing Dockerfiles
- writing / Writing Dockerfiles
- application code, building for Docker / Building application code for Docker
- images, building from / Building images from Dockerfiles
- Docker networking
- about / Docker networking
- bridge networking / Bridge networking
- host networking / Host networking
- no network / No network
- overlay network / Overlay network
- custom network drivers / Custom network drivers
- custom bridge networks, creating / Creating custom bridge networks
- Docker ports / Docker ports
- Docker volumes
- about / Docker volumes, Docker ports
- union filesystem / Union filesystem
- mounting / Mounting volumes
- document / Documents
- documenting APIs
- about / Documenting APIs
- REST based-based APIs / REST based-based APIs
- RPC based-based APIs / RPC based-based APIs
- Domain-Driven Design (DDD)
- about / Domain-driven design, What is DDD?
- technical debt / Technical debt
- anatomy / Anatomy of DDD
- domain events / Tactical design
- DSL (domain specific language) / RPC APIs
E
- Elastic Beanstalk / Options for container orchestration
- encryption
- about / Encryption and signing
- symmetric-key encryption / Symmetric-key encryption
- public-key cryptography / Public-key cryptography
- X.509 digital certificates / X.509 digital certificates
- SSL / TLS/SSL
- TLS / TLS/SSL
- ESB (enterprise service bus) / Overlay network
- Event-Driven Systems / Differences between synchronous and asynchronous processing
- event processing
- about / Event processing
- with at least once delivery / Event processing with at least once delivery
- errors, handling / Handling Errors
- dead letter queue / Dead Letter Queue
- idempotent transactions / Idempotent transactions and message order
- message order / Idempotent transactions and message order
- atomic transactions / Atomic transactions
- exceptions
- about / Exceptions
- handling / Panic and recover
- panic function / Panic
- recover function / Recover
- external security
- about / External security
- layer 2 firewall / Layer 2 or 3 firewalls
- layer 3 firewall / Layer 2 or 3 firewalls
- web application firewall (WAF) / Web application firewall
- API Gateway / API Gateway
- DDoS protection / DDoS protection
F
- FieldError object
- reference link / Input validation
- FileServer function / FileServer
- firewall, bypass
- about / How an attacker could bypass the firewall
- scenario / Scenario
- attacker / Attack
G
- GCM (Galois/Counter Mode) / Shared secrets
- gob wire format
- reference link / Simple RPC example
- Go documentation
- reference / Gob
- Google Cloud Pub/Sub / Asynchronous processing, Google Cloud Pub/Sub
- Go standard library
- Go structs
- marshalling, to JSON / Marshalling Go structs to JSON
- JSON, unmarshalling / Unmarshalling JSON to Go structs
- govalidator
- reference / Security
- gRPC
- about / gRPC
- setting up / Setup
- code generation / Code generation
- tooling / Tooling
- maintainable / Maintainable
- format / Format
- patterns / Patterns
- language independence / Language independence
- efficiency / Efficiency
- quality / Quality
- open source / Open source
- security / Security
- support / Support
- extensibility / Extensibility
- summary / A few lines about gRPC
H
- handlers
- creating / Creating handlers
- HashiCorp
- HTTP
- RPC over / RPC over HTTP
- JSON-RPC over / JSON-RPC over HTTP
- http.Request
- reference link / Unmarshalling JSON to Go structs
- HTTP headers, RESTful APIs
- about / HTTP headers
- standard request headers / Standard request headers
- standard response headers / Standard response headers
- returning errors / Returning errors
- HTTP verbs
I
- images, building from Dockerfiles
- about / Building images from Dockerfiles
- Docker build context / Docker build context
- Docker Ignore files / Docker Ignore files
- immutable infrastructure / What is immutable infrastructure?
- input validation
- about / Input validation
- reference link / Input validation
- fuzzing / Fuzzing
- interactive terminal / Running our first container
J
- jose
- URL / Format of a JWT
- JSON
- reading / Reading and writing JSON
- Go structs, marshalling / Marshalling Go structs to JSON
- unmarshalling, to Go structs / Unmarshalling JSON to Go structs
- reference link / Unmarshalling JSON to Go structs
- JSON-RPC
- JSONP (JSON with Padding) / Accessing APIs from JavaScript
- JSON Web Token (JWT)
- about / JWTs
- format / Format of a JWT
- reference link / Format of a JWT
K
- Kafka / Kafka
- Kite
- about / Kite
- setup / Setup
- working / Setup
- features / Setup
- code generation / Code generation
- tooling / Tooling
- maintainable / Maintainable
- format / Format
- patterns / Patterns
- language independence / Language independence
- efficiency / Efficiency
- quality / Quality
- open source / Open source
- security / Security
- support / Support
- extensibility / Extensibility
- summarizing / Summing up Kite
- Kong
- URL / API Gateway
- kontrol / Setup
L
- layer 2 firewall / Layer 2 or 3 firewalls
- layer 3 firewall / Layer 2 or 3 firewalls
- least privilege / Physical machine access
- load balancing / Load balancing
- logging
- best practices / Logging best practices
- about / Logging
- distributed tracing, with correlation IDs / Distributed tracing with Correlation IDs
- ELK stack / Elasticsearch, Logstash, and Kibana (ELK)
- Elasticsearch / Elasticsearch, Logstash, and Kibana (ELK)
- Kibana / Kibana
M
- maintenance, of application
- about / Maintenance
- containers, patching / Patching containers
- software, updating / Software updates
- code, patching / Patching application code
- logging / Logging
- manual deployment / Manual deployment
- mappings
- partnership / Context mapping
- shared kernel / Context mapping
- customer-supplier / Context mapping
- conformist / Context mapping
- anti-corruption layer / Context mapping
- Open Host Service / Context mapping
- published language / Context mapping
- Mashery
- URL / API Gateway
- megacheck / Static code analysis
- metrics
- about / Metrics
- data, representing / Types of data best represented by metrics
- naming conventions / Naming conventions
- storage / Storage and querying
- querying / Storage and querying
- software as a service (SaaS) / Software as a Service
- self-hosted / Self-hosted
- Grafana, using / Grafana
- Micro
- reference / Micro, Format (REST/RPC)
- setup / Setup
- code generation / Code generation
- tooling / Tooling (CI/CD, cross platform)
- maintainable / Maintainable
- format / Format (REST/RPC)
- patterns / Patterns
- language independence / Language independence
- interfacing, with other frameworks / Ability to interface with other frameworks
- efficiency / Efficiency
- quality / Quality
- open source / Open source
- security / Security
- support / Support
- extensibility / Extensibility
- about / What we learned about Micro
- microservice framework
- features / What makes a good microservice framework?
- Mulesoft
- URL / API Gateway
N
- NATS.io
- about / Asynchronous processing, NATS.io
- configurable options, URL / Push messaging
- at-most-once delivery / NATS.io
- at-least-once delivery / NATS.io
- need
- in the body / Unmarshalling JSON to Go structs
- net/http package
- web server, building / Building a simple web server with net/http
- routing / Routing in net/http
- paths / Paths
- convenience handlers / Convenience handlers
- FileServer function / FileServer
- NotFoundHandler function / NotFoundHandler
- RedirectHandler function / RedirectHandler
- StripPrefix function / StripPrefix
- TimeoutHandler function / TimeoutHandler
- static file handler / Static file handler
- handlers, creating / Creating handlers
- NTP / NTP
O
- object type standardization
- about / Object type standardization
- dates / Dates
- durations / Durations
- intervals / Intervals
- Open API Initiative
- URL / Swagger
- open source projects
- Kafka / Kafka
- NATS.io / NATS.io
- AWS SNS/SQS / AWS SNS/SQS
- Google Cloud Pub/Sub / Google Cloud Pub/Sub
- Open Web Application Security Project (OWASP)
- about / Web application firewall, OWASP
- reference link / OWASP
- session tokens storage, avoiding in URL / Never storing session tokens in a URL
- cross-site scripting (XSS) / Cross-site scripting (XSS) and cross-site request forgery (CRSF)
- cross-site request forgery (CRSF) / Cross-site scripting (XSS) and cross-site request forgery (CRSF)
- insecure direct object references / Insecure direct object references
- outside-in development, testing
- about / Outside-in development
- unit tests / Unit tests
- dependency injection / Dependency injection and mocking
- mocking / Dependency injection and mocking
- code coverage / Code coverage
- Behavioral Driven Development / Behavioral Driven Development
- Docker Compose, testing with / Testing with Docker Compose
- OWASP CRS
- URL / Web application firewall
P
- PagerDuty / Monitoring
- password hashing
- about / Password hashing
- security, enhancing / Adding a little seasoning
- dictionary attack / Dictionary attacks
- pepper, adding / Adding a pepper
- bcrypt / bcrypt
- benchmarks / Benchmarks
- patterns
- about / Patterns
- event processing / Event processing
- timeouts / Timeouts
- back off / Back off
- circuit breaking / Circuit breaking
- health checks / Health checks
- throttling / Throttling
- service discovery / Service discovery
- load balancing / Load balancing
- caching / Caching
- POODLE (Paddling Oracle On Downgraded Legacy Encryption) / TLS/SSL
- private keys
- URL, for example / Generating private keys
- profiling
- Project Calico
- about / Project Calico
- URL / Project Calico
- Protocol Buffers
- about / Protocol Buffers
- URL / Protocol Buffers
- providers / Providers
- public-key cryptography
- about / Public-key cryptography
- digital signatures / Digital signatures
- pull/queue messaging / Pull/queue messaging
- push messaging / Push messaging
Q
- Query model / Command Query Responsibility Segregation (CQRS)
R
- Rainbow tables / Adding a little seasoning
- RAML (RESTful API Modelling Language)
- RedirectHandler function / RedirectHandler
- response codes, RESTful APIs
- about / Response codes
- 2xx Success / 2xx Success
- 3xx Redirection / 3xx Redirection
- 4xx Client Error / 4xx Client Error
- 5xx Server Error / 5xx Server Error
- REST (Representational State Transfer) / RESTful APIs
- REST based-based APIs
- about / REST based-based APIs
- Swagger / Swagger
- API Blueprint / API Blueprint
- RAML / RAML
- RESTful APIs
- about / RESTful APIs
- URIs / URIs
- URI formatting / URI format
- URI path design, for REST services / URI path design for REST services
- HTTP verbs / HTTP verbs
- URI query design / URI query design
- response codes / Response codes
- HTTP headers / HTTP headers
- RESTful APIs, accessing from JavaScript
- about / Accessing APIs from JavaScript
- JSONP / JSONP
- CORS / CORS
- routing
- in net/http package / Routing in net/http
- RPC
- in Go standard library / RPC in the Go standard library
- example / Simple RPC example
- over HTTP / RPC over HTTP
- JSON-RPC, over HTTP / JSON-RPC over HTTP
- RPC (Remote Procedure Call) / RPC API design
- RPC API design
- RPC message frameworks / RPC message frameworks
- filtering / Filtering
- RPC APIs
- about / RPC APIs
- RPC API design / RPC API design
- RPC message frameworks
- about / RPC message frameworks
- gob / Gob
- Thrift / Thrift
- Protocol Buffers / Protocol Buffers
- JSON-RPC / JSON-RPC
S
- SafeSQL
- about / Static code analysis
- URL / Static code analysis
- service discovery
- about / Service discovery
- server-side service discovery / Server-side service discovery
- client-side service discovery / Client-side service discovery
- shared infrastructure
- Simple Notification Service (SNS) / AWS SNS/SQS
- Simple Queue Service (SQS) / AWS SNS/SQS
- Simple Service Discovery Protocol (SSDP) / SSDP
- SSL / TLS/SSL
- standard request headers, HTTP headers
- authorization / Authorization - string
- date / Date
- content type / Accept - content type
- gzip / Accept-Encoding - gzip, deflate
- deflate / Accept-Encoding - gzip, deflate
- static file handler / Static file handler
- store / Store
- StripPrefix function / StripPrefix
- Swagger / Swagger
- symmetric-key encryption / Symmetric-key encryption
- synchronous processing
- versus asynchronous processing / Differences between synchronous and asynchronous processing
- about / Synchronous processing
- SYN flood / SYN flood
T
- Terraform
- about / Terraform
- URL / Terraform, Creating the infrastructure
- providers / Providers
- config entry point / Terraform config entry point
- VPC module / VPC module
- output variables / Output variables
- infrastructure, creating / Creating the infrastructure
- testing
- outside-in development / Outside-in development
- testing pyramid / The testing pyramid
- Thrift
- aims / Thrift
- throttling / Throttling
- timeout / Timeouts
- TimeoutHandler function / TimeoutHandler
- Transport Layer Security (TLS)
- about / Building a simple web server with net/http, TLS/SSL, TLS
- private keys, generating / Generating private keys
- X.509 certificates, generating / Generating X.509 certificates
- Tyk
- URL / API Gateway
U
- UDP flood / UDP flood
- UDP fragment attack / UDP fragment attack
- unit tests
- about / Unit tests
- httptest.NewRequest / httptest.NewRequest
- httptest.NewRecorder / httptest.NewRecorder
- URI (Uniform Resource Identifiers) / URIs
- URI path design, for REST services
- collections / URI path design for REST services
- documents / Documents
- controller /
- store / Store
- CRUD function names / CRUD function names
V
- VPC module / VPC module
W
- Weaveworks
- about / Weaveworks
- URL / Weaveworks
- web application firewall (WAF) / Web application firewall
- web server
- building, with net/http package / Building a simple web server with net/http
- Web Service-Transactions (WS-T) / Atomic transactions
- WithCancel method / WithCancel
- WithDeadline method / WithDeadline
- WithTimeout method / WithTimeout
- WithValue method / WithValue
X
- 2xx Success, RESTful API response codes
- about / 2xx Success
- 200 OK / 200 OK
- 201 Created /
- 204 No Content /
- 3xx Redirection, RESTful API response codes
- about / 3xx Redirection
- 301 Moved Permanently / 301 Moved Permanently
- 304 Not Modified / 304 Not Modified
- 4xx Client Error, RESTful API response codes
- about / 4xx Client Error
- 400 Bad Request / 400 Bad Request
- 401 Unauthorized / 401 Unauthorized
- 403 Forbidden / 403 Forbidden
- 404 Not Found / 404 Not Found
- 405 Method Not Allowed / 405 Method Not Allowed
- 408 Request Timeout / 408 Request Timeout
- 5xx Server Error, RESTful API response codes
- about / 5xx Server Error
- 500 Internal Server Error / 500 Internal Server Error
- 503 Service Unavailable / 503 Service Unavailable
- X.509 digital certificates / X.509 digital certificates