Back to courses
Microservices and Distributed Systems
Build and deploy microservices, mastering modern software architecture techniques.
Level: Mid & Senior Engineers
Nelson
Course by
Nelson
What you'll learn
Microservices Development
Communication Techniques
Service Discovery & API Management
Containerization & Orchestration
Security Implementations
Database & Tracing Integration
Message-Driven Communication
API Gateway Strategies
Deployment & Optimization
Kafka Message Processing
Managed Kubernetes Cluster
API Key Authentication
OAuth2 & KeyCloak Integration
Production Deployment Best Practices
Welcome to Microservices and Distributed Systems - one of the most in-demand courses on the platform and for a good reason, microservices are quickly becoming the dominant framework in the field and a critical skill for a professional Java developer.
The course will be a lot of hands-on, building a distributed application and learning the exact technology stack that makes a microservice tick.
Simply put, anyone who is involved in software development, from developers, architects, testers and even ops professionals.
As microservices are becoming increasingly popular, more and more organizations look to adopt them in order to improve their software development processes. In turn learning, microservices can help you to improve your career prospects and earning potential.
So if you are willing to experiment with new technologies and are looking for courses trusted by thousands of professionals, keep scrolling to find out what they have to say.
Learning microservices is essential for any programmer looking to remain competitive in the tech industry. Microservice architecture offers massive advantages over traditional monolithic architectures, such as greater scalability, the overall speed of development, and ease of updates.
The ability to break complex services into individual, independently deployable services and it also provides developers with more flexibility when building applications, allowing them to tailor their solutions according to the specific needs of the project owned by small teams.
In addition to having a positive impact on development cycles, microservices are becoming more popular in the IT industry as a cost-effective and efficient solution compared to traditional monolithic architecture.
By studying microservices, you can gain an edge in this emerging market and leverage your knowledge to create robust and reliable applications that match customer demands.
When trying to learn a complex concept like microservices, It’s easy to spend dozen of hours wasting time searching online instead of actually learning
Disjointed tutorials, confusing articles and a lack of support plague so many of the online resources that simply don’t keep up with what you need. With Amigoscode you will be learning from a trusted premium resource taught to you by a Java professional with years of microservices framework experience from his Software Engineer career at major companies in London.
The experience of students speaks for themselves and I hope soon you too will soon share your success story!
This course has 24 sections including exercises
Getting Started
Bootstrap With Maven
Your First Microservice
Intro
1 - Spring Cloud
2 - Create Your First Microservice
3 - Model Controller and Service
4 - Postgres and PGAdmin on Docker
5 - Connecting to DB
6 - Databases
7 - Section End Git Commit
Microservice Communication via HTTP
1 - Intro
2 - Fraud Microservice
3 - Database Setup for Fraud
4 - Fraud Controller Service and Repository
5 - RestTemplate
6 - Testing Microservice Communication
7 - Section End Git Commit
Service Discovery with Eureka
1 - Service Discovery
2 - Spring Cloud Dependency
3 - Setting up Eureka Server
4 - Dashboard
5 - Eureka Clients
6 - @LoadBalanced
7 - Section End Git Commit
Open Feign
1 - Open Feign
2 - Feign client Feign
3 - Using Fegin Client
4 - Microservice Communication With Feign
5 - Section End Git Commit
Exercise
1 - Exercise
2 - Solution
3 - Section End Git Commit
Distributed Tracing
1 - Distributed Tracing
2 - Adding Sleuth
3 - Zipkin
4 - Zipkin Container
5 - Spring Cloud Sleuth Zipkin
6 - Zipkin Dashboard
7 - Section End Git Commit
Api Gateway With Spring Cloud Gateway
1 - What are Load Balencers
2 - Load Balancer Algorithms
3 - Load Balancer Health Checks
4 - Spring Cloud Gateway
5 - Bootstrap API Gateway
6 - Configuring API Gateway
7 - API Gateway in Action
8 - Section End Git Commit
Message Queues
1 - Why a message queue
2 - Simulate Slow Response
3 - AMQP & RabbitMQ
4 - Kafka RabbitMQ and SQS
5 - AM
RabbitMQ
1 - Rabbit MQ Container
2 - AMQPTemplate and JacksonConverter
3 - SimpleRabbitListenerContainerFactory
4 - Notification Queue Configuration
5 - Queue Topic and Binding
6 - Message Producer
7 - Publishing Messages
8 - Customer Microservice Publishing Messages To Queue
9 - @RabbitListener
10 - Zikin Dashboard With RabbitMQ
11 - We made it. Our code is Asynchronous
12 - Section End Git Commit
Packaging Microservices to Runnable Jar
1 - Intro
2 - Maven Compiler Plugin
3 - Spring Boot Maven Plugin
4 - Installing Root and Individual Modules with Maven
5 - Running all Jars
6 - Section End Git Commit
Packaging Jars to Docker Images
1 - Intro
2 - What is Docker
3 - Docker Images and Containers
4 - Docker Architecture
5 - Docker Registries
6 - Docker Login
7 - Spring Boot Maven Plugin and Jib
8 - Jib Maven Plugin
9 - Jib Sub Module Configuration
10 - Build and Push
11 - Exercise
12 - Exercise Solution
13 - Adding Eureka Server and ApiGW to Docker Compose
14 - Docker Network
15 - Spring Profiles
16 - ApiGW and Eureka Server Docker Containers
17 - Exercise 2
18 - Exercise 2 Solution
19 - Section End Git Commit
Kubernetes AKA k8s
1 - Intro
2 - What is Kubernetes
3 - Master and Control Plane
4 - Worker Nodes
5 - Running Kubernetes Clusters
6 - Minikube
7 - Installing Kubectl
8 - Kubernetes Hello World
9 - Pods
10 - Deployments
11 - Services
12 - Service Discovery
Deploying Postgres RabbitMQ and Zipkin to k8s
1 - IntelliJ k8s Plugin
2 - Never Deploy Postgres on k8s. Only for local testing
3 - Postgres YAMLs
4 - Postgres Running in k8s
5 - Exercise
6 - Exercise Sol
7 - Section End Git Commit
Refactoring Microservices for k8s
1 - Intro
2 - No need for API Gateway Anymore
3 - Disabling Eureka
4 - Refactor Feign Clients
5 - Adding SPRING_PROFILES_ACTIVE=default
6 - Kube Profile
7 - Building new Images and Testing Docker Compose
8 - Section End Git Commit
Deploying Microservices to k8s
1 - Section Overview
2 - Customer YAMLs
3 - Customer Up in Running in k8s
4 - Exercise
5 - Exercise Solution
6 - We done it. Microservices running in k8s
7 - Section End Git Commit
Managed Kubernetes Cluster with Linode
1 - Commands for this sections
2 - Linode
3 - Create K8s Cluster
4 - Dashboard Overview
5 - Kubernetes Dashboard
6 - Connect To Cluster Using kubectl
7 - Postgres
8 - Zipkin and LoadBalancers
9 - RabbitMQ
10 - Deploying Microservices
11 - Testing deployment
12 - Managed Postgres Database
13 - Connecting to Managed Database
14 - Connecting to Managed Database
15 - Override DB Connection Details with Env Variabales
16 - Apply Customer yaml
17 - Apply Notification and Fraud
18 - Testing everything
19 - Destroy resources
Kafka
1 - Intro
2 - What is Kafka
3 - Kafka Broker
4 - Bootstrap Project
5 - Topic
6 - Kafka Producer Config
7 - Kafka Template Send
8 - Kafka Consumer
9 - ConsumerConfig
10 - @KafkaListener
11 - Restful Api and Kafka Integration
12 - Custom Objects
13 - Trusted Packages
14 - Deployment and Managed Kafka
15 - Spring for Apache Kafka Documetation
16 - Outro
Bringing Back API Gateway for Security
1 - Bring Back APIW and Eureka Server
2 - Enabling Eureka Client
3 - Starting All Services
4 - Testing POST request
Security - API Key Authentication
1 - API Key Authentication
2 - Key and Applications Overview
3 - ApiKeyAuthorization Filter
4 - Ordering the Filter
5 - Testing the Filter
6 - Api Key Validation Overview
7 - Extracting the Route
8 - Attaching ApiKey to request
9 - Accesing Key From Request Header
10 - FakeApiAuthorizationChecker
11 - Testing API Authentication Flow
ApiKey Management App
1 - Coming soon
Oauth2 & KeyCloak
1 - Coming soon
Outro
1 - Don't Use Spring Cloud Config Server
2 - Vault and Secrets Management
3 - Reporting Service
4 - Deployment
5 - Outro
If you have any other questions - please get in touch
Amigoscode offers unique, practical, and industry-relevant programming courses taught by experienced instructors. We focus on real-world applications, giving you the skills you need to excel in your career.
Yes, many of our students purchase our courses through their company's training budget. Our courses are considered a valuable investment in employee skill development, and they can be expensed as part of your company's training and development initiatives.
Our courses are designed to bridge the gap between theory and practice. You'll gain hands-on experience, work on real projects, and build a portfolio that will impress employers and clients, opening up new opportunities for career growth.
Yes, we provide certificates of completion for all our courses. These certificates are recognized in the industry, and they can help you showcase your skills to potential employers or clients.
Absolutely! Amigoscode courses are self-paced, allowing you to learn at a speed that suits your schedule. You can revisit the material whenever you need, and you have lifetime access to the course content.
No, our courses are designed to accommodate all levels of learners. Whether you're a beginner looking to start your programming journey or an experienced developer wanting to enhance your skills, we have courses suitable for you.
We provide extensive support to our students through discord. You'll have access to a community of learners and can ask questions, share your progress, and collaborate with fellow students. In addition, our instructors are available to help with any challenges you encounter during the course.
We offer a 15-day refund policy. If you're not satisfied with your course within the first 15 days after purchase, we will provide a full refund, no questions asked. Your satisfaction is our priority.
Engage in a dynamic and interactive learning experience as you complete exercises and projects.