List of Figures

Chapter 1. Enterprise Java microservices

Figure 1.1. Typical Enterprise Java application architecture

Figure 1.2. Enterprise Java spaghetti

Figure 1.3. Enterprise Java microservices

Figure 1.4. Typical microservices architecture

Figure 1.5. Store domain model

Figure 1.6. Separate Bounded Contexts

Figure 1.7. Enterprise Java and microservices hybrid architecture

Chapter 2. Developing a simple RESTful microservice

Figure 2.1. Cayambe homepage

Figure 2.2. Cayambe monolith architecture

Figure 2.3. Cayambe future architecture

Figure 2.4. Old Cayambe administration interface

Figure 2.5. New Cayambe administration interface

Figure 2.6. Cayambe administration microservice and UI

Figure 2.7. Category management state flow

Figure 2.8. Category management architecture

Figure 2.9. Category management microservice architecture

Figure 2.10. Category management—API layer

Chapter 3. Just enough Application Server for microservices

Figure 3.1. Microservice specification usage of full Java EE platform

Figure 3.2. Microservice specification usage of Java EE Web Profile

Figure 3.3. JeAS as runtime for microservices architecture

Figure 3.4. Traditional Java EE vs. JeAS runtimes

Figure 3.5. Microservice usage in Dropwizard

Figure 3.6. Payara Micro compared to Web Profile

Figure 3.7. Microservice usage in Payara Micro

Figure 3.8. Microservice usage in Spring Boot

Figure 3.9. Microservice usage in Thorntail

Chapter 4. Microservices testing

Figure 4.1. Types of testing

Figure 4.2. Mock responses to a client request

Figure 4.3. Requests sent to the microservice

Chapter 5. Cloud native development

Figure 5.1. Service models in the cloud

Figure 5.2. Service models in the cloud with containers

Figure 5.3. What Minishift provides

Figure 5.4. OpenShift web console

Figure 5.5. OpenShift web console, showing the admin service

Figure 5.6. Admin service pod instances

Chapter 6. Consuming microservices

Figure 6.1. Enterprise Java business service calls

Figure 6.2. Consuming microservices

Figure 6.3. Cayambe administration microservice client

Figure 6.4. JAX-RS AsyncResponse handling

Chapter 7. Discovering microservices for consumption

Figure 7.1. Microservice direct lookup

Figure 7.2. Microservice direct lookup with multiple instances

Figure 7.3. Service discovery

Figure 7.4. Service discovery with failed microservice

Figure 7.5. Service discovery with Netflix Ribbon

Figure 7.6. Thorntail topology integration

Figure 7.7. Postman calling the Ribbon client service

Chapter 8. Strategies for fault tolerance and monitoring

Figure 8.1. Microservices in a distributed architecture

Figure 8.2. Microservice processing user requests without Hystrix

Figure 8.3. Microservice processing user requests with Hystrix

Figure 8.4. Electrical circuit-breaker states

Figure 8.5. Failure mitigation flow with basic circuit

Figure 8.6. Circuit-breaker states

Figure 8.7. Failure mitigation flow with bulkhead

Figure 8.8. Failure mitigation flow with fallback handling

Figure 8.9. Failure mitigation flow with request cache

Figure 8.10. Entire failure mitigation flow

Figure 8.11. Microservice calls with failure mitigation

Figure 8.12. A single circuit from the Hystrix Dashboard

Figure 8.13. Hystrix Dashboard homepage

Chapter 9. Securing a microservice

Figure 9.1. Internal users

Figure 9.2. Malicious external user

Figure 9.3. Malicious internal user

Figure 9.4. Multiple user roles for authorization

Figure 9.5. Internal and external user roles

Figure 9.6. Setting up the Keycloak Admin user

Figure 9.7. Logging into the Keycloak administration console

Figure 9.8. Keycloak administration console

Figure 9.9. User authentication via a UI

Figure 9.10. Microservice authentication

Figure 9.11. Microservice authentication with Stripe and Payment

Figure 9.12. Accessing the Add realm button in Keycloak

Figure 9.13. Creating a realm

Figure 9.14. Importing the Cayambe realm

Figure 9.15. User authentication via UI

Figure 9.16. Cayambe Admin screen

Figure 9.17. Cayambe Admin when logged in with the User role

Figure 9.18. Cayambe Admin when logged in with the Admin role

Chapter 10. Architecting a microservice hybrid

Figure 10.1. Cayambe homepage

Figure 10.2. Cayambe code structure

Figure 10.3. Cayambe monolith deployment

Figure 10.4. Enterprise Java and microservices hybrid architecture

Figure 10.5. Proposed Cayambe hybrid monolith

Figure 10.6. Cayambe hybrid monolith

Figure 10.7. Choosing the Browse Catalog option in the OpenShift console

Figure 10.8. OpenShift console—data stores

Chapter 11. Data streaming with Apache Kafka

Figure 11.1. Data-streaming pipes

Figure 11.2. Apache Kafka integrations (reproduced from https://kafka.apache.org/intro.html)

Figure 11.3. Immutable data stream

Figure 11.4. Topic partitions (reproduced from https://kafka.apache.org/intro.html)

Figure 11.5. Topic producers and consumers (reproduced from https://kafka.apache.org/intro.html)

Figure 11.6. Current Cayambe hybrid monolith

Figure 11.7. Cayambe hybrid monolith

Figure 11.8. OpenShift pod terminal

Appendix Appendix. Spring Boot microservices

Figure 1. Structure of reading-list project

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.255.87