Microservices are all the buzz in the industry right now.
Building a microservice is not just a matter of using RESTFul APIs.
Microservices are much MUCH more than that.
In this course you will learn that Microservices are an architectural style. The allow companies to achieve massive scale while maintaining a high degree of flexibility.
This course goes beyond simple RESTful APIs and explores microservices as an architectural style.
** What Students are Saying about the Course **
5 STARS Great course, you can be sure about it. If you're fairly new to the java world and spring framework, I highly suggest to follow Spring Framework from beginner to guru (the teacher is always John). In my experience I can tell you that after the first course, I managed to progress in my career twice, with praises of my colleagues and managers. The content of both courses is very well explained and easy to learn. If you want to stand out, definitely this course worth the money.
5 STARS Very good course on microservices with Spring! It gave me a good starting point for the upcoming task at my work! 5* all the way for John!
5 STARS I like this course a lot! It's exactly what I needed after some experience with Spring Boot, to go to the next level. A lot of applications are presented, giving the opportunity to exercise what you've learned. The assignments are also very welcomed.
5 STARS Very VERY good content, well structured approach and clear explanations. Very enjoyable and educative. I'm even picking up a few techniques / frameworks I hadn't really used before.
About the Course
Traditionally, large enterprise class applications were developed as large monolithic applications.
The Spring Framework started as an alternative to J2EE (now JEE) for building these large monolithic enterprise applications.
As the industry evolved to favor microservices over monoliths, the Spring Framework and Spring Boot evolved also.
The Spring Framework gives you a battle-tested enterprise grade framework for building applications.
Spring Boot and Spring Cloud are tools specifically for the development of microservices using the Spring Framework.
Microservices present a unique set of challenges over monoliths. Spring Boot and Spring Cloud help you overcome these changes.
What are these challenges that microservices have, which traditional monoliths do not?
Is it okay for microservices to share databases?
How do you coordinate business logic across a series of microservices?
How do you manage transactions across serval microservices with different databases?
To explain these questions, in this course you get to explore a traditional Spring Boot monolith type of application. (Along the style of Spring Pet Clinic).
We will then re-create this monolithic application using a set of microservices.
You get to see, step by step how to build 3 different microservices.
Microservices are much more than just having a set of RESTFul APIs. Microservices frequently use asynchronous messaging systems, which is fully covered.
While the Spring Framework and Spring Boot are the tools you use to construct Microservices, Spring Cloud provides the tools to deploy microservices.
You get to see the latest tools in Spring Cloud for deploying Spring Boot Microservices into a distributed (or cloud) environment.
In 2018, Netflix announced several core projects to Spring Cloud were entering maintenance mode. Meaning no new development would be done on these projects.
Thus, in December of 2018, the Spring Cloud Team recommended several key replacements:
Previous Replacement
Hystrix --> Resliience4J
Ribbon --> Spring Cloud Load Balancer
Zuul 1 --> Spring Cloud Gateway
Archaius 1 --> Spring Cloud Config
Therefore, the recommend replacements are covered in this course.
Covered in this Course
In this course you will learn:
Develop RESTful Services using Spring MVC
Consume RESTFul Services with Spring RestTemplate
How to use Project Lombok
How to use MapStruct
Spring Data JPA with Hibernate
Configuration of Spring Boot for MySQL and H2
How to use and configure Jackson for processing JSON with Spring Boot
Data validation with Spring Boot and Hibernate Validator
Documentation and testing of Spring Boot microservices using Spring RESTdocs
Standardizing dependencies using Apache Maven
Spring Application Events
Using JMS Messaging using Apache ActiveMQ Artemis
The microservice Saga Pattern
How to use Spring State Machine for coordinating Sagas
Integration Testing using Spring Boot and JUnit 5
Using WireMock with JUnit 5
How to use Awaitily in your Integration Tests
The API Gateway pattern using Spring Cloud Gateway
Load Balanced Routes using Netflix Ribbon / Spring Cloud Loadbalancer
Service Registration using Netflix Eureka
Service Discovery with Netflix Eureka
Service Discovery using Spring Cloud OpenFeign
Circuit Breaker Pattern using Reslience4J and Hystrix / Spring Cloud OpenFeign
Manage configuration with Spring Cloud Config
Distributed tracing with Spring Cloud Sleuth and Zipkin
Securing Spring Cloud with Spring Security
Use Docker to create images for your Spring Boot applications
Push your Docker Images to Docker Hub
Configure Logback with Logstash for JSON logging output
Using Docker Compose to start and stop your microservices
Use ELK stack (Elasticsearch, Logstash, Kibana) for consolidated Logging
Provision virtual machines in the cloud for Eureka, Apache ActiveMQ Artemis, Spring Cloud Config, Zipkin, Elasticsearch, and Kibana.
Provision MySQL databases using Digital Ocean.
Create Docker Droplets (aka Virtual Machines) in Digital Ocean
Deploy Spring Cloud Config in the the cloud with Eureka
Create a Docker Swarm Cluster for Spring Boot Microservices
And much much more!
Inside the Course
Links all source code examples (Dozens of GitHub repositories are used for this course!)
Challenging Assignments
All slides are downloadable as PDFs for your reference and study
Course Extra - IntelliJ IDEA Ultimate
Students enrolling in the course can receive a free 4 month trial license to IntelliJ IDEA Ultimate! Get hands on experience using the Java IDE preferred by Spring Framework professionals!
Course Extra - Access to a Private Slack Community
You're not just enrolling in a course --> You are joining a community learning Spring.
With your enrollment to the course, you can access an exclusive Slack community. Get help from the instructor and other Spring Framework Gurus from around the world - in real time! This community is only available to students enrolled in this course.
This is a very active Slack community with hundreds Spring Framework Gurus from around the world!
When you enroll in this course, you can join this community of awesome gurus!