万本电子书0元读

万本电子书0元读

顶部广告

Cloud-Native Applications in Java电子书

售       价:¥

6人正在读 | 0人评论 9.8

作       者:Ajay Mahajan,Munish Kumar Gupta,Shyam Sundar

出  版  社:Packt Publishing

出版时间:2018-02-26

字       数:37.9万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Highly available microservice-based web apps for Cloud with Java About This Book ? Take advantage of the simplicity of Spring to build a full-fledged application ? Let your applications run faster while generating smaller cloud service bills ? Integrate your application with various tools such as Docker and ElasticSearch and use specific tools in Azure and AWS Who This Book Is For Java developers who want to build secure, resilient, robust and scalable applications that are targeted for cloud based deployment, will find this book helpful. Some knowledge of Java, Spring, web programming and public cloud providers (AWS, Azure) should be sufficient to get you through the book. What You Will Learn ? See the benefits of the cloud environment when it comes to variability, provisioning, and tooling support ? Understand the architecture patterns and considerations when developing on the cloud ? Find out how to perform cloud-native techniques/patterns for request routing, RESTful service creation, Event Sourcing, and more ? Create Docker containers for microservices and set up continuous integration using Jenkins ? Monitor and troubleshoot an application deployed in the cloud environment ? Explore tools such as Docker and Kubernetes for containerization and the ELK stack for log aggregation and visualization ? Use AWS and Azure specific tools to design, develop, deploy, and manage applications ? Migrate from monolithic architectures to a cloud native deployment In Detail 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, tools, and resources they’re coding against. If you’re a Java developer who wants to build secure, resilient, robust, and scalable applications that are targeted for cloud-based deployment, this is the book for you. It will be your one stop guide to building cloud-native applications in Java Spring that are hosted in On-prem or cloud providers - AWS and Azure The book begins by explaining the driving factors for cloud adoption and shows you how cloud deployment is different from regular application deployment on a standard data centre. You will learn about design patterns specific to applications running in the cloud and find out how you can build a microservice in Java Spring using REST APIs You will then take a deep dive into the lifecycle of building, testing, and deploying applications with maximum automation to reduce the deployment cycle time. Gradually, you will move on to configuring the AWS and Azure platforms and working with their APIs to deploy your application. Finally, you’ll take a look at API design concerns and their best practices. You’ll also learn how to migrate an existing monolithic application into distributed cloud native applications. By the end, you will understand how to build and monitor a scalable, resilient, and robust cloud native application that is always available and fault tolerant. Style and approach Filled with examples, this book will build you an entire cloud-native application through its course and will stop at each point and explain in depth the functioning and design considerations that will make a robust, highly available application
目录展开

Title Page

Copyright and Credits

Cloud-Native Applications in Java

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

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部