Video description
Beginning with the basics, this course covers the core principles of microservices architecture, contrasting it with traditional monolithic structures to highlight its modern software development benefits. You'll learn the process of breaking down complex applications into manageable, modular services that can be developed, deployed, and scaled independently. As the course unfolds, you'll delve into the creation of microservices using Spring Boot, exploring its convention over configuration philosophy that speeds up development time without sacrificing power or flexibility. With Spring Cloud, master the management of your microservices ecosystem, covering service discovery with Netflix Eureka, client-side load balancing with Ribbon, and implementing API gateways for efficient service-to-service communication.
Advanced topics include ensuring microservices resilience with Resilience4J, where you'll tackle patterns like circuit breakers and bulkheads to design fault-tolerant systems. Gain hands-on experience with deploying microservices in containerized environments using Docker and orchestrating them with Kubernetes, preparing you for the cloud-native landscape.
By the end of this course, you will have a solid foundation in microservices, along with the skills to design, develop, and deploy microservices applications confidently.
What you will learn
- Create and manage microservices using Spring Boot and Spring Cloud
- Utilize Docker and Kubernetes for microservices deployment
- Apply Spring Security for authentication and authorization
- Understand and implement Eureka, Ribbon, Feign, and Hystrix
- Configure and manage microservices with Spring Cloud Config
- Enhance microservices with centralized logging and monitoring
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 Rao Karanam is the founder of in28Minutes, a company that trains 300,000 developers across the globe in relation to the cloud, microservices, Spring, Spring Boot, and Containers. He loves programming, and loves consulting for start-ups on developing scalable cloud applications and following modern development practices, such as BDD, continuous delivery, and DevOps. In his spare time, he loves hiking, cricket, and tennis. His ambition is to spend a year hiking the Himalayas.
Table of contents
- Chapter 1 : Introduction
- Chapter 2 : Introduction to Web Services
-
Chapter 3 : RESTful Web Services with Spring Boot
- Section Introduction - RESTful Web Services with Spring Boot
- Step 01 - Initializing a RESTful Services Project with Spring Boot
- Step 02 - Understanding the RESTful Services We will Create in this Course
- Step 03 - Creating a Hello World Service
- Step 04 - Enhancing the Hello World Service to Return a Bean
- Step 05 - Quick Review of Spring Boot Auto Configuration and Dispatcher Servlet
- Step 06 - Enhancing the Hello World Service with a Path Variable
- Step 07 - Creating User Bean and User Service
- Step 08 - Implementing GET Methods for User Resource
- Step 09 - Implementing POST Method to Create User Resource
- Step 10 - Enhancing POST Method to Return Correct HTTP Status Code and Location
- Step 11 - Implementing Exception Handling - 404 Resource Not Found
- Step 12 - Implementing Generic Exception Handling for All Resources
- Step 13 - Exercise: User Post Resource and Exception Handling
- Step 14 - Implementing DELETE Method to Delete a User Resource
- Step 15 - Implementing Validations for RESTful Services
- Step 16 - Implementing HATEOAS for RESTful Services
- Step 17 - Overview of Advanced RESTful Service Features
- Step 18 - Internationalization for RESTful Service
- Step 18 Part 2 - Internationalization for RESTful Services
- Step 19 - Content Negotiation - Implementing Support for XML
- Step 20 - Configuring Auto Generation of Swagger Documentation
- Step 21 - Introduction to Swagger Documentation Format
- Step 22 - Enhancing Swagger Documentation with Custom Annotations
- Step 23 - Monitoring APIs with Spring Boot Actuator
- Step 24 - Implementing Static Filtering for RESTful Service
- Step 25 - Implementing Dynamic Filtering for RESTful Service
- Step 26 - Versioning RESTful Services - Basic Approach with URIs
- Step 27 - Versioning RESTful Services - Header and Content Negotiation Approach
- Step 28 - Implementing Basic Authentication with Spring Security
- Step 29 - Overview of Connecting RESTful Service to JPA
- Step 30 - Creating User Entity and Some Test Data
- Step 31 - Updating GET Methods on User Resource to Use JPA
- Step 32 - Updating POST and DELETE Methods on User Resource to Use JPA
- Step 33 - Creating Post Entity and Many to One Relationship with User Entity
- Step 34 - Implementing a GET Service to Retrieve All Posts of a User
- Step 35 - Implementing a POST Service to Create a Post for a User
- Step 36 - Richardson Maturity Model
- Step 37 - RESTful Web Services - Best Practices
-
Chapter 4 : Quick Introduction to Microservices
- Section Introduction - Microservices with Spring Cloud
- Step 00 - 01 - Introduction to Microservices
- Step 00 - 02 - Challenges with Microservices
- Step 00 - 03 - Introduction to Spring Cloud
- Step 00 - 04 - Advantages of Microservices Architectures
- Step 00 - 05 - Microservice Components - Standardizing Ports and URL
-
Chapter 5 : Microservices with Spring Cloud - V1
- Next Section Uses Latest Version of Spring Boot
- Step 01 - Part 1 - Introduction to Limits Microservice and Spring Cloud Config Server
- Step 01 - Part 2 - Setting Up Limits Microservice
- Step 02 - Creating a Hard Coded Limits Service
- Step 03 - Enhance Limits Service to Get Configuration from Application Properties
- Step 04 - Setting Up Spring Cloud Config Server
- Step 05 - Installing Git
- Step 06 - Creating Local Git Repository
- Step 07 - Connect Spring Cloud Config Server to Local Git Repository
- Step 08 - Configuration for Multiple Environments in Git Repository
- Step 09 - Connect Limits Service to Spring Cloud Config Server
- Step 10 - Configuring Profiles for Limits Service
- Step 11 - A Review of Spring Cloud Config Server
- Step 12 - Introduction to Currency Conversion and Currency Exchange Microservice
- Step 13 - Setting Up Currency Exchange Microservice
- Step 14 - Create a Simple Hard Coded Currency Exchange Service
- Step 15 - Setting Up Dynamic Port in the Response
- Step 16 - Configure JPA and Initialized Data
- Step 17 - Create a JPA Repository
- Step 18 - Setting Up Currency Conversion Microservice
- Step 19 - Creating a Service for Currency Conversion
- Step 20 - Invoking Currency Exchange Microservice from Currency Conversion Micro
- Step 21 - Using Feign REST Client for Service Invocation
- Step 22 - Setting Up Client-Side Load Balancing with Ribbon
- Step 23 - Running Client-Side Load Balancing with Ribbon
- Step 24 - Understand the Need for a Naming Server
- Step 25 - Setting Up Eureka Naming Server
- Step 26 - Connecting Currency Conversion Microservice to Eureka
- Step 27 - Connecting Currency Exchange Microservice to Eureka
- Step 28 - Distributing Calls Using Eureka and Ribbon
- Step 29 - A Review of Implementing Eureka, Ribbon, and Feign
- Step 30 - Introduction to API Gateways
- Step 31 - Setting Up Zuul API Gateway
- Step 32 - Implementing Zuul Logging Filter
- Step 33 - Executing a Request through Zuul API Gateway
- Step 34 - Setting Up Zuul API Gateway Between Microservice Invocations
- Step 35 - Introduction to Distributed Tracing
- Step 36 - Implementing Spring Cloud Sleuth
- Step 37 - Introduction to Distributed Tracing with Zipkin
- Step 38 - Installing Rabbit MQ
- Step 39 - Setting Up Distributed Tracing with Zipkin
- Step 40 - Connecting Microservices to Zipkin
- Step 41 - Using Zipkin UI Dashboard to Trace Requests
- Step 42 - Understanding the Need for Spring Cloud Bus
- Step 43 - Implementing Spring Cloud Bus
- Step 44 - Fault Tolerance with Hystrix
-
Chapter 6 : Microservices with Spring Cloud - V2
- What's NEW in V2?
- Have You Already Completed V1?
- Step 01 - Setting Up Limits Microservice – V2
- Step 02 - Creating a Hard Coded Limits Service – V2
- Step 03 - Enhance Limits Service - Get Configuration from Application Props - V2
- Step 04 - Setting Up Spring Cloud Config Server - V2
- Step 05 - Installing Git and Creating Local Git Repository - V2
- Step 06 - Connect Spring Cloud Config Server to Local Git Repository - V2
- Step 07 - Connect Limits Service to Spring Cloud Config Server - V2
- Step 08 - Configuring Profiles for Limits Service - V2
- Debugging Guide for Microservices V2 + Docker + Docker Compose
- Step 09 - Introduction to Currency Conversion and Exchange Microservices - V2
- Step 10 - Setting Up Currency Exchange Microservice - V2
- Step 11 - Create a Simple Hard Coded Currency Exchange Service - V2
- Step 12 - Setting Up Dynamic Port in the Response - V2
- Step 13 - Configure JPA and Initialized Data - V2
- Step 14 – Create a JPA Repository – V2
- Step 15 - Setting Up Currency Conversion Microservice - V2
- Step 16 - Creating a Service for Currency Conversion - V2
- Step 17 - Invoking Currency Exchange from Currency Conversion Microservice - V2
- Step 18 - Using Feign REST Client for Service Invocation - V2
- Step 19 - Understand Naming Server and Setting Up Eureka Naming Server - V2
- Step 20 - Connect Currency Conversion and Currency Exchange Microservices - V2
- Step 21 - QuickStart by Importing Microservices
- Step 22 - Load Balancing with Eureka, Feign, and Spring Cloud LoadBalancer - V2
- Step 22 - Setting Up Spring Cloud API Gateway
- Step 23 - Enabling Discovery Locator with Eureka for Spring Cloud Gateway
- Step 24 - Exploring Routes with Spring Cloud Gateway
- Step 25 - Implementing spring Cloud Gateway Logging Filter
- Step 26 - Getting Started with Circuit Breaker - Resilience4j
- Step 27 - Playing with Resilience4j - Retry and Fallback Methods
- Step 28 - Playing with Circuit Breaker Features of Resilience4j
- Step 29 - Exploring Rate Limiting and BulkHead Features of Resilience4j - V2
- Debugging Guide for Microservices V2 + Docker + Docker Compose
-
Chapter 7 : Docker with Microservices Using Spring Boot and Spring Cloud - V2
- Step 00 - Match Made in Heaven - Docker and Microservices
- Step 01 - Installing Docker
- Step 02 - Your First Docker Usecase - Deploy a Spring Boot Application
- Step 03 - Docker Concepts - Registry, Repository, Tag, Image, and Containers
- Step 04 - Playing with Docker Images and Containers
- Step 05 - Understanding Docker Architecture - Docker Client, Docker Engine
- Step 06 - Why is Docker Popular?
- Step 07 - Playing with Docker Images
- Step 08 - Playing with Docker Containers
- Step 09 - Playing with Docker Commands - stats, system
- Step 10 - Introduction to Distributed Tracing
- Step 11 - Launching Zipkin Container Using Docker
- Step 12 00 - Getting Started with Observability and OpenTelemetry
- Step 12 - Connecting Currency Exchange Microservice with Zipkin
- Step 13 - Connecting Currency Conversion Microservice and API Gateway with Zipkin
- Step 14 - Getting Setup with Microservices for Creating Container Images
- Step 15 - Creating Container Image for Currency Exchange Microservice
- Step 16 - Getting Started with Docker Compose - Currency Exchange Microservice
- Step 17 - Running Eureka Naming Server with Docker Compose
- Step 18 - Running Currency Conversion Microservice with Docker Compose
- Step 19 - Running Spring Cloud API Gateway with Docker Compose
- Step 20 - Running Zipkin with Docker Compose
- Step 21 - Running Zipkin and RabbitMQ with Docker Compose
-
Chapter 8 : Kubernetes with Microservices using Docker, Spring Boot, and Spring Cloud - V2
- Step 00 - Docker, Kubernetes, and Microservices - Made for Each Other
- Step 01 - Getting Started with Docker, Kubernetes, and Google Kubernetes Engine
- Step 02 - Creating Google Cloud Account
- Step 03 - Creating Kubernetes Cluster with Google Kubernete Engine (GKE)
- Step 04 - Review Kubernetes Cluster and Learn Few Fun Facts about Kubernetes
- Step 05 - Deploy Your First Spring Boot Application to Kubernetes Cluster
- Step 06 - Quick Look at Kubernetes Concepts - Pods, Replica Sets, and Deployment
- Step 07 - Understanding Pods in Kubernetes
- Step 08 - Understanding Replica Sets in Kubernetes
- Step 09 - Understanding Deployment in Kubernetes
- Step 10 - Quick Review of Kubernetes Concepts - Pods, Replica Sets, and Deployments
- Step 11 - Understanding Services in Kubernetes
- Step 12 - Quick Review of GKE on Google Cloud Console
- Installing Gcloud
- Installing Kubectl
- Step 13 - Understanding Kubernetes Architecture - Master Node and Nodes
- Step 14 - Set Up Currency Exchange and Conversion Microservices - Kubernetes
- Step 15 - Container Images for Exchange and Currency Conversion Microservices
- Step 16 - Deploy Microservices to Kubernetes and Understand Service Discovery
- Step 17 - Creating Declarative Configuration Kubernetes YAML for Microservices
- Step 18 - Clean Up Kubernetes YAML for Microservices
- Step 19 - Enable Logging and Tracing APIs in Google Cloud Platform
- Step 20 - Deploying Microservices Using Kubernetes YAML Configuration
- Step 21 - Playing with Kubernetes Declarative YAML Configuration
- Step 22 - Creating Environment Variables to Enable Microservice Communication
- Step 23 - Understanding Centralized Configuration in Kubernetes - Config Maps
- Step 24 - Exploring Centralized Logging and Monitoring in GKE
- Step 25 - Exploring Microservices Deployments with Kubernetes
- Step 26 - Configuring Liveness and Readiness Probes for Microservices with K8S
- Step 27 - Autoscaling Microservices with Kubernetes
- Step 28 - Delete Kubernetes Cluster and Thank You!
-
Chapter 9 : Appendix - Introduction to Spring Boot in 12 Steps
- Step 01 - Getting Started with Spring Boot – Goals
- Step 02 - Understanding the World Before Spring Boot - 10000 Feet Overview
- Step 03 - Setting up New Spring Boot Project with Spring Initializr
- Step 04 - Build a Hello World API with Spring Boot
- Step 05 - Understanding the Goal of Spring Boot
- Step 06 - Understanding Spring Boot Magic - Spring Boot Starter Projects
- Step 07 - Understanding Spring Boot Magic - Auto Configuration
- Step 08 - Build Faster with Spring Boot DevTools
- Step 09 - Get Production Ready with Spring Boot - 1 – Profiles
- Step 10 - Get Production Ready with Spring Boot - 2 – ConfigurationProperties
- Step 11 - Get Production Ready with Spring Boot - 3 - Embedded Servers
- Step 12 – Get Production Ready with Spring Boot - 4 – Actuator
- Step 13 - Understanding Spring Boot vs Spring vs Spring MVC
- Step 14 - Getting Started with Spring Boot – Review
- Chapter 10 : Appendix - Introduction to JUnit
-
Chapter 11 : Appendix - Introduction To Mockito
- 02 Step 00 - Introduction to Section - Mockito in 5 Steps
- 02 Step 01 - Setting up a Spring Boot Project
- 02 Step 02 - Understanding problems with Stubs
- 02 Step 03 - Writing your first Mockito test with Mocks
- 02 Step 04 - Simplifying Tests with Mockito Annotations - @Mock, @InjectMocks
- 02 Step 05 - Exploring Mocks further by Mocking List interface
-
Chapter 12 : Appendix - Introduction to Maven
- Maven Step 01 - Introduction to Maven
- Maven Step 02 - Creating a Spring Boot Project with Maven
- Maven Step 03 - Exploring Maven pom.xml for Spring Boot Project
- Maven Step 04 - Exploring Maven Parent Pom for Spring Boot Project
- Maven Step 05 - Exploring Maven Further
- Maven Step 06 - Exploring Maven Build Lifecycle with a Spring Boot Project
- Maven Step 07 - How does Maven Work?
- Maven Step 08 - Playing with Maven Commands
- Maven Step 09 - How are Spring Projects Versioned?
-
Chapter 13 : Appendix - Introduction to Gradle
- Gradle Step 01 - Getting Started with Gradle
- Gradle Step 02 - Creating a Spring Boot Project with Gradle
- Gradle Step 03 - Exploring Gradle Build and Settings Files
- Gradle Step 04 - Exploring Gradle Plugins for Java and Spring Boot
- Gradle Step 05 - Maven or Gradle - Which one to use for Spring Boot Projects?
-
Chapter 14 : Appendix - Introduction to JPA in 10 Steps - V2
- Step 01 - Getting Started with JPA and Hibernate – Goals
- Step 02 - Setting up New Spring Boot Project for JPA and Hibernate
- Step 03 - Launching up H2 Console and Creating Course Table in H2
- Step 04 - Getting Started with Spring JDBC
- Step 05 - Inserting Hardcoded Data using Spring JDBC
- Step 06 - Inserting and Deleting Data using Spring JDBC
- Step 07 - Querying Data using Spring JDBC
- Step 08 - Getting Started with JPA and EntityManager
- Step 09 - Exploring the Magic of JPA
- Step 10 - Getting Started with Spring Data JPA
- Step 11 - Exploring features of Spring Data JPA
- Step 12 - Understanding difference between Hibernate and JPA
-
Chapter 15 : APPENDIX - Introduction to Functional Programming in 30 Minutes
- Step 00 - Introduction to Functional Programming – Overview
- Step 01 - Getting Started with Functional Programming with Java
- Step 02 - Writing Your First Java Functional Program
- Step 03 - Improving Java Functional Program with filter
- Step 04 - Using Lambda Expression to enhance your Functional Program
- Step 05 - Do Functional Programming Exercises with Streams, Filters and Lambdas
- Step 06 - Using map in Functional Programs - with Exercises
- Step 07 - Understanding Optional class in Java
- Step 08 - Quick Review of Functional Programming Basics
Product information
- Title: Master Microservices with Spring Boot and Spring Cloud
- Author(s):
- Release date: April 2024
- Publisher(s): Packt Publishing
- ISBN: 9781789132779
You might also like
book
Microservices with Spring Boot and Spring Cloud - Second Edition
Create and deploy production-quality microservices-based applications — New edition updated for the smooth running of Spring, …
book
Hands-On Microservices with Spring Boot and Spring Cloud
Apply microservices patterns to build resilient and scalable distributed systems Key Features Understand the challenges of …
video
Building Microservices with Spring Boot, Second Edition
7+ Hours of Video Instruction The term “microservices” has gained significant traction over the last few …
video
Spring Boot Fundamentals: Building Java-Based Microservices and Enterprise Native Cloud Applications
This video will develop a foundation for creating Java-based, enterprise-ready, cloud applications and microservices using the …