舉報

會員
Cloud-Native Applications in Java
Ajay Mahajan Munish Kumar Gupta Shyam Sundar 著
更新時間:2021-06-24 19:08:10
開會員,本書免費讀 >
Javadeveloperswhowanttobuildsecure,resilient,robustandscalableapplicationsthataretargetedforcloudbaseddeployment,willfindthisbookhelpful.SomeknowledgeofJava,Spring,webprogrammingandpubliccloudproviders(AWS,Azure)shouldbesufficienttogetyouthroughthebook.
最新章節
- Leave a review - let other readers know what you think
- Other Books You May Enjoy
- Summary
- Building your own platform services (control versus delegation)
- Bringing it all together
- Breaking the monolithic application
品牌:中圖公司
上架時間:2021-06-24 18:01:36
出版社:Packt Publishing
本書數字版權由中圖公司提供,并由其授權上海閱文信息技術有限公司制作發行
- Leave a review - let other readers know what you think 更新時間:2021-06-24 19:08:10
- Other Books You May Enjoy
- Summary
- Building your own platform services (control versus delegation)
- Bringing it all together
- Breaking the monolithic application
- Developer build
- Defining the architecture runway
- Customer journey mapping to domain-driven design
- Transformation of a monolithic application to a distributed application
- Monolithic application to distributed cloud-native application
- Transform
- Consolidate
- Retain
- Retire
- Portfolio analysis – business and technical parameters
- Application portfolio rationalization
- Digital Transformation
- Summary
- API gateway deployment models
- RESTful API Modeling Language (RAML)
- Open API
- API modeling
- Secure
- Content negotiation
- Endpoint redirection
- Authentication and authorization
- Client support for limited HTTP methods
- Data formats
- Attributes
- Pagination
- Versioning
- Handling errors
- Base URLs for a resource
- Naming and associations
- API design guidelines
- Channel API
- Process API
- System API
- API resource identification
- API design concerns
- API Design Best Practices
- Summary
- Integration with third-party APIs
- Key design concerns when building XaaS
- XaaS
- As a Service Integration
- Summary
- Diving into code
- Building and running the Java function
- Creating a new Java functions project
- Environment setup
- Azure cloud functions
- Connecting to the Service Fabric party cluster
- Connecting to the local cluster
- Deploying the product API application to the Service Fabric cluster
- Starting the Service Fabric cluster
- Packaging the product API application
- Basic environment setup
- Deploying Spring Boot API to Azure Service Fabric
- Deploying Docker containers to Azure Container Service
- Deploying Spring Boot API to Azure App Service
- Azure platform deployment options
- Azure platform
- Platform Deployment – Azure
- Summary
- Deploying to AWS Lambda
- Deploying Spring Boot App to the Elastic Container Service
- Deploying Docker containers
- Deploying a runnable JAR
- Deploying Spring Boot API to Beanstalk
- AWS platform deployment options
- AWS platform
- Platform Deployment – AWS
- Summary
- Deploying to Cloud Foundry
- Running the product service on PCF Dev
- Creating the MySQL service on PCF
- Starting PCF Dev
- Installation
- PCF Dev
- PCF components
- Pivotal Cloud Foundry (PCF)
- The need for implementations of Cloud Foundry
- The concept of org account and space
- Cloud Foundry
- The case for PaaS
- Platform as a Service (PaaS)
- Running product service in Kubernetes
- Minikube
- Kubernetes architecture and services
- Kubernetes – container orchestration
- Running them all at once
- What happens behind the scenes
- Netflix Zuul
- The microservice frontend
- Refreshing the properties
- The config client
- The server part of the config server
- Configuration server
- Service registry
- Implementing runtime reference architecture
- The need for a runtime
- Cloud-Native Application Runtime
- Summary
- Applying CI/CD to automate
- Dark release
- Canary deployment
- Blue-green deployment
- Deployment patterns
- Connecting to an external Postgres container
- Product API
- Eureka server
- Building Docker images
- Docker
- Containers
- PaaS
- Virtualization
- Deployment models
- Cloud-Native Application Deployment
- Summary
- Integrating JaCoCo
- Code coverage using JaCoCo
- Spring Boot Test
- How does Cucumber work?
- Why Cucumber?
- BDD through Cucumber
- Testing the Product service
- Ensuring code review and coverage
- Regression testing
- Load testing
- Integration testing
- Unit testing
- Types of testing
- Mock APIs
- Mock objects
- Test Stubs
- Test doubles
- A/B testing
- Testing patterns
- BDD
- TDD
- Writing test cases before development
- Testing Cloud-Native Applications
- Summary
- Testing the CQRS update scenario end to end
- Insert update and delete methods
- Query model update
- Using Spring JMSTemplate to send a message
- Raising an event on data updates
- Service methods
- Golden source update
- Creating a topic
- Starting ActiveMQ
- Asynchronous messaging
- Data updates for CQRS
- Exceptions and error messages
- Business validations
- Data validations
- Format validations
- Validations and error messages
- Cache invalidation
- Testing
- Deleting a product
- Testing
- Updating a product
- Testing
- Inserting a product
- REST conventions
- Data update services
- Creating the product-search service
- Getting Elasticsearch ready with test data
- The product-search service
- Splitting the services
- Creating the product service
- Getting MongoDB ready with test data
- Core product service on a document database
- Why not use only a document database or Elasticsearch?
- Elasticsearch and a document database
- Materialized views on a relational database
- Applying CQRS to separate data models and services
- Distributed cache
- Limitations of a local cache
- Under the hood
- Local cache
- Caching
- Limitations of traditional databases
- Running the service
- Simple product table
- Implementing the get services
- Extending Your Cloud-Native Application
- Summary
- The role of security
- Fit for purpose
- Cons
- Benefits
- Duplicating data
- Command Query Responsibility Segregation (CQRS)
- Data architecture for microservices
- Release patterns
- Suitability
- Benefits and trade-offs
- Service per host
- Suitability
- Benefits and trade-offs
- Service per VM
- Suitability
- Benefits and trade-offs
- Service per Docker container
- Suitability
- Benefits and trade-offs
- Service per process
- Suitability
- Benefits and trade-offs
- Service per WAR/EAR
- Suitability
- Benefits and trade-offs
- Multiple services per WAR file
- Deployment patterns
- Collapsing the microservices
- Orchestration using request/response
- Asynchronous sequential
- Asynchronous parallel
- Coordination models
- Capabilities for microservices coordination
- Why composite services?
- Composite services
- Business process management (BPM)
- Coordination patterns
- Database aggregation
- Microservice aggregation
- API aggregation
- Aggregation by client
- Content aggregation patterns
- Design patterns
- Design and deployment patterns
- Microservice design guidelines
- Service granularity
- Differences between microservices and service-oriented architecture (SOA)
- Microservice identification
- Business events
- Classification into up/downstream services
- Bounded context/domain-driven design
- Application decoupling
- Benefits of an API gateway
- Role of API gateways
- Rise and popularity of the APIs
- The trio – REST HTTP and JSON
- Designing Your Cloud-Native Application
- Summary
- Seeing the lookup in action
- Creating a product client
- Registering a product service
- Running a service registry
- Service registration and discovery
- Metering your services
- Externalizing configuration
- Enabling cloud-native behaviors
- Creating a deployable
- Testing the service on the browser
- Running the service
- Writing service and domain objects
- Writing a Spring Boot application class
- Creating a Maven project
- Writing a product service
- Spring Boot
- Vert.x
- Dropwizard
- Selecting a framework
- Building and deployment
- Testing and development
- Design
- Architecture
- Requirements/user stories
- Understanding the development life cycle
- Setting up internet connectivity
- Getting an IDE
- Setting up your developer toolbox
- Writing Your First Cloud-Native Application
- Summary
- Monolithic transformation
- Microservice adoption
- Microservices-enabling service ecosystem
- The 12-factor app
- Cloud-native and microservices
- Going serverless
- Going native
- Lift and shift
- What is cloud-native?
- Why go cloud-native?
- Introduction to Cloud-Native
- Reviews
- Get in touch
- Conventions used
- Download the color images
- Download the example code files
- To get the most out of this book
- What this book covers
- Who this book is for
- Preface
- Packt is searching for authors like you
- About the reviewer
- About the authors
- Contributors
- Foreword
- PacktPub.com
- Why subscribe?
- Packt Upsell
- Dedication
- Title Page
- coverpage
- coverpage
- Title Page
- Dedication
- Packt Upsell
- Why subscribe?
- PacktPub.com
- Foreword
- Contributors
- About the authors
- About the reviewer
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Download the color images
- Conventions used
- Get in touch
- Reviews
- 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
- 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
- Summary
- 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
- Benefits and trade-offs
- Suitability
- Service per process
- Benefits and trade-offs
- Suitability
- Service per Docker container
- Benefits and trade-offs
- Suitability
- Service per VM
- Benefits and trade-offs
- Suitability
- Service per host
- Benefits and trade-offs
- Suitability
- Release patterns
- Data architecture for microservices
- Command Query Responsibility Segregation (CQRS)
- Duplicating data
- Benefits
- Cons
- Fit for purpose
- The role of security
- Summary
- Extending Your Cloud-Native Application
- Implementing the get services
- Simple product table
- Running the service
- 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
- Testing
- 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
- Summary
- 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
- Summary
- Cloud-Native Application Deployment
- Deployment models
- Virtualization
- PaaS
- Containers
- Docker
- Building Docker images
- Eureka server
- Product API
- Connecting to an external Postgres container
- Deployment patterns
- Blue-green deployment
- Canary deployment
- Dark release
- Applying CI/CD to automate
- Summary
- 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
- Summary
- 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
- Summary
- 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
- Summary
- As a Service Integration
- XaaS
- Key design concerns when building XaaS
- Integration with third-party APIs
- Summary
- 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
- Summary
- 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)
- Summary
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-06-24 19:08:10