The cloud’s ease of scaling is essential for handling distributed microservices architecture—but also proves extremely costly! In this series of liveProjects, you’ll implement different cost-saving techniques to help reduce unnecessary cloud usage by microservices without affecting platform availability. Each liveProject explores a different technique to save your company money on their cloud bill.
These projects are designed for learning purposes and are not complete, production-ready applications or solutions.
here's what's included
Project 1 Reduce Traffic
Project 1 Reduce Traffic
In this liveProject, you’ll improve the caching mechanism between a Catalog API and microservices. This will reduce the number of unnecessary requests, and reduce costs from your cloud provider. You’ll explore near cache, remote cache, and proxy cache mechanisms, then evaluate the pros-and-cons of each approach.
Project 2 Compress Communications
Project 2 Compress Communications
In this liveProject, you’ll implement methods of compression to reduce the size of data that microservices return as a response. You’ll use the built-in compression tools of Spring Boot to set up microservices data responses in a gzip format, then explore using databases like Redis to compress data with the serializer of data offered by Spring Boot.
Project 3 Prevent Duplicate Requests
Project 3 Prevent Duplicate Requests
In this liveProject, you’ll reduce duplicate search requests in an e-commerce store to bring down unnecessary data usage of microservices. You’ll implement caching and database functionalities that can reduce search duplication during key promotional events like Black Friday, and set up a synchronization of search requests which occur at the same moment.
Project 4 Circuit Breaker
Project 4 Circuit Breaker
In this liveProject, you’ll implement bug and error fixes in your microservices to reduce unnecessary and costly data traffic. You’ll implement a Circuit Breaker to prevent sending requests to unhealthy requesters, set up a Fallback method that gives microservices a default behavior with errors, and work with rate limiters to prevent large numbers of requests to an API.
Prerequisites
This liveProject is for Java developers looking to reduce the costs of microservices architectures. To begin this liveProject, you will need to be familiar with the following:
TOOLS
- Basic Java
- Basics of any Java IDE: Eclipse, IntelliJ IDEA, Visual Studio Code
- Basic Maven
- Basic Spring and Spring Boot
- Basic Docker and Docker Compose
TECHNIQUES
- Understanding the principles of REST
- Basic knowledge of microservices
you will learn
In this liveProject, you’ll learn easy-to-implement techniques for reducing unnecessary data transfer between microservices.
- Working with an internal cache in each instance of microservices
- Working with a cache in front a particular API
- Best practices and pros/cons of each mechanism of cache