Microservices with Spring Cloud
Leverage the power of Spring to create resilient microservices
More people than ever want to create microservices-based architecture. But with the increasing complexity of these solutions, there’s a need for tools that allow Java developers to tackle distributed system issues.
Join expert Marcin Grzejszczak to explore one of these mature tools: Spring Cloud, a Spring Boot–based tool set. Constantly adapting to the requirements of modern software development, Spring Cloud allows you to apply complex distributed system patterns with a one-liner or just convention. In just three hours, you’ll learn the basics of Spring Cloud and how to apply it in your systems.
What you'll learn-and how you can apply it
By the end of this live, hands-on, online course, you’ll understand:
- What Spring Cloud is and how to apply it in your project
- How to communicate between services via HTTP and messaging
- How to gather metrics and perform latency analysis of your applications
And you’ll be able to:
- Write Spring Cloud microservices
- Use Spring Cloud’s service discovery integration to discover instances of your applications
- Gather metrics with Micrometer and perform latency analysis and tracing with Spring Cloud Sleuth
This training course is for you because...
- You’re a Java developer.
- You work with microservices.
- You want to become a microservices developer.
- General knowledge of Java
- A basic understanding of Spring Boot, Spring Web MVC, and Git
- A machine with have the following installed: Git, JDK 8, Curl / wget / httpie or any other application to perform HTTP requests, Docker, Docker Compose
- Watch “Using ‘Twelve-Factor App’ Style Configuration,” “Giving Your Microservice a REST,” and “Developing Web Applications” (video chapters, 1h 37m)
About your instructor
Marcin Grzejszczak is a software engineer at Pivotal. He has written two books, Mockito Instant and Mockito Cookbook and co-authored the Applied Continuous Delivery Live Lessons with Josh Long. Marcin is co-founder of the Warsaw Cloud Native meetup. Currently he is working as lead of the Spring Cloud Sleuth, Spring Cloud Contract, and Spring Cloud Pipelines projects. You can follow Marcin on Twitter @mgrzejszczak.
The timeframes are only estimates and may vary according to how the class is progressing
Spring Cloud and Spring Boot (55 minutes)
- Lecture: Basic Spring Boot concepts; Spring Cloud as a portfolio project; Spring Cloud dependency management; how to create and set up Spring Boot–based projects using Spring Initializr; creating a Spring Cloud Config server and referencing the properties in a Spring Cloud application
- Hands-on exercise: Use the Project Initializr to externalize configuration via Spring Cloud Config; generate a Spring Cloud Config server and a Spring Cloud Config client application
- Break (5 minutes)
Microservices communication and service discovery (55 minutes)
- Lecture: Microservice-based communications; service discovery; Spring Cloud Netflix; how to set up a Spring Cloud Netflix Eureka server and communicate from the client perspective
- Hands-on exercise: Use Project Initializr to perform service-to-service communication with Spring Cloud; generate a Spring Cloud Eureka server and two client applications
- Break (5 minutes)
Gathering metrics with microservices without cascade failure (55 minutes)
- Lecture: Microservice metrics gathering and aggregation through project Micrometer; microservice failure propagation and how to tackle this issue with a circuit breaker pattern; distributed tracing with Spring Cloud Sleuth, Zipkin, and the ELK stack
- Hands-on exercise: Use Micrometer to create custom metrics in your Spring Cloud–based applications generated with Spring Initializr
- Break (5 minutes)
Implement an API gateway in a distributed system and work with messaging and microservices (50 minutes)
- Lecture: The Spring Cloud Gateway; messaging-based systems; Spring Cloud Stream with RabbitMQ
- Hands-on exercise: Generate two Spring Cloud Stream applications that talk to each other over Spring Cloud Stream with RabbitMQ
Wrap-up and Q&A (10 minutes)