Master Microservices with Spring Boot and Spring Cloud

Video description

Developing RESTful web services and REST API is fun. The combination of Java, Spring Boot, Spring Web MVC, Spring Web Services, and JPA makes it even more fun. And it's even more fun to create microservices.

In the first part of the course, you will learn the basics of RESTful web services developing resources for a social media application. You will learn to implement these resources with multiple features - versioning, exception handling, documentation (Swagger), basic authentication (Spring Security), filtering, and HATEOAS. You will learn the best practices in designing RESTful web services.

In the first part of the course, you will learn the basics of RESTful web services developing resources for a social media application. You will learn to implement these resources with multiple features - versioning, exception handling, documentation (Swagger), basic authentication (Spring Security), filtering, and HATEOAS. You will learn the best practices in designing RESTful web services.

In the third part of the course, you will learn the basics of Docker. You will understand how to build containers for microservices using Docker and Spring Cloud.

In the fourth part of the course, you will learn the basics of Kubernetes. You will understand how to orchestrate microservices with Kubernetes.

By the end of the course, you will learn to build an amazing REST API with Spring Boot, build microservices with Spring Boot and Spring Cloud, build containers with Docker, and finally, orchestrate microservices with Kubernetes.

What You Will Learn

  • Develop and design RESTful web services with Spring Boot
  • Develop microservices with Spring Boot and Spring Cloud
  • Orchestrate microservices with Kubernetes
  • Create containers for microservices with Docker
  • Implement fault tolerance for microservices with Hystrix
  • Implement distributed tracing for microservices with Spring Cloud Sleuth and Zipkin

Audience

This course is for individuals at both beginner and experienced levels who want to learn how to design and develop RESTful web services with Spring Boot, and design and develop microservices with Spring Cloud. Apart from this, enthusiasts who want to learn to build containers for microservices with Docker and orchestrate microservices with Kubernetes.

The basic requirement for this course is the attitude to learn while having fun. This course is designed for students with zero experience with either of the technologies – Java, Spring Boot, Spring Cloud, Docker, and Kubernetes.

About The Author

In28Minutes Official: Ranga Karanam is a seasoned technologist and architect with over two decades of expertise in programming, design, and architecture. He founded in28Minutes with the goal of helping students master cutting-edge cloud-native technologies such as AWS, Azure, Google Cloud, Docker, and Kubernetes. With 15 years of experience in Java programming and design, Ranga has collaborated with top banking clients worldwide.

His passion for creating hands-on courses with real-world projects motivated him to develop the Step-By-Step series of courses that follow a problem-solution-based approach, with practical and real-world application examples.

Ranga and his team at in28Minutes specialize in Java and related frameworks such as Spring, Spring Boot, Spring MVC, Struts, and Hibernate. They are committed to equipping learners with the skills and knowledge necessary to succeed in today’s rapidly evolving technology landscape.

Table of contents

  1. Chapter 1 : Introduction
    1. Microservices and RESTful APIs with Spring Boot and Spring Cloud
    2. Introduction to the Course and Course Guide
    3. A Surprise! New Course Updates
  2. Chapter 2 : Introduction to Web Services
    1. What is a Web Service?
    2. Important Questions Related to Web Services
    3. Web Services – Key Terminology
    4. Introduction to SOAP (Simple Object Access Protocol) Web Services
    5. Introduction to RESTful Web Services
    6. SOAP Versus RESTful Web Services
  3. Chapter 3 : RESTful Web Services with Spring Boot
    1. Section Introduction – RESTful Web Services with Spring Boot
    2. Step 01 – Initializing a RESTful Services Project with Spring Boot
    3. Step 02 – Understanding the RESTful Services We will Create in this Course
    4. Step 03 – Creating a Hello World Service
    5. Step 04 – Enhancing the Hello World Service to Return a Bean
    6. Step 05 – Quick Review of Spring Boot Auto Configuration and Dispatcher Servlet
    7. Step 06 – Enhancing the Hello World Service with a Path Variable
    8. Step 07 – Creating User Bean and User Service
    9. Step 08 – Implementing GET Methods for User Resource
    10. Step 09 – Implementing POST Method to Create User Resource
    11. Step 10 – Enhancing POST Method to Return Correct HTTP Status Code and Location
    12. Step 11 – Implementing Exception Handling – 404 Resource Not Found
    13. Step 12 – Implementing Generic Exception Handling for All Resources
    14. Step 13 – Exercise: User Post Resource and Exception Handling
    15. Step 14 – Implementing DELETE Method to Delete a User Resource
    16. Step 15 – Implementing Validations for RESTful Services
    17. Step 16 – Implementing HATEOAS for RESTful Services
    18. Step 17 – Overview of Advanced RESTful Service Features
    19. Step 18 – Internationalization for RESTful Service
    20. Step 18 Part 2 – Internationalization for RESTful Services
    21. Step 19 – Content Negotiation – Implementing Support for XML
    22. Step 20 – Configuring Auto Generation of Swagger Documentation
    23. Step 21 – Introduction to Swagger Documentation Format
    24. Step 22 – Enhancing Swagger Documentation with Custom Annotations
    25. Step 23 – Monitoring APIs with Spring Boot Actuator
    26. Step 24 – Implementing Static Filtering for RESTful Service
    27. Step 25 – Implementing Dynamic Filtering for RESTful Service
    28. Step 26 – Versioning RESTful Services – Basic Approach with URIs
    29. Step 27 – Versioning RESTful Services – Header and Content Negotiation Approach
    30. Step 28 – Implementing Basic Authentication with Spring Security
    31. Step 29 – Overview of Connecting RESTful Service to JPA
    32. Step 30 – Creating User Entity and Some Test Data
    33. Step 31 – Updating GET Methods on User Resource to Use JPA
    34. Step 32 – Updating POST and DELETE Methods on User Resource to Use JPA
    35. Step 33 – Creating Post Entity and Many to One Relationship with User Entity
    36. Step 34 – Implementing a GET Service to Retrieve All Posts of a User
    37. Step 35 – Implementing a POST Service to Create a Post for a User
    38. Step 36 – Richardson Maturity Model
    39. Step 37 – RESTful Web Services – Best Practices
  4. Chapter 4 : Quick Introduction to Microservices
    1. Section Introduction – Microservices with Spring Cloud
    2. Step 00 – 01 – Introduction to Microservices
    3. Step 00 – 02 – Challenges with Microservices
    4. Step 00 – 03 – Introduction to Spring Cloud
    5. Step 00 – 04 – Advantages of Microservices Architectures
    6. Step 00 – 05 – Microservice Components – Standardizing Ports and URL
  5. Chapter 5 : Microservices with Spring Cloud – V1
    1. Next Section Uses Latest Version of Spring Boot
    2. Step 01 – Part 1 – Introduction to Limits Microservice and Spring Cloud Config Server
    3. Step 01 – Part 2 – Setting Up Limits Microservice
    4. Step 02 – Creating a Hard Coded Limits Service
    5. Step 03 – Enhance Limits Service to Get Configuration from Application Properties
    6. Step 04 – Setting Up Spring Cloud Config Server
    7. Step 05 – Installing Git
    8. Step 06 – Creating Local Git Repository
    9. Step 07 – Connect Spring Cloud Config Server to Local Git Repository
    10. Step 08 – Configuration for Multiple Environments in Git Repository
    11. Step 09 – Connect Limits Service to Spring Cloud Config Server
    12. Step 10 – Configuring Profiles for Limits Service
    13. Step 11 – A Review of Spring Cloud Config Server
    14. Step 12 – Introduction to Currency Conversion and Currency Exchange Microservice
    15. Step 13 – Setting Up Currency Exchange Microservice
    16. Step 14 – Create a Simple Hard Coded Currency Exchange Service
    17. Step 15 – Setting Up Dynamic Port in the Response
    18. Step 16 – Configure JPA and Initialized Data
    19. Step 17 – Create a JPA Repository
    20. Step 18 – Setting Up Currency Conversion Microservice
    21. Step 19 – Creating a Service for Currency Conversion
    22. Step 20 – Invoking Currency Exchange Microservice from Currency Conversion Micro
    23. Step 21 – Using Feign REST Client for Service Invocation
    24. Step 22 – Setting Up Client-Side Load Balancing with Ribbon
    25. Step 23 – Running Client-Side Load Balancing with Ribbon
    26. Step 24 – Understand the Need for a Naming Server
    27. Step 25 – Setting Up Eureka Naming Server
    28. Step 26 – Connecting Currency Conversion Microservice to Eureka
    29. Step 27 – Connecting Currency Exchange Microservice to Eureka
    30. Step 28 – Distributing Calls Using Eureka and Ribbon
    31. Step 29 – A Review of Implementing Eureka, Ribbon, and Feign
    32. Step 30 – Introduction to API Gateways
    33. Step 31 – Setting Up Zuul API Gateway
    34. Step 32 – Implementing Zuul Logging Filter
    35. Step 33 – Executing a Request through Zuul API Gateway
    36. Step 34 – Setting Up Zuul API Gateway Between Microservice Invocations
    37. Step 35 – Introduction to Distributed Tracing
    38. Step 36 – Implementing Spring Cloud Sleuth
    39. Step 37 – Introduction to Distributed Tracing with Zipkin
    40. Step 38 – Installing Rabbit MQ
    41. Step 39 – Setting Up Distributed Tracing with Zipkin
    42. Step 40 – Connecting Microservices to Zipkin
    43. Step 41 – Using Zipkin UI Dashboard to Trace Requests
    44. Step 42 – Understanding the Need for Spring Cloud Bus
    45. Step 43 – Implementing Spring Cloud Bus
    46. Step 44 – Fault Tolerance with Hystrix
  6. Chapter 6 : Microservices with Spring Cloud – V2
    1. What's NEW in V2?
    2. Have You Already Completed V1?
    3. Step 01 – Setting Up Limits Microservice – V2
    4. Step 02 – Creating a Hard Coded Limits Service – V2
    5. Step 03 – Enhance Limits Service – Get Configuration from Application Props – V2
    6. Step 04 – Setting Up Spring Cloud Config Server – V2
    7. Step 05 – Installing Git and Creating Local Git Repository – V2
    8. Step 06 – Connect Spring Cloud Config Server to Local Git Repository – V2
    9. Step 07 – Connect Limits Service to Spring Cloud Config Server – V2
    10. Step 08 – Configuring Profiles for Limits Service – V2
    11. Step 09 – Introduction to Currency Conversion and Exchange Microservices – V2
    12. Step 10 – Setting Up Currency Exchange Microservice – V2
    13. Step 11 – Create a Simple Hard Coded Currency Exchange Service – V2
    14. Step 12 – Setting Up Dynamic Port in the Response – V2
    15. Step 13 – Configure JPA and Initialized Data – V2
    16. Step 14 – Create a JPA Repository – V2
    17. Step 15 – Setting Up Currency Conversion Microservice – V2
    18. Step 16 – Creating a Service for Currency Conversion – V2
    19. Step 17 – Invoking Currency Exchange from Currency Conversion Microservice – V2
    20. Step 18 – Using Feign REST Client for Service Invocation – V2
    21. Step 19 – Understand Naming Server and Setting Up Eureka Naming Server – V2
    22. Step 20 – Connect Currency Conversion and Currency Exchange Microservices – V2
    23. Step 21 – QuickStart by Importing Microservices
    24. Step 22 – Load Balancing with Eureka, Feign, and Spring Cloud LoadBalancer – V2
    25. Step 22 – Setting Up Spring Cloud API Gateway
    26. Step 23 – Enabling Discovery Locator with Eureka for Spring Cloud Gateway
    27. Step 24 – Exploring Routes with Spring Cloud Gateway
    28. Step 25 – Implementing spring Cloud Gateway Logging Filter
    29. Step 26 – Getting Started with Circuit Breaker – Resilience4j
    30. Step 27 – Playing with Resilience4j – Retry and Fallback Methods
    31. Step 28 – Playing with Circuit Breaker Features of Resilience4j
    32. Step 29 – Exploring Rate Limiting and BulkHead Features of Resilience4j – V2
    33. Debugging Guide for Microservices V2 + Docker + Docker Compose
  7. Chapter 7 : Docker with Microservices Using Spring Boot and Spring Cloud – V2
    1. Step 00 – Match Made in Heaven – Docker and Microservices
    2. Step 01 – Installing Docker
    3. Step 02 – Your First Docker Usecase – Deploy a Spring Boot Application
    4. Step 03 – Docker Concepts – Registry, Repository, Tag, Image, and Containers
    5. Step 04 – Playing with Docker Images and Containers
    6. Step 05 – Understanding Docker Architecture – Docker Client, Docker Engine
    7. Step 06 – Why is Docker Popular?
    8. Step 07 – Playing with Docker Images
    9. Step 08 – Playing with Docker Containers
    10. Step 09 – Playing with Docker Commands – stats, system
    11. Step 10 – Introduction to Distributed Tracing
    12. Step 11 – Launching Zipkin Container Using Docker
    13. Step 12 – Connecting Currency Exchange Microservice with Zipkin
    14. Step 13 – Connecting Currency Conversion Microservice and API Gateway with Zipkin
    15. Step 14 – Getting Setup with Microservices for Creating Container Images
    16. Step 15 – Creating Container Image for Currency Exchange Microservice
    17. Step 16 – Getting Started with Docker Compose – Currency Exchange Microservice
    18. Step 17 – Running Eureka Naming Server with Docker Compose
    19. Step 18 – Running Currency Conversion Microservice with Docker Compose
    20. Step 19 – Running Spring Cloud API Gateway with Docker Compose
    21. Step 20 – Running Zipkin with Docker Compose
    22. Step 21 – Running Zipkin and RabbitMQ with Docker Compose
  8. Chapter 8 : Kubernetes with Microservices using Docker, Spring Boot, and Spring Cloud – V2
    1. Step 00 – Docker, Kubernetes, and Microservices – Made for Each Other
    2. Step 01 – Getting Started with Docker, Kubernetes, and Google Kubernetes Engine
    3. Step 02 – Creating Google Cloud Account
    4. Step 03 – Creating Kubernetes Cluster with Google Kubernete Engine (GKE)
    5. Step 04 – Review Kubernetes Cluster and Learn Few Fun Facts about Kubernetes
    6. Step 05 – Deploy Your First Spring Boot Application to Kubernetes Cluster
    7. Step 06 – Quick Look at Kubernetes Concepts – Pods, Replica Sets, and Deployment
    8. Step 07 – Understanding Pods in Kubernetes
    9. Step 08 – Understanding Replica Sets in Kubernetes
    10. Step 09 – Understanding Deployment in Kubernetes
    11. Step 10 – Quick Review of Kubernetes Concepts – Pods, Replica Sets, and Deployments
    12. Step 11 – Understanding Services in Kubernetes
    13. Step 12 – Quick Review of GKE on Google Cloud Console
    14. Installing Gcloud
    15. Installing Kubectl
    16. Step 13 – Understanding Kubernetes Architecture – Master Node and Nodes
    17. Step 14 – Set Up Currency Exchange and Conversion Microservices – Kubernetes
    18. Step 15 – Container Images for Exchange and Currency Conversion Microservices
    19. Step 16 – Deploy Microservices to Kubernetes and Understand Service Discovery
    20. Step 17 – Creating Declarative Configuration Kubernetes YAML for Microservices
    21. Step 18 – Clean Up Kubernetes YAML for Microservices
    22. Step 19 – Enable Logging and Tracing APIs in Google Cloud Platform
    23. Step 20 – Deploying Microservices Using Kubernetes YAML Configuration
    24. Step 21 – Playing with Kubernetes Declarative YAML Configuration
    25. Step 22 – Creating Environment Variables to Enable Microservice Communication
    26. Step 23 – Understanding Centralized Configuration in Kubernetes – Config Maps
    27. Step 24 – Exploring Centralized Logging and Monitoring in GKE
    28. Step 25 – Exploring Microservices Deployments with Kubernetes
    29. Step 26 – Configuring Liveness and Readiness Probes for Microservices with K8S
    30. Step 27 – Autoscaling Microservices with Kubernetes
    31. Step 28 – Delete Kubernetes Cluster and Thank You!
  9. Chapter 9 : Appendix – Introduction to Spring Boot in 10 Steps
    1. 0005 – Section Introduction 04 – Introduction to Spring Boot in 10 Steps
    2. Step 1 – Introduction to Spring Boot – Goals and Important Features
    3. Step 2 – Developing Spring Applications Before Spring Boot
    4. Step 3 – Using Spring Initializr to Create a Project
    5. Step 4 – Creating a Simple REST Controller
    6. Step 5 – What is Spring Boot Auto Configuration?
    7. Step 6 – Spring Boot Versus Spring Versus Spring MVC
    8. Step 7 – Spring Boot Starter Projects – Starter Web and Starter JPA
    9. Step 8 – Overview of Different Spring Boot Starter Projects
    10. Step 9 – Spring Boot Actuator
    11. Step 10 – Spring Boot Developer Tools
  10. Chapter 10 : Appendix – Introduction to JPA in 10 Steps
    1. Section Introduction – Introduction to JPA in 10 Steps
    2. Step 1 – Object Relational Impedance Mismatch
    3. Step 2 – World Before JPA – JDBC, Spring JDBC, and myBatis
    4. Step 3 – Introduction to JPA
    5. Step 4 – Creating a JPA Project Using Spring Initializr
    6. Step 5 – Defining a JPA Entity – User
    7. Step 6 – Defining a Service to Manage the Entity – UserService and EntityManager
    8. Step 7 – Using a Command Line Runner to Save the User to Database
    9. Step 8 – Magic of Spring Boot and In Memory Database H2
    10. Step 9 – Introduction to Spring Data JPA
    11. Step 10 – More JPA Repository: findById and findAll

Product information

  • Title: Master Microservices with Spring Boot and Spring Cloud
  • Author(s): In28Minutes Official
  • Release date: March 2018
  • Publisher(s): Packt Publishing
  • ISBN: 9781789132779