Mastering microservices with Java 9 build domain-driven microservice-based applications with spring, spring cloud, and angular
Master the art of implementing scalable microservices in your production environment with ease About This Book Use domain-driven design to build microservices Use Spring Cloud to use Service Discovery and Registeration Use Kafka, Avro and Spring Streams for implementing event based microservices Who...
Otros Autores: | |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Birmingham, England ; Mumbai, [India] :
Packt
2017.
|
Edición: | Second edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630117406719 |
Tabla de Contenidos:
- Cover
- Title Page
- Copyright
- Credits
- About the Author
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Table of Contents
- Preface
- Chapter 1: A Solution Approach
- Evolution of microservices
- Monolithic architecture overview
- Limitation of monolithic architecture versus its solution with microservices
- Traditional monolithic design
- Monolithic design with services
- Services design
- One dimension scalability
- Release rollback in case of failure
- Problems in adopting new technologies
- Alignment with Agile practices
- Ease of development - could be done better
- Microservices build pipeline
- Deployment using a container such as Docker
- Containers
- Docker
- Docker's architecture
- Deployment
- Summary
- Chapter 2: Setting Up the Development Environment
- NetBeans IDE installation and setup
- Spring Boot configuration
- Spring Boot overview
- Adding Spring Boot to our main project
- Sample REST program
- Writing the REST controller class
- The @RestController annotation
- The @RequestMapping annotation
- The @RequestParam annotation
- The @PathVariable annotation
- Making a sample REST application executable
- Adding a Jetty-embedded server
- Setting up the application build
- Running the Maven tool
- Executing with the Java command
- REST API testing using the Postman Chrome extension
- Some more positive test scenarios
- Negative test scenarios
- Summary
- Chapter 3: Domain-Driven Design
- Domain-driven design fundamentals
- Fundamentals of DDD
- Ubiquitous language
- Multilayered architecture
- Presentation layer
- Application layer
- Domain layer
- Infrastructure layer
- Artifacts of domain-driven design
- Entities
- Value objects
- FAQs
- Services
- Aggregates
- Repository
- Factory
- Modules
- Strategic design and principles
- Bounded context.
- Continuous integration
- Context map
- Shared kernel
- Customer-supplier
- Conformist
- Anticorruption layer
- Separate ways
- Open Host Service
- Distillation
- Sample domain service
- Entity implementation
- Repository implementation
- Service implementation
- Summary
- Chapter 4: Implementing a Microservice
- OTRS overview
- Developing and implementing microservices
- Restaurant microservice
- OTRS implementation
- Controller class
- API versioning
- Service classes
- Repository classes
- Entity classes
- Registration and discovery service (Eureka service)
- Eureka client
- Booking and user services
- Execution
- Testing
- References
- Summary
- Chapter 5: Deployment and Testing
- Mandatory services for good microservices
- Service discovery and registration
- Edge servers
- Load balancing
- Circuit breakers
- Monitoring
- An overview of microservice architecture using Netflix OSS
- Load balancing
- Server-side load balancing
- Client-side load balancing
- Circuit breakers and monitoring
- Using Hystrix's fallback methods
- Monitoring
- Setting up the Hystrix dashboard
- Creating Turbine services
- Building and running the OTRS application
- Microservice deployment using containers
- Installation and configuration
- Docker machine with 4 GB
- Building Docker images with Maven
- Running Docker using Maven
- Integration testing with Docker
- Pushing the image to a registry
- Managing Docker containers
- References
- Summary
- Chapter 6: Reactive Microservices
- An overview of the reactive microservice architecture
- Responsive
- Resilient
- Elastic
- Message driven
- Implementing reactive microservices
- Producing an event
- Consuming the event
- References
- Summary
- Chapter 7: Securing Microservices
- Enabling Secure Socket Layer
- Authentication and authorization
- OAuth 2.0.
- Usage of OAuth
- OAuth 2.0 specification - concise details
- OAuth 2.0 roles
- Resource owner
- Resource server
- Client
- Authorization server
- OAuth 2.0 client registration
- Client types
- Client profiles
- Client identifier
- Client authentication
- OAuth 2.0 protocol endpoints
- Authorization endpoint
- Token endpoint
- Redirection endpoint
- OAuth 2.0 grant types
- Authorization code grant
- Implicit grant
- Resource owner password credentials grant
- Client credentials grant
- OAuth implementation using Spring Security
- Authorization code grant
- Implicit grant
- Resource owner password credential grant
- Client credentials grant
- References
- Summary
- Chapter 8: Consuming Services Using a Microservice Web Application
- AngularJS framework overview
- MVC
- MVVM
- Modules
- Providers and services
- Scopes
- Controllers
- Filters
- Directives
- UI-Router
- Development of OTRS features
- Home page/restaurant list page
- index.html
- app.js
- restaurants.js
- restaurants.html
- Search restaurants
- Restaurant details with reservation option
- restaurant.html
- Login page
- login.html
- login.js
- Reservation confirmation
- Setting up the web application
- References
- Summary
- Chapter 9: Best Practices and Common Principles
- Overview and mindset
- Best practices and principles
- Nanoservice, size, and monolithic
- Continuous integration and deployment
- System/end-to-end test automation
- Self-monitoring and logging
- A separate data store for each microservice
- Transaction boundaries
- Microservices frameworks and tools
- Netflix Open Source Software (OSS)
- Build - Nebula
- Deployment and delivery - Spinnaker with Aminator
- Service registration and discovery - Eureka
- Service communication - Ribbon
- Circuit breaker - Hystrix
- Edge (proxy) server - Zuul.
- Operational monitoring - Atlas
- Reliability monitoring service - Simian Army
- AWS resource monitoring - Edda
- On-host performance monitoring - Vector
- Distributed configuration management - Archaius
- Scheduler for Apache Mesos - Fenzo
- Cost and cloud utilization - Ice
- Other security tools - Scumblr and FIDO
- Scumblr
- Fully Integrated Defence Operation (FIDO)
- References
- Summary
- Chapter 10: Troubleshooting Guide
- Logging and the ELK stack
- A brief overview
- Elasticsearch
- Logstash
- Kibana
- ELK stack setup
- Installing Elasticsearch
- Installing Logstash
- Installing Kibana
- Running the ELK stack using Docker Compose
- Pushing logs to the ELK stack
- Tips for ELK stack implementation
- Use of correlation ID for service calls
- Let's see how we can tackle this problem
- Use of Zipkin and Sleuth for tracking
- Dependencies and versions
- Cyclic dependencies and their impact
- Analyzing dependencies while designing the system
- Maintaining different versions
- Let's explore more
- References
- Summary
- Chapter 11: Migrating a Monolithic Application to Microservice-Based Application
- Do you need to migrate?
- Cloud versus on-premise versus both cloud and on-premise
- Cloud only solution
- On-premise only solution
- Both cloud and on-premise solution
- Approaches and keys to successful migration
- Incremental migration
- Process automation and tools setup
- Pilot project
- Standalone user interface applications
- Migrating modules to microservices
- How to accommodate a new functionality during migration
- References
- Summary
- Index.