2 options
Cloud-native applications in Java : build microservice-based cloud-native applications that dynamically scale / Ajay Mahajan, Munish Kumar Gupta, Shyam Sundar.
- Format:
- Book
- Author/Creator:
- Mahajan, Ajay, author.
- Gupta, Munish Kumar, author.
- Sundar, Shyam, author.
- Language:
- English
- Subjects (All):
- Java (Computer program language).
- Application software.
- Cloud computing.
- Web applications.
- Physical Description:
- 1 online resource (377 pages)
- Edition:
- 1st ed.
- Place of Publication:
- Birmingham, [England] ; Mumbai, [India] : Packt Publishing, 2018.
- Summary:
- Businesses today are evolving so rapidly that they are resorting to the elasticity of the cloud to provide a platform to build and deploy their highly scalable applications. This means developers now are faced with the challenge of building build applications that are native to the cloud. For this, they need to be aware of the environment,.
- Contents:
- Cover
- Copyright and Credits
- Dedication
- Packt Upsell
- Foreword
- Contributors
- Table of Contents
- Preface
- Chapter 1: Introduction to Cloud-Native
- Why go cloud-native?
- What is cloud-native?
- Lift and shift
- Going native
- Going serverless
- Cloud-native and microservices
- The 12-factor app
- Microservices-enabling service ecosystem
- Microservice adoption
- Monolithic transformation
- Summary
- Chapter 2: Writing Your First Cloud-Native Application
- Setting up your developer toolbox
- Getting an IDE
- Setting up internet connectivity
- Understanding the development life cycle
- Requirements/user stories
- Architecture
- Design
- Testing and development
- Building and deployment
- Selecting a framework
- Dropwizard
- Vert.x
- Spring Boot
- Writing a product service
- Creating a Maven project
- Writing a Spring Boot application class
- Writing service and domain objects
- Running the service
- Testing the service on the browser
- Creating a deployable
- Enabling cloud-native behaviors
- Externalizing configuration
- Metering your services
- Service registration and discovery
- Running a service registry
- Registering a product service
- Creating a product client
- Seeing the lookup in action
- Chapter 3: Designing Your Cloud-Native Application
- The trio - REST, HTTP, and JSON
- Rise and popularity of the APIs
- Role of API gateways
- Benefits of an API gateway
- Application decoupling
- Bounded context/domain-driven design
- Classification into up/downstream services
- Business events
- Microservice identification
- Differences between microservices and service-oriented architecture (SOA)
- Service granularity
- Microservice design guidelines
- Design and deployment patterns
- Design patterns
- Content aggregation patterns
- Aggregation by client.
- API aggregation
- Microservice aggregation
- Database aggregation
- Coordination patterns
- Business process management (BPM)
- Composite services
- Why composite services?
- Capabilities for microservices coordination
- Coordination models
- Asynchronous parallel
- Asynchronous sequential
- Orchestration using request/response
- Collapsing the microservices
- Deployment patterns
- Multiple services per WAR file
- Benefits and trade-offs
- Suitability
- Service per WAR/EAR
- Service per process
- Service per Docker container
- Service per VM
- Service per host
- Release patterns
- Data architecture for microservices
- Command Query Responsibility Segregation (CQRS)
- Duplicating data
- Benefits
- Cons
- Fit for purpose
- The role of security
- Chapter 4: Extending Your Cloud-Native Application
- Implementing the get services
- Simple product table
- Limitations of traditional databases
- Caching
- Local cache
- Under the hood
- Limitations of a local cache
- Distributed cache
- Applying CQRS to separate data models and services
- Materialized views on a relational database
- Elasticsearch and a document database
- Why not use only a document database or Elasticsearch?
- Core product service on a document database
- Getting MongoDB ready with test data
- Creating the product service
- Splitting the services
- The product-search service
- Getting Elasticsearch ready with test data
- Creating the product-search service
- Data update services
- REST conventions
- Inserting a product
- Testing
- Updating a product
- Deleting a product
- Testing.
- Cache invalidation
- Validations and error messages
- Format validations
- Data validations
- Business validations
- Exceptions and error messages
- Data updates for CQRS
- Asynchronous messaging
- Starting ActiveMQ
- Creating a topic
- Golden source update
- Service methods
- Raising an event on data updates
- Using Spring JMSTemplate to send a message
- Query model update
- Insert, update, and delete methods
- Testing the CQRS update scenario end to end
- Chapter 5: Testing Cloud-Native Applications
- Writing test cases before development
- TDD
- BDD
- Testing patterns
- A/B testing
- Test doubles
- Test Stubs
- Mock objects
- Mock APIs
- Types of testing
- Unit testing
- Integration testing
- Load testing
- Regression testing
- Ensuring code review and coverage
- Testing the Product service
- BDD through Cucumber
- Why Cucumber?
- How does Cucumber work?
- Spring Boot Test
- Code coverage using JaCoCo
- Integrating JaCoCo
- Chapter 6: Cloud-Native Application Deployment
- Deployment models
- Virtualization
- PaaS
- Containers
- Docker
- Building Docker images
- Eureka server
- Product API
- Connecting to an external Postgres container
- Blue-green deployment
- Canary deployment
- Dark release
- Applying CI/CD to automate
- Chapter 7: Cloud-Native Application Runtime
- The need for a runtime
- Implementing runtime reference architecture
- Service registry
- Configuration server
- The server part of the config server
- The config client
- Refreshing the properties
- The microservice frontend
- Netflix Zuul
- What happens behind the scenes
- Running them all at once
- Kubernetes - container orchestration
- Kubernetes architecture and services
- Minikube
- Running product service in Kubernetes
- Platform as a Service (PaaS).
- The case for PaaS
- Cloud Foundry
- The concept of org, account, and space
- The need for implementations of Cloud Foundry
- Pivotal Cloud Foundry (PCF)
- PCF components
- PCF Dev
- Installation
- Starting PCF Dev
- Creating the MySQL service on PCF
- Running the product service on PCF Dev
- Deploying to Cloud Foundry
- Chapter 8 : Platform Deployment - AWS
- AWS platform
- AWS platform deployment options
- Deploying Spring Boot API to Beanstalk
- Deploying a runnable JAR
- Deploying Docker containers
- Deploying Spring Boot App to the Elastic Container Service
- Deploying to AWS Lambda
- Chapter 9: Platform Deployment - Azure
- Azure platform
- Azure platform deployment options
- Deploying Spring Boot API to Azure App Service
- Deploying Docker containers to Azure Container Service
- Deploying Spring Boot API to Azure Service Fabric
- Basic environment setup
- Packaging the product API application
- Starting the Service Fabric cluster
- Deploying the product API application to the Service Fabric cluster
- Connecting to the local cluster
- Connecting to the Service Fabric party cluster
- Azure cloud functions
- Environment setup
- Creating a new Java functions project
- Building and running the Java function
- Diving into code
- Chapter 10 : As a Service Integration
- XaaS
- Key design concerns when building XaaS
- Integration with third-party APIs
- Chapter 11: API Design Best Practices
- API design concerns
- API resource identification
- System API
- Process API
- Channel API
- API design guidelines
- Naming and associations
- Base URLs for a resource
- Handling errors
- Versioning
- Pagination
- Attributes
- Data formats
- Client support for limited HTTP methods
- Authentication and authorization
- Endpoint redirection
- Content negotiation.
- Secure
- API modeling
- Open API
- RESTful API Modeling Language (RAML)
- API gateway deployment models
- Chapter 12: Digital Transformation
- Application portfolio rationalization
- Portfolio analysis - business and technical parameters
- Retire
- Retain
- Consolidate
- Transform
- Monolithic application to distributed cloud-native application
- Transformation of a monolithic application to a distributed application
- Customer journey mapping to domain-driven design
- Defining the architecture runway
- Developer build
- Breaking the monolithic application
- Bringing it all together
- Building your own platform services (control versus delegation)
- Other Books You May Enjoy
- Index.
- Notes:
- Includes index.
- Description based on online resource; title from PDF title page (EBC, viewed March 22, 2018).
- ISBN:
- 1-78712-884-9
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.