▶Book Description
Spring is one of the best frameworks on the market for developing web, enterprise, and cloud ready software. Spring Boot simplifies the building of complex software dramatically by reducing the amount of boilerplate code, and by providing production-ready features and a simple deployment model.
This book will address the challenges related to power that come with Spring Boot's great configurability and flexibility. You will understand how Spring Boot configuration works under the hood, how to overwrite default configurations, and how to use advanced techniques to prepare Spring Boot applications to work in production. This book will also introduce readers to a relatively new topic in the Spring ecosystem - cloud native patterns, reactive programming, and applications. Get up to speed with microservices with Spring Boot and Spring Cloud. Each chapter aims to solve a specific problem or teach you a useful skillset. By the end of this book, you will be proficient in building and deploying your Spring Boot application.
▶What You Will Learn
⦁ Build logically structured and highly maintainable Spring Boot applications
⦁ Configure RESTful microservices using Spring Boot
⦁ Make the application production and operation-friendly with Spring Actuator
⦁ Build modern, high-performance distributed applications using cloud patterns
⦁ Manage and deploy your Spring Boot application to the cloud (AWS)
⦁ Monitor distributed applications using log aggregation and ELK
▶Key Features
⦁ Build and deploy your microservices architecture in the cloud
⦁ Build event-driven resilient systems using Hystrix and Turbine
⦁ Explore API management tools such as KONG and API documentation tools such as Swagger
▶Who This Book Is For
The book is targeted at experienced Spring and Java developers who have a basic knowledge of working with Spring Boot. The reader should be familiar with Spring Boot basics, and aware of its benefits over traditional Spring Framework-based applications.
▶What this book covers
⦁ Chapter 1, Getting Started with Spring Boot 2.0, will give you an overview of Spring Boot 2.0 and all its new features, including some essential key components. You'll also get an overview of the greater the Spring Boot.
⦁ Chapter 2, Customizing Auto-Configuration in Spring Boot Application, will give an overview of the Spring Boot auto-configuration feature and explains how you can override the default autoconfiguration.
⦁ Chapter 3, Getting Started with Spring CLI and Actuator, will show you several ways to create Spring Boot applications using Spring Boot's web-based interface, the STS IDE, and Spring Boot CLI. In this chapter, we will discuss Spring Boot CLI deeply and will also see how to install it on your machine and how to use it to create Spring Boot applications. Also, you'll see Spring Boot's production-ready features using the Actuator.
⦁ Chapter 4, Getting Started with Spring Cloud and Configuration, will explore how to create a configuration server to provide a set of configuration files from a Git repository to client applications. In this chapter, the reader will also learn about Spring Cloud configuration service and how to build and consume the configuration service.
⦁ Chapter 5, Spring Cloud Netflix and Service Discovery, will explore Spring Cloud Netflix and Service Discovery with Eureka.
⦁ Chapter 6, Building Spring Boot RESTful Microservice, will build a RESTful atomic microservice that performs CRUD operations on an in-memory database, either HSQL or H2, using Spring Cloud and Spring Data, enable the service for service discovery registration to the Eureka server.
⦁ Chapter 7, Creating API Gateway with Netflix Zuul Proxy, will explore the need of the API gateway pattern for microservices communication, either from UI components or from inter service calls. We will implement an API gateway using the Netflix API Zuul. We will see how to set up a Zuul proxy in your application.
⦁ Chapter 8, Simplify HTTP API with Feign Client, will explore what Feign is and how it works. It gives a detailed explanation of how Feign can be extended/customized for business needs, with a reference implementation for a custom encoder, decoder, Hystrix, and exception handling with unit testing.
⦁ Chapter 9, Building Event-Driven and Asynchronous Reactive Systems, will provide a detailed overview of how to use event-driven architectures to build event-driven microservices as cloud-native applications. We will look at some of the important concepts and themes behind handling data consistency in distributed systems.
⦁ Chapter 10, Building Resilient Systems Using Hystrix and Turbine, will explore the circuit breaker pattern with a reference implementation using the Netflix Hystrix library, touching base on configuring the Turbine dashboard to aggregate hystrix streams from multiple services.
⦁ Chapter 11, Testing Spring Boot Application, will explore unit testing Spring Boot Services using JUnit and Mockito. All our reference implementation will have unit testing done, so this chapter is more of an aggregation of the different testing mechanisms available for microservices.
⦁ Chapter 12, Containerizing Microservice, will provide an introduction to containers, dockerizing the services built in the previous chapter, writing a Dockerfile, orchestrating the containers using docker-compose, and providing an orchestration example in Kubernetes.
⦁ Chapter 13, API Management, will explore the need for an API manager in distributed systems, setting up KONG open source API manager, configuring the API endpoints built in the previous chapters in the KONG API Manager, introducing Swagger for API standards, and finally closing with demonstrating rate limiting and logging using KONG.
⦁ Chapter 14, Deploying in Cloud (AWS), will explore deploying microservices in AWS EC2 instances manually and using cloudformation scripts. You will learn how to run a Dockerenabled Spring Boot microservice application on Amazon EC2 instances.
⦁ Chapter 15, Production Ready Service Monitoring and Best Practices, will elaborate on some of the best practices in building distributed systems and also will elaborate on performance monitoring for production ready services. We will introduce log aggregation using the ELK(Elasticsearch/Logstash/Kibana) stack for a distributed application.