Recently I've worked through the video course "The Complete Microservices with Spring Course"
by MleTech Academy, LLC, which is an introduction to the most important Spring modules for building microservices.
This course covers these Spring Cloud
- Spring Cloud Config
- Spring Could Netflix OSS with
- Eureka for Service Registry & Discovery
- Hytrix for Circuit Breaking
- Ribbon for Load Balancing
- Zuul Edge service for Proxying, Routing and Filtering)
- Spring Cloud Security with OAuth for Authentication and Authorization
The course comprises 5.5 hours of video material, but is quite fast paced. I actually needed over 20 hours to code along, deal with problems etc.; this is much more time than I usually need for a course of that length, which shows how densely packed it is.
All coding is done using Spring Tool Suite
(STS) and Maven
is used for dependency system where the Spring Boot Starter packages are utilized. There are completely independent basic examples for each of the building bricks (Eureka, Hystrix etc.). Postman
is used to manually example REST services.
The course ends with an example project, which puts all building blocks together to create a small application based on microservices.
Source Code for each lesson is available in a Zip-File, but other than the usual before+after code, it's mostly code from somewhere in the middle of the lessons which makes it a bit hard to get back into sync while coding along.
One general problem with heavily configuration-based approaches like in Spring is, that a typo can easily lead to "does not work" without any hint about what's wrong. The course almost only covers the "happy path" and gives little hints what to do if it does not work.
Also the course author does not answer questions, which I can well understand when considering the low price, especially on an Udemy sale. But still, once something does not work, you are on your own. I gave few hints about the problems I had to co-students, hopefully it helps someone.
Once in a while a diagram would have helped to visualize how the parts play together, especially for the example project at the end. So, I did it:
(Click on the diagram leads you to PlantUML - try it!)
Automated testing is unfortunately not covered by this course. Also does the example project still use host+port where Eureka could have been utilized. Looks like an interesting exercise to build a more elaborate example!
What have I learned?
This course gave me a good overview about how to build microservices with Spring Cloud and how quickly the skeleton for a microservice can be set up using the spring-cloud-starter-* Maven artifacts.
Because either by a mistake of mine or because the attached sources of the example project did not really match what was used in the video, I got the chance to try it on my own to get it to work. I did, and have added my results to the Q&A section of the course, due to unknown license I can't publish it, though.