Index
A
- advantages, microservices
- single responsibility principle alignment / Alignment to the single responsibility principle
- continuous releases / Continuous releases
- independent scalability / Independent scalability
- technologies, adopting / Increased adoption of new technologies
- agile manifesto
- URL / The C4 model
- AMQP / AMQP
- Android client / Android client
- App Dynamics
- application performance
- significance / Why performance matters
- scalability / Scalability
- high availability / High availability
- about / Performance
- Application Performance Management (APM) tools
- application programming interfaces (API) / Working well together
- applications
- containerizing / Containerizing applications
- Docker Gradle plugin / Docker Gradle plugin
- architects / Architecture and architects
- architecture / Architecture and architects
- authentication and authorization as a service / Authentication and authorization as a service
- authentication and authorization mechanism
- authentication / Authentication and authorization
- JSON Web Tokens (JWT) / Authentication and authorization
- AWS Lambda
- URL / AWS Lambda adapter
- AWS Lambda adapter / AWS Lambda adapter
- Azure adapter
- URL / Azure adapter
- about / Azure adapter
B
- Backend as a service (BaaS) / An introduction to serverless architecture, Backend as a service
- Beans / Spring Data
- Bean Validation
- Behavior Driven Development (BDD) / AMQP
- bottlenecks
- identifying / Identifying bottlenecks
- business dimension
- about / The business dimension
- user requirements, managing / Managing user requirements
- business metrics, identifying / Identifying and tracking business metrics
- business metrics, tracking / Identifying and tracking business metrics
- data dimension / The data dimension
C
- C4 model
- about / The C4 model
- context diagram / Context diagram
- class diagram / Class diagram
- CAP theorem
- consistency / Consistency
- high availability / High availability
- partition tolerance / Partition tolerance
- Certificate Authority (CA) / Basic authentication
- circuit breaker pattern
- about / Circuit breaker
- Hystrix / Hystrix
- CI server
- key concepts / Jenkins
- client-server architectures
- about / Understanding client-server architectures
- server / Server, The server
- scaling / Scaling
- request / Request
- client / Client
- network / Network
- applying / Where to apply client-server architectures
- implementing, with Spring / Implementing client-server architectures with Spring
- SOAP web services / SOAP web services
- RESTful web services / RESTful web services
- CORBA / CORBA
- sockets / Sockets
- AMQP / AMQP
- server, implementing / Implementing the server
- banking-domain / Banking-domain
- banking-api / Banking-api
- boundaries / Boundaries
- domain / Domain
- persistence / Persistence
- service / Service
- server, monitoring / Monitoring the server
- testing / Testing
- banking-client / Banking-client
- authentication endpoint client / Authentication endpoint client
- account balance endpoint client / Account balance endpoint client
- clients, building / The clients
- JavaFX client / JavaFX client
- Android client / Android client
- thin client / Thin client
- CMD command / CMD command
- code-writing process / Embracing tests
- command-line interface (CLI)
- URL / AWS Lambda adapter
- Command-Query Responsibility Segregation (CQRS)
- URL / Microproxy, Edge services
- about / CQRS
- complex domain models / Complex domain models
- persistent information / Distinct paths to query and persist information
- scaling / Independent scaling
- conformist relationship / Request
- container orchestration
- with Kubernetes / Container orchestration with Kubernetes
- containers
- about / Containers
- concepts / Basic concepts
- images / Containers and images
- commands / Basic commands
- executing / Running containers
- working with / Working with containers
- images, working with / Working with images
- images, building / Building your own images
- FROM command / FROM command
- MAINTAINER command / MAINTAINER command
- RUN command / RUN command
- ENV command / ENV command
- EXPOSE command / EXPOSE command
- CMD command / CMD command
- continuous delivery (CD) / Motivations
- continuous integration (CI) / Motivations
- Conway's law / Conway's law
- CORBA / CORBA
- Create, Read, Update, Delete (CRUD) / Spring Data
- cryptography / Cryptography
D
- DataDog
- data input validation / Data input validation
- Denial-of-Service (DoS) / Key security recommendations
- dependency inversion (DI) principle / The dependency inversion (DI) principle
- development process
- accelerating / Accelerating the development process
- DevOps culture
- about / DevOps culture
- motivations / Motivations
- DevOps adoption / DevOps adoption
- dimensions
- about / Dimensions
- business dimension / The business dimension
- technical dimension / The technical dimension
- operations dimension / The operations dimension
- Docker Compose
- URL / Accelerating the development process
- about / Docker Compose
- containers, linking / Linking containers
- links option / links
- depends_on option / depends_on
- Docker Gradle plugin
- about / Docker Gradle plugin
- URL / Docker Gradle plugin
- Dynatrace
E
- edge services
- about / Edge services
- Zuul / Introducing Zuul
- embracing automation / Embracing automation
- end-to-end (e2e) / Embracing tests
- Enterprise Integration Patterns (EIP)
- supporting, with Spring Integration / Supporting EIPs with Spring Integration
- Enterprise Service Bus (ESB) / Client, Use cases for Pipe-and-Filter architecture
- ENV command / ENV command
- Eureka / Introducing Eureka
- event-carried state transfer pattern
- about / Event-carried state transfer
- application performance, enhancing / Improving application performance
- source application load, reducing / Reducing the load on the source application
- system availability, increasing / Increasing the availability of the system
- event-driven architectures (EDA)
- concepts / Underlying concepts and key aspects
- command / Command
- event / Event
- patterns / Patterns of event-driven architectures
- event notification pattern / Event notification
- event-carried state transfer pattern / Event-carried state transfer
- event sourcing / Event sourcing
- Command-Query Responsibility Segregation (CQRS) / CQRS
- EXPOSE command / EXPOSE command
F
- FIG / Docker Compose
- FROM command / FROM command
- full request signature / Authentication and authorization
- function as a service (FaaS)
- about / An introduction to serverless architecture, Authentication and authorization
- implementing, with Spring Cloud Functions / Implementing FaaS with Spring Cloud Functions
- Function as a service (FaaS) / Function as a service
H
- high availability / High availability
- high cohesion / High cohesion
- horizontal scalability / Horizontal scalability
- HSQL
- URL / Spring Batch
- Hystrix / Hystrix
I
- Infrastructure as code
- about / Infrastructure as code
- Spring application / Spring application and DevOps practices
- DevOps practices / Spring application and DevOps practices
- environments, supporting / Supporting different environments
- profiles, selecting / Selecting profiles
- Vagrant / Vagrant
- interface segregation principle (ISP) / The interface segregation principle (ISP)
J
- JaCoCo
- URL / Test coverage
- Java Development Kit (JDK) / Why Spring appeared
- JavaFX client / JavaFX client
- Java Virtual Machine (JVM) / The technical dimension
- Jenkins / Jenkins
- JSON Web Tokens RFC
- URL / AMQP
K
- Kali Linux
- URL / Penetration testing
- KISS principle
- URL / High cohesion
- Kubernetes
- container orchestration / Container orchestration with Kubernetes
- pod / Pod
- labels / Labels
- replication controllers / Replication controllers
- services / Services
L
- labels / Labels
- Liskov substitution principle (LSP) / The Liskov substitution principle
- load tests
- example / A load test example
- low coupling / Low coupling
M
- MAINTAINER command / MAINTAINER command
- Maven wrapper
- URL / mvnw and mvnw.cmd
- microservices
- principles / Principles of microservices
- size / Size
- autonomous / Autonomous
- advantages / Advantages
- disadvantages / Drawbacks, Too many options, Monitoring, Transactions and eventual consistency
- modeling / Modeling microservices
- implementing / Implementing microservices
- dynamic configuration / Dynamic configuration
- configuration server, implementing / Implementing a configuration server
- configuration client, implementing / Implementing a configuration client
- service discovery / Service discovery and registration
- registration / Service discovery and registration
- Eureka / Introducing Eureka
- Netflix Eureka service registry, implementing / Implementing a Netflix Eureka service registry
- service registry client, implementing / Implementing a service registry client
- Netflix Ribbon / Netflix Ribbon
- edge services / Edge services
- CAP theorem / CAP theorem
- circuit breaker pattern / Circuit breaker
- Microsoft Azure Functions
- URL / Azure adapter
- Minimum Viable Product (MVP) / Managing user requirements
- mobile backend as a service (MBaaS) / An introduction to serverless architecture
- Model-View-Controller (MVC) architecture
- about / MVC
- Model (M) / The Model (M)
- View (V) / The View (V)
- Controller (C) / The Controller (C)
- benefits / Benefits of using MVC
- pitfalls / Common pitfalls
- used, for implementing applications / Implementing applications using MVC
- Spring MVC / Spring MVC
- testing / Testing
- test coverage / Test coverage
- UI frameworks / UI frameworks
- Thymeleaf / Thymeleaf
- application, securing / Securing an MVC application
- authentication / Basic authentication
- authentication, implementing / Implementing basic authentication
- monitoring
- about / Monitoring
- application monitoring / Monitoring
- business monitoring / Monitoring
- Spring applications / Monitoring Spring applications
- Spring application / Monitoring Spring applications
- multiple-container environments
- provisioning / Provisioning multiple-container environments
- Docker Compose / Docker Compose
N
- Nanobox
- Netflix Eureka service registry
- implementing / Implementing a Netflix Eureka service registry
- Netflix Ribbon / Netflix Ribbon
- Newman
- URL / Testing
- New Relic
O
- OAuth (Open Authorization) / Authentication and authorization
- OAuth 2 / Authentication and authorization
- object-oriented programming (OOP) / SOLID principles, Containers and images
- Object Relational Mapping (ORM) / SQL query optimizations
- Open Web Application Security Project (OWASP) / OWASP Top 10
- Open–Closed Principle (OCP) / The Open–Closed Principle (OCP)
- operations dimension
- about / The operations dimension
- application, deploying / How to deploy an application, Deploying your application
- components, interactions / How interaction occurs among your components
- infrastructure, dealing / Dealing with infrastructure
- infrastructure / Understanding the infrastructure
- versioning / Versioning
- testing / Testing
- cloud, versus on-premise / Cloud versus on-premise
- oracle-java8
- URL / RUN command
P
- penetration test (pen test) / Penetration testing
- performance issues, avoiding
- about / The key recommendation to avoid performance issues
- bottlenecks, identifying / Identifying bottlenecks
- applications, profiling / Profiling applications
- SQL query, optimizing / SQL query optimizations
- load tests / A load test example
- Pipe-and-Filter architecture
- about / Introducing Pipe-and-Filter concepts
- filters / Filters
- pipes / Pipes
- boarding / Boarding Pipe-and-Filter architectures
- use cases / Use cases for Pipe-and-Filter architecture
- plain old Java objects (POJOs) / Dynamic configuration, AWS Lambda adapter
- pod / Pod
- production environment / Going to production
- project reactor
- about / Project reactor
- mono / Mono
- flux / Flux
- back pressure / Back pressure
R
- Ration Unified Process (RUP) / Managing user requirements
- Reactive Manifesto
- URL / Reactive and Spring
- reactive REST services / Reactive REST services
- Reactive Spring Data / Reactive Spring Data
- registries
- about / Registries
- images, publishing / Publishing images
- release management
- about / Release management
- pipelines / pipelines
- Continuous integration (CI) / Continuous integration
- Continuous delivery / Continuous delivery and continuous deployment
- continuous deployment / Continuous delivery and continuous deployment
- pipelines, automating / Automating pipelines
- Jenkins / Jenkins
- replication controllers / Replication controllers
- reporting databases
- URL / Independent scaling
- request / Request
- RESTful web services / RESTful web services
- Retrofit
- URL / Banking-client
- RUN command / RUN command
S
- scalability
- about / Scalability
- horizontal scalability / Horizontal scalability
- vertical scalability / Vertical scalability
- Secure Sockets Layer (SSL) protocol / Cryptography
- security
- advantages / Why security is important as a part of an application's architecture
- key security recommendations / Key security recommendations
- authentication and authorization / Authentication and authorization
- cryptography / Cryptography
- data input validation / Data input validation
- sensitive data / Sensitive data
- social engineering / Social engineering
- OWASP Top 10 / OWASP Top 10
- sensitive data / Sensitive data
- serverless architecture
- about / An introduction to serverless architecture
- infrastructure / Infrastructure and file storage
- file storage / Infrastructure and file storage
- benefits / Benefits and pitfalls
- pitfalls / Benefits and pitfalls
- Backend as a service / Backend as a service
- Function as a service / Function as a service
- concerns / Concerns about serverless architectures
- vendor lock-in / Vendor lock-in
- security / Security
- framework support / Framework support
- troubleshooting / Troubleshooting
- use cases / Examples and common use cases
- adopting, for SPA / Adopting serverless architectures for SPA
- Service Level Agreement (SLA) / High availability
- service registry client
- implementing / Implementing a service registry client
- services / Services
- Silos
- about / Silos
- breaking / How to break silos
- Single-page applications (SPAs)
- about / Backend as a service
- serverless architectures, adopting / Adopting serverless architectures for SPA
- Single Responsibility Principle (SRP) / The single responsibility principle (SRP)
- SOAP web services / SOAP web services
- social engineering / Social engineering
- sockets / Sockets
- software architecture
- defining / Defining software architecture
- scenarios / I know my land, I want to stay ahead
- future, predicting / Predicting the future
- principles / Software architecture principles
- components / Components
- low coupling / Low coupling
- high cohesion / High cohesion
- Software Development Life Cycle (SDLC) / Silos, Why security is important as a part of an application's architecture
- SOLID principles
- about / SOLID principles
- Single Responsibility Principle (SRP) / The single responsibility principle (SRP)
- Open–Closed Principle (OCP) / The Open–Closed Principle (OCP)
- Liskov substitution principle / The Liskov substitution principle
- interface segregation principle (ISP) / The interface segregation principle (ISP)
- dependency inversion (DI) principle / The dependency inversion (DI) principle
- Spock
- URL / AMQP
- Spring
- about / Why Spring appeared
- client-server architectures, implementing / Implementing client-server architectures with Spring
- Spring Batch
- about / Spring Batch, Spring Batch
- read step / The read step
- process step / The process step
- write step / The write step
- references / Spring Batch
- URL / Spring Batch
- pipes, implementing / Implementing pipes with Spring Batch
- Spring Cloud
- about / Spring Cloud and the microservices world
- configuration server / Configuration server
- service registry / Service registry
- edge service / Edge services
- microproxy / Microproxy
- API gateway / API gateway
- circuit breaker / Circuit breaker
- Spring Cloud Functions
- URL / Implementing FaaS with Spring Cloud Functions, Functions with Spring
- FaaS, implementing / Implementing FaaS with Spring Cloud Functions
- example, coding / Coding the example
- adapters / Adapters
- AWS Lambda adapter / AWS Lambda adapter
- Azure adapter / Azure adapter
- Spring Data
- about / Spring Data
- URL / Spring Data
- Spring Initializr
- Spring MVC / Spring MVC
- Spring projects
- about / Spring projects
- Spring Initializr / Spring Initializr
- in Nutshell / Spring Boot in a Nutshell
- servlet container integration / Servlet container integration
- autoconfiguration / Autoconfiguration
- dependency management / Dependency management
- mvnw / mvnw and mvnw.cmd
- mvnw.cmd / mvnw and mvnw.cmd
- pom.xml / pom.xml
- DemoApplication.java / DemoApplication.java
- application.properties file / The application.properties file
- DemoApplicationTests.java / DemoApplicationTests.java
- redeployment, avoiding with developer tools / Avoiding redeployment with developer tools
- Spring Data / Spring Data
- EIPs, supporting with Spring Integration / Supporting EIPs with Spring Integration
- Spring Batch / Spring Batch
- applications, securing with Spring Security / Securing applications with Spring Security
- HATEOAS, embracing / Embracing (Spring) HATEOAS
- Spring Cloud / Spring Cloud and the microservices world
- microservices / Spring Cloud and the microservices world
- reactive programming / Reactive and Spring
- publisher / Publisher
- subscriber / Subscriber
- subscription / Subscription
- processor interface / Processor
- project reactor / Project reactor
- Reactive Spring Data / Reactive Spring Data
- Reactive REST services / Reactive REST services
- Spring Security
- applications, securing / Securing applications with Spring Security
- SQL query
- optimizing / SQL query optimizations
- Symposium on Principles of Distributed Computing (SPDC) / CAP theorem
T
- technical dimension / The technical dimension
- technology
- selecting / Choosing the right technology for you
- test coverage / Test coverage
- thin clients / Thin client
- Thymeleaf / Thymeleaf
- tools, for profiling java application
- Visual VM / Visual VM
- Transport Layer Security (TLS) protocol / Cryptography
- twelve-fact app
- URL / Dynamic configuration
U
- Uniform Resource Identifiers (URIs) / Embracing (Spring) HATEOAS
- user stories / Managing user requirements
V
- Vagrant
- URL / Accelerating the development process
- about / Vagrant
- working with / Working with Vagrant
- Version Control System (VCS) / Versioning
- vertical scalability / Vertical scalability
- Virtual Machines (VMs) / Containers
- Visual VM / Visual VM
W
- Web Services Description Language (WSDL) / SOAP web services
Y
- YAML
Z
- Zuul / Introducing Zuul