3 options
Mastering microservices with Java 9 : build domain-driven microservice-based applications with spring, spring cloud, and angular / Sourabh Sharma.
- Format:
- Book
- Author/Creator:
- Sharma, Sourabh, author.
- Language:
- English
- Subjects (All):
- Java (Computer program language).
- Physical Description:
- 1 online resource (1 volume) : illustrations
- Edition:
- Second edition.
- Place of Publication:
- Birmingham, England ; Mumbai, [India] : Packt, 2017.
- System Details:
- Mode of access: World Wide Web.
- text file
- Summary:
- 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 This Book Is For This book is for Java developers who are familiar with the microservices architecture and now wants to take a deeper dive into effectively implementing microservices at an enterprise level. A reasonable knowledge level and understanding of core microservice elements and applications is expected. What You Will Learn Use domain-driven design to design and implement microservices Secure microservices using Spring Security Learn to develop REST service development Deploy and test microservices Troubleshoot and debug the issues faced during development Learning best practices and common principals about microservices In Detail Microservices are the next big thing in designing scalable, easy-to-maintain applications. It not only makes app development easier, but also offers great flexibility to utilize various resources optimally. If you want to build an enterprise-ready implementation of the microservices architecture, then this is the book for you! Starting off by understanding the core concepts and framework, you will then focus on the high-level design of large software projects. You will gradually move on to setting up the development environment and configuring it before implementing continuous integration to deploy your microservice architecture. Using Spring security, you will secure microservices and test them effectively using REST Java clients and other tools like RxJava 2.0. We'll show you the best patterns, practices and common principals of microservice design and you'll learn to troubleshoot and debug the issues faced during development. We'll show you how to design and implement reactive microservices. Finally, we'll show you how to migrate a monolithic application to microservices based application. By the end of the book, you will know how to build smaller, lighter, and faster services that can be implemented easily in a production environment. Style and approach This book starts from the basics, including environment setup and provides easy-to-follow steps to implement the sample project using microservices.
- Contents:
- 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
- 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
- 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
- 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
- Server-side load balancing
- Client-side load balancing
- Circuit breakers and monitoring
- Using Hystrix's fallback methods
- 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
- 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
- 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
- Resource owner password credential grant
- Chapter 8: Consuming Services Using a Microservice Web Application
- AngularJS framework overview
- MVC
- MVVM
- 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
- 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)
- 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
- 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
- Index.
- Notes:
- Includes index.
- Includes bibliographical references.
- Description based on online resource; title from PDF title page (EBC, viewed January 9, 2018).
- ISBN:
- 9781787282414
- 1787282414
- OCLC:
- 1019827279
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.