Index
A
- Actuator endpoints
- securing / Securing the Actuator endpoints
- Amazon Machine Image (AMI) / Spinning up an AWS EC2 instance
- Amazon Simple Storage Service (Amazon S3) / Microservices architecture on AWS
- Amazon Web Service (AWS)
- about / Installing Docker
- microservices architecture / Microservices architecture on AWS
- Apache Ignite repository / Apache Ignite repository
- API Gateway
- filters / API Gateway pattern components
- API Gateway pattern
- need for / The need for an API Gateway pattern
- advantages / Pros of the API Gateway pattern
- disadvantages / Cons of the API Gateway pattern
- components / API Gateway pattern components
- implementing, with Netflix Zuul Proxy / Implementing API Gateway using Netflix Zuul Proxy
- Zuul, including with Maven dependency / Including Zuul using Maven dependency
- Zuul service proxy, enabling / Enabling the Zuul service proxy
- Zuul properties, configuring / Configuring Zuul properties
- Zuul filters, adding / Adding Zuul filters
- API Management
- about / API Management
- advantages / Advantages of using API Management software tools
- tools / API Management tools
- application error pages
- customizing / Customizing application error pages
- application properties
- configuring externally / Externally configuring application properties
- @EnableConfigurationProperties annotation, using / Using the @EnableConfigurationProperties annotation
- auto-configuration
- AWS EC2
- Docker, installing / Installing Docker on AWS EC2
- microservices, executing / Running microservices on AWS EC2
- AWS EC2 instance
- spinning up / Spinning up an AWS EC2 instance
B
- Bootstrap Application Context / Brief introduction to bootstrap.yml and application.yml
- Bounded Contexts / Microservices architecture
- broker topology / Broker topology
C
- centralized logging solution
- for microservices architecture / Centralized logging solution for the microservices architecture
- log streams / Centralized logging solution for the microservices architecture
- log shippers / Centralized logging solution for the microservices architecture
- log storages / Centralized logging solution for the microservices architecture
- log stream processor / Centralized logging solution for the microservices architecture
- log dashboard / Centralized logging solution for the microservices architecture
- log aggregation, with ELK stack / Log aggregation using the ELK stack
- Elasticsearch, installing / Install Elasticsearch
- logstash, installing / Install Logstash
- Kibana, installing / Install Kibana
- tracing request, with Sleuth / Requesting tracing using Sleuth
- tracing request, with Zipkin / Requesting tracing with Zipkin
- circuit-breaker pattern
- about / Circuit-breaker pattern
- enabling / Enabling circuit-breaker
- cloud-native application architecture
- about / Cloud-native application architecture
- twelve-Factor applications / Cloud-native application architecture
- microservices / Cloud-native application architecture
- self-service agile infrastructure / Cloud-native application architecture
- API-based collaboration / Cloud-native application architecture
- antifragility / Cloud-native application architecture
- microservices architecture / Microservices architecture
- cloud application
- Feign, including / Including Feign in the cloud application
- Cloud Config Server
- implementing / Implementing Cloud Config Server
- application.properties file, configuring / Configuring the application.properties file
- Git repository, creating as Configuration Storage / Creating a Git repository as configuration storage
- configuration application, executing / Running your configuration application
- Cloud Native Computing Foundation (CNCF) / Introducing Kubernetes
- command-line interface (CLI) / Docker Engine
- command-query separation (CQS)
- about / Introduction to Command Query Responsibility Segregation
- Event Sourcing pattern / Introduction to the Event Sourcing pattern
- eventual consistency / Introduction to Eventual consistency
- event-driven Reactive Asynchronous System, building / Building an event-driven Reactive Asynchronous System
- concurrent message consumers / Introduction to reactive programming
- Configuration Consumer Spring Cloud Config client
- Configuration Producer Spring Cloud Config Server
- creating / Creating the configuration producer Spring Cloud Config Server
- project, setting up / Project setup and dependencies
- dependencies, setting up / Project setup and dependencies
- containers
- using, in microservice architecture / Introducing containers to the microservice architecture
- versus virtual machines / Virtual machines versus containers
- benefits / Benefits of a container-oriented approach
- disadvantages / Drawbacks of a container-oriented approach
- key concepts / Key concepts of the containers-oriented approach
- Container Host / Key concepts of the containers-oriented approach
- about / Key concepts of the containers-oriented approach
- container image / Key concepts of the containers-oriented approach
- container OS image / Key concepts of the containers-oriented approach
- container repository / Key concepts of the containers-oriented approach
- Continuous Deployment (CD) / Configuring the Spring Cloud application
- custom decoders / Custom encoders and decoders, Custom decoder
- custom encoder / Custom encoder
- customer service
- building / Building and testing customer service
- testing / Building and testing customer service
D
- default configuration
- customizing / Customizing the default configuration
- Denial of Service (DoS) attacks / Rate limiting
- Docker
- about / Getting started with Docker
- installing / Installing Docker
- installing, on Linux / Installing Docker on Linux
- installing, on Windows / Installing Docker on Windows
- commands / Docker commands
- container-specific commands / Container-specific commands
- architecture / Docker architecture
- client / Docker architecture
- daemon / Docker architecture
- registries / Docker architecture
- host / Docker architecture
- image / Docker architecture
- Docker Engine / Docker Engine
- container / Docker container
- dockerfile, writing / Writing Dockerfile
- installing , on AWS EC2 / Installing Docker on AWS EC2
- Docker Compose
- about / Getting started with Docker Compose
- installing / Installing Docker Compose
- using / Using Docker Compose
- docker-compose file, writing / Writing a docker-compose file
- docker-compose file, using for orchestration / Orchestration using a docker-compose file
- container, scaling with docker-compose / Scaling containers using docker-compose and load balancing
- container, scaling with load balancing / Scaling containers using docker-compose and load balancing
- Docker Datacenter (DDC) / Docker architecture
- Docker Hub
- microservices, publishing / Publishing microservices to the Docker Hub
- Docker image
- creating, with Maven / Creating a Docker image using Maven
- Dockerization / Getting started with Docker
- Docker Toolbox
- Docker Trusted Registry (DTR) / Docker architecture
- Domain-driven design (DDD) / Microservices architecture
E
- EC2 Container Service (ECS) / Installing Docker
- Elastic Container Registry (ECR) / Spinning up an AWS EC2 instance
- Elasticsearch
- URL / Install Elasticsearch
- ELK stack
- using, for log aggregation / Log aggregation using the ELK stack
- Eureka
- client, registering / Registering a client with Eureka
- REST service, consuming / Consuming the REST service
- EurekaClient, using / Using EurekaClient
- DiscoveryClient, using / Using DiscoveryClient
- client-side load balancing / Client-side load balancing using Netflix Ribbon
- Netflix Ribbon, using / Client-side load balancing using Netflix Ribbon
- registry-aware Spring Cloud Netflix FeignClient client, using / Using the registry-aware Spring Cloud Netflix FeignClient client
- Eureka clients
- implementing / Implementing Service Discovery – Eureka clients
- Maven dependencies configuration, adding / Adding the Maven dependencies configuration
- Gradle build configuration / The Gradle build configuration
- event-driven architecture patterns
- about / Event-driven architecture patterns
- mediator topology / Mediator topology
- broker topology / Broker topology
- event-driven Reactive Asynchronous System
- Event Sourcing pattern / Introduction to the Event Sourcing pattern
- eventual consistency / Introduction to Eventual consistency
- exception handling / Exception handling
- external service calls / Introduction to reactive programming
F
- Feign
- about / Declarative REST client – Feign basics, Feign and Hystrix
- including, in cloud application / Including Feign in the cloud application
- defaults, overriding / Overriding Feign defaults
- clients, creating / Creating Feign clients
- inheritance support / Feign inheritance support
- multiple interfaces / Multiple interfaces
- client, advanced usage / Advanced usage of the Feign client
- logging / Feign logging
- exception handling / Exception handling
- clients, unit testing / Unit testing Feign clients
- REST consumer / REST consumer with Hystrix and Feign
- filters, API Gateway
- pre filter / API Gateway pattern components
- post filter / API Gateway pattern components
- route filter / API Gateway pattern components
- fine-tuning
- with logging / Fine-tuning with logging
- output, logging / Logging output
G
- Gradle
- Spring Boot, setting up / Setting up Spring Boot with Gradle
H
- Hystrix
- about / Feign and Hystrix
- library, using with reference implementation / Using the Hystrix library with a reference implementation
- configuring, in application / Configuring Hystrix in your application
- maven dependency / Maven dependency
- circuit-breaker, enabling / Enabling circuit-breaker
- annotations, adding in services / Adding the Hystrix annotation in services
- error propagation / Error propagation
- REST consumer / REST consumer with Hystrix and Feign
- Hystrix Dashboard
- implementing, in project / Implementing Hystrix Dashboard in our project
- Hystrix Metrics Stream / Hystrix Metrics Stream
I
- Infrastructure as a Service (IaaS) / Introducing Kubernetes
- integration testing
- about / Integration testing
- Spring, using / Benefits of testing with Spring
- profiles, activating for test class / Activating profiles for a test class
J
- JUnit tests
- for Spring Boot application / JUnit tests for the Spring Boot application
K
- Kibana
- URL / Install Kibana
- KONG
- about / Learning about KONG
- microservice REST APIs / Microservice REST APIs with the KONG architecture
- avoiding / Using APIs without the KONG architecture
- installing / Installing KONG
- KONG API, using / Using the KONG API
- KONG API, features / Features of the KONG API
- Kubernetes / Introducing Kubernetes
L
- Linux
- Docker, installing / Installing Docker on Linux
- logging
- Logstash
- URL / Install Logstash
M
- Maven
- Spring Boot, setting up / Setting up Spring Boot with Maven
- used, for creating Docker image / Creating a Docker image using Maven
- Maven dependency / Maven dependency
- microservices
- with Spring Boot / Microservices with Spring Boot
- about / A simple microservice example
- publishing, to Docker Hub / Publishing microservices to the Docker Hub
- executing, on AWS EC2 / Running microservices on AWS EC2
- microservices architecture
- about / Microservices architecture
- benefits / Microservice benefits
- challenges / Microservice challenges
- Service Discovery, need for / The need for Service Discovery in the microservices architecture
- containers, using / Introducing containers to the microservice architecture
- on AWS / Microservices architecture on AWS
- mocking services
- Mockito, using / Using Mockito for mocking services
- Mockito
- used, for mocking services / Using Mockito for mocking services
N
- Netflix Zuul Proxy
- used, for implementing API Gateway / Implementing API Gateway using Netflix Zuul Proxy
O
- OSX Homebrew
- used, for installing Spring Boot CLI / Installing with OSX Homebrew
- MacPorts installation / MacPorts installation
- command-line completion / Command-line completion
- overridden properties
- order of evaluation / Order of evaluation for overridden properties
P
- patterns
- used, for configuring repositories / Configuring multiple repositories using patterns
- Platform as a Service (PaaS) / Introducing Kubernetes
- Postman
- used, for testing RESTful service contracts / Postman for testing RESTful service contracts
- projects, Spring Cloud
- Spring Cloud Config / Building blocks of the cloud and microservice applications
- Spring Cloud Bus / Building blocks of the cloud and microservice applications
- Spring Cloud Netflix / Building blocks of the cloud and microservice applications
- Spring Cloud Cluster / Building blocks of the cloud and microservice applications
- Spring Cloud Consul / Building blocks of the cloud and microservice applications
- Cloud Foundry / Building blocks of the cloud and microservice applications
- Spring Cloud Foundry Service Broker / Building blocks of the cloud and microservice applications
- Spring Cloud Connectors / Building blocks of the cloud and microservice applications
- Spring Cloud for Amazon Web Services / Building blocks of the cloud and microservice applications
- Spring Cloud Security / Building blocks of the cloud and microservice applications
- Spring Cloud Sleuth / Building blocks of the cloud and microservice applications
- Spring Cloud Data Flow / Building blocks of the cloud and microservice applications
- Spring Cloud Stream / Building blocks of the cloud and microservice applications
- Stream App Starters / Building blocks of the cloud and microservice applications
- Spring Cloud Task / Building blocks of the cloud and microservice applications
- Spring Cloud Zookeeper / Building blocks of the cloud and microservice applications
- Spring Cloud Starters / Building blocks of the cloud and microservice applications
- Spring Cloud CLI / Building blocks of the cloud and microservice applications
- Spring Cloud Contract / Building blocks of the cloud and microservice applications
- Spring Cloud Gateway / Building blocks of the cloud and microservice applications
- properties
- configuration, externalizing / Externalizing configuration with properties
- overridden properties, order of evalution / Order of evaluation for overridden properties
- application.properties, renaming / Renaming application.properties in the Spring application
R
- rate limiting
- about / Rate limiting
- implementing / Implementing rate limiting
- reactive programming
- about / Introduction to reactive programming
- Spring Reactive / Spring Reactive
- ReactiveX / ReactiveX
- ReactiveX
- registry-aware Spring Cloud Netflix FeignClient client
- repositories
- configuring, with patterns / Configuring multiple repositories using patterns
- authentication / Authentication
- force-pull property / Force-pull property
- REST consumer
- with Hystrix / REST consumer with Hystrix and Feign
- with Feign / REST consumer with Hystrix and Feign
- REST controller
- implementing, in customer service / Implementing a REST controller in customer service
- RESTful service contracts
- testing, with Postman / Postman for testing RESTful service contracts
- REST service
- implementing / Implementing the REST service
- round-robin (RR) algorithm / Scaling containers using docker-compose and load balancing
S
- Service Discovery
- need for, in microservices architecture / The need for Service Discovery in the microservices architecture
- implementing / Implementing Service Discovery – Eureka Server
- Maven build configuration file / The Maven build configuration file
- Gradle build configuration file / The Gradle build configuration file
- Eureka server, enabling / Enabling the Eureka server as a Discovery Service server
- Eureka clients, implementing / Implementing Service Discovery – Eureka clients
- Sleuth
- used, for tracing request / Requesting tracing using Sleuth
- SnakeYAML / Using YAML for configuration
- Software Development Kit Manager (SDKMAN!)
- using, for Spring Boot CLI installation / Installation with SDKMAN!
- Spring application development
- simplifying, with Spring Boot / Simplifying Spring application development using Spring Boot
- Spring Boot
- about / Introducing Spring Boot
- Spring application development, simplifying / Simplifying Spring application development using Spring Boot
- key components / The essential key components of Spring Boot
- starter / Spring Boot Starters
- Starter Parent POM / Spring Boot Starter Parent POM
- auto-configuration / Spring Boot auto-configuration
- auto-configuration, enabling / Enabling Spring Boot auto-configuration
- Spring Boot CLI / Spring Boot CLI
- Spring Boot Actuator / Spring Boot Actuator
- customizing / Customizing Spring Boot
- properties, used for customizing / Customizing using Spring Boot properties
- generated beans, replacing / Replacing generated beans
- specific auto-configuration classes, disabling / Disabling specific auto-configuration classes
- library dependencies, modifying / Changing a library's dependencies
- microservices / Microservices with Spring Boot
- bootstrap.yml / Brief introduction to bootstrap.yml and application.yml
- application.yml / Brief introduction to bootstrap.yml and application.yml
- microservice example / A simple microservice example
- discovery service, creating / Creating a discovery service
- microservice, creating / Creating a microservice (the Producer)
- microservice consumers, creating / Creating microservice consumers
- Load-balanced RestTemplate / Load-balanced RestTemplate
- Spring Boot 2.0
- features / New features in Spring Boot 2.0
- Spring Boot Actuator
- about / Spring Boot Actuator – taking Application's Insights
- enabling, in application / Enabling Spring Boot's Actuator in your application
- endpoints, analyzing / Analyzing the Actuator's endpoints
- configuration details, exposing / Exposing configuration details
- metrics endpoints, exposing / Exposing metrics endpoints
- application information, exposing / Exposing application information
- application, shutting down / Shutting down your application
- endpoints, customizing / Customizing your Actuator endpoints
- endpoints, enabling / Enabling or disabling endpoints
- endpoints, disabling / Enabling or disabling endpoints
- endpoints IDs, modifying / Changing endpoint IDs
- endpoint sensitivity, modifying / Changing the sensitivity of the Actuator's endpoints
- custom health indicators, writing / Writing custom health indicators
- custom endpoint, creating / Creating a custom endpoint
- with Spring Boot 2.X / The Actuator with Spring Boot 2.X
- Spring Boot application
- developing / Developing your first Spring Boot application
- web interface, using for Spring Initializr / Using a web interface for Spring Initializr
- Spring Boot project, creating with STS IDE / Creating a Spring Boot project using the STS IDE
- JUnit tests / JUnit tests for the Spring Boot application
- dockerizing / Dockerizing any Spring Boot application
- Spring Boot CLI
- using / Getting started with using Spring Boot CLI
- installing / Installing the Spring Boot CLI
- installing manually, from downloaded distribution / Manually installing from a downloaded distribution
- installation, with SDKMAN / Installation with SDKMAN!
- installing, with OSX Homebrew / Installing with OSX Homebrew
- Initializr, using / Using the Initializr with the Spring Boot CLI
- Spring Boot workspace
- setting up / Setting up a Spring Boot workspace
- setting up, with Maven / Setting up Spring Boot with Maven
- setting up, with Gradle / Setting up Spring Boot with Gradle
- Spring Cloud
- about / Introduction to Spring Cloud
- building blocks / Building blocks of the cloud and microservice applications
- platform support / Building blocks of the cloud and microservice applications
- IaaS / Building blocks of the cloud and microservice applications
- microservices infrastructure / Building blocks of the cloud and microservice applications
- dynamic cloud reconfiguration / Building blocks of the cloud and microservice applications
- cloud utilities / Building blocks of the cloud and microservice applications
- data ingestion / Building blocks of the cloud and microservice applications
- Spring Boot style Starters, uses / Building blocks of the cloud and microservice applications
- projects / Building blocks of the cloud and microservice applications
- usage / Usages of Spring Cloud
- Spring Cloud application
- configuring / Configuring the Spring Cloud application
- Spring Cloud Config / Configuring the Spring Cloud application
- Spring Cloud Netflix / Introduction to Spring Cloud Netflix
- Spring Cloud Streaming
- about / Introducing Spring Cloud Streaming
- Kafka, adding to application / Adding Kafka to your application
- Kafka, installing / Installing and running Kafka
- Kafka, executing / Installing and running Kafka
- Kafka properties, configuration / Configuration properties for Kafka
- services, used for writing Kafka / Service used to write to Kafka
- Rest API controller / Rest API controller
- Kafka, listening / Listening to a Kafka topic
- Spring Data
- about / Brief introduction to Spring Data
- Apache Ignite repository / Apache Ignite repository
- Spring Data MongoDB / Spring Data MongoDB
- Spring Data JPA / Spring Data JPA
- Spring Data MongoDB
- about / Spring Data MongoDB
- highlights / Spring MongoDB data highlights
- Spring Framework
- references / Manually installing from a downloaded distribution
- Spring Initializr
- web interface, using / Using a web interface for Spring Initializr
- using, with Spring Boot CLI / Using the Initializr with the Spring Boot CLI
- URL / Implementing API Gateway using Netflix Zuul Proxy
- Spring Reactive / Spring Reactive
- Spring Tool Suite (STS) / Developing your first Spring Boot application
- starter / Spring Boot Starters
- Swagger
- about / Swagger
- usage / Usage of Swagger
- using / Using Swagger in a microservice
- Maven dependency, adding / Adding a Maven dependency
- Swagger 2, configuring / Configuring Swagger 2 in your project
- Swagger UI, configuring / Configuring Swagger UI in your project
- Swagger UI meta-configuration, customizing / Customizing the Swagger UI meta-configuration
- API, filtering from documentation / Filtering an API from Swagger's documentation
- annotation, using for customization / Customizing with Swagger annotations
- advantages / Advantages of Swagger
- system testing / Integration testing
T
- Test-driven development (TDD) / Test-driven development
- Turbine dashboard
- about / Turbine dashboard
- Turbine stream / Turbine stream
U
- unit testing
- about / Unit testing
- advantages / Advantages
- disadvantages / Disadvantages
- mock libraries / Other mock libraries
V
- virtual machines
- versus containers / Virtual machines versus containers
W
- Windows
- Docker, installing / Installing Docker on Windows
Y
- YAML
- using, for configuration / Using YAML for configuration
- using, for properties / YAML for properties
- multiple profiles / Multiple profiles inside a single YAML file
Z
- Zipkin
- used, for tracing request / Requesting tracing with Zipkin
- server, adding to machine / Adding the Zipkin server to your machine
- Zuul
- including, with Maven dependency / Including Zuul using Maven dependency
- properties, configuring / Configuring Zuul properties
- filters, adding / Adding Zuul filters
- filters, registering / Registering Zuul filters
- Zuul service proxy
- enabling / Enabling the Zuul service proxy